Technik, die LLMs in echte Agenten verwandeln kann. Dies liegt daran, dass MCP Ihrem LLM Instruments zur Verfügung stellt, die es nutzen kann Reside-Informationen abrufen oder Aktionen durchführen in Ihrem Namen.

Wie alle anderen Instruments in der Toolbox bin ich davon überzeugt, dass man MCP gründlich verstehen muss, um es effektiv anwenden zu können. Additionally ging ich auf meine übliche Weise an die Sache heran: Ich nahm sie in die Hand, steckte sie hinein, nahm sie auseinander, setzte sie wieder zusammen und brachte sie wieder zum Laufen.

Die Ziele dieser Woche:

  • Holen Sie sich ein solides Verständnis von MCP; Was ist das?
  • Erstellen Sie einen MCP-Server und verbinden Sie es mit einem LLM
  • verstehen wann zu verwenden MCP
  • erkunden Überlegungen rund um MCP

1) Was ist MCP?

MCP (Mannequin Context Protocol) ist ein Protokoll zur Erweiterung von LLM-Shoppers. Ein LLM-Consumer ist alles, was ein LLM ausführt: Denken Sie an Claude, ChatGPT oder Ihr eigenes LangGraph-Agent-Chatbot. In diesem Artikel verwenden wir den Claude-Desktop als LLM-Consumer und bauen dafür einen MCP-Server, der seine Fähigkeiten erweitert.

Lassen Sie uns zunächst verstehen, was MCP wirklich ist.

Eine hilfreiche Analogie

Stellen Sie sich MCP genauso vor wie Browsererweiterungen. Eine Browsererweiterung erweitert Ihren Browser um Funktionen. Ein MCP-Server erweitert Ihr LLM um Funktionen. In beiden Fällen stellen Sie ein kleines Programm bereit, das der Consumer (Browser oder LLM) laden und mit dem er kommunizieren kann, um mehr zu leisten.

Dieses Programm wird als MCP-Server bezeichnet und LLM-Shoppers können damit beispielsweise Informationen abrufen oder Aktionen ausführen.

Wann ist ein Programm ein MCP-Server?

Jedes Programm kann ein MCP-Server werden, solange es das Mannequin Context Protocol implementiert. Das Protokoll definiert:

  1. welche Funktionen der Server bereitstellen muss (Fähigkeiten)
  2. wie diese Funktionen beschrieben werden müssen (Device-Metadaten)
  3. wie das LLM sie aufrufen kann (mit JSON-Anfrageformaten)
  4. wie der Server reagieren muss (mit JSON-Ergebnisformaten)

Ein MCP-Server ist jedes Programm, das den MCP-Nachrichtenregeln folgt. Beachten Sie, dass Sprache, Laufzeit oder Standort keine Rolle spielen.

Hauptfunktionen:

  • Werkzeuge deklarieren
  • Annahme einer Device-Name-Anfrage
  • Ausführen der angeforderten Funktion
  • ein Ergebnis oder einen Fehler zurückgeben

Beispiel einer Device-Name-Nachricht:

{
  "technique": "instruments/name",
  "params": {
    "title": "get_weather",
    "arguments": {"metropolis": "Groningen"}
  }
}

Das Senden dieses JSON bedeutet: „Rufen Sie die Funktion get_weather mit den Argumenten metropolis=’Groningen‘ auf.“


2) Erstellen eines MCP-Servers

Da jedes Programm ein MCP-Server sein kann, erstellen wir einen.

Stellen Sie sich vor, wir arbeiten für ein Kino und möchten es Agenten ermöglichen, Menschen beim Ticketkauf zu helfen. Auf diese Weise a Der Benutzer kann entscheiden, welchen Movie er auswählen möchte, indem er mit ChatGPT chattet, oder Claude anweisen, Tickets zu kaufen.

Natürlich wissen diese LLMs nicht, was in unserem Kino passiert, daher müssen wir die API unseres Kinos über MCP offenlegen, damit die LLMs damit interagieren können.

Der einfachste MCP-Server

Wir werden verwenden fastmcpein Python-Paket, das Python-Funktionen so umschließt, dass sie den MCP-Spezifikationen entsprechen. Wir können diesen Code dem LLM „präsentieren“, damit dieser die Funktionen kennt und sie aufrufen kann.

from fastmcp import FastMCP

mcp = FastMCP("example_server")

@mcp.instrument
def list_movies() -> str:
    """ Listing the films which are presently taking part in """
    # Simulate a GET request to our /motion pictures endpoint
    return ("Shrek", "Inception", "The Matrix", "Lord of the Rings")

if __name__ == "__main__":
    mcp.run()

Der obige Code definiert einen Server und registriert ein Device. Die Dokumentzeichenfolge und die Typhinweise helfen fastmcp dabei, das Device für den LLM-Consumer zu beschreiben (wie vom MCProtocol gefordert). Anhand dieser Beschreibung entscheidet der Agent, ob die Funktion geeignet ist, die ihm übertragene Aufgabe zu erfüllen.

Claude Desktop mit dem MCP-Server verbinden

Damit unser LLM den MCP-Server „erkennt“, müssen wir ihm mitteilen, wo sich das Programm befindet. Wir registrieren unseren neuen Server in Claude Desktop, indem wir ihn öffnen Einstellungen -> Entwickler und aktualisieren claude_desktop_config.json damit es so aussieht:

{
  "mcpServers": {
    "cinema_server": {
      "command": "/Customers/mikehuls/explore_mcp/.venv/bin/python",
      "args": (
        "/Customers/mikehuls/explore_mcp/cinema_mcp.py"
      )
    }
  }
}

Da unser MCP-Server nun registriert ist, kann Claude ihn verwenden. Es ruft list_movies() Zum Beispiel. Die Funktionen in registrierten MCP-Servern werden zu erstklassigen Werkzeugen, für deren Nutzung sich das LLM entscheiden kann.

Chatten mit unserem Agenten (Bild vom Autor)

Wie Sie sehen, hat Claude die Funktion von unserem MCP-Server ausgeführt und hat Zugriff auf den resultierenden Wert. Ganz einfach in nur wenigen Codezeilen.

Mit ein paar weiteren Zeilen binden wir noch mehr API-Endpunkte in unseren MCP-Server ein und ermöglichen dem LLM, Funktionen aufzurufen, die Screening-Zeiten anzeigen, und ermöglichen dem LLM sogar, Aktionen in unserem Namen durchzuführen, indem er eine Reservierung vornimmt:

Erlauben Sie unserem Agenten, einen Sitzplatz zu reservieren (Bild des Autors)

Beachten Sie, dass die Beispiele zwar bewusst vereinfacht sind, das Prinzip jedoch gleich bleibt: Wir erlauben unserem LLM, über die Kino-API Informationen abzurufen und in unserem Namen zu handeln


3) Wann sollte MCP verwendet werden?

MCP ist splendid, wenn:

  • Sie möchten, dass ein LLM darauf zugreift Reside-Daten
  • Sie möchten, dass ein LLM Aktionen durchführen (Aufgaben erstellen, Dateien abrufen, Datensätze schreiben)
  • Sie wollen interne Systeme offenlegen auf kontrollierte Weise
  • Sie wollen Teilen Sie Ihre Werkzeuge mit anderen als Paket, das sie in ihr LLM einbinden können

Benutzer profitieren, da MCP ihr LLM zu einem leistungsfähigeren Assistenten macht.

Anbieter profitieren, da sie mit MCP ihre Systeme sicher und konsistent bereitstellen können.

Ein gängiges Muster ist eine „Device-Suite“, die Backend-APIs verfügbar macht. Anstatt durch UI-Bildschirme zu klicken, kann ein Benutzer einen Assistenten bitten, den Workflow für ihn zu übernehmen.


4) Überlegungen

Seit seiner Veröffentlichung im November 2024 hat sich MCP weithin durchgesetzt und wurde schnell zur Standardmethode für die Verbindung von KI-Agenten mit externen Systemen. Aber es geht nicht ohne Kompromisse; MCP bringt strukturellen Mehraufwand und echte Sicherheitsrisiken mit sich. Meiner Meinung nach sollten sich Ingenieure darüber im Klaren sein, bevor sie es in der Produktion einsetzen.

a) Sicherheit

Wenn Sie einen unbekannten MCP-Server herunterladen und ihn mit Ihrem LLM verbinden, gewähren Sie diesem Server effektiv Datei- und Netzwerkzugriff, Zugriff auf lokale Anmeldeinformationen und Berechtigungen zur Befehlsausführung. Ein bösartiges Device könnte:

  • Dateien lesen oder löschen
  • personal Daten herausfiltern (.ssh Schlüssel z.B.)
  • Scannen Sie Ihr Netzwerk
  • Produktionssysteme modifizieren
  • Token und Schlüssel stehlen

MCP ist nur so sicher wie der Server, dem Sie vertrauen. Ohne Leitplanken geben Sie einem LLM im Grunde die volle Kontrolle über Ihren Laptop. Dadurch kommt es sehr leicht zu einer Überbelichtung, da Sie problemlos Werkzeuge hinzufügen können.

Auch hier gilt die Browser-Erweiterungs-Analogie: Die meisten sind sicher, aber böswillige können echten Schaden anrichten. Verwenden Sie wie bei Browsererweiterungen vertrauenswürdige Quellen wie verifizierte Repositorys, überprüfen Sie nach Möglichkeit den Quellcode und führen Sie die Ausführung in einer Sandbox aus, wenn Sie sich nicht sicher sind. Setzen Sie strenge Richtlinien für Berechtigungen und Leasingprivilegien durch.

b) Überhöhtes Kontextfenster, Token-Ineffizienz und Latenz

MCP-Server beschreiben jedes Device im Element: Namen, Argumentschemata, Beschreibungen und Ergebnisformate. Der LLM-Consumer lädt alle diese Metadaten im Voraus in den Modellkontext, sodass er weiß, welche Instruments vorhanden sind und wie sie verwendet werden.

Das bedeutet, dass die Eingabeaufforderung erheblich zunehmen kann, wenn Ihr Agent viele Instruments oder komplexe Schemata verwendet. Dies verbraucht nicht nur viel Token, sondern belegt auch den verbleibenden Platz für den Gesprächsverlauf und aufgabenspezifische Anweisungen. Jedes von Ihnen bereitgestellte Device frisst dauerhaft einen Teil des verfügbaren Kontexts.

Darüber hinaus führt jeder Device-Aufruf zu Argumentationsaufwand, Schema-Analyse, Kontextneuzuweisung und einem vollständigen Roundtrip von Modell -> MCP-Consumer -> MCP-Server -> zurück zum Modell. Das ist weit zu schwer für latenzempfindliche Pipelines.

c) Komplexität verlagert sich in das Modell

Der LLM muss alle schwierigen Entscheidungen treffen:

  • ob überhaupt ein Werkzeug aufgerufen werden soll
  • welches Device aufgerufen werden soll
  • welche Argumente verwendet werden sollen

All dies geschieht innerhalb der Argumentation des Modells und nicht durch explizite Orchestrierungslogik. Auch wenn sich dies anfangs magisch praktisch und effizient anfühlt, kann es im größeren Maßstab unvorhersehbar, schwieriger zu debuggen und schwieriger deterministisch zu garantieren werden.


Abschluss

MCP ist einfach und leistungsstark zugleich. Es handelt sich um eine standardisierte Methode, mit der LLMs echte Programme aufrufen können. Sobald ein Programm MCP implementiert, kann es jeder kompatible LLM-Consumer als Erweiterung verwenden. Dies öffnet die Tür zu Assistenten, die APIs abfragen, Aufgaben ausführen und strukturiert mit realen Systemen interagieren können.

Aber mit großer Macht geht auch große Verantwortung einher. Behandeln Sie MCP-Server mit der gleichen Vorsicht wie Software program, die vollen Zugriff auf Ihren Laptop hat. Sein Design hat auch Auswirkungen auf die Token-Nutzung, die Latenz und die Belastung des LLM. Diese Kompromisse können den Kernvorteil von MCP untergraben, für den MCP bekannt ist: die Umwandlung von Agenten in effiziente, reale Werkzeuge.

Bei gezielter und sicherer Verwendung bietet MCP eine saubere Grundlage für die Entwicklung von Agentenassistenten, die dies tatsächlich können Tun Dinge, anstatt nur darüber zu reden.


Ich hoffe, dieser Artikel conflict so klar, wie ich es beabsichtigt hatte. Sollte dies jedoch nicht der Fall sein, teilen Sie mir bitte mit, was ich zur weiteren Klärung tun kann. Schauen Sie sich in der Zwischenzeit meine an andere Artikel zu allen möglichen Programmierthemen.

Viel Spaß beim Codieren!

– Mike

Ps: Gefällt mir, was ich mache? Folgen Sie mir!

Von admin

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert