---
name: swl:mcp-status
description: >
  Health check de servidores MCP, descubrimiento dinamico de herramientas y
  gestion de conexiones MCP configuradas en swl-ses.
version: 1.0.0
tipo: comando
---

# /swl:mcp-status — Estado y descubrimiento MCP

Reporta el estado de todos los servidores MCP configurados en `.claude/settings.json`,
lista sus herramientas disponibles y guarda un snapshot para referencia futura.

## Subcomandos disponibles

### Status (health check)

Muestra si cada servidor responde correctamente y cuantas herramientas expone:

```bash
python scripts/mcp-orchestrator.py status
```

Salida esperada:
```
Estado de servidores MCP:
--------------------------------------------------------------------
  code-review-graph            OK    5 tools   1203ms  [stdio]

  Total: 1 servidores, 1 activos, 5 herramientas disponibles
```

Con traza registrada en `.planning/traces/`:
```bash
python scripts/mcp-orchestrator.py status --trace
```

### Discover (inventario completo)

Lista todas las herramientas de todos los servidores con sus descripciones:

```bash
python scripts/mcp-orchestrator.py discover
```

Para un servidor especifico (via pool-manager):
```bash
python scripts/mcp-pool-manager.py list-tools code-review-graph
```

### Find-tool (busqueda de herramientas)

Busca herramientas por nombre o descripcion en todos los servidores activos:

```bash
python scripts/mcp-orchestrator.py find-tool "review"
python scripts/mcp-orchestrator.py find-tool "blast radius"
```

### Summary (ultimo snapshot sin reconectar)

Muestra el ultimo estado guardado sin iniciar conexiones nuevas:

```bash
python scripts/mcp-orchestrator.py summary
```

Util en contextos donde no se quiere esperar la reconexion.

### Ping

Verifica conectividad y tiempo de respuesta de un servidor especifico:

```bash
python scripts/mcp-pool-manager.py ping
python scripts/mcp-pool-manager.py ping code-review-graph
```

### Call-tool (llamada directa a herramienta)

Llama una herramienta MCP directamente desde CLI para pruebas:

```bash
python scripts/mcp-pool-manager.py call-tool code-review-graph <herramienta> '{"arg": "valor"}'
```

## Salida JSON

Todos los subcomandos aceptan `--json` para salida estructurada:

```bash
python scripts/mcp-orchestrator.py status --json
python scripts/mcp-orchestrator.py discover --json | python -m json.tool
python scripts/mcp-pool-manager.py list-tools --json
```

## Trazabilidad

Las llamadas MCP pueden instrumentarse con `mcp-telemetry.py`:

```bash
# Ver trazas de hoy
python scripts/mcp-telemetry.py report

# Estadisticas de los ultimos 7 dias por servidor/herramienta
python scripts/mcp-telemetry.py stats --days 7

# Salida JSON para procesamiento
python scripts/mcp-telemetry.py stats --json
```

Las trazas se guardan en formato OTLP-lite en `.planning/traces/mcp-YYYY-MM-DD.jsonl`,
compatible con el sistema de trazabilidad de `telemetria-agentes.js`.

## Uso desde otro script (importacion)

`mcp-telemetry.py` expone `MCPTelemetrySession` para instrumentar sesiones MCP
desde otros scripts de swl-ses:

```python
import sys
sys.path.insert(0, 'scripts')
from mcp_telemetry import MCPTelemetrySession
from pathlib import Path

cwd = Path('.')
server_cfg = {'command': 'python', 'args': ['-m', 'mi_server']}

async def ejemplo():
    async with MCPTelemetrySession(cwd, 'mi-server', server_cfg) as sess:
        tools = await sess.list_tools()
        result = await sess.call_tool('mi_herramienta', {'arg': 'valor'})
        # La traza se registra automaticamente en .planning/traces/
```

## Archivos del modulo mcp-swl

| Archivo | Proposito |
|---------|-----------|
| `scripts/mcp-pool-manager.py` | Gestor de conexiones — CLI para list-servers, list-tools, ping, call-tool |
| `scripts/mcp-telemetry.py` | Trazabilidad OTLP-lite — registra y reporta llamadas MCP |
| `scripts/mcp-orchestrator.py` | Orquestador multi-servidor — status, discover, find-tool, summary |
| `comandos/swl/mcp-status.md` | Esta documentacion |

## Configuracion de servidores MCP

Los servidores se leen de la clave `mcpServers` en:
1. `.claude/settings.local.json` (maxima prioridad, no versionado)
2. `.claude/settings.json` (proyecto, versionado)
3. `mcp-servers.json` (alternativa independiente)

Formato de configuracion:
```json
{
  "mcpServers": {
    "mi-server": {
      "command": "npx",
      "args": ["-y", "@mcp/mi-server"],
      "env": { "MI_VAR": "valor" }
    },
    "server-http": {
      "url": "http://localhost:8931/sse"
    }
  }
}
```

## Cuando usar este comando

- Al iniciar una sesion de trabajo: verificar que los servers MCP esten activos
- Antes de `/swl:revisar-impacto`: validar que `code-review-graph` responde
- Al agregar un nuevo MCP server: descubrir sus herramientas con `discover`
- En debugging: llamar herramientas directamente con `call-tool`
- En reporting: generar snapshots para documentacion o metricas
