/ Verzeichnis / Playground / MCP Python SDK
● Offiziell modelcontextprotocol ⚡ Sofort

MCP Python SDK

von modelcontextprotocol · modelcontextprotocol/python-sdk

Offizielles Python-SDK für das Model Context Protocol — Server und Clients in 30 Zeilen bauen, wird mit FastMCP-kompatiblen Decorators ausgeliefert.

Das offizielle von Anthropic gepflegte Python-SDK für MCP. Bietet Server (mcp.server.fastmcp.FastMCP), Client (mcp.client.session.ClientSession) und niedrigstufen Primitiven. Wird als kanonische Referenz für Spec-Konformität verwendet — im Zweifel ist dies die Wahrheitsquelle. Die decorator-basierte FastMCP-API wurde von jlowin/fastmcp eingebracht.

Warum nutzen

Hauptfunktionen

Live-Demo

In der Praxis

mcp-python-sdk.replay ▶ bereit
0/0

Installieren

Wählen Sie Ihren Client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

Öffne Claude Desktop → Settings → Developer → Edit Config. Nach dem Speichern neu starten.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

Cursor nutzt das gleiche mcpServers-Schema wie Claude Desktop. Projektkonfiguration schlägt die globale.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

Klicken Sie auf das MCP-Servers-Symbol in der Cline-Seitenleiste, dann "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mcp-python-sdk": {
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ],
      "_inferred": true
    }
  }
}

Gleiche Struktur wie Claude Desktop. Windsurf neu starten zum Übernehmen.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "mcp-python-sdk",
      "command": "uvx",
      "args": [
        "--with",
        "mcp",
        "python",
        "-m",
        "mcp.server.example"
      ]
    }
  ]
}

Continue nutzt ein Array von Serverobjekten statt einer Map.

~/.config/zed/settings.json
{
  "context_servers": {
    "mcp-python-sdk": {
      "command": {
        "path": "uvx",
        "args": [
          "--with",
          "mcp",
          "python",
          "-m",
          "mcp.server.example"
        ]
      }
    }
  }
}

In context_servers hinzufügen. Zed lädt beim Speichern neu.

claude mcp add mcp-python-sdk -- uvx --with mcp python -m mcp.server.example

Einzeiler. Prüfen mit claude mcp list. Entfernen mit claude mcp remove.

Anwendungsfälle

Praxisnahe Nutzung: MCP Python SDK

In unter 10 Minuten deinen ersten MCP-Server in Python bauen

👤 Python-Entwickler, die neu bei MCP sind ⏱ ~15 min beginner

Wann einsetzen: Du möchtest eine Python-Funktion für Claude zugänglich machen.

Voraussetzungen
  • Python 3.10+ — uv oder pyenv
Ablauf
  1. Installieren und aufsetzen
    Use uv to install mcp. Create server.py with one tool: get_weather(city) that calls a public API.✓ Kopiert
    → 10-Zeilen-Datei mit @tool-Decorator
  2. Via stdio ausführen
    Run mcp dev server.py. Open the MCP Inspector and verify the tool listing.✓ Kopiert
    → Tool über Inspector aufrufbar
  3. Zu Claude Desktop hinzufügen
    Add to claude_desktop_config.json. Test from Claude.✓ Kopiert
    → Live-Antwort im Chat

Ergebnis: Funktionierender MCP-Server in Python bei Claude registriert.

Fallstricke
  • Verwendung von print() im Handler bricht stdio — Logging zu stderr verwenden; niemals auf stdout schreiben

Integrationstests für einen MCP-Server mit dem SDK-Client schreiben

👤 Entwickler, die MCPs in Produktion veröffentlichen ⏱ ~30 min intermediate

Wann einsetzen: Du brauchst CI-Tests die beweisen dass dein MCP korrekt funktioniert.

Ablauf
  1. Server starten
    Use mcp.client.stdio to spawn server.py and call list_tools(). Assert expected names.✓ Kopiert
    → Test besteht
  2. Jedes Tool aufrufen
    For each tool, call with a representative input and assert the output schema.✓ Kopiert
    → Alle Tools verifiziert
  3. In pytest integrieren
    Convert into pytest fixtures so CI runs them on every PR.✓ Kopiert
    → Wiederverwendbares Test-Harness

Ergebnis: MCP-Server mit Vertrauen dass Tools nicht regressieren.

Langläufige Tool-Ausgabe zurück zu Claude streamen während sie entsteht

👤 Entwickler, die MCPs für Builds, Deploys oder lange Simulationen bauen ⏱ ~45 min advanced

Wann einsetzen: Tool dauert Minuten und du möchtest Fortschritt im Chat, nicht danach.

Ablauf
  1. Streamable HTTP Transport verwenden
    Switch from stdio to streamable HTTP. Yield progress events from the tool.✓ Kopiert
    → Claude zeigt partielle Ausgabe während der Ausführung
  2. Abbruch hinzufügen
    Honor cancel requests so user can abort if the tool takes too long.✓ Kopiert
    → Abbruch funktioniert mitten im Durchlauf

Ergebnis: Tools die sich Echtzeit anfühlen auch wenn sie langsam sind.

Kombinationen

Mit anderen MCPs für 10-fache Wirkung

mcp-python-sdk + mcp-go-mark3labs

Polyglot — Performance-kritisch in Go, ML/Daten in Python

mcp-python-sdk + mcp-registry

Python-MCP im offiziellen Registry veröffentlichen

Werkzeuge

Was dieses MCP bereitstellt

WerkzeugEingabenWann aufrufenKosten
FastMCP name, version? Server-Erstellung auf oberster Ebene 0
@server.tool decorator on async function Jede Funktion die exponiert werden soll 0
@server.resource decorator with uri pattern Schreibgeschützte Daten exponieren 0
@server.prompt decorator on prompt builder Wiederverwendbare Prompt-Templates 0
ClientSession transport MCP-Clients testen oder bauen 0
stdio_server () Lokaler Modus 0

Kosten & Limits

Was der Betrieb kostet

API-Kontingent
Nicht zutreffend — Bibliothek
Tokens pro Aufruf
Nicht zutreffend
Kosten in €
Kostenlos (MIT)
Tipp
SDK-Version in pyproject.toml pinnen; Spec entwickelt sich weiter

Sicherheit

Rechte, Secrets, Reichweite

Credential-Speicherung: Was auch immer deine Tools brauchen
Datenabfluss: Von deinen Handlern kontrolliert

Fehlerbehebung

Häufige Fehler und Lösungen

Tool erscheint nicht

Sicherstellen dass der @tool-Decorator auf einer async-Funktion ist und die Funktion vor dem Server-Start registriert wird

Prüfen: `mcp dev server.py` ausführen und den Inspector öffnen
Pydantic-Validierungsfehler

Tool-Eingaben werden von Pydantic validiert; prüfen ob Typ-Hinweise mit dem übereinstimmen was Claude sendet

Server hängt bei stdin EOF

Sicherstellen dass async Handler nicht deadlocken — anyio für Kompatibilität verwenden

Alternativen

MCP Python SDK vs. andere

AlternativeWann stattdessenKompromiss
FastMCP (PrefectHQ)Du möchtest den originalen Third-Party-Fork mit extra UtilitiesJetzt größtenteils eingemergt; dünner Wrapper
mcp-go (mark3labs)Go ist deine SpracheAnderes Ökosystem

Mehr

Ressourcen

📖 Offizielle README auf GitHub lesen

🐙 Offene Issues ansehen

🔍 Alle 400+ MCP-Server und Skills durchsuchen