Skip to main content
Glama

mcp-toolforge

Ein Meta-MCP-Server, der neue MCP-Server aus natürlicher Sprache beschriebenen Werkzeugbeschreibungen erzeugt.

Anhand eines Projektnamens, einer kurzen Beschreibung und einer Liste von Werkzeugbeschreibungen in natürlicher Sprache (z. B. "fetches the weather for a string city and returns a string summary") schreibt mcp-toolforge ein vollständiges, ausführbares MCP-Server-Projekt – Schema, Implementierung, Tests mit echten Assertions, README, LICENSE – bereit zur Installation und Ausführung.

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" --> PP

Architektur

┌─────────────────────┐     ┌──────────────────────────┐
│   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

Schnellstart

mcp-toolforge installieren

pip install -e ".[dev]"

mcp-toolforge selbst ausführen (Meta-Server)

Als MCP-Server (stdio-Transport):

{
  "mcpServers": {
    "mcp-toolforge": {
      "command": "python",
      "args": ["-m", "mcp_toolforge.server"],
      "cwd": "/path/to/mcp-toolforge"
    }
  }
}

Oder als CLI, die ein eigenständiges Server-Projekt erzeugt:

# 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_server

Verwendung des generate_server-Tools

Wenn mcp-toolforge als MCP-Server registriert ist, kann ein KI-Agent Folgendes aufrufen:

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
)

Das Tool schreibt ein vollständiges Projekt in dest/<package_name>/ und gibt eine zusammenfassende Zeichenkette zurück. Der erzeugte Server kann anschließend eigenständig installiert und bei deinem MCP-Client registriert werden.

So funktioniert das Parsing natürlicher Sprache

Jede Werkzeugbeschreibung sollte dem folgenden Muster folgen:

<VERB> [a/an] <type> <name> [, <type> <name>] ... and returns <type> <description>

Beispiele:

Beschreibung

Werkzeugname

Parameter

fetches the weather for a string city and returns a string summary

fetch

city: string

adds a string task and returns a string confirmation

add

task: string

multiplies two numbers given a number a and number b and returns a number product

multiply

a: number, b: number

lists all todos and returns an array of todo items

list

query: string (Fallback)

Erkannte Parametertypen: string, integer, number, boolean, array.
Werden keine typisierten Parameter erkannt, wird ein Freitext-Parameter query: string abgeleitet.

Beispiele

Drei Beispielserver werden in examples/ erzeugt:

Server

Paket

Werkzeuge

Beschreibung

WeatherServer

weather_server

fetch, forecast

Ruft Wetterinformationen ab

TodoServer

todo_server

add, list, remove

Verwaltet eine To-do-Liste

MathServer

math_server

add, multiply, compute

Arithmetische Werkzeuge

Jedes Beispiel ist ein voll funktionsfähiger MCP-Server mit eigenen Tests:

cd examples/math_server
pip install -e .
pytest

Entwicklung

# 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.py

Tests

  • tests/test_generator.py – 16 Tests für den Generator (Parsing, Schema-Inferenz, Datei-Rendering, Projekterstellung)

  • tests/test_server.py – 5 Tests für den Meta-MCP-Server (Tool-Auflistung, Tool-Aufruf, Fehlerbehandlung)

  • e2e_test.py – End-to-End-Test, der den Meta-Server als echten stdio-Subprozess ausführt und mit einem MCP-Client verbindet

  • Jeder Beispielserver enthält 4 Tests (12 Testfälle insgesamt bei 3 Beispielen)

Alle Tests verwenden echte Assertions und überprüfen die tatsächliche Dateiausgabe bzw. die tatsächlichen Tool-Ergebnisse.

Lizenz

MIT – siehe LICENSE.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    An 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.
    10
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A 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.
    10
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Generates production-ready MCP servers with dual-mode (MCP + CLI) architecture, tests, and documentation. Includes progressive disclosure tools for AI agents and best practices guidance.
    7
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to generate complete, runnable MCP server projects from natural-language tool descriptions, including schema, implementation, tests, README, and license.
    MIT