도구, 유효성 검사, 테스트 스위트를 포함하여 자연어 설명만으로 완성된 테스트 완료 FastMCP 3.x MCP server를 생성합니다.
다른 이름 saagpatel/mcpforge, fastmcp-builder
- 스타
- 0
- Tools
- —
- 다운로드, 30일
- 99
- 최신 버전
- 0.3.4
- 마지막 커밋
- 2026년 11월 14일
- 라이선스
- MIT
mcpforge MCP란?
mcpforge은(는) MCP server입니다. 도구, 유효성 검사, 테스트 스위트를 포함하여 자연어 설명만으로 완성된 테스트 완료 FastMCP 3.x MCP server를 생성합니다.
프로젝트 README에서 생성된 요약
mcpforge MCP server 정보
개발자는 자연어 설명만으로 완성된 테스트 완료 FastMCP 3.x MCP server를 구축할 수 있습니다. 문장 하나만 입력하면 Pydantic 입력 유효성 검사, 에러 핸들링, pytest 스위트, 클라이언트 설정 문서가 포함된 전체 프로젝트 스캐폴드를 생성합니다. 자연어 설명이 곧 사양서 역할을 하므로, MCP 스키마나 프로토콜 보일러플레이트를 수동으로 작성할 필요가 없습니다.
시스템은 stdio를 통해 로컬에서 실행되며, 생성을 위해 Python 3.12+, uv, Anthropic API 키가 필요합니다. validate, inspect, list, doctor, init과 같은 명령어는 무료이지만, generate 및 update 도구는 사용자의 API 키를 사용하여 Claude API를 직접 호출합니다. 일반적인 생성 실행 비용은 복잡도와 선택한 모델에 따라 $0.05에서 $0.30 사이입니다. 또한 demo 명령어를 사용하면 API 키 없이도 내장된 레코딩으로부터 생성된 검증된 날씨 서버를 확인할 수 있습니다.
활용 사례
- 1새 서버 생성서버의 목적을 한 문장으로 설명하여 완전히 기능하는 MCP server를 만듭니다.
- 2서버 무결성 검증구문, 보안, 린팅 및 pytest를 포함한 자동화된 체크를 실행하여 생성된 코드가 유효한지 확인합니다.
- 3에이전트를 통한 서버 구축 자동화서버를 AI 어시스턴트에 연결하여 대화 중에 MCP server를 생성하고 검사할 수 있도록 합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
mcpforge MCP 설치 방법
형식 확인: 2026년 11월 10일Claude Code에 mcpforge MCP 설치
$ claude mcp add mcpforge -- uvx fastmcp-builderCursor에 mcpforge MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"mcpforge": {
"command": "uvx",
"args": [
"fastmcp-builder"
]
}
}
}VS Code에 mcpforge MCP 설치
.vscode/mcp.json
{
"servers": {
"mcpforge": {
"type": "stdio",
"command": "uvx",
"args": [
"fastmcp-builder"
]
}
}
}Claude Desktop에 mcpforge MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"mcpforge": {
"command": "uvx",
"args": [
"fastmcp-builder"
]
}
}
}Codex에 mcpforge MCP 설치
~/.codex/config.toml
[mcp_servers.mcpforge] command = "uvx" args = ["fastmcp-builder"]
Gemini CLI에 mcpforge MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"mcpforge": {
"command": "uvx",
"args": [
"fastmcp-builder"
]
}
}
}구성
ANTHROPIC_API_KEYMCPFORGE_WORKSPACE
| 이름 | 설명 | 유형 |
|---|---|---|
| ANTHROPIC_API_KEY | — | |
| MCPFORGE_WORKSPACE | — |
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능saagpatel/mcpforge is public and reachablegithub.com/saagpatel/mcpforge ↗통과
- 패키지가 이 저장소를 소스로 지정fastmcp-builder names saagpatel/mcpforge as sourcepypi.org/project/fastmcp-builder/ ↗통과
- 빌드 출처(Sigstore 증명)Sigstore attestation for fastmcp-builderpypi.org/project/fastmcp-builder/ ↗통과
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-09github.com/saagpatel/mcpforge ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음No popular package one edit away from fastmcp-builder통과
- 패키지와 의존성에 심각한 보안 권고 없음69 resolved dependencies checked; no critical advisoryosv.dev ↗통과
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 endpoint가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기mcpforge
One English sentence in. A tested, spec-free FastMCP 3.x server out.
mcpforge turns a plain-English description into a complete FastMCP 3.x MCP server — tools, Pydantic input validation, error handling, a pytest suite, run config, and client setup docs — all wired together and ready to inspect, validate, and install. There's no MCP schema or protocol boilerplate to hand-write: the sentence is the spec. You write it; Claude writes the implementation; mcpforge runs the generated test suite and validators before you ever run it.
⚡ 60-second start

You need Python 3.12+, uv, and an Anthropic API key.
uv tool install fastmcp-builder # or: pip install fastmcp-builder
export ANTHROPIC_API_KEY="your_anthropic_api_key"
mcpforge generate "A weather server that returns today's forecast for a city" -o weather-server
No key yet? Try the demo.
mcpforge demoruns the real plan → generate → validate pipeline against a built-in recording and writes a complete, validated weather server — no API key, no spend. It's the fastest way to see exactly what mcpforge produces:uvx --from fastmcp-builder mcpforge demo
Bring your own key (BYOK). Generation runs on your Anthropic API key — mcpforge calls the Claude API directly and nothing is proxied through a hosted service. A single
generatemakes a few model calls (plan → server → tests), so a typical run costs roughly $0.05–$0.30 in API usage on the default model (claude-sonnet-4-6). That figure is an estimate — it scales with server complexity and your chosen model, and is not a live measurement. Everything that doesn't call the model —validate,inspect,list,doctor, andinit— is free.
That's the whole loop. mcpforge plans the tools, generates the code, then runs syntax, security, lint, import, and pytest checks against the result — so what lands in ./weather-server/ is already validated:
# weather-server/server.py (excerpt)
"""Weather forecast MCP server."""
from fastmcp import FastMCP
mcp = FastMCP("Weather")
# Illustrative lookup — describe a real source and mcpforge wires the call for you.
_FORECASTS: dict[str, dict] = {
"san francisco": {"high_c": 18, "low_c": 12, "summary": "Foggy"},
"denver": {"high_c": 24, "low_c": 9, "summary": "Clear"},
}
@mcp.tool
async def get_forecast(city: str) -> dict:
"""Return today's forecast for a city."""
key = city.strip().lower()
if key not in _FORECASTS:
raise ValueError(f"No forecast available for {city!r}")
return {"city": city, **_FORECASTS[key]}
if __name__ == "__main__":
mcp.run(transport="streamable-http")
Every generation also produces test_server.py (a real pytest suite), pyproject.toml, a README.md, and an MCP client config.json — a complete project, not a snippet. Run it with:
cd weather-server
uv run server.py # start the server (streamable-http)
uv run pytest -v # run the generated tests
mcpforge validate . # re-run the full validation suite anytime

The snippet above is an illustrative toy ("weather") for the docs. Real generations match your description — see
examples/for live generated servers (todo, file reader, database query, Slack notifier, TypeScript).
Build, then audit — the MCP toolkit
mcpforge has a sibling: mcp-audit (mcp-audits on PyPI). They're two halves of one workflow — forge a server, then audit what your agents can actually touch before you trust it.
| Stage | Tool | What it does |
|---|---|---|
| Build | mcpforge |
Generate a complete, tested MCP server from one sentence. |
| Audit | mcp-audit |
Scan every MCP server wired into your machine and risk-score what each one can reach. |
# build
mcpforge generate "A weather server that returns today's forecast for a city" -o weather-server
# audit everything your agents can reach (read-only, no install needed)
uvx --from mcp-audits mcp-audit scan --ssrf-check
mcp-audit is read-only by default — it never edits a config and reports env-var key names only, never values. Build with confidence, then verify your blast radius.
Registry-ready metadata lives in server.json with the MCP Registry name
io.github.saagpatel/mcpforge and PyPI package fastmcp-builder. Treat that metadata as
discovery/provenance context, not as proof that generated servers are safe to run without review.
Use as an MCP server
mcpforge is itself an MCP server: point an MCP client (Claude Code, Claude Desktop, Cursor) at it and your agent can forge, validate, and inspect MCP servers inside a conversation. It runs locally over stdio (it writes files into your workspace and calls your model provider on your own key), so it is not offered as a hosted remote.
uvx fastmcp-builder
Add it to a client config (Claude Code shown). generate, update, and plan call the model provider, so set the key in the server env:
{
"mcpServers": {
"mcpforge": {
"command": "uvx",
"args": ["fastmcp-builder"],
"env": { "ANTHROPIC_API_KEY": "<your-key>", "MCPFORGE_WORKSPACE": "/path/to/workspace" }
}
}
}
Workspace paths are resolved against MCPFORGE_WORKSPACE and confined to it. Note that generate and update write files and incur model-provider cost (roughly $0.05 to $0.30 per call on your key).
| Tool | What it does | Writes | Cost | Key args |
|---|---|---|---|---|
generate |
Generate a complete, tested FastMCP 3.x server from a description | yes (workspace) | API call | description, language, transport, output_path, dry_run |
update |
Apply a natural-language change to an existing generated server | yes (workspace) | API call | server_path, request |
plan |
Extract the structured server plan without generating code | no | API call | description, transport |
validate |
Run syntax, lint, import, and pytest checks on a generated server | no (executes tests) | none | server_path |
inspect |
Summarize a generated server without executing it | no | none | server_path |
doctor |
Check local prerequisites and provider readiness | no | none | workspace_path |
list_generated_servers |
List mcpforge-generated servers in a workspace | no | none | workspace_path, recursive |
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
Pagination contracts and failure semantics
The pagination contract docs describe adapter behavior,
protocol-level list pagination, and observed traversal outcomes. Pagination
incompleteness follows the shared failure contract.
Run mcpforge contracts fixtures to compare all pagination and upstream failure
fixtures across the supported runtimes. Regenerate or check the examples in the
docs with mcpforge contracts pagination-docs [--path DIR] [--check] and
mcpforge contracts failure-docs [--path FILE] [--check]. Paths default to
docs/pagination and docs/FAILURE-SEMANTICS.md under the current directory.
Installable example servers for each pattern (cursor,
offset,
page-token) demonstrate pagination over
stdio. Generate your own with mcpforge contracts pagination-example PATTERN --output DIR.
More commands
The PyPI distribution is fastmcp-builder; the installed commands are mcpforge and mcpforge-server. Beyond generate:
# See it work with no API key — generate a weather server from a built-in recording
mcpforge demo
# 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 dependency installation and generated-code execution. Python still reports static syntax, security, and lint results; imports and generated tests do not run. TypeScript also skips type checking and generated tests, and its MCP response reportsvalidation_mode: "write_only"andtests_status: "not_run". Provider-backed planning and code generation may still make API calls. The legacytests_okflag alone does not prove tests ran.--stricttreats Python lint errors as hard validation failures; TypeScript has no lint stage.--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.--auth-profile none|api-key|jwtadds optional Python auth profile metadata and env docs.--middleware-profile logging|timing|rate-limitadds optional Python middleware profiles; repeat it to combine profiles.--provider anthropic|openai|openrouterselects the generation provider.openrouteris the "bring any model" path: setOPENROUTER_API_KEYand pick any OpenRouter model with--model(e.g.--model anthropic/claude-opus-4.8), including free and low-cost ones. Generation quality and structured-output support vary by model — the recommended models are Claude Opus 4.8 (xHigh) and/or GPT 5.5 (High/Extra High). Theopenaipackage is a default dependency (included in all installs) because it backs both--provider openaiand--provider openrouter; setMCPFORGE_ENABLE_OPENAI_PROVIDER=1to enable the direct OpenAI provider for use withOPENAI_API_KEY.
Useful status flags:
mcpforge list --jsonmcpforge inspect PATH --jsonmcpforge validate PATH --jsonmcpforge doctor --jsonmcpforge version --json
mcpforge doctor --json always prints the complete JSON report and exits 0 when
the report's ok is true, or 1 when it is false, matching ordinary doctor.
For Cloud development, use the portable MCP Forge Cloud workflow skill. It covers prepared startup and credential-free checks, continuing an authorized existing PR, and the tested GitHub connector fallback when configured Git transport is blocked, with remote history and tested contents verified before delivery.
Tech Stack
| Layer | Technology |
|---|---|
| Language | Python 3.12+ |
| Generation | Anthropic Claude via anthropic SDK; OpenAI and OpenRouter via openai SDK (included by default) |
| MCP framework | FastMCP 3.x |
| CLI | Click 8 |
| Templates | Jinja2 |
| Validation | Pydantic v2 |
| Output | Rich |
Development setup
The repository pins Python 3.12.15 in .python-version and requires uv 0.13.0 or later. Set up the locked environment and run the full local check with:
make setup
make check
make check includes validation of examples/todo-server; on macOS it uses the available sandbox-exec boundary. CI disables that wrapper for the example-validation command because GitHub-hosted runners do not provide it.
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.
Status
Stack
The current package version is 0.3.4, published to PyPI as fastmcp-builder. It adds a fastmcp-builder console-script alias and corrects the registry metadata. Version 0.3.3 added mcpforge demo, the OpenRouter provider, and MCP Registry metadata. The project targets Python 3.12+ and FastMCP 3.x. The repository toolchain pins Python 3.12.15 and requires uv 0.13.0 or later.
Known risks
- Generated code runs during ordinary validation. macOS uses
sandbox-execwhen available; non-macOS validation runs without that sandbox. Review generated code before use. - Python
--no-executeperforms static syntax, security, and lint checks only; imports and generated tests do not run. Static results are not proof of runtime behavior. - The update command currently handles Python servers. TypeScript validation is narrower than the Python validation pipeline and does not use the Python lint or security stages.
- Provider compatibility and deployment readiness depend on the selected provider and environment. See the provider matrix.
Next steps
Use CHANGELOG.md for release history and the provider matrix for hosted-provider readiness before planning release work.
See CHANGELOG.md for the full version history.
License
MIT
mcpforge MCP 질문
mcpforge MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add mcpforge -- uvx fastmcp-builder를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
mcpforge MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
서버 생성 비용은 얼마인가요?
기본 모델(Claude 3.5 Sonnet) 사용 시 일반적인 실행 비용은 API 사용량 기준 약 $0.05–$0.30입니다. validate, inspect, list, doctor, init과 같은 다른 명령어는 무료입니다.
Anthropic API 키 없이도 사용 가능한가요?
네, demo 명령어를 사용하면 내장된 레코딩을 기반으로 파이프라인을 실행하여 API 키 없이도 검증된 날씨 서버를 생성할 수 있습니다.
생성된 서버 프로젝트에는 무엇이 포함되나요?
도구, Pydantic 입력 유효성 검사, 에러 핸들링, pytest 스위트, 실행 구성 및 클라이언트 설정 문서가 포함된 완전한 프로젝트를 생성합니다.