addrbookFor publishers
โ† The evidence ledger

Evidence row 260437

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint f6a4d227-26d3-485a-8ae4-145693ca938c
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
968a05e231fb8edd1d3cdb378db004e1f2f6545925007ee2373f545f3f8846b4
Leaf
0x70193f38a8dc15efa27a3823de20531a9d7ad2c9569c7adf87edf41a0ebdd90a

What was observed

{
  "count": 21,
  "tools": [
    {
      "description": "MCP.AI for IDE agents (Cursor, etc.): log in in the browser, copy the access token. Best: add it to this server's config as a header `Authorization: Bearer <token>` for a permanent, non-expiring connection. Or paste it here for a session-only login: call with { token: \"<jwt>\" } after the user pastes, or with no args to get the link.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "token": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "authenticate"
    },
    {
      "description": "Returns connection status and URLs. When all providers are connected, returns authenticated:true and empty pending[]. When credentials are missing, returns connect_url for the toolkit and per-install URLs.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "connect"
    },
    {
      "description": "Add a reaction to a message. `emoji` is either unicode (e.g. `๐Ÿ‘`) or `name:id` for custom guild emoji.\n\nBulk support: accepts channel_ids, message_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "emoji": {
            "type": "string"
          },
          "message_id": {
            "type": "string"
          },
          "message_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "channel_id",
          "message_id",
          "emoji"
        ],
        "type": "object"
      },
      "name": "discord_add_reaction"
    },
    {
      "description": "Delete a message. Irreversible. Bot needs Manage Messages to delete messages authored by other users.\n\nBulk support: accepts channel_ids, message_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message_id": {
            "type": "string"
          },
          "message_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "channel_id",
          "message_id"
        ],
        "type": "object"
      },
      "name": "discord_delete_message"
    },
    {
      "description": "Edit a previously-sent message (must be authored by this bot).\n\nBulk support: accepts channel_ids, message_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "content": {
            "type": "string"
          },
          "embeds": {
            "items": {},
            "type": "array"
          },
          "message_id": {
            "type": "string"
          },
          "message_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "channel_id",
          "message_id"
        ],
        "type": "object"
      },
      "name": "discord_edit_message"
    },
    {
      "description": "Get a channel's metadata (type, name, topic, parent, permissions).\n\nBulk support: accepts channel_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "channel_id"
        ],
        "type": "object"
      },
      "name": "discord_get_channel"
    },
    {
      "description": "Get one guild's metadata. Falls back to the connection's default guild_id.\n\nBulk support: accepts guild_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "guild_id": {
            "type": "string"
          },
          "guild_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "discord_get_guild"
    },
    {
      "description": "Return the bot's own user profile (id, username, discriminator, avatar, etc).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "discord_get_me"
    },
    {
      "description": "Fetch a single message by id.\n\nBulk support: accepts channel_ids, message_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "message_id": {
            "type": "string"
          },
          "message_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "channel_id",
          "message_id"
        ],
        "type": "object"
      },
      "name": "discord_get_message"
    },
    {
      "description": "Public profile of any Discord user by id.\n\nBulk support: accepts user_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "user_id": {
            "type": "string"
          },
          "user_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "user_id"
        ],
        "type": "object"
      },
      "name": "discord_get_user"
    },
    {
      "description": "List Discord bot connections linked to this install โ€” id, label, default guild_id.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "discord_list_accounts"
    },
    {
      "description": "List channels in a guild. Falls back to the connection's default guild_id.\n\nBulk support: accepts guild_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "guild_id": {
            "type": "string"
          },
          "guild_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "name": "discord_list_channels"
    },
    {
      "description": "List members of a guild. Requires the bot to have the Server Members intent enabled in the developer portal โ€” may return 403 otherwise.\n\nBulk support: accepts guild_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "after": {
            "type": "string"
          },
          "guild_id": {
            "type": "string"
          },
          "guild_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "limit": {
            "default": 100,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "discord_list_guild_members"
    },
    {
      "description": "List the servers (guilds) the bot is a member of.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "after": {
            "type": "string"
          },
          "before": {
            "type": "string"
          },
          "limit": {
            "default": 100,
            "type": "number"
          }
        },
        "type": "object"
      },
      "name": "discord_list_guilds"
    },
    {
      "description": "Read recent messages from a channel (newest first). Pagination via `before` / `after` / `around` (message ids). Requires Message Content intent for non-bot message bodies in some cases.\n\nBulk support: accepts channel_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "after": {
            "type": "string"
          },
          "around": {
            "type": "string"
          },
          "before": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "limit": {
            "default": 50,
            "type": "number"
          }
        },
        "required": [
          "channel_id"
        ],
        "type": "object"
      },
      "name": "discord_list_messages"
    },
    {
      "description": "Open a DM channel with a user and send them a message. The bot and the user must share a guild.\n\nBulk support: accepts user_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "embeds": {
            "items": {},
            "type": "array"
          },
          "user_id": {
            "type": "string"
          },
          "user_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "user_id"
        ],
        "type": "object"
      },
      "name": "discord_send_dm"
    },
    {
      "description": "Post a message to a channel. Provide `content` (text up to 2000 chars), `embeds` (rich JSON), or both. `reply_to` makes it a reply.\n\nBulk support: accepts channel_ids for batched execution.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "account": {
            "type": "string"
          },
          "channel_id": {
            "type": "string"
          },
          "channel_ids": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "content": {
            "type": "string"
          },
          "embeds": {
            "items": {},
            "type": "array"
          },
          "reply_to": {
            "type": "string"
          }
        },
        "required": [
          "channel_id"
        ],
        "type": "object"
      },
      "name": "discord_send_message"
    },
    {
      "description": "The official mcp.ai marketplace โ€” the in-platform catalog of every MCP/tool, AND the way to run them. Covers capability requests like \"find an MCP that does X\", \"consulta um CPF\", \"is there a tool for Y\". Core flow: action=search discovers MCPs by intent โ†’ describe returns one MCP's full profile (every tool with its id + params, pricing, auth) so you pick the right tool_id โ†’ invoke RUNS that tool. KEY: invoke works even when the MCP is NOT installed โ€” it runs the tool pontualmente (one-off), without adding the MCP to the toolkit and without bloating the tool list. If the MCP needs a credential/login, invoke returns a connect link; if it is paid and the wallet is empty, invoke returns a checkout/top-up link (the user opens it, then you retry). Use install only to make an MCP PERMANENT in the active toolkit (its tools then show up natively in future sessions); prefer invoke for a single/occasional use. list_tools lists what is callable right now. subscribe/cancel handle per-MCP billing; report_bug sends feedback; request_mcp asks us to build a NEW MCP when nothing fits. Search/describe flag installed_in_toolkit vs installed_in_workspace. Writes (install/uninstall/subscribe/cancel and the one-off install behind invoke) require workspace owner/admin. It also carries the mcp.ai PROMPT LIBRARY, which is about ready-made prompt TEXT rather than MCPs: search_prompts finds one, get_prompt returns its full text with {{variables}} filled, and publish_prompt saves a prompt and returns a shareable mcp.ai/p/<slug> link that opens without login.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "action": {
            "default": "search",
            "enum": [
              "search",
              "describe",
              "install",
              "uninstall",
              "subscribe",
              "cancel",
              "resume",
              "report_bug",
              "request_mcp",
              "list_tools",
              "invoke",
              "search_prompts",
              "get_prompt",
              "publish_prompt"
            ],
            "type": "string"
          },
          "arguments": {
            "default": "{}",
            "type": "string"
          },
          "cancel_comment": {
            "default": "",
            "type": "string"
          },
          "cancel_reason": {
            "enum": [
              "too_expensive",
              "missing_features",
              "switched_service",
              "unused",
              "customer_service",
              "too_complex",
              "low_quality",
              "other"
            ],
            "type": "string"
          },
          "conversation": {
            "default": "[]",
            "type": "string"
          },
          "immediate": {
            "default": false,
            "type": "boolean"
          },
          "limit": {
            "default": 10,
            "type": "number"
          },
          "mcp_id": {
            "default": "",
            "type": "string"
          },
          "message": {
            "default": "",
            "type": "string"
          },
          "prompt_body": {
            "default": "",
            "type": "string"
          },
          "prompt_category": {
            "default": "",
            "type": "string"
          },
          "prompt_description": {
            "default": "",
            "type": "string"
          },
          "prompt_slug": {
            "default": "",
            "type": "string"
          },
          "prompt_targets": {
            "default": [],
            "items": {
              "enum": [
                "claude",
                "chatgpt",
                "cursor",
                "lovable"
              ],
              "type": "string"
            },
            "type": "array"
          },
          "prompt_title": {
            "default": "",
            "type": "string"
          },
          "prompt_tool": {
            "default": "",
            "type": "string"
          },
          "prompt_vars": {
            "default": "{}",
            "type": "string"
          },
          "query": {
            "default": "",
            "type": "string"
          },
          "report_context": {
            "default": "",
            "type": "string"
          },
          "request_details": {
            "default": "",
            "type": "string"
          },
          "request_name": {
            "default": "",
            "type": "string"
          },
          "tier_slug": {
            "default": "",
            "type": "string"
          },
          "tool_id": {
            "default": "",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "marketplace"
    },
    {
      "description": "Report a bug, missing feature, or send feedback. Include the conversation array with recent messages for reproduction.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "context": {
            "default": "",
            "type": "string"
          },
          "conversation": {
            "default": "[]",
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "name": "report_bug"
    },
    {
      "description": "Show the current MCP platform and adapter versions.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "show_version"
    },
    {
      "description": "Returns the current toolkit state: installed MCPs, their connection status, the accounts connected to each one, and how many catalog tools each exposes.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "toolkit_info"
    }
  ]
}

What the leaf hashes

{"body":"968a05e231fb8edd1d3cdb378db004e1f2f6545925007ee2373f545f3f8846b4","id":260437,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793031646454075,"prev":null,"subject":"f6a4d227-26d3-485a-8ae4-145693ca938c","subject_kind":"endpoint"}

Proof

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

  1. 0x7018eef0599d378fda8058cfe49ed1be44ac7094c99edf82270af31e20f112d5
  2. 0x43228baef4eabd5ad342bb9aa1c6260f40cf4aed4713d8c4c3b06f9ba1b72a05
  3. 0x11379d5bda07f585f60128c7471db553f108ac600a9708c33f71867ed0f5cd6c
  4. 0x4e873719f4f6d79e9e421772cbe57189b7b7616997526577f28dd433ca8e3350
  5. 0x103cac3ca481fc49d4b7319b9144a6d094ab3ee7e6ecd7c2ce44e1927f7b7b94
  6. 0x6d6e2b021155525c8f06a8df08cccdd2a64b808bf1970cc786bb5f34fe81ff9b
  7. 0xdf1292f10b7093343223cd258ffa865e520f39d5e478f1805a11e86b42af2bcf
  8. 0xdd624ae3670b57347607d5c928d540e02c9b142952286aa599160c547b3ae01c
  9. 0x880dd3b83e54407a49b3a4717c1031e42ce21a8b91688fc932b162fcbdcbfa09
  10. 0x19792535bf1364a9338820b204b05ce0f6bf3690fa1496a73e82726a450f66c4
  11. 0x83da3d3b0ffc00454b09f0b6f54a0a4bb8b5fabd87854d6bb2d7abda681b5d72
  12. 0x5be1d69fd9353c3a75685caffea8c98e8f079f5072011c82517cc5f365ba32f8
  13. 0x14b83e3bc6587240f31cd033d09d131e0775b7b00aada9042597008a70399013
  14. 0xfc9b5a81a7a83a1c735a4fe64590beb9db14d2366f463161358af28c3ea9a81d
  15. 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
  16. 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
  17. 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
  18. 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it ยท This row as JSON