# Model Context Protocol (MCP) Concepts

[Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) is
an open protocol that standardizes how AI applications — Claude Desktop, Claude
Code, ChatGPT, Cursor, VS Code, and others — connect to external tools and data
sources. Zuplo supports MCP in two directions, and this page explains both and
when to use each.

## Two ways to use MCP on Zuplo

| Feature                                              | What it does                                                                                            | When to use it                                                                                                        |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| **[MCP Gateway](../mcp-gateway/overview.mdx)**       | Proxies traffic to one or more upstream MCP servers. Handles OAuth, capability curation, and analytics. | You want to expose existing MCP servers (Linear, Stripe, internal services, etc.) to AI clients through one endpoint. |
| **[MCP Server handler](../handlers/mcp-server.mdx)** | Turns your OpenAPI routes into an MCP server. Each route becomes an MCP tool, prompt, or resource.      | You want to expose your own API as MCP so AI clients can call it as tools.                                            |

The two features solve different problems and can live in the same project.

### MCP Gateway: one front door for upstream MCP servers

The [MCP Gateway](../mcp-gateway/overview.mdx) fronts one or more remote MCP
servers with a single, OAuth-protected endpoint. Users sign in once through your
identity provider, the gateway brokers credentials to each upstream server, and
every tool call lands in your analytics — without raw tokens ever reaching the
AI client. It solves five problems that appear as soon as a team uses more than
a couple of MCP servers: discovery, authentication, authorization,
observability, and guardrails. See
[How the MCP Gateway works](../mcp-gateway/how-it-works.mdx).

### MCP Server: turn your API into tools

The [MCP Server handler](../mcp-server/overview.mdx) transforms the routes in
your Zuplo project into MCP [tools](../mcp-server/tools.mdx),
[prompts](../mcp-server/prompts.mdx), and
[resources](../mcp-server/resources.mdx) that AI systems can discover and
invoke. It uses your existing OpenAPI specifications for tool descriptions and
composes with Zuplo's authentication, rate limiting, and audit logging policies.

## How MCP fits into Zuplo

Neither MCP feature is a separate runtime. Both are sets of policies and route
handlers that run inside the same Zuplo platform that runs your REST and GraphQL
APIs — the same OpenAPI-as-config model, deployment pipeline, and observability
primitives described in [How Zuplo Works](./how-zuplo-works.mdx). MCP traffic
flows through the same [request lifecycle](./request-lifecycle.mdx), so policies
like [rate limiting](../rate-limiting/getting-started.mdx) and
[audit logging](../policies/audit-log-inbound.mdx) apply to it the same way they
apply to any other route.

## Next steps

- [MCP Gateway quickstart](../mcp-gateway/quickstart.mdx) — expose an upstream
  MCP server and connect Claude Desktop
- [MCP quickstart for the MCP Server handler](../articles/mcp-quickstart.mdx) —
  turn an API into MCP tools
- [Connect MCP clients](../mcp-gateway/connect-clients/overview.mdx) — Claude,
  ChatGPT, Cursor, VS Code, and others
