Generate ready-to-use MCP servers from OpenAPI specs, databases, or YAML descriptions.
Model Context Protocol is the standard for connecting AI assistants to your tools and data. mcpkit gets you from zero to a working MCP server in seconds.
npx @fanioz/mcpkitnpx @fanioz/mcpkit init
# or with flags:
npx @fanioz/mcpkit init --name my-server --description "My custom MCP server"Turns every endpoint into an MCP tool. Supports OpenAPI 3.x and Swagger 2.x.
npx @fanioz/mcpkit from openapi.yaml
npx @fanioz/mcpkit from openapi.yaml --name petstore-mcp
npx @fanioz/mcpkit from openapi.yaml --name my-api -o ./output-dirExample — generate from a public API spec:
npx @fanioz/mcpkit from https://api.example.com/openapi.yaml --name example-mcp
cd example-mcp
npm install
npm run devCreates read-only query tools for every table in your database.
npx @fanioz/mcpkit from sqlite:///path/to/your.db
npx @fanioz/mcpkit from sqlite:///path/to/your.db --name my-db-mcpDefine your MCP tools in a simple YAML file:
# mcp.yml
name: my-tools
version: "1.0.0"
description: My custom MCP server
tools:
- name: search
description: Search for items
parameters:
- name: query
type: string
description: Search query
required: true
- name: limit
type: string
description: Max results
required: falsenpx @fanioz/mcpkit from mcp.ymlEvery command outputs a ready-to-run TypeScript project:
my-mcp-server/
package.json
tsconfig.json
src/
index.ts # MCP server with your tools
.gitignore
cd my-mcp-server
npm install
npm run dev # Start the MCP serverAdd your generated MCP server to your AI assistant's config:
Claude Code (~/.claude/settings.json):
{
"mcpServers": {
"my-server": {
"command": "node",
"args": ["/path/to/my-mcp-server/src/index.ts"]
}
}
}Cursor / Windsurf — add to your MCP settings.
name: server-name # Required: kebab-case server name
version: "1.0.0" # Optional: version string
description: My server # Optional: description
tools:
- name: tool_name # Required: tool identifier
description: What it does # Required
parameters:
- name: param_name # Required: parameter name
type: string # Required: parameter type
description: Help text # Optional
required: true # Optional: default falseMIT