El Protocolo de Contexto del Modelo (MCP) es un protocolo estandarizado para conectar aplicaciones de IA a fuentes externas de herramientas y datos. Con MCP, tu agente puede:
- 🔗 Conectarse a múltiples servidores MCP simultáneamente
- 🛠️ Usar cualquier herramienta expuesta por esos servidores
- 📊 Acceder a bases de datos, APIs, sistemas de archivos, navegadores y más
- 🔄 Fusionar herramientas remotas con locales de forma transparente
MCP_ENABLED=true
RB_ALLOW_MCP=trueMCP_ENABLED=true hace visibles los servidores configurados para el engine.
RB_ALLOW_MCP=true es el opt-in explícito que permite a rb-ask conectar
servidores MCP externos automáticamente. Déjalo sin configurar salvo que confíes
en esos servidores.
{
"servers": [
{
"name": "github",
"transport": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"enabled": true,
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "tu-token-de-github"
}
}
]
}rb-ask "What MCP tools are available?" --workspace .Cuando ambas variables están habilitadas, el pipeline de preguntas:
- 🔌 Se conectará a todos los servidores MCP habilitados
- 🔍 Descubrirá herramientas disponibles
- 📦 Las fusionará con herramientas locales
- ✅ Listo para usar
graph TD
Agent[🤖 RepoBrain Agent] --> LocalTools[🛠️ Local Tools]
Agent --> MCPManager[🔌 MCP Client Manager]
MCPManager --> Server1[📡 GitHub MCP]
MCPManager --> Server2[📡 Database MCP]
MCPManager --> Server3[📡 Custom MCP]
LocalTools --> |Fusionadas| AllTools[📦 All Available Tools]
MCPManager --> |Fusionadas| AllTools
| Transporte | Descripción | Caso de Uso |
|---|---|---|
stdio |
Entrada/Salida Estándar | Servidores locales, herramientas CLI |
http |
HTTP Transmisible | Servidores remotos, servicios en la nube |
sse |
Server-Sent Events | Servidores HTTP heredados |
Una vez que MCP está habilitado, estas herramientas auxiliares están automáticamente disponibles:
list_mcp_servers()— Listar todos los servidores MCP conectadoslist_mcp_tools()— Enumerar todas las herramientas MCP disponiblesget_mcp_tool_help(tool_name)— Mostrar ayuda/documentación para una herramientamcp_health_check()— Verificar el estado de salud de todos los servidores
mcp_servers.json incluye plantillas para estos servidores populares:
| Servidor | Descripción | Estado |
|---|---|---|
| 🗂️ Filesystem | Operaciones del sistema de archivos | Listo |
| 🐙 GitHub | Acceso a API de GitHub | Listo |
| 🗃️ PostgreSQL | Operaciones de base de datos | Listo |
| 🔍 Brave Search | Búsqueda web | Listo |
| 💾 Memory | Almacenamiento persistente | Listo |
| 🌐 Puppeteer | Automatización de navegador | Listo |
| 💬 Slack | Mensajería de Slack | Listo |
Habilita lo que necesites y agrega tus claves de API.
Crea tu propio servidor MCP usando el SDK de MCP Python con FastMCP:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Mi Servidor Personalizado")
@mcp.tool()
def mi_herramienta_personalizada(texto: str) -> str:
"""Analiza texto personalizado."""
return f"Analizado: {texto}"
if __name__ == "__main__":
mcp.run()Regístralo en mcp_servers.json:
{
"name": "mi-servidor",
"transport": "stdio",
"command": "python",
"args": ["ruta/a/mi_servidor.py"],
"enabled": true
}- Usa variables de entorno para credenciales sensibles.
- La implementación actual pasa los valores de
envtal como están enmcp_servers.json. No hay interpolación automática de placeholders tipo${VAR}. - Los servidores MCP por stdio heredan el entorno del proceso padre y los valores
envconfigurados. Trata cada servidor habilitado como código con permisos sobre el workspace local.
from repobrain_engine.mcp_client import MCPClientManagerSync
manager = MCPClientManagerSync(config_path="mcp_servers.json")
manager.initialize()
print(manager.get_status())
print(list(manager.get_all_tools_as_callables().keys()))
manager.shutdown()Siguiente: Protocolo de Swarm | Índice Completo