โ 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).
- 0x7018eef0599d378fda8058cfe49ed1be44ac7094c99edf82270af31e20f112d5
- 0x43228baef4eabd5ad342bb9aa1c6260f40cf4aed4713d8c4c3b06f9ba1b72a05
- 0x11379d5bda07f585f60128c7471db553f108ac600a9708c33f71867ed0f5cd6c
- 0x4e873719f4f6d79e9e421772cbe57189b7b7616997526577f28dd433ca8e3350
- 0x103cac3ca481fc49d4b7319b9144a6d094ab3ee7e6ecd7c2ce44e1927f7b7b94
- 0x6d6e2b021155525c8f06a8df08cccdd2a64b808bf1970cc786bb5f34fe81ff9b
- 0xdf1292f10b7093343223cd258ffa865e520f39d5e478f1805a11e86b42af2bcf
- 0xdd624ae3670b57347607d5c928d540e02c9b142952286aa599160c547b3ae01c
- 0x880dd3b83e54407a49b3a4717c1031e42ce21a8b91688fc932b162fcbdcbfa09
- 0x19792535bf1364a9338820b204b05ce0f6bf3690fa1496a73e82726a450f66c4
- 0x83da3d3b0ffc00454b09f0b6f54a0a4bb8b5fabd87854d6bb2d7abda681b5d72
- 0x5be1d69fd9353c3a75685caffea8c98e8f079f5072011c82517cc5f365ba32f8
- 0x14b83e3bc6587240f31cd033d09d131e0775b7b00aada9042597008a70399013
- 0xfc9b5a81a7a83a1c735a4fe64590beb9db14d2366f463161358af28c3ea9a81d
- 0xa2d436d488e3600b0e5c3e3ed9c9234cd52853c59830b786334fd0c4292d9f40
- 0x47b89901b0f07938a6b9a66ddf35683903f79d756a7c7763665fd632758b08d0
- 0x9a83be955a206deb65b995adfd92c58fa31c95fbbf926bd199d300e70b08b26d
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae