Skip to main content

Manifest-driven CLI that generates readable, tested Python MCP server projects

Project description

MCP Builder Toolkit

PyPI Python CI Coverage License Status

Manifest-driven CLI that generates readable, tested Python MCP server projects with safe regeneration and optional Docker/CI assets.

MCP defines the protocol. MCP Builder Toolkit defines a repeatable way to create, inspect, test, and package an MCP server.

Status: v0.1.0a1 — ready for external evaluation, not production-ready.

What the YAML controls

The manifest declares project-generation intent:

  • FastMCP Python compatibility profile and MCP protocol version;
  • stdio or Streamable HTTP transport;
  • package name and supported Python range;
  • tests, linting, typing, Docker, Compose, GitHub Actions, and structured logs;
  • whether to include the replaceable example tool.

Tool behavior and API integrations remain normal, user-owned Python code. The alpha does not generate arbitrary tools from YAML or convert OpenAPI documents. See YAML capabilities and boundaries for the complete boundary and an API integration example.

Install

uv tool install mcp-builder-toolkit
mcp-builder --version

From a source checkout:

uv sync --all-extras
uv run mcp-builder --version

Guided quickstart (recommended)

Full walkthrough (generate → implement tools → test → call with a real MCP client):

Guided quickstart

Short path

export MBT_ROOT=/path/to/mcp-builder-toolkit-spec-kit
cd "$MBT_ROOT" && uv sync --all-extras

mkdir -p ~/dev/my-mcp && cd ~/dev/my-mcp
uv run --project "$MBT_ROOT" mcp-builder init --name my-mcp --transport stdio --no-interactive
uv run --project "$MBT_ROOT" mcp-builder validate
uv run --project "$MBT_ROOT" mcp-builder generate

uv sync --all-extras
uv run pytest
uv run python -m my_mcp.server

Streamable HTTP + Docker: see the guided quickstart (Step 12) or set transport.type: streamable-http and features.docker/compose: true, then mcp-builder generate.

For generated containers, the server binds to 0.0.0.0 inside the container while Compose preserves the manifest's conservative host-side publication (default 127.0.0.1).

Commands

Command Purpose
mcp-builder init Create a minimal mcp-builder.yaml
mcp-builder validate Schema + semantic + compatibility checks
mcp-builder generate Plan and write project files (--dry-run, --force-managed)
mcp-builder doctor Manifest, state, drift, and local tool checks

Architecture

manifest.yaml
    → parse + validate + normalize
    → protocol-independent ProjectSpec
    → FastMCP adapter + Docker/Compose/CI features
    → ArtifactPlan (managed / scaffold-once / derived)
    → locked staged apply + .mcp-builder/state.json

Generated projects do not depend on this builder at runtime.

Compatibility profile

Field Value
Profile fastmcp-python-2026.07
FastMCP >=3.4.4,<3.5
Python >=3.12,<3.14
MCP protocol 2025-11-25
Manifest API mcpbuilder.dev/v1alpha1 (frozen for alpha)

Development

uv sync --all-extras
uv run ruff check src tests
uv run mypy src
uv run pytest
# optional: pre-commit install

Update golden trees after intentional template changes:

uv run python scripts/update_golden.py

Documentation

Doc Content
CHANGELOG.md Version history and alpha boundaries
specs/001-core-builder/ Feature spec, plan, tasks, contracts
docs/guided-quickstart.md Build a working MCP server step by step
docs/architecture.md System architecture
docs/extending.md Target/feature extension guide
docs/threat-model.md Threat model
docs/yaml-capabilities.md YAML capabilities and API integration boundary
docs/release-readiness-plan.md Alpha correction and verification plan
docs/pilot-feedback.md Pilot form (SC-001/SC-002)
docs/release-notes-0.1.0.md Release notes / publish checklist
SECURITY.md / SUPPORT.md / CONTRIBUTING.md Project policies

Explicit v0.1 boundary

Not in this release: OAuth, policy engines, budgets, audit receipts, A2A, agent contracts, gateways, multi-language generation, hosted control plane.

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_builder_toolkit-0.1.0a1.tar.gz (55.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_builder_toolkit-0.1.0a1-py3-none-any.whl (52.5 kB view details)

Uploaded Python 3

File details

Details for the file mcp_builder_toolkit-0.1.0a1.tar.gz.

File metadata

  • Download URL: mcp_builder_toolkit-0.1.0a1.tar.gz
  • Upload date:
  • Size: 55.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_builder_toolkit-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 fa2f3b263cd5cdacd28045e1a27c6f84c60916f4278b5003586b70da2a44bc90
MD5 70cf454c1f7a5290b0582f5c1b124e0f
BLAKE2b-256 34ba1e763190acc9ae40e8c331a34a1c69b8a0885ec8518ae08c7fd1a2ab8d6a

See more details on using hashes here.

File details

Details for the file mcp_builder_toolkit-0.1.0a1-py3-none-any.whl.

File metadata

  • Download URL: mcp_builder_toolkit-0.1.0a1-py3-none-any.whl
  • Upload date:
  • Size: 52.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for mcp_builder_toolkit-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 85bf5b57d28eb5e3dc531b43f5c95ff0c88a37a21e8f90cc2dd6743056659c7c
MD5 faf15d37481908f59f12a329c12c5133
BLAKE2b-256 2bd7d327c9f688361faa79fb3868050c29682609653ebe35403aff0aa82a39c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page