addrbookFor publishers
← 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).

  1. 0xe8cd3f3e2e64cce1602b85de3647b194a096c16075c11cc177b8f783e74912f2
  2. 0x9650083782cb424d237de281e4ce1d7bd00b040a25be1a3f6caaec052df2c710
  3. 0x6ffea202e773883b6c951f7e924561153126442fa89108a1bfba75020b86b764
  4. 0x001c9e928b48e1fa19100302837efcb6cfba7a5223ca1c5b5c4d528971531acf
  5. 0xc9f336bb0afe66c60653c4b415a72813ad29468e5ec2a27295b8c46585f48576
  6. 0x0d9774379dc38a123301f7a911e9fe1e1d783c2b6dd077bab588464e0132d845
  7. 0x06eb984c577667b640128e6bac91827f55536e0ef4325397fbfd50a8de72602d
  8. 0x218432e778a14d93fc7beccf92a380baa60d241966b5e47687440e43a9a9425d
  9. 0x25f28558a7c78c5bd7a38653106a233b9f20568bd00db8fbbdcbc4a03dc2f943
  10. 0x6660d88585624917f2e940d83f87f7e55f54cfd21b6105e91af9cff74045a16e
  11. 0x11f999a56e0d8cc7daa64e4903eb41d6078ed2b930cfcc1858070d91536f22ed
  12. 0x3d0b5282d5282c30fc9f86662367cab01d0dba65f13d2968391a7d087b79dfb3
  13. 0xafcc1fe54cfe00a3a1de33df127340075f22433bb89848bbc81499cd7aca5b2b
  14. 0x9bc5fc98278b9f6dc18c66c6e162aefd5244be03170d41bc5161f58ad11beed7
  15. 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON