Workflow

MCP Server Availability Monitor

Ping MCP servers on a schedule and alert on failures. Track uptime for Scavio and third-party MCP endpoints.

Overview

Keeps tabs on the MCP servers your agents depend on. Pings each registered MCP endpoint every 2 minutes, runs a cheap list_tools probe, measures latency, and alerts when availability drops below threshold. Critical when your agent stack spans 5-10 third-party MCP servers.

Trigger

Cron schedule (every 2 minutes)

Schedule

Every 2 minutes

Workflow Steps

1

Load MCP server registry

Read list of tracked MCP endpoints from config (HTTP URLs and stdio commands).

2

Probe list_tools

Send JSON-RPC list_tools request to each MCP server with 5-second timeout.

3

Measure latency

Record P50 and P99 latency per server over rolling 1-hour window.

4

Detect failures

Any timeout, non-200, or RPC error counts as a failure for that tick.

5

SLO budget tracking

Emit to Prometheus: mcp_availability{server=X} and mcp_latency_ms{server=X}.

6

Alert on SLO burn

Page when 5 consecutive probes fail or availability <99% over 1 hour.

Python Implementation

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))

JavaScript Implementation

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));

Platforms Used

Google

Web search with knowledge graph, PAA, and AI overviews

Frequently Asked Questions

Keeps tabs on the MCP servers your agents depend on. Pings each registered MCP endpoint every 2 minutes, runs a cheap list_tools probe, measures latency, and alerts when availability drops below threshold. Critical when your agent stack spans 5-10 third-party MCP servers.

This workflow uses a cron schedule (every 2 minutes). Every 2 minutes.

This workflow uses the following Scavio platforms: google. Each platform is called via the same unified API endpoint.

Yes. Scavio's free tier includes 500 credits per month with no credit card required. That is enough to test and validate this workflow before scaling it.

MCP Server Availability Monitor

Ping MCP servers on a schedule and alert on failures. Track uptime for Scavio and third-party MCP endpoints.