Zum Hauptinhalt springen

Baue und verdrahte deinen ersten MCP-Server

Experte

Lass uns Claude ein benutzerdefiniertes Tool zur Verfügung stellen, indem wir einen winzigen MCP-Server bauen und ihn verbinden. Wir halten ihn minimal, damit die Verdrahtung klar ist — danach tauschst du deine echte Logik ein.

Was wir bauen

Ein stdio-Server mit einem Tool, word_count, das Claude aufrufen kann. Dasselbe Muster skaliert auf "frage meine DB ab", "öffne ein Ticket" usw.

Schritt 1 — Der Server

server.py (Python; eine TypeScript-Version findest du in den MCP-Scaffolds):

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("text-tools")

@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a piece of text."""
return len(text.split())

if __name__ == "__main__":
mcp.run() # stdio transport

Schritt 2 — Ihn deklarieren

Füge im Root deines Repositorys zu .mcp.json hinzu:

{ "mcpServers": {
"text-tools": { "command": "python", "args": ["server.py"] }
} }

Schritt 3 — Verbinden und testen

Starte Claude Code im Repository. Frage: "Verwende den text-tools-Server, um die Wörter zu zählen in: 'the quick brown fox'." Claude sollte word_count aufrufen und 4 melden. Wenn es das Tool nicht sieht, prüfe, ob der Server eigenständig sauber startet und ob der Pfad in .mcp.json korrekt ist.

Schritt 4 — Mach es echt

Ersetze word_count durch deine tatsächliche Fähigkeit — eine DB-Abfrage, einen internen API-Aufruf, eine Dateioperation. Füge Eingabevalidierung hinzu und gib Fehler als Ergebnisse zurück.

Sicherheits-Checkliste

:::warning Ein Server ist Code + Zugriff

  • Least Privilege — nur die Daten/Aktionen, die er braucht (Agenten absichern).
  • Validiere die Eingaben, die das Modell sendet.
  • Nicht vertrauenswürdige Daten, die er zurückgibt, können Prompt-Injection enthalten.
  • Überprüfe jeden Drittanbieter-Server, bevor du ihn verbindest. :::

Weiter