MCP Server Generator
Бесплатный веб-инструмент, который генерирует готовый к запуску MCP-сервер (TypeScript или Python) из простой формы — без необходимости в спецификации OpenAPI. Скачайте ZIP-архив и подключите его к Claude Desktop, Cursor или любому stdio MCP-хосту.
Документация
MCP Server Generator: create an MCP server without OpenAPI
MCP Server Generator is a free browser tool that turns a short form (server name, tools and typed parameters) into a runnable TypeScript or Python MCP server, downloaded as a ZIP with setup steps for Claude Desktop, Cursor and Claude Code. No OpenAPI spec, no account.
How it works
-
Name your server
Pick a name and one-line description for package metadata. -
Define tools
Add tools with typed parameters (string, number, boolean)—no OpenAPI. -
Generate & download
Preview source, then download a ZIP with Cursor / Claude Desktop setup.
Build your MCP server
Generated source
src/index.ts · typescript
#!/usr/bin/env node
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "weather-helper",
version: "1.0.0",
});
server.registerTool(
"get_weather",
{
description: "Get current weather for a city",
inputSchema: z.object({
city: z.string().describe("City name, e.g. San Francisco")
}),
},
async ({ city }) => {
// TODO: replace this placeholder with real logic for get_weather
return {
content: [{ type: "text", text: "[get_weather] " + "city=" + JSON.stringify(city) }],
};
}
);
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("weather-helper MCP server running on stdio");
}
main().catch((err) => {
console.error(err);
process.exit(1);
});
More free MCP tools
MCP config generator & validator Build or fix claude_desktop_config.json, Cursor and VS Code mcp.json, Claude Code.mcp.json. MCP tool schema generator Design tool inputSchema JSON with enums, arrays and annotations; copy Zod or Python code. OpenAPI to MCP converter Paste an OpenAPI or Swagger spec (JSON or YAML) and download an MCP server that calls your API. Python MCP server generator Form preset to Python: download an mcp 2.x MCPServer ZIP with venv/uv setup. Remote MCP server generator Same form, but a Streamable HTTP server with Dockerfile, Host allowlist and client URLs.
What is an MCP server?
An MCP server is a program that exposes tools to an AI host (Claude Desktop, Cursor, Claude Code, VS Code, Codex and others) over the open Model Context Protocol. In AI assistants, MCP is how the model reaches beyond the chat window: the host starts your server, asks for tools/list, and sends tools/call when the model picks a tool.
How it works in practice: the host launches a local stdio process (this site's generators write that process), discovers your tools, and relays arguments and results. This free MCP server generator builds the server from a form; if you already have a spec, use the OpenAPI to MCP converter. Step-by-step: how to build an MCP server without OpenAPI. Form vs OpenAPI: comparison. Full guide: What is an MCP server.
Is there a free MCP server generator?
Yes. MCP Server Generator is free, needs no account and no OpenAPI spec: fill in a server name and tools, pick TypeScript or Python, and download a runnable ZIP for Cursor, Claude Desktop or Claude Code. The other common ways to get an MCP server differ mainly in what you must start from.
| Approach | You start from | You get | Good fit |
|---|---|---|---|
| This form generator (free) | Tool names and typed parameters, no spec | TypeScript or Python ZIP, stdio (or Streamable HTTP); handlers are stubs you fill in | Scripts, internal tools, prototypes, APIs without a spec |
| Hand-written with the official SDK or FastMCP | An empty project and the SDK docs | Whatever you code; full control | Developers who want to write every line (tested template) |
| OpenAPI-based generators (our free converter, or vendor tools such as Stainless or Speakeasy) | An existing OpenAPI / Swagger spec | One tool per API operation that sends real HTTP requests | Public or well-documented APIs that already have a maintained spec |
Vendor pricing and features change; check their sites. A side-by-side on one example API: form-built vs OpenAPI-converted MCP server.
Which free tool do you need?
| You have or want | Use |
|---|---|
| New to MCP and want the concepts first | What is an MCP server? (tools, resources, prompts, stdio vs HTTP, MCP vs API) |
| An idea, a script or a database query, no API spec | This form, then the TypeScript and Python template walkthrough |
| One server at a URL for a team or a hosted agent | Remote MCP server generator (Streamable HTTP, TypeScript or Python, Dockerfile) |
| The same thing, but Python first (venv or uv) | Python MCP server generator (opens on Python, explains MCPServer vs FastMCP) |
| An OpenAPI 3 or Swagger 2.0 spec | OpenAPI to MCP converter (tools that call your API); form vs OpenAPI compared on one example |
| A private REST API with a token | Build an MCP server for an internal API (handler code, auth, errors) |
| Richer inputs: enums, arrays, annotations | MCP tool schema generator |
| A server already, but no config file or it does not show up | MCP config generator and validator and the connect guide |
| Proof it works before touching a host | How to test an MCP server with MCP Inspector |
| Someone to build it for you | MCP server development service |
What's in the ZIP
TypeScript
weather-helper/
├── package.json # MCP SDK, zod, tsx
├── tsconfig.json # ES2022, NodeNext
├── src/index.ts # McpServer + registerTool
└── README.md # run + host config
Python
weather-helper/
├── server.py # MCPServer + @mcp.tool()
├── requirements.txt # mcp>=2.0.0
├── pyproject.toml # Python >=3.10
└── README.md # venv/uv + host config
Parameter types map directly: string / number / boolean become z.string() / z.number() / z.boolean() in TypeScript and str / float / bool type hints in Python. Unticking required adds .optional() or a default value. Descriptions are passed to the model, so write them for the model, not for humans. Full file walkthrough: MCP server template for TypeScript and Python.
What the host sees
The default form above, run with npm start and asked for tools/list over stdio, answers:
{ "name": "get_weather",
"description": "Get current weather for a city",
"inputSchema": {
"type": "object",
"properties": {
"city": { "type": "string", "description": "City name, e.g. San Francisco" }
},
"required": ["city"] } }
Calling it with {"city": "Paris"} returns [get_weather] city="Paris". That echo is the stub: put your real lookup where the TODO is.
After you download: ZIP to working tool in 5 steps
- Install. TypeScript:
npm install. Python (3.10+):python -m venv .venv, activate it, thenpip install -r requirements.txt. - Test without a host. Run
npx @modelcontextprotocol/inspector npm start(ornpx @modelcontextprotocol/inspector .venv/bin/python server.py) and call your tool once. Details: how to test an MCP server. - Add it to the host. Paste the README's
mcpServersentry, which uses absolute paths, into the host's config file. The config generator rewrites it for VS Code or checks it for errors. - Restart and ask. Restart the host and ask for something that needs the tool. The placeholder reply, for example
[get_weather] city="Paris", proves the wiring works. - Replace the TODO. Put real logic in the handler: call your API, query a database or run a script. Calling an internal API shows working TypeScript and Python handlers.
Works with
- Claude Desktop: add the README's
mcpServersentry toclaude_desktop_config.json. - Cursor: the same entry goes in
~/.cursor/mcp.json(global) or.cursor/mcp.json(per project). - Claude Code: the same
mcpServersentry in.mcp.jsonat the project root; start a new session, approve the server, then run/mcp. See Claude Code MCP setup. - VS Code:
.vscode/mcp.jsonuses a top-levelserverskey and"type": "stdio"on each entry, so convert the README snippet first. - Windsurf: the
mcpServersentry goes in~/.codeium/windsurf/mcp_config.json. - Codex (CLI, IDE extension, ChatGPT desktop app): the same command and args go in a TOML
[mcp_servers.<name>]table in~/.codex/config.toml. The config generator writes it or converts the README's JSON for you. - Other MCP hosts: any client that launches a local stdio server from a command plus args. The generated server uses stdio only (no HTTP transport).
How to connect an MCP server to Claude Desktop, Cursor, Claude Code and VS Code covers config file locations, absolute paths and troubleshooting. The MCP config generator and validator writes the file for Claude Desktop, Cursor, VS Code, Claude Code, Windsurf or Codex (config.toml) and finds errors in an existing one.
Use cases
- Expose an internal script or private API that has no spec. Define
lookup_customer(email), generate, then call your existing code inside the handler. - Prototype a tool set before building it. Try two or three tool names and descriptions in Cursor, see which ones the model picks correctly, then regenerate.
What the generator does not do
- No business logic. Handlers are placeholders that echo their arguments until you replace the
TODO. - Simple parameter types. string, number and boolean, required or optional. For enums, arrays and nested objects use the tool schema generator or the OpenAPI converter.
- Local stdio on this page. No hosting, auth or multi-user deployment is generated here. To serve the same tools over Streamable HTTP, use the remote MCP server generator (HTTP server plus Dockerfile) or the tested HTTP example; for a team server behind a token, see sharing an internal API server.
FAQ
What is an MCP server?
A program that exposes tools to an AI host such as Claude Desktop, Cursor or Claude Code over the Model Context Protocol. This page writes one for you from a form. For MCP in AI, how tools/list and tools/call work, and MCP vs a REST API, read the full guide: What is an MCP server?
Should I generate TypeScript or Python?
Pick the language your handler code will live in. The TypeScript ZIP needs Node.js 18 or newer and runs with npm start (tsx, no build step); npm run build is optional. The Python ZIP needs Python 3.10 or newer and the mcp 2.x package, installed with venv or uv. Both expose the same tools to the host. The Python MCP server generator opens on Python and compares venv with uv.
Can I add more tools after I download the ZIP?
Yes. Either add the new tool to the form, generate again and copy its registerTool block (TypeScript) or @mcp.tool function (Python) into your project, or write that block by hand. Restart the host or start a new session so it asks for tools/list again. The template guide shows a tool with an optional parameter.
Does the generated server run over HTTP or only stdio?
This form writes stdio: the host starts it as a local process. That is what Claude Desktop, Cursor and Claude Code launch from a config entry. To serve the same tools to a team over Streamable HTTP, use the remote MCP server generator (same form, HTTP server plus Dockerfile), and see sharing an internal API server for a token-protected setup.
What if I already have an OpenAPI spec?
Use the free OpenAPI to MCP converter instead: it turns each selected operation into a tool that sends a real HTTP request to your API. This form is for when there is no spec, or when you want a few task-shaped tools whose handlers you write yourself. Form vs OpenAPI, compared.
How do I add the generated server to Claude Desktop, Cursor or Claude Code?
Unzip, install dependencies (npm install or pip install -r requirements.txt), then paste the README's mcpServers entry into Claude Desktop's claude_desktop_config.json, Cursor's mcp.json or Claude Code's .mcp.json in the project root. Restart the host (or start a new Claude Code session) so it launches the server over stdio.
Can I generate MCP TypeScript and MCP Python projects?
Yes. Choose TypeScript (@modelcontextprotocol/sdk + Zod) or Python (mcp package, MCPServer) before generating. Both produce a downloadable project with placeholder handlers you can replace.
Is this MCP server generator free?
Yes. Free, no account, no checkout, and no paid API. The ZIP is built in your browser and you run the source yourself.
Is anything I type into the form uploaded?
No. The code preview and the ZIP are generated by JavaScript in your browser, and the form contents are not sent anywhere. The site only records page views with Vercel Web Analytics.
What does the generated code actually do?
It scaffolds a stdio MCP server with your tools and typed parameters; handlers echo arguments until you replace the TODO s. The ZIP includes README install and host-config steps.