LEGION Verify: MCP tool-list history

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
70%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~954Tokens (tool definitions)
~509 BTypical response size
Moderate attention impact (0.75% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "legion-verify": {
      "url": "https://mcp.legion-api.com/mcp"
    }
  }
}

Remote endpoints

https://mcp.legion-api.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_checkpoint

Latest 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`).

Input Schema

{
  "type": "object",
  "properties": {},
  "title": "get_checkpointArguments"
}
🟢get_server_changes(server_id, limit)

Signed 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.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "title": "Server Id",
      "type": "string"
    },
    "limit": {
      "default": 10,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "server_id"
  ],
  "title": "get_server_changesArguments"
}
🟢verify_evidence_bundle(bundle, approved_tools_sha256)

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

Input Schema

{
  "type": "object",
  "properties": {
    "bundle": {
      "additionalProperties": true,
      "title": "Bundle",
      "type": "object"
    },
    "approved_tools_sha256": {
      "default": "",
      "title": "Approved Tools Sha256",
      "type": "string"
    }
  },
  "required": [
    "bundle"
  ],
  "title": "verify_evidence_bundleArguments"
}
🟢verify_mcp_server(url, live)

Check 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.

Input Schema

{
  "type": "object",
  "properties": {
    "url": {
      "title": "Url",
      "type": "string"
    },
    "live": {
      "default": true,
      "title": "Live",
      "type": "boolean"
    }
  },
  "required": [
    "url"
  ],
  "title": "verify_mcp_serverArguments"
}
🟢check_mcp_server(server_id)

One-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.

Input Schema

{
  "type": "object",
  "properties": {
    "server_id": {
      "title": "Server Id",
      "type": "string"
    }
  },
  "required": [
    "server_id"
  ],
  "title": "check_mcp_serverArguments"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools