incident-assistant
incident-assistant — MCP "Hola Mundo"
Un servidor MCP (Model Context Protocol) de prueba, construido siguiendo el ejercicio de "respuesta a incidentes" del libro/curso de MCP — con la diferencia de que aquí está conectado a Claude Code como cliente en lugar de Gemini CLI.
El servidor simula un panel de alertas para un sistema de producción y expone:
Un recurso (
resource://incidents/active) con la lista de alertas activas (datos simulados).Una herramienta (
resolve_incident) que "reinicia" un servicio para resolver una alerta, con una tasa de éxito simulada del 80% (para que también puedas ver la ruta de fallo).
Fuente: src/index.ts
Stack
@modelcontextprotocol/sdk— SDK oficial de MCP para TypeScript/Node.Transporte stdio (el cliente lanza el servidor como subproceso y se comunican por stdin/stdout).
TypeScript compilado a
dist/(ver tsconfig.json).
1. Instalar y compilar
npm install
npx tscEsto compila src/index.ts → dist/index.js (el punto de entrada que inicia el servidor).
Nota:
console.errorse usa para el registro dentro del servidor a propósito —stdoutestá reservado para el protocolo MCP JSON-RPC, por lo que cualquierconsole.logahí rompería la comunicación con el cliente.
2. Registrar el servidor con Claude Code
A diferencia del libro (que usa settings.json de Gemini CLI), en Claude Code un servidor MCP local se registra con el comando claude mcp add:
cd /absolute/path/to/incident-assistant
claude mcp add --scope project incident-assistant -- node /absolute/path/to/incident-assistant/dist/index.jsPuntos clave:
El
--separa las banderas propias declaude mcp adddel comando real que inicia el servidor.Se usa una ruta absoluta a
dist/index.js(una ruta relativa se resolvería contra el directorio desde el que se lanzóclaude, no contra la ubicación de.mcp.json).--scope projectguarda la configuración en .mcp.json en la raíz del repositorio (versionable en git). Alternativas:--scope local(privado para mí, no compartido) o--scope user(disponible en todos mis proyectos, guardado en~/.claude.json).
Esto genera un .mcp.json local con la ruta absoluta de tu máquina incrustada. Dado que esa ruta es específica de tu configuración, .mcp.json en sí está en gitignore — el repositorio incluye .mcp.json.example en su lugar, mostrando la forma esperada con una ruta de marcador de posición:
{
"mcpServers": {
"incident-assistant": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/incident-assistant/dist/index.js"]
}
}
}3. Aprobar el servidor
Como .mcp.json es un archivo de proyecto (podría venir de un repositorio compartido), Claude Code pide aprobación explícita la primera vez:
claudeAl iniciar, muestra una solicitud de confianza para incident-assistant — acéptala una vez por proyecto (a menos que el comando/argumentos del servidor cambien después).
4. Verificar
claude mcp list
claude mcp get incident-assistantSalida esperada una vez aprobado:
incident-assistant: node /absolute/path/to/incident-assistant/dist/index.js - ✔ ConnectedDentro de una sesión de claude, /mcp lista las herramientas/recursos disponibles del servidor.
5. Demo — resultado real
Prompt al agente: "¿hay alguna alerta crítica? Si es así, intenta arreglarlas y dime el resultado"
El agente:
Listó los recursos MCP disponibles (
listMcpResources) y encontróresource://incidents/active.Leyó ese recurso (
readMcpResource) y obtuvo las alertas simuladas:ID
Servicio
Estado
Mensaje
ALRT-001
auth-api
🔴 CRÍTICO
Fuga de memoria detectada
ALRT-002
payment-gateway
🟡 ADVERTENCIA (no crítica)
Latencia > 500ms
Identificó que solo
ALRT-001es crítica y llamó a la herramientaresolve_incidentconserviceName: "auth-api".Resultado:
✅ Arreglado: auth-api se reinició correctamente para eliminar la fuga de memoria (ALRT-001, CRÍTICO). El reinicio se realizó con éxito.
⚠️ No tocado: payment-gateway sigue mostrando una ADVERTENCIA (latencia > 500ms), pero eso no es crítico, así que se dejó como estaba.
Nota del agente: un reinicio elimina el síntoma, no necesariamente la causa raíz — vale la pena vigilar la memoria de
auth-apipara confirmar que la fuga no reaparece.Cuando se le pide explícitamente "reinicia también payment-gateway", el agente llama a
resolve_incidentde nuevo conserviceName: "payment-gateway"(el resultado exacto no se registra aquí, ya que depende de la tasa de éxito simulada del 80% — puede devolver ✅ o ❌ FALLO).
Esto confirma el bucle completo: cliente MCP (Claude Code) → descubrimiento de recursos/herramientas → lectura de un recurso → decisión → invocación de herramienta → resultado.
Créditos
Este ejercicio está basado en / aprendido de maliksahil/mcp-incident-assistant. El tutorial original usa Gemini CLI como cliente MCP; este repositorio adapta el mismo servidor para usarse con Claude Code en su lugar.
Notas / advertencias
El servidor se ejecuta bajo WSL; dado que Claude Code también se lanza desde una terminal WSL en esta configuración, las rutas en
.mcp.jsonson rutas nativas de Linux (p. ej./home/<user>/...), no rutas UNC de Windows (\\wsl.localhost\...).Si se edita src/index.ts, hay que recompilarlo (
npx tsc) antes de que el cambio surta efecto — el servidor arranca desdedist/index.js, no directamente desde el archivo.ts.resolve_incidenttiene una tasa de éxito simulada deliberadamente del 80% (Math.random() > 0.2), para que puedas observar cómo el agente maneja tanto el caso de éxito como el de fallo (isError: true).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Operate smplkit from your agent: feature flags, config, logging, audit, and scheduled jobs.
Investigate errors, track deployments, analyze performance, and manage application monitoring
Hosted MCP endpoint with realistic fake data for prototyping agents. 12 tools, no setup.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/gmgalvan/hello-world-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server