← The evidence ledger
Evidence row 257426
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint e0f1a79e-01d0-4c85-bfc1-80b2f90d3672
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 753bba8fba62a2ac1b163f2932efce2472332fc8efe2bd490f18f05fe74c3752
- Leaf
- 0xe8cd64ad90a9fa4ceb7ba29fc4b926cc4d19e1880f569c1118badf6fab8e8d96
What was observed
{
"count": 9,
"tools": [
{
"description": "Checks a finished agent file against the template rules (manifest, naming, class, perform method, no hardcoded secrets). Call it on every agent you write, fix anything it reports, and call it again until it passes.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "The full Python source of the agent file",
"type": "string"
},
"filename": {
"description": "File name, must end with _agent.py, e.g. invoice_triage_agent.py",
"type": "string"
}
},
"required": [
"filename",
"code"
],
"type": "object"
},
"name": "check_agent"
},
{
"description": "Searches the open agent registry (about 1,700 single-file agents) for agents that already do what the user wants, for example when they ask 'is there an AI tool for...' or want a ready-made automation instead of building one. Use it before building from scratch, or when the user asks whether an agent exists for a task.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"description": "How many results, default 5",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"query": {
"description": "Plain words describing the task, e.g. 'summarize sales calls'",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "find_agents"
},
{
"description": "Returns the full source of one agent from the registry, by its name (e.g. @bill/neuron_agent), so it can be read or adapted.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Registry name, e.g. @kody/memory_agent",
"type": "string"
}
},
"required": [
"name"
],
"type": "object"
},
"name": "get_agent_code"
},
{
"description": "Use this when the user wants to build an AI agent, assistant, bot or automation from an idea, a repetitive task, a process description, or a meeting transcript (for example: automate invoices, triage support tickets, summarize meetings, follow up with leads). Returns the official single-file agent template and its rules. Fill it in yourself from what the user described, then call check_agent on the finished file before showing it to the user. Then call use_agent_here so the user can use it right away in this chat.",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_agent_template"
},
{
"description": "Optional, for later: how to keep an agent running on the user's own computer with the free Brainstem. Only offer this after the user has used the agent in the chat and wants to keep it.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"filename": {
"description": "The agent file name, if known",
"type": "string"
},
"os": {
"description": "The user's operating system",
"enum": [
"mac",
"windows",
"linux"
],
"type": "string"
}
},
"type": "object"
},
"name": "how_to_run_agent"
},
{
"description": "Use when the user pastes a rejection message from Apple App Review (it cites guidelines such as \"Guideline 5.1.1(i)\"). Free. Returns each cited guideline section it recognizes, with its title and what Apple means by it, and lists sections it does not know. The full version (likely causes, a fix list and a reply draft to App Review) is a separate paid HTTP call; the result says its price and route.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"text": {
"description": "Apple's rejection message, as received (up to 20 KB)",
"maxLength": 20480,
"type": "string"
}
},
"required": [
"text"
],
"type": "object"
},
"name": "rejection_rescue_preview"
},
{
"description": "Use when the person wants something none of these tools can do and says yes to passing the request on. Records only the request text they agree to send (no name or contact). Ask before calling it.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"request": {
"description": "What they want, in a sentence, as they agreed to send it",
"type": "string"
}
},
"required": [
"request"
],
"type": "object"
},
"name": "request_service"
},
{
"description": "Use only when the user says they want to share an agent they built. Checks the agent and scans it for personal details (emails, phone numbers, secrets), then explains how to publish it to the free open agent registry under their own GitHub account. Nothing is published by this tool.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"code": {
"description": "The full Python source of the agent",
"type": "string"
},
"filename": {
"description": "Agent file name, ending in _agent.py",
"type": "string"
}
},
"required": [
"filename",
"code"
],
"type": "object"
},
"name": "share_agent"
},
{
"description": "Use this right after an agent passes check_agent, or whenever the user wants to try an agent. Returns a short Python runner so you can run the agent in this chat with your own Python tool on the user's own data (pasted text, an uploaded spreadsheet, a list). Nothing to install. If Python is unavailable, apply the agent's logic yourself by reading its code. Ask the user for their real data, run the agent, and show the result in plain words.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"filename": {
"description": "The agent file name, e.g. invoice_triage_agent.py",
"type": "string"
}
},
"type": "object"
},
"name": "use_agent_here"
}
]
}What the leaf hashes
{"body":"753bba8fba62a2ac1b163f2932efce2472332fc8efe2bd490f18f05fe74c3752","id":257426,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793029743710334,"prev":null,"subject":"e0f1a79e-01d0-4c85-bfc1-80b2f90d3672","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0xe8cd3f3e2e64cce1602b85de3647b194a096c16075c11cc177b8f783e74912f2
- 0x9650083782cb424d237de281e4ce1d7bd00b040a25be1a3f6caaec052df2c710
- 0x6ffea202e773883b6c951f7e924561153126442fa89108a1bfba75020b86b764
- 0x001c9e928b48e1fa19100302837efcb6cfba7a5223ca1c5b5c4d528971531acf
- 0xc9f336bb0afe66c60653c4b415a72813ad29468e5ec2a27295b8c46585f48576
- 0x0d9774379dc38a123301f7a911e9fe1e1d783c2b6dd077bab588464e0132d845
- 0x06eb984c577667b640128e6bac91827f55536e0ef4325397fbfd50a8de72602d
- 0x218432e778a14d93fc7beccf92a380baa60d241966b5e47687440e43a9a9425d
- 0x25f28558a7c78c5bd7a38653106a233b9f20568bd00db8fbbdcbc4a03dc2f943
- 0x6660d88585624917f2e940d83f87f7e55f54cfd21b6105e91af9cff74045a16e
- 0x11f999a56e0d8cc7daa64e4903eb41d6078ed2b930cfcc1858070d91536f22ed
- 0x3d0b5282d5282c30fc9f86662367cab01d0dba65f13d2968391a7d087b79dfb3
- 0xafcc1fe54cfe00a3a1de33df127340075f22433bb89848bbc81499cd7aca5b2b
- 0x9bc5fc98278b9f6dc18c66c6e162aefd5244be03170d41bc5161f58ad11beed7
- 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
- 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
- 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae