mcp-toolforge
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-toolforgeCreate an MCP server called weather-bot with a tool that fetches weather for a city and returns a string summary"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-toolforge
A meta-MCP server that generates new MCP servers from natural-language tool descriptions.
Given a project name, a short description, and a list of natural-language tool
descriptions (e.g. "fetches the weather for a string city and returns a string summary"),
mcp-toolforge writes a complete, runnable MCP server project — schema, implementation,
tests with real assertions, README, LICENSE — ready to install and run.
flowchart TD
subgraph Client_Layer["AI Client / Claude Desktop"]
A["Client (Claude, Cursor, etc.)"]
end
subgraph Meta_Server["mcp-toolforge (this repo)"]
M["mcp_toolforge.server"]
G["mcp_toolforge.generator"]
end
subgraph Generated["Generated Server Project"]
P["src/<pkg>/__init__.py"]
S["src/<pkg>/server.py"]
T["tests/test_<pkg>.py"]
R["README.md"]
L["LICENSE"]
PP["pyproject.toml"]
end
A -- "MCP stdio JSON-RPC" --> M
M -- "generate_server tool call" --> G
G -- "writes files" --> P
G -- "writes files" --> S
G -- "writes files" --> T
G -- "writes files" --> R
G -- "writes files" --> L
G -- "writes files" --> PPArchitecture
┌─────────────────────┐ ┌──────────────────────────┐
│ AI Client │ stdio │ mcp-toolforge server │
│ (Claude, Cursor) │──JSON──│ (this repo) │
└─────────────────────┘ RPC └────────┬───────────────┘
│ generate_server
│ (name, description,
│ tool_descriptions, dest)
▼
┌────────────────────────────────────┐
│ generator.generate_project() │
│ parses NL → ToolSpec → ServerSpec │
│ renders: pyproject, server.py, │
│ tests, README, LICENSE │
└────────────────────────────────────┘
│
┌─────────────────┴─────────────────┐
│ Example generated servers │
│ • examples/weather_server │
│ • examples/todo_server │
│ • examples/math_server │
└────────────────────────────────────┘Related MCP server: mcp-creator
Quickstart
Install mcp-toolforge
pip install -e ".[dev]"Run mcp-toolforge itself (meta-server)
As an MCP server (stdio transport):
{
"mcpServers": {
"mcp-toolforge": {
"command": "python",
"args": ["-m", "mcp_toolforge.server"],
"cwd": "/path/to/mcp-toolforge"
}
}
}Or as a CLI that generates a standalone server project:
# Interactive wizard
mcp-toolforge -i
# One-shot
mcp-toolforge \
--name my_server \
--description "A server that does X" \
--tool "fetches the weather for a string city and returns a string summary" \
--dest ./my_serverUsing the generate_server tool
When mcp-toolforge is registered as an MCP server, an AI agent can call:
generate_server(
name="my_server",
description="A server that does X",
tool_descriptions=[
"fetches the weather for a string city and returns a string summary",
"adds a string task and returns a string confirmation"
],
dest="/path/to/output" # optional, defaults to /tmp/mcp-toolforge-gen
)The tool writes a complete project to dest/<package_name>/ and returns a
summary string. The generated server can then be installed and registered
with your MCP client independently.
How natural-language parsing works
Each tool description should follow the pattern:
<VERB> [a/an] <type> <name> [, <type> <name>] ... and returns <type> <description>Examples:
Description | Tool name | Params |
|
|
|
|
|
|
|
|
|
|
|
|
Recognized parameter types: string, integer, number, boolean, array.
If no typed parameters are detected, a free-form query: string parameter is
inferred.
Examples
Three example servers are generated into examples/:
Server | Package | Tools | Description |
WeatherServer |
|
| Fetches weather info |
TodoServer |
|
| Manages a todo list |
MathServer |
|
| Arithmetic tools |
Each example is a fully working MCP server with its own tests:
cd examples/math_server
pip install -e .
pytestDevelopment
# Install with dev dependencies
pip install -e ".[dev]"
# Run all tests
pytest
# Run end-to-end test against the meta-server over stdio
python e2e_test.py
# Regenerate examples
python make_examples.pyTesting
tests/test_generator.py— 16 tests for the generator (parsing, schema inference, file rendering, project creation)tests/test_server.py— 5 tests for the meta-MCP server (tool listing, tool calling, error handling)e2e_test.py— end-to-end test that runs the meta-server as a real stdio subprocess and connects with an MCPClientEach example server ships with 4 tests (12 total across 3 examples)
All tests use real assertions and verify actual file output / tool results.
License
MIT — see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Create guides as MCP servers to instruct coding agents to use your software (library, API, etc).
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for progressive tool usage at any scale (see https://klavis.ai)
Related MCP Servers
- AlicenseBqualityDmaintenanceAn intelligent tool that automates the setup of new Model Context Protocol (MCP) server projects through a conversational interface. It generates project structures, technical specifications, and context-rich documentation to streamline AI-assisted development in TypeScript or Python.103MIT
- AlicenseAqualityCmaintenanceA tool that enables AI assistants to conversationally scaffold, build, and publish Python MCP servers to PyPI. It automates the entire development lifecycle, including package naming, tool scaffolding, GitHub repository setup, and package publishing.10MIT
- AlicenseAqualityCmaintenanceGenerates production-ready MCP servers with dual-mode (MCP + CLI) architecture, tests, and documentation. Includes progressive disclosure tools for AI agents and best practices guidance.7Apache 2.0
- AlicenseNot gradedqualityDmaintenanceAutomatically generates MCP server tools from OpenAPI specifications, enabling LLMs to interact with any API defined by an OpenAPI spec through natural language.19MIT