McpOrchestrator
Un servidor MCP... para tus otros servidores MCP.
Documentación

McpOrchestrator — un orquestador MCP nativo de .NET
Cada servidor MCP que conectas cuesta contexto antes de que el agente haga nada: sus manifiestos de herramientas permanecen en el prompt en cada turno. McpOrchestrator coloca un servidor entre tu agente y todos los demás, y carga los manifiestos de las herramientas downstream bajo demanda, de modo que el contexto siempre activo del agente se mantiene plano sin importar cuántos servidores agregues. El agente ve tres meta-herramientas — list_capabilities → discover_tools → route — y el orquestador es un relé puro: reenvía exactamente lo que el agente envía, sin interpretarlo nunca. También puede servir Agent Skills con la misma disciplina de bajo demanda.
Véalo en 70 segundos
https://github.com/user-attachments/assets/741c1afa-4bef-4870-9b84-e2c245b8117e
Impacto medido
Frente a una configuración real de MCP en el lugar de trabajo, medida con el /usage de Copilot CLI:
| Tokens en contexto | |
|---|---|
| MCP conectado directamente (manifiestos cargados de antemano) | 17,900 |
| El mismo MCP detrás de McpOrchestrator | 1,400 |
| Reducción | ~13x |
El ahorro escala con el número de servidores. Mide tu propia configuración primero: un comando, nada instalado, ni un solo archivo modificado (requiere el SDK de .NET):
cd ~/my-project # a folder with a .mcp.json / .vscode/mcp.json / Cursor config
dotnet tool execute McpOrchestrator profile
Inicio rápido
Desde una configuración MCP existente, cd a la carpeta que contiene la configuración de tu host (.mcp.json, .vscode/mcp.json o una configuración de Cursor) y ejecuta:
dotnet tool execute McpOrchestrator --yes init # dnx McpOrchestrator --yes init works too
Levanta tus servidores stdio en un orchestrator.config.json generado, respalda la configuración del host y la reescribe para lanzar solo el orquestador. El catálogo generado se ve así: una entrada por cada servidor downstream:
{
"capabilities": [
{
"name": "files",
"summary": "Read and search files under the project root.", // auto-generated
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "C:/projects"]
}
// …one entry per server init found
]
}
La línea summary es sobre la que el agente enruta: refina cualquier línea que se lea mal. Reinicia tu host MCP y listo: el agente descubre todo por sí mismo a través de list_capabilities → discover_tools → route, y cada edición posterior de este archivo se recarga en caliente sin reiniciar.
Agregar una skill
Una skill es una carpeta con un SKILL.md: instrucciones que el agente descubre y sigue por sí mismo cuando una tarea coincide. Crea una:
my-skills/
└── release-notes/
└── SKILL.md
---
name: release-notes
description: Writes user-facing release notes from a git commit range. Use when asked for release notes or a changelog entry.
---
1. Collect the commits since the last release tag.
2. Group by user impact; drop internal-only changes.
3. One sentence per change, present tense.
Apunta el orquestador a la carpeta en orchestrator.config.json:
"skills": {
"sources": [{ "id": "local", "type": "directory", "path": "C:/my-skills" }]
}
Guarda: se recarga en caliente. El agente ahora ve el nombre de la skill + una descripción de una línea a través de list_skills y carga las instrucciones completas solo cuando una tarea lo requiere. Las skills también pueden provenir de un repositorio git compartido o de un índice HTTP, con listas de permitidos/denegados y fijación de integridad: consulta docs/skills.md.
Nota: estas skills son solo para el agente: el modelo las descubre y las sigue a través de herramientas. No se convierten en skills nativas del host (sin listado de
/skillsni comando de barra en Claude Code, sin entrada en el selector de skills del IDE).
Documentación
Todo lo demás vive en McpOrchestrator/README.md y docs/:
- Cómo funciona y las tres herramientas — arquitectura y escalado de tokens
- Perfilado de la economía de tokens — el comando
profileen profundidad, modo de rastreo, compuertas de CI - Referencia de CLI — cada comando y bandera: el servidor,
inityprofile, además de todas las variables de entorno - Configuración manual — los dos archivos de configuración que genera
init, escritos a mano - Referencia de configuración — cada campo, marcadores de posición, capacidades proactivas, recarga en caliente, configuración central (de equipo)
- Agent Skills — fuentes (directorio/git/HTTP), gobernanza, modos de entrega, cómo funciona
- Empaquetado y Native AOT — instala como herramienta .NET o como binario autocontenido desde Releases
- Cómo se compara — frente a mcp-aggregator y pasarelas, y cuándo no usar esto
- Solución de problemas