← The evidence ledger
Evidence row 301838
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 81e0ea04-c41a-4e23-89eb-aa333408f266
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 646663be9d6cd7280b767de70a6c284010eeafeeb182a87b1306917b39691c60
- Leaf
- 0xa0b29cb34030be99115f556f88bc3ac04d1f39530352526a2002e9e3afba93e5
What was observed
{
"count": 9,
"tools": [
{
"description": "Get the full VerifyMCP trust report for one MCP server: score with per-category verdicts and reasons, the tools it exposes with their context-token cost, and its recent change history. Use before installing or trusting a server. Accepts a package name, endpoint URL, registry name or verifymcp slug.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"identifier": "@modelcontextprotocol/server-github"
},
{
"identifier": "https://mcp.example.com/mcp"
},
{
"component": "npm",
"identifier": "io.github.acme/tools"
},
{
"identifier": "acme-tools"
}
],
"properties": {
"component": {
"description": "Which channel to report on when a server ships several.",
"type": "string"
},
"identifier": {
"description": "Package name, endpoint URL, registry name or verifymcp slug.",
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "get_server"
},
{
"description": "Other MCP servers doing a similar job to a given one, with their trust scores. Neighbours share a product, publisher namespace or category; this is not a semantic search.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"identifier": "@modelcontextprotocol/server-github"
},
{
"identifier": "https://mcp.example.com/mcp"
},
{
"identifier": "acme-tools"
}
],
"properties": {
"identifier": {
"description": "Package name, endpoint URL, registry name or verifymcp slug.",
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "get_server_alternatives"
},
{
"description": "Compare up to 5 MCP servers side by side: trust scores, per-category breakdown, tool counts and context-token cost. Use when choosing between candidates that do the same job. Accepts package names, endpoint URLs, registry names or verifymcp slugs.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"identifiers": [
"@acme/mcp-server",
"@other/mcp-server"
]
},
{
"identifiers": [
"acme-tools",
"beta-tools",
"gamma-tools"
]
}
],
"properties": {
"identifiers": {
"description": "Two to 5 servers to compare, as names, URLs or slugs.",
"items": {
"type": "string"
},
"maxItems": 5,
"minItems": 2,
"type": "array"
}
},
"required": [
"identifiers"
],
"type": "object"
},
"name": "get_server_comparison"
},
{
"description": "The evidence behind one server's score: TLS, DNSSEC, authorization, redirects, transports, provenance, install scripts, known CVEs and dependency health. Use to explain a low score.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"identifier": "@modelcontextprotocol/server-github"
},
{
"identifier": "https://mcp.example.com/mcp"
},
{
"component": "npm",
"identifier": "io.github.acme/tools"
}
],
"properties": {
"component": {
"description": "Which channel to report on when a server ships several.",
"type": "string"
},
"identifier": {
"description": "Package name, endpoint URL, registry name or verifymcp slug.",
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "get_server_diagnostics"
},
{
"description": "Ready-to-paste install snippets for one MCP server, for every client we support. An MCPB bundle has no launch command, so it returns the download URL, the registry's SHA-256 and commands to verify the file instead. Read get_server first: this returns configuration, not a safety judgement.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"identifier": "@modelcontextprotocol/server-github"
},
{
"identifier": "https://mcp.example.com/mcp"
},
{
"component": "npm",
"identifier": "acme-tools"
}
],
"properties": {
"component": {
"description": "Which channel to report on when a server ships several.",
"type": "string"
},
"identifier": {
"description": "Package name, endpoint URL, registry name or verifymcp slug.",
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "get_server_install_config"
},
{
"description": "Every tool one MCP server exposes, with its parameters, output schema and context-token cost. Use when get_server reported the tool list was truncated.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"identifier": "@modelcontextprotocol/server-github"
},
{
"identifier": "https://mcp.example.com/mcp"
},
{
"component": "npm",
"identifier": "acme-tools"
}
],
"properties": {
"component": {
"description": "Which channel to report on when a server ships several.",
"type": "string"
},
"identifier": {
"description": "Package name, endpoint URL, registry name or verifymcp slug.",
"type": "string"
}
},
"required": [
"identifier"
],
"type": "object"
},
"name": "get_server_tools"
},
{
"description": "List MCP server components carrying a supply-chain malware finding. Use to check whether anything in the register is flagged before installing.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{},
{
"status": "active"
},
{
"status": "all"
}
],
"properties": {
"status": {
"default": "active",
"description": "Which findings to return: active, unverified, cleared or all. Defaults to active.",
"enum": [
"active",
"unverified",
"cleared",
"all"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_known_malware"
},
{
"description": "List the products MCP servers integrate with, such as github or notion, and how many servers cover each. Use to find the product slug that list_servers accepts.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{},
{
"query": "git"
},
{
"query": "notion"
}
],
"properties": {
"query": {
"description": "Name fragment to match against product names and slugs.",
"maxLength": 100,
"type": "string"
}
},
"type": "object"
},
"name": "list_products"
},
{
"description": "Filter the VerifyMCP directory of scored MCP servers. Use to discover servers by name fragment, ecosystem, product or trust score. Name matching only: descriptions and capabilities are not searched, so a plain-English question matches nothing. Returns the first 100.",
"inputSchema": {
"additionalProperties": false,
"examples": [
{
"query": "github"
},
{
"minScore": 70,
"product": "github"
},
{
"minScore": 80,
"sort": "score_desc",
"types": [
"remote"
]
},
{
"scored": "scored",
"types": [
"npm",
"pypi"
]
},
{
"query": "postgres",
"types": [
"npm"
]
}
],
"properties": {
"maxScore": {
"description": "Highest trust score to include.",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"minScore": {
"description": "Lowest trust score to include.",
"maximum": 100,
"minimum": 0,
"type": "integer"
},
"product": {
"description": "Restrict to servers classified as working with this product, e.g. github.",
"type": "string"
},
"query": {
"description": "Name fragment to match against server and package names.",
"maxLength": 100,
"type": "string"
},
"scored": {
"default": "scored",
"description": "Include unscored servers. Defaults to scored only.",
"enum": [
"scored",
"unscored",
"all"
],
"type": "string"
},
"sort": {
"description": "Default: best match (then trust) with a query, else trust. A given sort is applied exactly.",
"enum": [
"score_desc",
"score_asc",
"name_asc",
"name_desc",
"channels_asc",
"channels_desc"
],
"type": "string"
},
"types": {
"description": "Restrict to these ecosystems; a server matches any one of them.",
"items": {
"enum": [
"remote",
"npm",
"pypi",
"oci",
"nuget",
"mcpb"
],
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "list_servers"
}
]
}What the leaf hashes
{"body":"646663be9d6cd7280b767de70a6c284010eeafeeb182a87b1306917b39691c60","id":301838,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793054313303986,"prev":null,"subject":"81e0ea04-c41a-4e23-89eb-aa333408f266","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0xa0b284d07e6d6c1b9fc21ca0de1ba2f795caa29ae52b8f185e4a8541effd59b4
- 0x7a9232150d85dc20037ba73c66258d20516b93dedb114eb1d27acbb74dba8272
- 0x2ab6dfc1a08bf842a54e991be87ac449b46912397cbc110df25725c391f3a502
- 0x7a01fcd0cc4a76f3f89d2daf5de899afcdc6ca955576d57c00650747a09d2d7f
- 0x12fa6e866b65ca8aff3001ccccb8220ec717dd38894fe0bf0e15137c13e79dc2
- 0x2d8b03b62abc4fbebe3d561014745024a7538f177e24f2a578fcf410aac0821b
- 0x40f3fea8fa975220e036aa5fbf4148ca9f663d11ef00ec96ad6a3319bb16a428
- 0x5e105a4018bf989128695543271cad66d3545d6219f50f1d6e76125af80c3f03
- 0x656efeb7d96e50aeb0381af9e9cce10bc5892a86ec74eee8952a09201c5f9ffd
- 0x848cf5e604d5f0c62cc02d3abe512164430820fceefd529d003cbca06e431809
- 0x6e2c6fb1ec16c0d8a0fa917725bdfc512e7ed9f39e77d64f0a911d30e68a27de
- 0x95576cc3dd18642c859f679cefa1cf80bfc6c690b065916c3585b14e8ef4b1b3
- 0xf8d3e004d9a208d2c5e82ab676956d80f8a3c78387c61dad15a3a8269efee0d8
- 0x6713795704ddd9c528d421fadd9cc96b0200a4ddbba84f88e718d4968dde888b
- 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
- 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
- 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
- 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae