Wird geladen
Wird geladen

MCP

Wir haben Tools, Skills und Konnektoren. Warum also gibt es MCP? Auf den ersten Blick sieht es aus wie eine zweite API, die auf der API aufgesetzt ist. Eine berechtigte Frage — und die Antwort läuft darauf hinaus, wer den Integrationscode pflegt.

Das Wartungsproblem

Angenommen, dein Agent muss Aufgaben aus Asana abrufen, einen Google-Kalender prüfen und Slack durchsuchen — alles in einem Zug. Mit benutzerdefinierten Tools musst du drei Integrationen schreiben. Dieser Teil ist machbar. Der schmerzhafte Teil kommt danach: Du musst diese Integrationen auch pflegen, jedes Mal, wenn einer dieser Dienste seine API ändert — was oft vorkommt. Herzlichen Glückwunsch, jetzt pflegst du einen Haufen Wrapper für Drittanbieter-APIs.

MCP verschiebt diese Wartung auf den Dienstanbieter. Asana veröffentlicht einen MCP-Server. Slack veröffentlicht einen. Google veröffentlicht einen. Jeder Server stellt seine eigenen Tools bereit — mit Beschreibungen, Schemas und Authentifizierung — über ein Standardprotokoll. Wenn sich ihre API ändert, aktualisieren sie ihren Server. Du änderst nichts.

Tools vs. Skills vs. MCP

Diese drei Funktionen erfüllen unterschiedliche Aufgaben:

  • Tools verbinden Claude mit deinen internen Systemen — deiner Datenbank, deinem Projekttracker, deinen proprietären APIs. Du besitzt den Code, also besitzt du auch die Wartung.
  • Skills bringen Claude ein Verfahren bei — deine Berichtsvorlage, deine Prüfliste. Skills sind Anweisungen, nicht notwendigerweise Integrationen.
  • MCP verbindet Claude mit Diensten von Drittanbietern, wobei der Dienstanbieter die Integration pflegt. Du schreibst nicht den Asana-Wrapper — Asana hat es getan.

Kurz gesagt: Tools sind für deine eigenen Dinge, Skills sind für deine Prozesse, und MCP ist für die Dinge aller anderen.

Vergleichskarten für Tools, Skills und MCP, wobei die MCP-Karte hervorgehoben ist: verbindet Claude mit Diensten von Drittanbietern, gepflegt vom Dienstanbieter

Verbindung zu einem MCP-Server

Der sauberste Weg, ein Gefühl für MCP zu bekommen, ist, Claude auf einen beliebigen MCP-Server zu richten und es entdecken zu lassen, was dort vorhanden ist. Für dieses Beispiel verwenden wir den Linear-MCP-Server, wobei die Verbindungsdetails und das Auth-Token in einer .env-Datei gespeichert sind.

Zwei Teile wirken in der Anfrage zusammen. Der Schlüssel mcp_servers deklariert die Verbindung — einen Typ, eine URL, einen Namen, mit dem darauf verwiesen wird, und optional ein Auth-Token. Dann konfiguriert ein Tool mit dem Typ mcp_toolset, welche Tools Claude von diesem Server verwenden kann. Der Standardwert ist alle, aber wenn du das eingrenzen möchtest, ist das der richtige Ort dafür.

python
import os
import anthropic

client = anthropic.Anthropic()

response = client.beta.messages.create(
    model="claude-opus-5",
    max_tokens=1024,
    messages=[
        {"role": "user", "content": "What tools do you have available?"}
    ],
    mcp_servers=[
        {
            "type": "url",
            "url": "https://mcp.linear.app/mcp",
            "name": "linear",
            "authorization_token": os.environ["LINEAR_MCP_TOKEN"],
        }
    ],
    tools=[
        {
            "type": "mcp_toolset",
            "mcp_server_name": "linear",
        }
    ],
    betas=["mcp-client-2025-11-20"],
)

print(response)

Beachte, dass wir kein einziges Tool-Schema geschrieben haben. Claude introspiziert den Server, erhält die Liste der Tools und ihrer Schemas zurück und wählt das passende für den Prompt aus. Zum Zeitpunkt dieser Lektion befindet sich der MCP-Konnektor in der Beta-Phase — beachte den Beta-Header in der Anfrage.

Führe es aus, und wenn deine MCP-URL auf den MCP-Endpunkt von Linear zeigt, listet Claude die Tools von Linear auf und ruft dann eines auf. Dasselbe funktioniert für praktisch jeden konformen Server. Wir haben kein einziges Tool definiert. Wir haben keinen Linear-Client geschrieben. Linear pflegt das.

Terminalausgabe, die die von Claude entdeckten Tools des Linear-MCP-Servers auflistet, gefolgt von Claude, das feststellt, dass es sich um Linear-Projektmanagement-Tools handelt und auswählt, welches aufgerufen werden soll

Filtern, welche Tools Claude verwenden kann

MCP-Server stellen oft sehr viele Tools bereit — und du möchtest nicht immer, dass Claude alle davon verwendet. Vielleicht möchtest du nicht, dass es Schreibberechtigungen hat, oder du möchtest einfach nicht, dass all diese Tool-Definitionen Platz im Kontext einnehmen.

Die Lösung: Deaktiviere standardmäßig alles und aktiviere dann nur die spezifischen Tools, die du möchtest. Hier ist dieses Muster mit einem Slack-MCP-Server:

python
tools=[
    {
        "type": "mcp_toolset",
        "mcp_server_name": "slack",
        "default_config": {
            "enabled": False,
        },
        "configs": {
            "search_messages": {"enabled": True},
            "list_channels": {"enabled": True},
        },
    }
]

Jetzt kann Claude Slack durchsuchen und Kanäle auflisten, aber es kann nicht posten oder löschen. Das ist nützlich, wenn du einem Dienst für Lesevorgänge vertraust, aber nicht möchtest, dass Claude versehentlich in deinem Namen schreibt.

Zusammenfassung

  • MCP existiert, damit du keine Integrationen pflegen musst, die jemand anderes bereits gebaut hat. Der Dienstanbieter veröffentlicht einen MCP-Server und hält ihn aktuell — du änderst nichts, wenn sich deren API ändert.
  • Wähle die richtige Funktion für die Aufgabe: Tools für deine Daten, Skills für deinen Prozess, MCP für Drittanbieterdienste.
  • Deklariere die Verbindung in mcp_servers (Typ, URL, Name, optionales Auth-Token) und gewähre Zugriff mit einem mcp_toolset-Eintrag in tools. Claude introspiziert den Server und entdeckt die Tools selbst — keine Schemas zu schreiben.
  • Schränke den Zugriff ein, indem du default_config: {"enabled": False} setzt und bestimmte Tools in configs aktivierst — praktisch, um einen Server schreibgeschützt zu halten.
  • Der MCP-Konnektor befindet sich derzeit in der Beta-Phase, füge daher den Beta-Header zu deinen Anfragen hinzu.
  • Besuche modelcontextprotocol.io für die Liste der verfügbaren Server und um mehr über das Protokoll zu erfahren.