# Agent Watch

> Monitoring for the agent economy — liveness, latency, trust scoring for MCP endpoints

- name: io.github.entradox/agent-watch
- version: 0.1.0
- connection class: R0 (autonomous)
- trust: 94/100
- quality: 77/100 (good)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.entradox%2Fagent-watch
- tools: https://api.protogrid.dev/v1/servers/io.github.entradox%2Fagent-watch/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "agent-watch": {
      "type": "http",
      "url": "https://agent-watch-api-production.up.railway.app/mcp/"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 85
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-99% ~updated-46d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 77/100 (good)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 79 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- warn `tools.annotations`: only 6 of 8 tools declare readOnlyHint or destructiveHint
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: skills_list_tool (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); read_skill (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); aw_health (openWorldHint); …
- pass `tools.token_cost`: about 1,019 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 14 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 8, about 1,019 tokens to load them all
- tool set hash: 6d06fecd765d88f503085b24f6f458d6
- tools last changed: 2026-10-07T04:49:46.587Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.entradox/agent-watch.svg)](https://protogrid.dev/servers/io.github.entradox/agent-watch)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-07 `read_skill` changed (description)
  - before: Read a product skill file by its skill:// URI. Args: uri: e.g. skill://<product>/<skill-name>/SKILL.md Get valid URIs from `skills_list_tool`.
  - after: Read a product skill file by its skill:// URI. Args: uri: e.g. skill://<product>/<skill-name>/SKILL.md Get valid URIs from `skills_list_tool`.
- 2026-10-07 `skills_list_tool` changed (description)
  - before: List this product's skills. Each entry carries the SKILL.md URI, its name and description, verbatim frontmatter, and a per-file sha256 manifest. Read a body with `read_skill`.
  - after: List this product's skills. Each entry carries the SKILL.md URI, its name and description, verbatim frontmatter, and a per-file sha256 manifest. Read a body with `read_skill`.
- 2026-10-07 `aw_watch` changed (description)
  - before: Add endpoints to your personal watchlist (probed immediately, then every 6h). Plan-limited by the email used at checkout: free 5, Builder ($19/mo) 50, Team ($99/mo) 500 endpoints. Alerts fire on alive→dead transitions and tool-schema drift. Already-watched URLs are returned without re-probing. Args: email: the email your subscription is under (free tier works too) urls: endpoint URLs to add to your watchlist watch_token: issued at registration, delivered in your onboarding email — required
  - after: Add endpoints to your personal watchlist (probed immediately, then every 6h). Plan-limited by the email used at checkout: free 5, Builder ($19/mo) 50, Team ($99/mo) 500 endpoints. Alerts fire on alive→dead transitions and tool-schema drift. Already-watched URLs are returned without re-probing. Args: email: the email your subscription is under (free tier works too) urls: endpoint URLs to add to your watchlist watch_token: issued at registration, delivered in your onboarding email — required
- 2026-10-07 `aw_alerts` changed (description)
  - before: Show dead endpoints across the monitored registry (alive=false). Returns up to 500 dead endpoints with names. Use after aw_census or aw_list_monitored to get the actionable dead list. Read-only.
  - after: Show dead endpoints across the monitored registry (alive=false). Returns up to 500 dead endpoints with names. Use after aw_census or aw_list_monitored to get the actionable dead list. Read-only.
- 2026-10-07 `aw_list_monitored` changed (description)
  - before: List all endpoints in the Agent Watch census with their registry names. Returns count and the full endpoint list (URLs). Combine with aw_alerts to find which of these are dead. Read-only.
  - after: List all endpoints in the Agent Watch census with their registry names. Returns count and the full endpoint list (URLs). Combine with aw_alerts to find which of these are dead. Read-only.
- 2026-10-07 `aw_census` changed (description)
  - before: Full-census summary of the official MCP registry: 7,454 endpoints probed with real MCP handshakes. Returns alive/dead/unknown counts and percentages. States: alive = MCP initialize succeeded; dead = no answer; unknown = answered but auth-gated (401/403/402) or redirecting — liveness unprovable without credentials. Use to quantify how much of the MCP ecosystem is actually reachable.
  - after: Full-census summary of the official MCP registry: 7,454 endpoints probed with real MCP handshakes. Returns alive/dead/unknown counts and percentages. States: alive = MCP initialize succeeded; dead = no answer; unknown = answered but auth-gated (401/403/402) or redirecting — liveness unprovable without credentials. Use to quantify how much of the MCP ecosystem is actually reachable.
- 2026-10-07 `aw_check_endpoint` changed (description)
  - before: Probe an MCP or HTTP-402 endpoint now and get its trust verdict. Performs a real MCP initialize handshake (not a ping), measures p50/p95 latency, counts tools, hashes the tool schema (for drift detection), and checks RFC 9728 auth metadata. Returns: alive (bool), name, tool_count, latency_p50_ms, tool_schema_hash, auth_metadata_present, and error detail when dead. Use before wiring any new MCP server into your client. Args: url: the MCP or HTTP-402 endpoint URL to probe (e.g. https://host/mcp/) timeout: probe timeout in seconds (default 30)
  - after: Probe an MCP or HTTP-402 endpoint now and get its trust verdict. Performs a real MCP initialize handshake (not a ping), measures p50/p95 latency, counts tools, hashes the tool schema (for drift detection), and checks RFC 9728 auth metadata. Returns: alive (bool), name, tool_count, latency_p50_ms, tool_schema_hash, auth_metadata_present, and error detail when dead. Use before wiring any new MCP server into your client. Args: url: the MCP or HTTP-402 endpoint URL to probe (e.g. https://host/mcp/) timeout: probe timeout in seconds (default 30)
- 2026-10-01 `read_skill` changed (description)
  - before: Read a product skill file by its skill:// URI. Args: uri: e.g. skill://<product>/<skill-name>/SKILL.md Get valid URIs from `skills_list_tool`.
  - after: Read a product skill file by its skill:// URI. Args: uri: e.g. skill://<product>/<skill-name>/SKILL.md Get valid URIs from `skills_list_tool`.
- 2026-10-01 `skills_list_tool` changed (description)
  - before: List this product's skills. Each entry carries the SKILL.md URI, its name and description, verbatim frontmatter, and a per-file sha256 manifest. Read a body with `read_skill`.
  - after: List this product's skills. Each entry carries the SKILL.md URI, its name and description, verbatim frontmatter, and a per-file sha256 manifest. Read a body with `read_skill`.
- 2026-10-01 `aw_watch` changed (description)
  - before: Add endpoints to your personal watchlist (probed immediately, then every 6h). Plan-limited by the email used at checkout: free 5, Builder ($19/mo) 50, Team ($99/mo) 500 endpoints. Alerts fire on alive→dead transitions and tool-schema drift. Already-watched URLs are returned without re-probing. Args: email: the email your subscription is under (free tier works too) urls: endpoint URLs to add to your watchlist watch_token: issued at registration, delivered in your onboarding email — required
  - after: Add endpoints to your personal watchlist (probed immediately, then every 6h). Plan-limited by the email used at checkout: free 5, Builder ($19/mo) 50, Team ($99/mo) 500 endpoints. Alerts fire on alive→dead transitions and tool-schema drift. Already-watched URLs are returned without re-probing. Args: email: the email your subscription is under (free tier works too) urls: endpoint URLs to add to your watchlist watch_token: issued at registration, delivered in your onboarding email — required

Full history: https://api.protogrid.dev/v1/servers/io.github.entradox%2Fagent-watch/changes

## Remotes

- https://agent-watch-api-production.up.railway.app/mcp/ (streamable-http, auth none, reachable true, uptime30d 0.9916667)

## Packages

_none_

## Tools (8)

- `aw_alerts`: Show dead endpoints across the monitored registry (alive=false).

    Returns up to 500 dead endpoints with names. Use after aw_census or
    aw_list_monitored to get the actionable dead list. Read-only.
    
- `aw_census`: Full-census summary of the official MCP registry: 7,454 endpoints probed with real MCP handshakes.

    Returns alive/dead/unknown counts and percentages. States: alive = MCP
    initialize succeeded; dead = no answer; unknown = answered but auth-gated
    (401/403/402) or redirecting — liveness unprovable without credentials.
    Use to quantify how much of the MCP ecosystem is actually reachable.
    
- `aw_check_endpoint`: Probe an MCP or HTTP-402 endpoint now and get its trust verdict.

    Performs a real MCP initialize handshake (not a ping), measures p50/p95
    latency, counts tools, hashes the tool schema (for drift detection), and
    checks RFC 9728 auth metadata. Returns: alive (bool), name, tool_count,
    latency_p50_ms, tool_schema_hash, auth_metadata_present, and error detail
    when dead. Use before wiring any new MCP server into your client.

    Args:
        url: the MCP or HTTP-402 endpoint URL to probe (e.g. https://host/mcp/)
        timeout: probe timeout in seconds (default 30)
    
- `aw_health`: Liveness check for the Agent Watch API. Returns ok, service name, and version. Call this first to verify connectivity before using other tools.
- `aw_list_monitored`: List all endpoints in the Agent Watch census with their registry names.

    Returns count and the full endpoint list (URLs). Combine with aw_alerts
    to find which of these are dead. Read-only.
    
- `aw_watch`: Add endpoints to your personal watchlist (probed immediately, then every 6h).

    Plan-limited by the email used at checkout: free 5, Builder ($19/mo) 50,
    Team ($99/mo) 500 endpoints. Alerts fire on alive→dead transitions and
    tool-schema drift. Already-watched URLs are returned without re-probing.

    Args:
        email: the email your subscription is under (free tier works too)
        urls: endpoint URLs to add to your watchlist
        watch_token: issued at registration, delivered in your onboarding email — required
    
- `read_skill`: Read a product skill file by its skill:// URI.

            Args:
                uri: e.g. skill://<product>/<skill-name>/SKILL.md
                     Get valid URIs from `skills_list_tool`.
            
- `skills_list_tool`: List this product's skills. Each entry carries the SKILL.md URI,
            its name and description, verbatim frontmatter, and a per-file
            sha256 manifest. Read a body with `read_skill`.
