Sistema de orquestación de agentes MCP
Una implementación en Python de un sistema de orquestación de agentes basado en estados utilizando el Protocolo de Contexto de Modelo (MCP).
¿Qué es MCP?
El Protocolo de Contexto de Modelo (MCP) permite que las aplicaciones proporcionen contexto para los LLM de forma estandarizada, separando la necesidad de proporcionar contexto de la interacción real con el LLM. Con MCP, se pueden crear servidores que exponen:
Recursos : Fuentes de datos que proporcionan información a los LLM
Herramientas : Funciones que permiten a los LLM realizar acciones
Indicaciones : Plantillas reutilizables para interacciones LLM
Related MCP server: MCP-RAG
Instalación
Prerrequisitos
Python 3.10 o superior
MCP Python SDK 1.2.0 o superior
Configuración de su entorno
Uso de uv (recomendado)
# 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]" httpxUsando 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]" httpxClonar o descargar archivos del proyecto
Coloque los archivos del proyecto en su directorio:
orchestrator.py: el servidor MCP principal que implementa la máquina de estadosorchestrator_client.py- Cliente que demuestra el flujo de orquestaciónrequirements.txt- Dependencias del proyecto.gitignore- Archivo ignorado de Git
Estructura del proyecto
orchestrator.py: el servidor MCP principal que implementa la máquina de estadosorchestrator_client.py- Cliente que demuestra el flujo de orquestaciónrequirements.txt- Dependencias del proyecto
Ejecución del sistema de orquestación
Inicie el servidor de orquestación directamente para realizar pruebas:
python orchestrator.pyEn una terminal separada, ejecute el cliente para ver la orquestación en acción:
python orchestrator_client.pyIntegración con Claude para escritorio
1. Instalar Claude para escritorio
Asegúrate de tener instalado Claude para escritorio. Puedes descargar la última versión desde el sitio web de Anthropic .
2. Configurar Claude para escritorio
Abra el archivo de configuración de Claude for Desktop:
macOS/Linux:
# Create or edit the configuration file code ~/Library/Application\ Support/Claude/claude_desktop_config.jsonVentanas:
# Path may vary depending on your Windows version code %APPDATA%\Claude\claude_desktop_config.jsonAgregue la configuración del servidor del orquestador:
{ "mcpServers": { "agent-orchestrator": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py" ] } } }Reemplace la ruta con la ruta absoluta a su archivo orchestrator.py.
Guarde el archivo de configuración y reinicie Claude for Desktop.
3. Uso del orquestador en Claude
Una vez configurado, podrás:
Abrir Claude para escritorio
Haga clic en el icono del servidor MCP en la barra lateral
Seleccione "agente-orquestador" de la lista de servidores disponibles
Comience a interactuar con el sistema de orquestación
Claude podrá:
Transición entre diferentes estados del agente
Almacenar y recuperar información de la base de conocimientos
Mantener el contexto de la conversación a lo largo de las transiciones de estado
Acceda a indicaciones específicas del estado
Estados del agente
El sistema de orquestación implementa una máquina de estados con los siguientes estados:
IDLE : Esperando instrucciones
PLANIFICACIÓN : Crear un plan estructurado para una tarea
INVESTIGACIÓN : Recopilar información necesaria para una tarea.
EJECUTAR : Llevar a cabo acciones planificadas
REVISIÓN : Evaluación de resultados y determinación de próximos pasos
ERROR : Manejo de errores o situaciones inesperadas
Personalización del sistema
Añadiendo nuevos estados
Agregue el estado a la enumeración
AgentStateenorchestrator.pyCrear una función de aviso para el nuevo estado
Actualizar la lógica de transición en
_get_available_transitions()Agregar controladores para el nuevo estado en las funciones de acceso a recursos
Creación de herramientas personalizadas
Agregue nuevas herramientas creando funciones decoradas con @mcp.tool() :
@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"Desarrollo y pruebas
Uso de la CLI de MCP
La CLI de MCP proporciona herramientas para el desarrollo y las pruebas:
# 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.pyPruebas manuales con 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"})Recursos
Licencia
Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.
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.