protogrid

Search / io.github.Legion33shadow/legion-verify

LEGION Verify: MCP tool-list history

R0· no sign-in

Check if an MCP server changed its tools: signed history, per-server coverage, offline proofs.

v1.3.0 · active · repository · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality94new
Trust97of 100
Uptime, 30 days100%
Latency p50617 ms

Connect

8 clients · secrets stay placeholders
{
  "mcpServers": {
    "legion-verify": {
      "type": "http",
      "url": "https://mcp.legion-api.com/mcp"
    }
  }
}
claude mcp add --transport http legion-verify https://mcp.legion-api.com/mcp
[mcp_servers.legion-verify]
url = "https://mcp.legion-api.com/mcp"
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "legion-verify": {
      "type": "remote",
      "url": "https://mcp.legion-api.com/mcp",
      "enabled": true
    }
  }
}
{
  "mcpServers": {
    "legion-verify": {
      "type": "http",
      "url": "https://mcp.legion-api.com/mcp"
    }
  },
  "deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=legion-verify&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vbWNwLmxlZ2lvbi1hcGkuY29tL21jcCJ9"
}
{
  "servers": {
    "legion-verify": {
      "type": "http",
      "url": "https://mcp.legion-api.com/mcp"
    }
  }
}
{
  "mcpServers": {
    "legion-verify": {
      "httpUrl": "https://mcp.legion-api.com/mcp"
    }
  }
}
extensions:
  "legion-verify":
    enabled: true
    name: "legion-verify"
    type: streamable_http
    uri: "https://mcp.legion-api.com/mcp"
    timeout: 300

Quality 94 / 100new

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list declares ttlMs 0, so clients re-fetch it on every use
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene100 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations5 of 5 tools declare readOnlyHint or destructiveHint
  • pass
    tools.directory_hintsevery tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
  • pass
    tools.token_costabout 925 tokens to load every tool
  • pass
    tools.api_dumptools are not a one-to-one API dump
stabilityn/a · weight 15
  • n/a
    stability.changes, stability.rug_pulltool history recorded for 2 of the 7 days needed
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

5 tools, about 925 tokens to load them all · tool set 766f818a435d · checked 2026-10-20 11:08 UTC

Tool changes

No tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.

Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.

Trust 97 / 100

provenance90
liveness100
freshness100
hygiene100

+repository +namespace-matches-repo +website +reachable +uptime-100% +updated-3d-ago

Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://mcp.legion-api.com/mcp streamable-httpnoneyes100%617 ms2026-07-282026-10-20

Tools (5)

check_mcp_serverread-onlyOne-call summary for an MCP server registry id (e.g. "ai.alphaquantlabs/propertycheck"): tool-list fingerprint history observed by LEGION, last change, per-server coverage from the signed COVERAGE_V1 register (COMPLETE only if observed in every register cycle, UNKNOWN if partial), proof references and a command that verifies everything offline. Read-only. Unknown id -> state UNKNOWN (absence from the log is not a verdict). A change is not an attack; this log does not certify that a server is secure.
get_checkpointread-onlyLatest signed tree head of the LEGION MCP transparency log. The signature is checked against the keyring, anchored on the pinned root key fingerprint. Read-only. Returns tree_size, root_sha256, timestamp, signer and signature_valid. For a trustless check, verify it yourself (see `how_to_verify_yourself`).
get_server_changesread-onlySigned tool-list history of one MCP server as observed by LEGION (registry id, e.g. "xyz.signomy/civitae"), newest first, at most `limit` (1-50) changes, plus an evidence bundle for the latest record (record + RFC 9162 inclusion proof + signed tree head + keyring) that `verify_evidence_bundle` checks offline. A change is not a fault; history = what LEGION observed, not what other clients see.
verify_evidence_bundleread-onlyVerify an evidence bundle OFFLINE (no network call): keyring chain from the pinned root fingerprint, record signature and integrity, signed tree head, RFC 9162 inclusion proof. If `approved_tools_sha256` is given, also reports whether the signed tool list still matches the version you approved (UNAPPROVED_CHANGE if not). Bundle = {record, proof, sth, keyring} as returned by get_server_changes (max 256 KB).
verify_mcp_serverread-onlyCheck an MCP server URL against LEGION's signed transparency log. Read-only. For each registry server at this URL: latest signed tool definition (leaf index, date, tools_sha256), number of tool changes (total and 30 days), date of the last change, RFC 9162 inclusion proof + signed tree head (re-verified here from the pinned root key), an evidence bundle for `verify_evidence_bundle`, and — if live=true — whether the tool list served NOW differs from the signed one (live check by LEGION: initialize + tools/list only, public addresses only, NOT signed). A change is not a fault; history = what LEGION observed, not what other clients see.

Schemas: list_tools.

Similar MCP servers

Official server.json
{
  "name": "io.github.Legion33shadow/legion-verify",
  "_meta": {
    "io.modelcontextprotocol.registry/publisher-provided": {
      "tools": [
        "check_mcp_server",
        "get_server_changes",
        "get_checkpoint",
        "verify_evidence_bundle",
        "verify_mcp_server"
      ],
      "read_only": true,
      "claim_boundary": "LEGION observes only part of the servers; absence from the log is not a verdict; coverage is shown per server, UNKNOWN if partial. A change is not an attack. This log does not certify that a server is secure.",
      "offline_verification": "https://legion-api.com/tlog/check/"
    }
  },
  "title": "LEGION Verify: MCP tool-list history",
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
  "remotes": [
    {
      "url": "https://mcp.legion-api.com/mcp",
      "type": "streamable-http"
    }
  ],
  "version": "1.3.0",
  "repository": {
    "url": "https://github.com/Legion33shadow/legion-mcp",
    "source": "github"
  },
  "websiteUrl": "https://legion-api.com/tlog/check/",
  "description": "Check if an MCP server changed its tools: signed history, per-server coverage, offline proofs."
}