Resumen
Keeps tabs on el MCP servidores your agents depend on. Pings cada registered MCP endpoint cada 2 minutos, ejecuta un cheap list_tools probe, measures latencia, y alertas cuando disponibilidad drops below umbral. Critico cuando your agent stack spans 5-10 de terceros MCP servidores.
Desencadenador
Cron programar (cada 2 minutos)
Programación
Every 2 minutos
Pasos del flujo de trabajo
Cargar MCP servidor registry
Leer lista of tracked MCP endpoints de config (HTTP URLs y stdio commands).
Probe list_tools
Enviar JSON-RPC list_tools solicitud to cada MCP servidor con 5-segundo timeout.
Measure latencia
Record P50 y P99 latencia per servidor sobre rolling 1-hora window.
Detectar failures
Any timeout, non-200, o RPC error counts as un failure for ese tick.
SLO budget seguimiento
Emit to Prometheus: mcp_availability{servidor=X} y mcp_latency_ms{servidor=X}.
Alert on SLO burn
Pagina cuando 5 consecutive probes fail o disponibilidad <99% sobre 1 hora.
Implementacion en Python
import os, time, requests
SERVERS = [
{"name": "scavio", "url": "https://mcp.scavio.dev/v1/rpc"},
{"name": "third-party", "url": "https://example.com/mcp"}
]
PAYLOAD = {"jsonrpc": "2.0", "id": 1, "method": "tools/list"}
def probe(s):
start = time.time()
try:
r = requests.post(s["url"], json=PAYLOAD, timeout=5)
return {"name": s["name"], "ok": r.ok, "latency_ms": (time.time()-start)*1000}
except Exception as e:
return {"name": s["name"], "ok": False, "error": str(e)}
for s in SERVERS:
print(probe(s))Implementacion en JavaScript
const SERVERS = [
{ name: "scavio", url: "https://mcp.scavio.dev/v1/rpc" },
{ name: "third-party", url: "https://example.com/mcp" }
];
const PAYLOAD = { jsonrpc: "2.0", id: 1, method: "tools/list" };
async function probe(s) {
const start = Date.now();
try {
const r = await fetch(s.url, {
method: "POST", headers: { "content-type": "application/json" },
body: JSON.stringify(PAYLOAD),
signal: AbortSignal.timeout(5000)
});
return { name: s.name, ok: r.ok, latencyMs: Date.now() - start };
} catch (e) {
return { name: s.name, ok: false, error: e.message };
}
}
for (const s of SERVERS) console.log(await probe(s));Plataformas utilizadas
Búsqueda web con grafo de conocimiento, PAA y resúmenes de IA