# Dynamic MCP Server - Quickstart

Zuplo allows you to instantly add a managed MCP Server to your existing API,
powered by OpenAPI. In this guide we'll build one locally using the
[Zuplo CLI](../cli/overview.mdx).

If you're not familiar with Zuplo, it's recommended to go through
[Step 1](./step-1-setup-basic-gateway-local.mdx) first.

<Stepper>

1. Create a **new project**

   Create a new project and start the local development server:

   ```bash
   npx create-zuplo-api@latest
   cd example-project
   npm run dev
   ```

   See [Step 1](./step-1-setup-basic-gateway-local.mdx) for a walkthrough of the
   `create-zuplo-api` prompts.

1. Test the **Get all todos** route

   The default template ships with a working todo API. Open the local **Route
   Designer** at http://localhost:9100, select the **Get all todos** route, and
   click the **Test** button next to the **Path** field.

   A test dialog will open, click **Test** and you should see a `200 OK`
   response with a few todos.

   This is the basic API we're going to turn into a fully functioning MCP
   Server.

1. Create an **MCP Server**

   On your `routes.oas.json` file, choose **Add** and then **MCP Server**.

   ![Add Route](../../public/media/mcp-quickstart/add-mcp-route.png)

   A new route will appear. Confirm the following values:
   - **Summary**: enter `MCP Server`
   - **Method**: choose `POST`
   - **Path**: enter `/mcp` (the path can be anything, but /mcp is common)

   Click the **Select Tools** option for your new MCP Server endpoint.

   ![Select Tools](../../public/media/mcp-quickstart/select-mcp-tools.png)

   You should see the MCP tools dialog. Check the tools from your `*.oas.json`
   files that you want to surface in your MCP Server.

   ![MCP Server](../../public/media/mcp-quickstart/mcp-tools-dialog.png)

   Click **Update Tools**, then click **Save** at the bottom left.
   Congratulations, you just published your first MCP Server! It's now available
   locally at `http://localhost:9000/mcp`.

1. Connect an **MCP Client**

   You can connect any MCP client that can reach your local gateway. The AI
   coding agent you configured in
   [Step 1](./step-1-setup-basic-gateway-local.mdx) (such as Claude Code or
   Cursor) is a great option — point it at your local MCP server URL:

   ```
   http://localhost:9000/mcp
   ```

   Since we didn't add authentication to our API, no credentials are required.

   :::tip{title="Using a cloud MCP client"}

   Cloud clients like the
   [OpenAI playground](https://platform.openai.com/playground) can't reach
   `localhost`. To use one, deploy your project first — see
   [Step 4](./step-4-deploying-to-the-edge-local.mdx) — and use your deployed
   MCP server URL instead.

   :::

1. Test your MCP Server

   Prompt your MCP client to:

   `list out all the todos`

   The client should recognize that it needs to call the todos MCP Server.
   Approve the tool call and you should see the todos listed 👏

</Stepper>

Congratulations! Now go read more about the
[MCP Server handler](/docs/handlers/mcp-server).
