Scaffold, test, and deploy MCP servers in TypeScript or Python with example tools, OpenAPI import, and Cloudflare Workers deployment
triggers
["create a new MCP server","scaffold an MCP server from OpenAPI","generate MCP tools from an API","turn a curl command into an MCP tool","deploy an MCP server to Cloudflare Workers","set up a testable MCP server quickly","build an MCP server with example tools","convert an API to an MCP server"]
mcp-quickstart is a scaffolding tool that generates production-ready Model Context Protocol (MCP) servers in 30 seconds. It creates servers with example tools, resources, prompts, tests, and the MCP Inspector pre-configured. Supports TypeScript and Python, stdio and HTTP transports, and can automatically generate MCP tools from OpenAPI specs or curl commands. Also supports one-command deployment to Cloudflare Workers.
# From a URL
npx mcp-quickstart petstore-mcp --from-openapi https://petstore3.swagger.io/api/v3/openapi.json
npx mcp-quickstart api-server --from-openapi ./openapi.yaml --lang ts -y
# From a local file
Generate from curl
# From a curl command string
npx mcp-quickstart search-tool --from-curl "curl https://api.example.com/v1/search?q=test -H 'Authorization: Bearer TOKEN'"# From a file containing curl
npx mcp-quickstart my-tool --from-curl curl-command.txt
Deploy to Cloudflare Workers
# Scaffold with Cloudflare transport
npx mcp-quickstart edge-server --transport cloudflare -y
cd edge-server
npm install
npx wrangler login
npm run deploy
OpenAPI → Cloudflare Workers (end-to-end)
# Generate API-backed remote MCP server and deploy
npx mcp-quickstart api-edge \
--from-openapi https://petstore3.swagger.io/api/v3/openapi.json \
--transport cloudflare -y
cd api-edge
npm install
npx wrangler secret put API_AUTH_VALUE # if needed
npm run deploy
CLI Options
npm create mcp-quickstart@latest [name] [options]
Options:
--from-openapi <path|url> Generate one MCP tool per API operation from OpenAPI spec
--from-curl <cmd|file> Turn a single curl command into an MCP tool
--lang <ts|python> Language (default: prompt)
--transport <stdio|http|cloudflare> Transport/deploy target (default: prompt)
--examples <bool> Include example primitives (default: true)
--yes, -y Accept defaults, skip prompts
--help, -h Show help
Generated Project Structure
TypeScript stdio
my-server/
├── src/
│ ├── index.ts # MCP server setup, tool/resource/prompt registration
│ ├── tools.ts # Pure business logic (testable)
│ └── types.ts # TypeScript types
├── __tests__/
│ └── tools.test.ts # Unit tests (passing out of the box)
├── .env.example # Environment variable template
├── .gitignore
├── package.json
├── tsconfig.json
└── README.md
OpenAPI-generated
petstore-mcp/
├── src/
│ ├── index.ts # One registerTool(...) per API operation
│ ├── http.ts # Generic HTTP client with auth
│ └── types.ts # Generated zod schemas from OpenAPI
├── .env.example # API_BASE_URL, API_AUTH_HEADER, API_AUTH_VALUE
└── package.json
Development Workflow
After scaffolding
cd my-server
npm install # or: uv sync (Python)
npm run dev # Start server on stdio
npm run inspect # Open MCP Inspector
npm test# Run tests
TypeScript build
npm run build # Compile to dist/
node dist/index.js # Run built server
Python development
uv sync# Install dependencies
uv run my-server # Run server
uv run pytest # Run tests
# Kill existing inspector process
pkill -f mcp-inspector
# Restart
npm run inspect
OpenAPI generation errors
Ensure the spec is valid OpenAPI 3.x (validate at editor.swagger.io)
Check that $ref paths are resolvable
For remote URLs, ensure they're publicly accessible
Cloudflare deployment fails
# Ensure you're logged in
npx wrangler whoami# Check wrangler.toml is presentcat wrangler.toml
# Try manual deployment
npx wrangler deploy
API auth not working
For OpenAPI/curl-generated servers, check .env:
# Verify variables are setecho$API_BASE_URLecho$API_AUTH_VALUE# For Workers, use secrets not env vars:
npx wrangler secret put API_AUTH_VALUE
npx wrangler secret list
Python tests not found
# Ensure pytest is in dependencies
uv add --dev pytest
# Run from project root
uv run pytest
Advanced: Custom Templates
To modify the generated scaffolds, clone the repo:
git clone https://github.com/G12789/mcp-quickstart.git
cd mcp-quickstart
npm install
# Templates are in templates/<lang>-<transport>/# Files prefixed with _ (e.g., _gitignore) are renamed on generation# Test your changes
node src/index.js test-out --lang ts -y