addrbookFor publishers
← The evidence ledger

Evidence row 1236487

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint bbd82ca7-3d76-4f79-8b20-4023d54e0bad
Recorded
Previous row
#540979
Body SHA-256
12bc436039e5ac516603ea606538f3e3f5df5a0db5488a01a2e3f57ddc287014
Leaf
0x3302d77ff46edfcf5befc180772fcccbd8de9bfa6f9f638a5e54ff8bb5fa3ea4

What was observed

{
  "count": 7,
  "tools": [
    {
      "description": "Use when the user has several MCP servers connected or planned and wants to know if any duplicate each other. Give the exact registry names of the MCP servers you connect (or plan to). Returns which of them share tool definitions, a remote endpoint or a registry description, compared on the same measurement day, and how many other listings share each one's tool definitions. Facts only, not a judgement. If two share tool definitions, clients that load tool definitions into context may load them twice.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "names": {
            "items": {
              "description": "Exact registry name",
              "maxLength": 200,
              "type": "string"
            },
            "maxItems": 50,
            "minItems": 1,
            "type": "array"
          }
        },
        "required": [
          "names"
        ],
        "type": "object"
      },
      "name": "check_overlap"
    },
    {
      "description": "Use when the user asks what changed in the servers they use, or wants to review tool changes before using a server again. Tools added or removed, input schema changes, new destructive tools, servers that stopped or started answering, and new listings, per day for the last 30 days. Give names to watch specific servers.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "names": {
            "items": {
              "description": "Registry name",
              "maxLength": 200,
              "type": "string"
            },
            "maxItems": 50,
            "type": "array"
          },
          "since": {
            "description": "YYYY-MM-DD, e.g. 2026-10-01; default yesterday",
            "maxLength": 10,
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "get_changes"
    },
    {
      "description": "Use before connecting a server, or when the user names one: registry data, latest measurements, declared risk, rank parts, connection URLs and tools of one server.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Registry name, e.g. com.example/server",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "get_server"
    },
    {
      "description": "Use when the user asks whether a server has been answering lately: daily check results (reachable, response time) of one server for up to 30 days.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "days": {
            "default": 30,
            "maximum": 30,
            "minimum": 1,
            "type": "integer"
          },
          "name": {
            "description": "Registry name",
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "get_server_history"
    },
    {
      "description": "Use to browse what kinds of MCP servers exist or to get category IDs for search filters: category IDs (stable), names, parents and server counts.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_categories"
    },
    {
      "description": "Use when the user needs an MCP server for a task, or asks whether one exists, works today, or needs a key or sign-in. Do not use for general web search; for one server already known by name use get_server. Find remote MCP servers listed in the Official MCP Registry, with MCP Station's daily measurements. Turn the user's need into words (q) plus filters. Example: 'crypto market data, no API key, working' -> q='crypto market data', auth='none', reachable=true. Results are ordered by relevance first, then by published rank rules (measurements only, no paid placement). similar_to='<registry name>' returns other working servers in the same categories with the same authentication.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "auth": {
            "description": "Authentication at the last check",
            "enum": [
              "denied",
              "key",
              "none",
              "oauth",
              "paid"
            ],
            "type": "string"
          },
          "capability": {
            "description": "Declared at initialize",
            "enum": [
              "prompts",
              "resources",
              "tools"
            ],
            "type": "string"
          },
          "category": {
            "description": "Category ID, e.g. finance.crypto (see list_categories)",
            "maxLength": 64,
            "type": "string"
          },
          "limit": {
            "default": 10,
            "description": "Ask only for as many results as needed (default 10)",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "min_success_7d": {
            "description": "Daily check success over 7 days",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "offset": {
            "default": 0,
            "maximum": 500,
            "minimum": 0,
            "type": "integer"
          },
          "q": {
            "description": "Words, max 200 characters",
            "maxLength": 200,
            "type": "string"
          },
          "reachable": {
            "description": "true = answered at the last check",
            "type": "boolean"
          },
          "risk": {
            "description": "Declared by the server's tool hints",
            "enum": [
              "destructive",
              "read_only",
              "undeclared",
              "write"
            ],
            "type": "string"
          },
          "similar_to": {
            "description": "Registry name of a server to find alternatives for",
            "maxLength": 200,
            "type": "string"
          },
          "transport": {
            "enum": [
              "sse",
              "streamable-http"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "search_servers"
    },
    {
      "description": "Use when the user needs a specific capability (a tool) rather than a whole server; to find servers by topic use search_servers. Find individual tools by name and description (as the servers report them in tools/list), with the server each belongs to and its measurements. Example: q='pdf table extraction'.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "auth": {
            "description": "Authentication at the last check",
            "enum": [
              "denied",
              "key",
              "none",
              "oauth",
              "paid"
            ],
            "type": "string"
          },
          "capability": {
            "description": "Declared at initialize",
            "enum": [
              "prompts",
              "resources",
              "tools"
            ],
            "type": "string"
          },
          "category": {
            "description": "Category ID, e.g. finance.crypto (see list_categories)",
            "maxLength": 64,
            "type": "string"
          },
          "limit": {
            "default": 10,
            "description": "Ask only for as many results as needed (default 10)",
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "min_success_7d": {
            "description": "Daily check success over 7 days",
            "maximum": 1,
            "minimum": 0,
            "type": "number"
          },
          "offset": {
            "default": 0,
            "maximum": 500,
            "minimum": 0,
            "type": "integer"
          },
          "q": {
            "description": "Words, max 200 characters",
            "maxLength": 200,
            "type": "string"
          },
          "reachable": {
            "description": "true = answered at the last check",
            "type": "boolean"
          },
          "risk": {
            "description": "Declared by the server's tool hints",
            "enum": [
              "destructive",
              "read_only",
              "undeclared",
              "write"
            ],
            "type": "string"
          },
          "transport": {
            "enum": [
              "sse",
              "streamable-http"
            ],
            "type": "string"
          }
        },
        "required": [
          "q"
        ],
        "type": "object"
      },
      "name": "search_tools"
    }
  ]
}

What the leaf hashes

{"body":"12bc436039e5ac516603ea606538f3e3f5df5a0db5488a01a2e3f57ddc287014","id":1236487,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793350278371764,"prev":540979,"subject":"bbd82ca7-3d76-4f79-8b20-4023d54e0bad","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (243099 rows).

  1. 0x3302da17c8ef540f7ed59f68af3922f73fab1c9385acfd10b46588320e5912c1
  2. 0x647f460a34ba39cea13c22e964c0e24ffc05840db1d6fdfb834e7970f4bbecce
  3. 0x65a3415110a3988c060bbb0eb5f600df333098f9bd562eff5b4a990bc04647c5
  4. 0x6914c969b2bb5407f4023d5ee455e84c7e8a781ba99733027dca11791dcdde52
  5. 0xc71f3b73019aa23dcd3763b88d03714956bcc0b4e24c99c077e6c89c97e83aa6
  6. 0x13e5ec317db1563e75701066483ebe0276dbd3ca0e90d42241c4e90147fda401
  7. 0x32b28bbc49765a835afe38b445e165f428567f5802cfd2cfedc59087943934fd
  8. 0xde367925554745435b001c9272baeb5b1263b2a842d07091f971baf7d3950d45
  9. 0x1dbe9ecca711242a4aae88f445f02782e691ff3e1bc762d5bd63468ff6e2498e
  10. 0x665b1aeacf6894a3b88b2a50e720c33dacbeecf73238af5a4a9df4c40f208725
  11. 0x0dae6a465e4b7ee5915f94857ac911ff4930eec46c6c84eae19ccb564619f79a
  12. 0xfa2de483f2f9af82b5329769beb44392bed26536e7e15e295f86b526f33f9996
  13. 0xa731ea0a53ef052371d2f4f5c1c8f41649e1bf40a860f84529dbcb9601498e0d
  14. 0xc1162ffd606c8e0e72ce94a16332c19bf77c27df8032f71c95d5690246968bbe
  15. 0x6222037db785cc797fc8809e52e551d945c928d389b7ac947c037fb9af818562
  16. 0x50ca74d7c8f26a46e9c3b8fb5e7f9ebcdfdcc1b7c863db3b6d2b7c12e24ca66f
  17. 0xb0c9ef42e725578748f3119c9dbebf2fc437266bda013df29f98ed3ebe621403
  18. 0x30a81d8fcef4e8f9e2877c62796cfc5612fc1b251127d531dee28f8dbd5c5147
Day root
0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
Chained
0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
Published
On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861

How to check it · This row as JSON