Scaffold production-ready MCP servers in seconds.
Interactive mode (guided prompts):
npx @agentailor/create-mcp-serverCLI mode (all options via arguments):
npx @agentailor/create-mcp-server --name=my-server| Option | Short | Default | Description |
|---|---|---|---|
--name | -n | — | Project name (required in CLI mode) |
--package-manager | -p | npm | Package manager: npm, pnpm, yarn |
--framework | -f | sdk | Framework: sdk, fastmcp |
--stdio | — | false | Use stdio transport (for local clients) |
--template | -t | stateless | Server mode: stateless, stateful (HTTP only) |
--oauth | — | false | Enable OAuth (sdk+stateful only, incompatible with --stdio) |
--no-git | — | false | Skip git initialization |
--help | -h | — | Show help |
--version | -V | — | Show version |
Examples:
# Minimal - uses all defaults (HTTP streamable) npx @agentailor/create-mcp-server --name=my-server # stdio server (for local clients) npx @agentailor/create-mcp-server --name=my-server --stdio # stdio with FastMCP npx @agentailor/create-mcp-server --name=my-server --stdio --framework=fastmcp # Full HTTP options npx @agentailor/create-mcp-server \ --name=my-auth-server \ --package-manager=pnpm \ --framework=sdk \ --template=stateful \ --oauth # Short flags npx @agentailor/create-mcp-server -n my-server -p yarn -f fastmcp- Two frameworks — Official MCP SDK or FastMCP
- Two transport types — HTTP (streamable) or stdio (for local cllients)
- Two HTTP server modes — stateless or stateful with session management
- Optional OAuth — OIDC-compliant authentication (SDK HTTP only) (setup guide)
- Package manager choice — npm, pnpm, or yarn
- TypeScript ready — ready to customize
- Docker ready — production Dockerfile included (HTTP transport)
- MCP Inspector — built-in debugging with
npm run inspect
| Framework | Description |
|---|---|
| Official MCP SDK (default) | Full control with Express.js, supports OAuth |
| FastMCP | Simpler API with less boilerplate |
FastMCP is a TypeScript framework built on top of the official MCP SDK that provides a simpler, more intuitive API for building MCP servers.
import { FastMCP } from "fastmcp"; import { z } from "zod"; const server = new FastMCP({ name: "My Server", version: "1.0.0" }); server.addTool({ name: "add", description: "Add two numbers", parameters: z.object({ a: z.number(), b: z.number() }), execute: async ({ a, b }) => String(a + b), }); server.start({ transportType: "httpStream", httpStream: { port: 3000 } });Learn more: FastMCP Documentation
| Feature | HTTP (Streamable HTTP) | stdio |
|---|---|---|
| Use case | Remote access, cloud deployment | Local clients (Claude Desktop) |
| Protocol | HTTP/SSE | stdin/stdout |
| Session management | ✓ (stateful mode) | — |
| OAuth support | ✓ (SDK stateful) | — |
| Docker deployment | ✓ | — |
| Port configuration | ✓ | — |
HTTP: Deploy as an HTTP server accessible remotely. Choose stateless or stateful mode.
stdio: Run as a local process. Communicates over stdin/stdout. Ideal for local clients. No HTTP server, no port, no Dockerfile generated.
| Feature | Stateless (default) | Stateful |
|---|---|---|
| Session management | — | ✓ |
| SSE support | — | ✓ |
| OAuth option (SDK only) | — | ✓ |
| Endpoints | POST /mcp | POST, GET, DELETE /mcp |
Stateless: Simple HTTP server — each request creates a new transport instance.
Stateful: Session-based server with transport reuse, Server-Sent Events for real-time updates, and optional OAuth authentication (SDK only).
my-mcp-server/ ├── src/ │ ├── server.ts # MCP server (tools, prompts, resources) │ ├── index.ts # Express app and transport setup │ └── auth.ts # OAuth middleware (if enabled) ├── Dockerfile # Production-ready Docker build ├── package.json ├── tsconfig.json ├── .gitignore ├── .env.example └── README.md Scripts:
npm run dev— build and start the servernpm run inspect— open MCP Inspector (update URL inpackage.jsonif needed)
| Guide | Description |
|---|---|
| Create Your First MCP Server in 5 Minutes | Build your first production-ready MCP server. A complete beginner guide to scaffolding a Fetch MCP server with TypeScript. |
| Securing MCP Servers with Keycloak | Learn how to secure your MCP servers with OAuth authentication using Keycloak. |
| Getting Started with FastMCP | Build MCP servers faster with FastMCP — the TypeScript framework inspired by Python's most popular MCP library. |
| OAuth for MCP Clients (Next.js + LangGraph.js) | Implement OAuth authentication in your MCP client using Next.js and the MCP SDK. |
I help teams design and ship production-ready AI agent systems (MCP, LangGraph, RAG, memory, performance).
If you’re building something serious on top of this:
Happy to jump on a short call.
The Model Context Protocol (MCP) is an open protocol that enables AI assistants to interact with external tools, data sources, and services.
Built by Agentailor — your launchpad for production-ready MCP servers and scalable AI agents. We provide the tools, templates, and expertise to ship AI-powered applications faster.