MCP-Agent-Orchestrierungssystem
Eine Python-Implementierung eines zustandsbasierten Agenten-Orchestrierungssystems unter Verwendung des Model Context Protocol (MCP).
Was ist MCP?
Das Model Context Protocol (MCP) ermöglicht Anwendungen die standardisierte Bereitstellung von Kontext für LLMs und trennt so die eigentliche LLM-Interaktion. Mit MCP können Sie Server erstellen, die Folgendes bereitstellen:
Ressourcen : Datenquellen, die LLMs Informationen liefern
Tools : Funktionen, die es LLMs ermöglichen, Aktionen auszuführen
Eingabeaufforderungen : Wiederverwendbare Vorlagen für LLM-Interaktionen
Related MCP server: MCP-RAG
Installation
Voraussetzungen
Python 3.10 oder höher
MCP Python SDK 1.2.0 oder höher
Einrichten Ihrer Umgebung
Verwendung von UV (empfohlen)
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create a new directory for our project
uv init mcp-agents-orchestra
cd mcp-agents-orchestra
# Create virtual environment and activate it
uv venv
source .venv/bin/activate # On Unix/macOS
.venv\Scripts\activate # On Windows
# Install dependencies
uv add "mcp[cli]" httpxVerwenden von pip
# Create a new directory for our project
mkdir mcp-agents-orchestra
cd mcp-agents-orchestra
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Unix/macOS
venv\Scripts\activate # On Windows
# Install dependencies
pip install "mcp[cli]" httpxProjektdateien klonen oder herunterladen
Platzieren Sie die Projektdateien in Ihrem Verzeichnis:
orchestrator.py– Der Haupt-MCP-Server, der die Zustandsmaschine implementiertorchestrator_client.py– Client, der den Orchestrierungsfluss demonstriertrequirements.txt– Abhängigkeiten für das Projekt.gitignore– Git-Ignorierdatei
Projektstruktur
orchestrator.py– Der Haupt-MCP-Server, der die Zustandsmaschine implementiertorchestrator_client.py– Client, der den Orchestrierungsfluss demonstriertrequirements.txt– Abhängigkeiten für das Projekt
Ausführen des Orchestrierungssystems
Starten Sie den Orchestrierungsserver zum Testen direkt:
python orchestrator.pyFühren Sie den Client in einem separaten Terminal aus, um die Orchestrierung in Aktion zu sehen:
python orchestrator_client.pyIntegration mit Claude für Desktop
1. Installieren Sie Claude für Desktop
Stellen Sie sicher, dass Sie Claude für Desktop installiert haben. Sie können die neueste Version von der Anthropic-Website herunterladen.
2. Konfigurieren Sie Claude für den Desktop
Öffnen Sie Ihre Claude for Desktop-Konfigurationsdatei:
macOS/Linux:
# Create or edit the configuration file code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows:
# Path may vary depending on your Windows version code %APPDATA%\Claude\claude_desktop_config.jsonFügen Sie die Orchestrator-Serverkonfiguration hinzu:
{ "mcpServers": { "agent-orchestrator": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py" ] } } }Ersetzen Sie den Pfad durch den absoluten Pfad zu Ihrer Datei orchestrator.py.
Speichern Sie die Konfigurationsdatei und starten Sie Claude for Desktop neu.
3. Verwenden des Orchestrators in Claude
Nach der Konfiguration können Sie:
Öffnen Sie Claude für Desktop
Klicken Sie in der Seitenleiste auf das MCP-Serversymbol
Wählen Sie „Agent-Orchestrator“ aus der Liste der verfügbaren Server
Beginnen Sie mit der Interaktion mit dem Orchestrierungssystem
Claude wird in der Lage sein:
Übergang zwischen verschiedenen Agentenzuständen
Speichern und Abrufen von Informationen aus der Wissensdatenbank
Behalten Sie den Konversationskontext über Statusübergänge hinweg bei
Zugriff auf statusspezifische Eingabeaufforderungen
Agentenzustände
Das Orchestrierungssystem implementiert eine Zustandsmaschine mit den folgenden Zuständen:
IDLE : Wartet auf Anweisungen
PLANUNG : Erstellen eines strukturierten Plans für eine Aufgabe
RECHERCHIEREN : Sammeln der für eine Aufgabe benötigten Informationen
AUSFÜHREN : Durchführen geplanter Aktionen
ÜBERPRÜFEN : Ergebnisse auswerten und nächste Schritte festlegen
FEHLER : Handhabung von Fehlern oder unerwarteten Situationen
Anpassen des Systems
Neue Staaten hinzufügen
Fügen Sie den Status zur
AgentState-Aufzählung inorchestrator.pyhinzuErstellen Sie eine Eingabeaufforderungsfunktion für den neuen Status
Aktualisieren Sie die Übergangslogik in
_get_available_transitions()Hinzufügen von Handlern für den neuen Status in Ressourcenzugriffsfunktionen
Erstellen benutzerdefinierter Tools
Fügen Sie neue Tools hinzu, indem Sie mit @mcp.tool() dekorierte Funktionen erstellen:
@mcp.tool()
def my_custom_tool(arg1: str, arg2: int, ctx: Context) -> str:
"""Description of what this tool does
Args:
arg1: Description of arg1
arg2: Description of arg2
"""
# Implementation here
return "Result"Entwicklung und Tests
Verwenden der MCP-CLI
Die MCP CLI bietet Tools für Entwicklung und Tests:
# Install MCP CLI if you haven't already
pip install "mcp[cli]"
# Test your server with the MCP Inspector
mcp dev orchestrator.py
# Install in Claude Desktop
mcp install orchestrator.pyManuelles Testen mit Python
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
async with stdio_client(StdioServerParameters(command="python", args=["orchestrator.py"])) as (read, write):
async with ClientSession(read, write) as session:
await session.initialize()
# Test state transitions
await session.call_tool("transition_state", arguments={"new_state": "PLANNING"})Ressourcen
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert – Einzelheiten finden Sie in der Datei LICENSE.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.