MCP Agent Orchestration System
Um sistema de orquestração de agentes baseado em estado usando o Model Context Protocol (MCP).
Documentação
Sistema de Orquestração de Agentes MCP
Uma implementação em Python de um sistema de orquestração de agentes baseado em estados, utilizando o Model Context Protocol (MCP).
O que é MCP?
O Model Context Protocol (MCP) permite que aplicações forneçam contexto para LLMs de forma padronizada, separando as preocupações de fornecer contexto da interação real com o LLM. Com o MCP, você pode construir servidores que expõem:
- Recursos: Fontes de dados que fornecem informações para LLMs
- Ferramentas: Funções que permitem que LLMs executem ações
- Prompts: Modelos reutilizáveis para interações com LLMs
Instalação
Pré-requisitos
- Python 3.10 ou superior
- MCP Python SDK 1.2.0 ou superior
Configurando Seu Ambiente
Usando 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]" httpx
Usando 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]" httpx
Clone ou Baixe os Arquivos do Projeto
Coloque os arquivos do projeto no seu diretório:
orchestrator.py- O servidor MCP principal que implementa a máquina de estadosorchestrator_client.py- Cliente que demonstra o fluxo de orquestraçãorequirements.txt- Dependências do projeto.gitignore- Arquivo de ignore do Git
Estrutura do Projeto
orchestrator.py- O servidor MCP principal que implementa a máquina de estadosorchestrator_client.py- Cliente que demonstra o fluxo de orquestraçãorequirements.txt- Dependências do projeto
Executando o Sistema de Orquestração
- Inicie o servidor de orquestração diretamente para testes:
python orchestrator.py
- Em um terminal separado, execute o cliente para ver a orquestração em ação:
python orchestrator_client.py
Integrando com o Claude para Desktop
1. Instale o Claude para Desktop
Certifique-se de ter o Claude para Desktop instalado. Você pode baixar a versão mais recente no site da Anthropic.
2. Configure o Claude para Desktop
-
Abra o arquivo de configuração do Claude para Desktop:
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.json -
Adicione a configuração do servidor orquestrador:
{ "mcpServers": { "agent-orchestrator": { "command": "python", "args": [ "/ABSOLUTE/PATH/TO/YOUR/PROJECT/orchestrator.py" ] } } }Substitua o caminho pelo caminho absoluto para o seu arquivo orchestrator.py.
-
Salve o arquivo de configuração e reinicie o Claude para Desktop.
3. Usando o Orquestrador no Claude
Uma vez configurado, você pode:
- Abrir o Claude para Desktop
- Clicar no ícone do servidor MCP na barra lateral
- Selecionar "agent-orchestrator" na lista de servidores disponíveis
- Começar a interagir com o sistema de orquestração
O Claude será capaz de:
- Transicionar entre diferentes estados de agente
- Armazenar e recuperar informações da base de conhecimento
- Manter o contexto da conversa entre transições de estado
- Acessar prompts específicos de cada estado
Estados do Agente
O sistema de orquestração implementa uma máquina de estados com os seguintes estados:
- IDLE: Aguardando instruções
- PLANNING: Criando um plano estruturado para uma tarefa
- RESEARCHING: Coletando informações necessárias para uma tarefa
- EXECUTING: Executando ações planejadas
- REVIEWING: Avaliando resultados e determinando próximos passos
- ERROR: Tratando erros ou situações inesperadas
Personalizando o Sistema
Adicionando Novos Estados
- Adicione o estado ao enum
AgentStateemorchestrator.py - Crie uma função de prompt para o novo estado
- Atualize a lógica de transição em
_get_available_transitions() - Adicione manipuladores para o novo estado nas funções de acesso a recursos
Criando Ferramentas Personalizadas
Adicione novas ferramentas criando funções decoradas com @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"
Desenvolvimento e Testes
Usando a CLI do MCP
A CLI do MCP fornece ferramentas para desenvolvimento e testes:
# 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.py
Testes Manuais com 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
Licença
Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.