MCP Server Generator
Describe tools in a form, then download a TypeScript or Python MCP server for Cursor and Claude Desktop. No OpenAPI, 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
#!/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
const text = "[get_weather] " + "city=" + JSON.stringify(city);
return {
content: [{ type: "text", text }],
};
}
);
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);
});
What is MCP?
MCP (Model Context Protocol) lets hosts like Claude Desktop and Cursor call tools you run in a local server. This generator writes that server for you from a form, so you can create an MCP server without an OpenAPI spec. If you already maintain a large OpenAPI document, see when an OpenAPI→MCP generator is the better fit.
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.
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). - 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 and Cursor covers config file locations, absolute paths and troubleshooting.
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.
FAQ
What is an MCP server?
An MCP server is a program that exposes tools to an AI host such as Claude Desktop or Cursor over the Model Context Protocol. When the model decides to use a tool, the host calls your server and passes the result back to the model.
Do I need an OpenAPI spec to create an MCP server?
No. Describe tools and parameters in the form; the download is a ready-to-run TypeScript or Python project with those tools registered in code.
How do I install this in Cursor or Claude Desktop?
Unzip, install dependencies (npm install or pip install -r requirements.txt), then paste the README JSON snippet into Cursor's mcp.json or Claude Desktop's claude_desktop_config.json. Restart the host so it can launch 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.
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 TODOs. The ZIP includes README install and host-config steps.
Need a custom MCP server built for your API, or a feature added? Email aigcx7@gmail.com.