Das Erstellen eines MCP-Servers wird viel einfacher, wenn du das offizielle Python-SDK verwendest. Anstatt komplexe JSON-Schemas von Hand zu schreiben, kannst du Tools mit Decorators definieren und das SDK die Schwerstarbeit erledigen lassen.

In diesem Beispiel erstellen wir einen Dokumentenverwaltungsserver mit zwei Kern-Tools: eines zum Lesen von Dokumenten und ein weiteres zum Aktualisieren. Alle Dokumente existieren im Speicher als einfaches Dictionary, bei dem die Schlüssel Dokument-IDs und die Werte der Inhalt sind.
Das Projekt beschaffen
Die Lektionen in diesem Kurs bauen auf einem kleinen Startprojekt auf, einem Kommandozeilen-Chatbot mit einem MCP-Client und einem MCP-Server. Lade cli_project.zip aus dem Downloads-Bereich am Ende dieser Lektion herunter und entpacke es in dein bevorzugtes Entwicklungsverzeichnis. Öffne deinen Code-Editor im Projektordner.
Das Projekt enthält eine README-Datei mit Einrichtungsanweisungen. Füge deinen Anthropic-API-Key zur .env-Datei hinzu. Installiere dann die Abhängigkeiten entweder mit uv (empfohlen) oder pip. Das Projekt verwendet Version 1 des MCP Python SDK, und dessen Einrichtung installiert diese Version für dich.
Den MCP-Server einrichten
Das MCP Python SDK macht die Servererstellung unkompliziert. Öffne mcp_server.py. Es initialisiert bereits einen Server mit nur einer Zeile. Die untenstehenden Tools benötigen außerdem den Field-Import:
from mcp.server.fastmcp import FastMCP
from pydantic import Field
mcp = FastMCP("DocumentMCP", log_level="ERROR")Deine Dokumente können in einer einfachen Dictionary-Struktur gespeichert werden:
docs = {
"deposition.md": "This deposition covers the testimony of Angela Smith, P.E.",
"report.pdf": "The report details the state of a 20m condenser tower.",
"financials.docx": "These financials outline the project's budget and expenditures",
"outlook.pdf": "This document presents the projected future performance of the system",
"plan.md": "The plan outlines the steps for the project's implementation.",
"spec.txt": "These specifications define the technical requirements for the equipment"
}Tool-Definition mit Decorators
Das SDK verwendet Decorators, um Tools zu definieren. Anstatt JSON-Schemas manuell zu schreiben, kannst du Python-Type-Hints und Feldbeschreibungen verwenden. Das SDK generiert automatisch das passende Schema, das Claude verstehen kann.
Ein Dokumentenleser-Tool erstellen
Das erste Tool liest Dokumentinhalte anhand der ID. Hier ist die vollständige Implementierung:
@mcp.tool(
name="read_doc_contents",
description="Read the contents of a document and return it as a string."
)
def read_document(
doc_id: str = Field(description="Id of the document to read")
):
if doc_id not in docs:
raise ValueError(f"Doc with id {doc_id} not found")
return docs[doc_id]Der Decorator gibt den Tool-Namen und die Beschreibung an, während die Funktionsparameter die erforderlichen Argumente definieren. Die Field-Klasse von Pydantic liefert Argumentbeschreibungen, die Claude helfen zu verstehen, was jeder Parameter erwartet.
Ein Dokumenteneditor-Tool erstellen
Das zweite Tool führt einfache Suchen-und-Ersetzen-Operationen an Dokumenten durch:
@mcp.tool(
name="edit_document",
description="Edit a document by replacing a string in the documents content with a new string."
)
def edit_document(
doc_id: str = Field(description="Id of the document that will be edited"),
old_str: str = Field(description="The text to replace. Must match exactly, including whitespace."),
new_str: str = Field(description="The new text to insert in place of the old text.")
):
if doc_id not in docs:
raise ValueError(f"Doc with id {doc_id} not found")
docs[doc_id] = docs[doc_id].replace(old_str, new_str)Dieses Tool nimmt drei Parameter entgegen: die Dokument-ID, den zu suchenden Text und den Ersatztext. Die Implementierung enthält eine Fehlerbehandlung für fehlende Dokumente und führt eine einfache String-Ersetzung durch.
Wichtige Vorteile des SDK-Ansatzes
- Kein manuelles Schreiben von JSON-Schemas erforderlich
- Type-Hints bieten automatische Validierung
- Klare Parameterbeschreibungen helfen Claude, die Tool-Nutzung zu verstehen
- Fehlerbehandlung integriert sich natürlich mit Python-Exceptions
- Die Tool-Registrierung erfolgt automatisch über Decorators
Das MCP Python SDK verwandelt die Tool-Erstellung von einer komplexen Schema-Schreibübung in einfache Python-Funktionsdefinitionen. Dieser Ansatz macht es viel einfacher, MCP-Server zu erstellen und zu pflegen, während gleichzeitig sichergestellt wird, dass Claude ordnungsgemäß formatierte Tool-Spezifikationen erhält.
Downloads
- Herunterladen
Starter project (cli_project.zip)
The chatbot project you build on for the rest of this course.
- Herunterladen
Completed project (cli_project_COMPLETE.zip)
The finished version, for checking your work.