# MCP prompts

Serve a gateway's skills to agents as MCP prompts.

[Skills](https://zato.io/docs/ai/skills/index.html) - reusable, named instructions for models - can be served to AI agents as MCP prompts. An agent lists them with `prompts/list`, reads one with `prompts/get` and feeds the instructions to its model, so one skill provides the instructions for your services' [LLM calls](https://zato.io/docs/ai/llm/invoke.html) and for what agents do with your tools.

## Assign skills to a gateway {#assign-skills-to-a-gateway}

The **Skills** picker on the wizard's step 01, **How do agents connect?**, selects which skills an [MCP gateway](https://zato.io/docs/ai/mcp/index.html) serves - each gateway has its own allow list, and a skill that exists on disk but is not assigned to the gateway is never served through it. In [enmasse](https://zato.io/docs/ai/enmasse.html), the assignment is the `skills` attribute of an `mcp_gateway` entry.

A gateway advertises the `prompts` capability in its `initialize` response only when it has at least one skill assigned - a gateway with no skills does not advertise it.

## Prompt responses {#prompt-responses}

`prompts/list` answers with the names and descriptions of the assigned skills, paginated with cursors the same way `tools/list` is - the instructions themselves are not included:

```json
{
    "prompts": [
        {"name": "invoice-analysis", "description": "How to analyze invoices and what to flag"}
    ]
}
```

`prompts/get` answers with one skill's full instructions, as the single message of the prompt:

```json
{
    "description": "How to analyze invoices and what to flag",
    "messages": [
        {"role": "user", "content": {"type": "text", "text": "..the skill's instructions.."}}
    ]
}
```

Editing a skill takes effect on the next `prompts/get` - skill files are [read live, never cached](https://zato.io/docs/ai/skills/index.html).

A name outside the gateway's allow list, or one whose file is gone, is refused with an invalid-params error saying `Prompt not found` - whether the skill exists elsewhere is never revealed.

With the [audit log](https://zato.io/docs/ai/mcp/audit-log.html) on, `prompts/list` and `prompts/get` are recorded as `mcp-prompts-list` and `mcp-prompts-get` events, with the prompt's name in the event's tool column.

## See also {#see-also}

- [Skills](https://zato.io/docs/ai/skills/index.html) - The instruction files a gateway serves as prompts
- [Invoking LLMs](https://zato.io/docs/ai/llm/invoke.html) - The same skills as the system context of your services' model calls
- [MCP gateways](https://zato.io/docs/ai/mcp/index.html) - Configuration, endpoint behavior and the governance controls
- [Audit log](https://zato.io/docs/ai/mcp/audit-log.html) - How prompts/list and prompts/get requests are recorded

## Learn more {#learn-more}

- [MCP tutorial](https://zato.io/tutorials/mcp/01.html) - Expose Python services as AI tools and connect Claude Code in minutes
- [AI Integrations overview](https://zato.io/docs/ai/) - Both directions of AI traffic in one platform, and where to start
- [MCP gateway reference](https://zato.io/docs/ai/mcp/) - Configuration, endpoint behavior and the governance controls
- [Tool schemas](https://zato.io/docs/ai/mcp/tool-schemas.html) - How a service's docstring and declared I/O become its tool definition
- [MCP gateway security](https://zato.io/docs/ai/mcp/security.html) - API keys, Basic Auth and bearer tokens for AI agents
- [MCP response controls](https://zato.io/docs/ai/mcp/response-controls.html) - PII removal, prompt-injection safeguards and token-denominated size caps
- [MCP audit log](https://zato.io/docs/ai/mcp/audit-log.html) - What each agent did, when and with what outcome - payloads never recorded
- [MCP alerts](https://zato.io/docs/ai/mcp/alerts.html) - Failing backends, agents stuck in a loop and gateways with too many tools
- [Cost and limits](https://zato.io/docs/ai/cost-and-limits.html) - Every setting that caps AI cost and traffic, with worked examples
- [GitOps for AI integrations](https://zato.io/docs/ai/enmasse.html) - LLM connections and MCP gateways as YAML in version control
- [AI examples](https://zato.io/docs/ai/examples/) - Complete, runnable scenarios - one real-world need per file
