Orchestration MCP
Orchestration MCP
Servidor MCP en TypeScript para lanzar y rastrear ejecuciones de agentes de codificación externos.
La superficie de MCP se mantiene estable mientras que el backend de ejecución interno puede dirigirse a:
codexlocalclaude_codelocalremote_a2aremoto
Esto permite que un agente de nivel superior llame a un conjunto de herramientas MCP mientras la capa de orquestación decide si los subagentes son procesos SDK locales o agentes compatibles con A2A remotos.
Instalación y compilación
cd orchestration-mcp
npm install
npm run buildEjecutar el servidor MCP
cd orchestration-mcp
npm startEsto inicia el servidor MCP desde dist/index.js.
Ejemplo de configuración de Codex MCP
Si desea que Codex cargue este servidor MCP, añada una entrada como esta a ~/.codex/config.toml:
[mcp_servers.orchestration-mcp]
command = "node"
args = ["/abs/path/to/orchestration-mcp/dist/index.js"]
enabled = trueEjemplo usando la ruta de este repositorio:
[mcp_servers.orchestration-mcp]
command = "node"
args = ["/Users/fonsh/PycharmProjects/Treer/nanobot/orchestration-mcp/dist/index.js"]
enabled = trueDespués de actualizar la configuración, reinicie Codex para que recargue los servidores MCP.
Lo que expone el MCP
El servidor registra estas herramientas:
spawn_runget_runpoll_eventscancel_runcontinue_runlist_runsget_event_artifact
Flujo típico de MCP
Llame a
spawn_runpara crear una ejecución de subagente.Llame a
poll_eventshasta que vea un evento terminal o un estado de espera.Si la ejecución entra en
input_requiredoauth_required, llame acontinue_run.Llame a
get_runpara obtener el resumen de la ejecución más reciente.Si un evento contiene
artifact_refs, llame aget_event_artifactpara obtener la carga útil completa.
Notas sobre spawn_run
backend:"codex","claude_code"o"remote_a2a"role: etiqueta de rol de orquestación comoplanner,workeroreviewerprompt: instrucción en texto plano para ejecuciones simplesinput_message: mensaje estructurado opcional para entradas de estilo multipart/A2Acwd: directorio de trabajo absolutosession_mode:neworesumesession_id: requerido al reanudar una sesión anteriorprofile: ruta opcional a un archivo de persona/descripción de puesto. Cuando se proporciona, la orquestación carga el archivo y lo inyecta en el contexto del agente. Los backends con soporte nativo de prompt del sistema lo usan allí; otros backends lo anteponen al contexto de ejecución.
A menos que se le indique explícitamente que use un perfil, deje profile vacío.
output_schema: JSON Schema opcional para una salida final estructuradametadata: metadatos de orquestación opcionales almacenados para correlación y auditoríabackend_config: ajustes opcionales específicos del backend. Pararemote_a2a, establezcaagent_urly cualquier encabezado/token de autenticación aquí.
Para todos los backends, cwd es el directorio de trabajo del lado de la orquestación utilizado para el almacenamiento de ejecuciones/sesiones.
Para remote_a2a, spawn_run.cwd también se reenvía al subagente remoto y se convierte en el directorio de ejecución de ese contexto de tarea A2A.
Se requiere al menos uno de prompt o input_message.
Ejemplo simple:
{
"backend": "codex",
"role": "worker",
"prompt": "Inspect the repository and summarize the architecture.",
"cwd": "/abs/path/to/project",
"session_mode": "new"
}Ejemplo de A2A remoto:
{
"backend": "remote_a2a",
"role": "worker",
"prompt": "Inspect the repository and summarize the architecture.",
"cwd": "/abs/path/to/project",
"session_mode": "new",
"backend_config": {
"agent_url": "http://127.0.0.1:53552"
}
}Recursos del flujo de trabajo del revisor
Este repositorio incluye una configuración de revisor lista para usar para flujos de trabajo de codificación multi-agente:
perfil:
./profile/reviewer-remediator.md
Uso recomendado de spawn_run para una ejecución de revisor:
{
"backend": "codex",
"role": "reviewer",
"cwd": "/abs/path/to/project",
"session_mode": "new",
"profile": "/abs/path/to/orchestration-mcp/profile/reviewer-remediator.md",
"prompt": "Review only the latest diff in the current working directory, apply low-risk fixes when clearly correct, validate them, and write a remediation report."
}Notas sobre continue_run
Use continue_run cuando una ejecución entre en input_required o auth_required y el backend admita la continuación interactiva.
Entradas:
run_idinput_message
Notas sobre get_event_artifact
Use get_event_artifact cuando un evento saneado devuelto por poll_events contenga event.data.artifact_refs y necesite la carga útil original completa.
Entradas:
run_idseqfield_path: puntero JSON relativo aevent.data, por ejemplo/stdout,/raw_tool_use_resulto/input/contentoffset: desplazamiento de bytes opcional, por defecto0limit: límite de bytes opcional, por defecto65536
Flujo típico:
Llame a
poll_events.Inspeccione
event.data.artifact_refsen cualquier evento saneado.Llame a
get_event_artifactcon el mismorun_id, laseqdel evento y uno de los valores defield_pathexpuestos.
Valores predeterminados del backend
codex: utiliza los valores predeterminados actuales de@openai/codex-sdkmás los ajustes de ejecución no interactiva ya integrados en el adaptadorclaude_code: utiliza@anthropic-ai/claude-agent-sdkconpermissionMode: "bypassPermissions"para que la llamada MCP no sea bloqueante, y reutiliza los IDs de sesión de backend persistidos pararesumeremote_a2a: se conecta a un agente remoto compatible con A2A usando@a2a-js/sdk, transmite actualizaciones de tareas a eventos de orquestación normalizados y admitecontinue_runparainput_required
Para claude_code, asegúrese de que el entorno local ya tenga una configuración de autenticación de Claude Code funcional antes de realizar pruebas.
Probar agentes A2A
El repositorio incluye módulos auxiliares para agentes de prueba envueltos en A2A locales:
dist/test-agents/codex-a2a-agent.jsdist/test-agents/claude-a2a-agent.jsdist/test-agents/start-a2a-agent.js
Estos exportan ayudantes de inicio que envuelven los SDK locales de Codex y Claude detrás de un servidor A2A para que el MCP de orquestación pueda probar su backend interno remote_a2a contra subagentes realistas.
Para iniciar un lanzador de envoltorio interactivo:
npm run start:a2a-agentEl script preguntará si desea envolver codex o claude_code.
Después del inicio, imprime la agent_url y una carga útil de spawn_run lista para usar para la capa MCP. El envoltorio ya no bloquea un directorio de trabajo al inicio. Cada llamada a remote_a2a utiliza el cwd proporcionado a spawn_run, y el envoltorio mantiene ese cwd fijo durante la vida útil del mismo contextId de A2A.
Almacenamiento
Los datos de ejecución se almacenan en:
<cwd>/.nanobot-orchestrator/
runs/
<run_id>/
run.json
events.jsonl
result.json
artifacts/
000008-command_finished/
manifest.json
stdout.0001.txt
stdout.0002.txt
sessions/
<session_id>.jsonNotas:
events.jsonlalmacena eventos saneados destinados al consumo depoll_events.Las cargas útiles sin procesar de gran tamaño se mueven a archivos de artefactos por evento y se hace referencia a ellas desde
event.data.artifact_refs.run.jsonyresult.jsonmantienen la instantánea de ejecución actual y el comportamiento del resultado final.El nombre del directorio de almacenamiento es actualmente
.nanobot-orchestrator/para compatibilidad con versiones anteriores con la implementación existente.
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/dufangshi/orchestration-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server