Ship production-ready MCP Servers in Minutes.
Build and deploy your servers in no time, and manage them all in one place. No separate CI/CD pipelines, no fragile deployments.
Quick start
From an empty folder to a deployable MCP server in three steps.
Create your project
One command scaffolds a server with a sample tool. Swap
my-express-mcpfor your own project name.Terminalnpm create @mcpexpress my-express-mcpWrite your tools
Each tool is one
defineToolcall insrc/tools/. Register it insrc/tools.ts.add-numbers.tsSee how this sandbox is builtimport { defineTool } from "@mcpexpress/core"; import { z } from "zod"; const InputSchema = z.object({ a: z.number().describe("The first number"), b: z.number().describe("The second number"), }); const OutputSchema = z.object({ sum: z.number() }); const add = ({ a, b }: z.infer<typeof InputSchema>) => ({ sum: a + b, }); export const addNumbers = defineTool({ name: "add_numbers", title: "Add numbers", description: "Add two numbers together and return their sum.", input: InputSchema, output: OutputSchema, annotations: { readOnlyHint: true, openWorldHint: false }, execute: (args) => add(args), });Package and deploy
Bundle your project into a zip file with one command.
Terminalnpm run packagePackages are deployed to an installed MCP Express server. Not installed yet? Follow the installation guide.
Try it in action
A ready-made server running our public example code. Connect a real MCP client to it and see it in action.
See the example code on GitHubGenerate a token
The demo server is protected. Your token authenticates your MCP client.
We could not generate a token. Try again, or write tohello@mcp-express.com.
Connect your MCP client
Needs a tokenAdd this URL as a custom MCP server in Claude, Cursor or any MCP client, and use your token to authenticate.
https://sandbox.mcp-express.com/demo/mcp