Generate complete, runnable FastMCP 3.x MCP servers from plain-English descriptions
Project description
mcpforge
One sentence. One command. A complete MCP server, ready to run.
mcpforge generates production-ready FastMCP 3.x MCP servers from plain-English descriptions. You describe what you want; it produces tools, input validation, error handling, a pytest test suite, run configuration, and client setup docs — all wired together and ready to inspect, validate, and install.
Features
- Plain-English generation — describe your server in natural language; Claude writes the implementation
- Complete project scaffold — tools, Pydantic input models, error handling,
pyproject.toml, and a pytest suite generated together - FastMCP 3.x native — output uses modern FastMCP decorators and transport configuration, not raw MCP protocol boilerplate
- Validate before running —
mcpforge validateruns syntax, security, lint, import, and pytest checks against generated servers - Iterate safely —
mcpforge updatemodifies an existing generated server and backs up changed files before writing - Discover generated servers —
mcpforge listfinds mcpforge-generated projects in a workspace - Inspect and diagnose —
mcpforge inspectsummarizes generated server shape, whilemcpforge doctorchecks local readiness - Machine-readable output — status-like commands expose
--jsonfor agent workflows - OpenAPI curation controls — include/exclude tags, operation allowlists, and operation limits keep generated integrations focused
- Scaffold without an LLM —
mcpforge initcreates a minimal FastMCP server skeleton for local iteration - MCP server mode —
mcpforge-serverexposes generation, planning, validation, inspection, doctor, and discovery tools so AI assistants can build safely
Quick Start
Prerequisites
- Python 3.12+
uv(recommended)- Anthropic API key
Installation
uv tool install fastmcp-builder
The PyPI distribution is fastmcp-builder; the installed commands remain
mcpforge and mcpforge-server.
Usage
# Generate a new MCP server
mcpforge generate "A todo list manager with create, read, update, and delete operations"
# Validate an existing generated server
mcpforge validate ./my-server
# Modify an existing generated server
mcpforge update ./my-server "Add a tool to export todos as CSV"
# Find generated servers in the current workspace
mcpforge list . --recursive
# Inspect a generated server without executing it
mcpforge inspect ./my-server
# Check local prerequisites and provider readiness
mcpforge doctor
Useful generation flags:
--dry-rundisplays the structured plan without writing files.--no-executewrites files but skips import and test execution.--stricttreats lint errors as hard validation failures.--from-openapi FILEgenerates from an OpenAPI 3.x spec.--openapi-include-tag TAG,--openapi-exclude-tag TAG,--openapi-operation ID, and--openapi-limit Ncurate OpenAPI conversion.--language python|typescriptchooses the target server language.--provider anthropic|openaiselects the generation provider. OpenAI is listed as planned and remains gated until deterministic structured-output smokes are implemented.
Useful status flags:
mcpforge list --jsonmcpforge inspect PATH --jsonmcpforge validate PATH --jsonmcpforge doctor --jsonmcpforge version --json
Tech Stack
| Layer | Technology |
|---|---|
| Language | Python 3.12+ |
| Generation | Anthropic Claude via anthropic SDK |
| MCP framework | FastMCP 3.x |
| CLI | Click 8 |
| Templates | Jinja2 |
| Validation | Pydantic v2 |
| Output | Rich |
Architecture
The generate command sends the user's description to Claude with a structured prompt that includes FastMCP 3.x idioms and a tool-schema contract. Claude returns a JSON plan (tool names, signatures, and descriptions) that mcpforge validates against a Pydantic model before rendering through Jinja2 templates into a complete project directory. The generated project is then validated with syntax checks, security scanning, ruff linting, import checks, and pytest execution. The update command reads an existing generated server, asks Claude for a targeted modification, writes backups for changed files, and validates the result.
Current Status
As of May 10, 2026, main is prepared as 0.3.0 for the fastmcp-builder PyPI distribution. The v0.3 builder lane expands mcpforge from runnable-server generation into a production integration builder with inspection, doctor checks, richer generated scaffolds, OpenAPI curation, MCP server parity, provider abstraction, and live generated fixture examples for REST API, filesystem, database, and TypeScript profiles. See docs/CURRENT-STATE.md and docs/ROADMAP-v0.3.md.
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastmcp_builder-0.3.0.tar.gz.
File metadata
- Download URL: fastmcp_builder-0.3.0.tar.gz
- Upload date:
- Size: 44.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
107b95ce3cd20eb717621f10ee05c91c7422ef3988cf12266d9716a2346b5734
|
|
| MD5 |
53155b152b8ae7f9bdc3830145548d19
|
|
| BLAKE2b-256 |
8b95338d3c2f2369b46bec8736b5fc4dfa6959fb492c7745e41e72a2e76953af
|
Provenance
The following attestation bundles were made for fastmcp_builder-0.3.0.tar.gz:
Publisher:
publish.yml on saagpatel/mcpforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastmcp_builder-0.3.0.tar.gz -
Subject digest:
107b95ce3cd20eb717621f10ee05c91c7422ef3988cf12266d9716a2346b5734 - Sigstore transparency entry: 1492563331
- Sigstore integration time:
-
Permalink:
saagpatel/mcpforge@72d2c016a0cbfce60e6cc7ca740e4a57d32c0f97 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/saagpatel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@72d2c016a0cbfce60e6cc7ca740e4a57d32c0f97 -
Trigger Event:
push
-
Statement type:
File details
Details for the file fastmcp_builder-0.3.0-py3-none-any.whl.
File metadata
- Download URL: fastmcp_builder-0.3.0-py3-none-any.whl
- Upload date:
- Size: 61.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2acb1e2bcef40f19dcf5502be39d616d4ddffc73bd94ad1270884d3587dee66d
|
|
| MD5 |
4846e59b9ccc68f96baecf5ed08da809
|
|
| BLAKE2b-256 |
6e50a678020a68cf1056628da10d339d3ef5217e8eb15526175bf897a9c2cd11
|
Provenance
The following attestation bundles were made for fastmcp_builder-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on saagpatel/mcpforge
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastmcp_builder-0.3.0-py3-none-any.whl -
Subject digest:
2acb1e2bcef40f19dcf5502be39d616d4ddffc73bd94ad1270884d3587dee66d - Sigstore transparency entry: 1492563415
- Sigstore integration time:
-
Permalink:
saagpatel/mcpforge@72d2c016a0cbfce60e6cc7ca740e4a57d32c0f97 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/saagpatel
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@72d2c016a0cbfce60e6cc7ca740e4a57d32c0f97 -
Trigger Event:
push
-
Statement type: