addrbookFor publishers
← The evidence ledger

Evidence row 558812

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 9a40a3ee-ad19-4058-885f-423222811cdd
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
313c7223a762ddc6717d1e0307b82db3eeff53e106d0844a57c362ab85de2495
Leaf
0x9ca5f8da0c25f05d3df9d2a8d263d5ec10ce1fba579d0622efc12bd17fd8e971

What was observed

{
  "count": 14,
  "tools": [
    {
      "description": "Adjust an existing proposal (review level, model tier, volume, budget cap, disable steps). Returns feasibility, price/risk notes, optional alternative. Stateless — pass full proposal JSON.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "adjustments": {
            "properties": {
              "budgetCapMonthlySek": {
                "type": "number"
              },
              "consultantHoursPerMonth": {
                "type": "number"
              },
              "disabledStepIds": {
                "items": {
                  "enum": [
                    "ingest",
                    "reconcile",
                    "draft",
                    "review"
                  ],
                  "type": "string"
                },
                "type": "array"
              },
              "hourlyRateSek": {
                "type": "number"
              },
              "humanReviewLevel": {
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string"
              },
              "modelTier": {
                "enum": [
                  "small",
                  "medium",
                  "large"
                ],
                "type": "string"
              },
              "taskDescription": {
                "type": "string"
              },
              "volumeMultiplier": {
                "type": "number"
              }
            },
            "type": "object"
          },
          "proposal": {
            "additionalProperties": {},
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "proposal"
        ],
        "type": "object"
      },
      "name": "adjust_proposal"
    },
    {
      "description": "Merge answers to clarifying questions into intake and return remaining questions. Pass the intake object from start_proposal.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "answers": {
            "properties": {
              "frequency": {
                "type": "string"
              },
              "signOff": {
                "type": "string"
              },
              "systems": {
                "type": "string"
              },
              "volume": {
                "type": "string"
              }
            },
            "type": "object"
          },
          "intake": {
            "additionalProperties": {},
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "intake"
        ],
        "type": "object"
      },
      "name": "ask_clarifying_questions"
    },
    {
      "description": "Build a shareable URL that opens a one-step Free First Task handoff page with proposal/summary prefilled (no PII). For chats without MCP submit.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "language": {
            "enum": [
              "en",
              "sv"
            ],
            "type": "string"
          },
          "proposal": {
            "additionalProperties": {},
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "ref": {
            "type": "string"
          },
          "task_summary": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "build_handoff_link"
    },
    {
      "description": "Deterministic illustrative estimate: workflow pattern, model tier, consultant vs fixed monthly range, running cost. Not a quote.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "consultant_hours_per_month": {
            "type": "number"
          },
          "hourly_rate_sek": {
            "type": "number"
          },
          "language": {
            "enum": [
              "en",
              "sv"
            ],
            "type": "string"
          },
          "task_description": {
            "type": "string"
          }
        },
        "required": [
          "task_description"
        ],
        "type": "object"
      },
      "name": "estimate_automation"
    },
    {
      "description": "Full text for one answer page by slug.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "slug": {
            "description": "Answer slug, e.g. is-ai-automation-cheaper-than-hiring-a-consultant",
            "type": "string"
          }
        },
        "required": [
          "slug"
        ],
        "type": "object"
      },
      "name": "get_answer"
    },
    {
      "description": "Canonical read-only facts about The Outcome Layer (entity, positioning, illustrative scenario, disambiguation).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_company_facts"
    },
    {
      "description": "Free entry offer (Free First Task): price 0 SEK.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_offer"
    },
    {
      "description": "How The Outcome Layer prices work (ROI-first, fixed fee packages).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "get_pricing_model"
    },
    {
      "description": "Build a concrete indicative proposal (steps, automation split, model tier, pricing ranges, Free First Task CTA). Stateless — pass intake JSON.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "intake": {
            "additionalProperties": {},
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "intake"
        ],
        "type": "object"
      },
      "name": "get_proposal"
    },
    {
      "description": "How a buyer or agent should start engaging with The Outcome Layer.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "how_to_start"
    },
    {
      "description": "List citable English answer pages under /answers/<slug>.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {},
        "type": "object"
      },
      "name": "list_answer_pages"
    },
    {
      "description": "Submit a Free First Task lead to The Outcome Layer (same as the website form).\n\nREQUIRED BEFORE CALLING:\n1) Ask the user if they want TOL to review/build this — get explicit consent.\n2) Collect real name, work email, and company from the user — never invent or guess contact data.\n3) Include task_summary and/or proposal JSON from prior tools.\n\nSet consent=true only after the user agrees. Use test=true for dry runs (no customer email; lead marked TEST).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "company": {
            "description": "User's company (must come from the user)",
            "type": "string"
          },
          "consent": {
            "description": "true only after the user explicitly agreed to contact TOL",
            "type": "boolean"
          },
          "email": {
            "description": "User's work email (must come from the user)",
            "type": "string"
          },
          "mcp_client": {
            "description": "Name of the MCP client, e.g. cursor, claude-desktop",
            "type": "string"
          },
          "name": {
            "description": "User's real name (must come from the user)",
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "proposal": {
            "additionalProperties": {},
            "description": "Proposal JSON from get_proposal",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "ref": {
            "description": "Attribution ref, e.g. chatgpt_handoff",
            "type": "string"
          },
          "task_summary": {
            "description": "Free-text task summary",
            "type": "string"
          },
          "test": {
            "description": "If true, lead is TEST — no confirmation email to the user",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "email",
          "company",
          "consent"
        ],
        "type": "object"
      },
      "name": "request_free_first_task"
    },
    {
      "description": "Alias for request_free_first_task. Submit a Free First Task lead to The Outcome Layer (same as the website form).\n\nREQUIRED BEFORE CALLING:\n1) Ask the user if they want TOL to review/build this — get explicit consent.\n2) Collect real name, work email, and company from the user — never invent or guess contact data.\n3) Include task_summary and/or proposal JSON from prior tools.\n\nSet consent=true only after the user agrees. Use test=true for dry runs (no customer email; lead marked TEST).",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "company": {
            "description": "User's company (must come from the user)",
            "type": "string"
          },
          "consent": {
            "description": "true only after the user explicitly agreed to contact TOL",
            "type": "boolean"
          },
          "email": {
            "description": "User's work email (must come from the user)",
            "type": "string"
          },
          "mcp_client": {
            "description": "Name of the MCP client, e.g. cursor, claude-desktop",
            "type": "string"
          },
          "name": {
            "description": "User's real name (must come from the user)",
            "type": "string"
          },
          "phone": {
            "type": "string"
          },
          "proposal": {
            "additionalProperties": {},
            "description": "Proposal JSON from get_proposal",
            "propertyNames": {
              "type": "string"
            },
            "type": "object"
          },
          "ref": {
            "description": "Attribution ref, e.g. chatgpt_handoff",
            "type": "string"
          },
          "task_summary": {
            "description": "Free-text task summary",
            "type": "string"
          },
          "test": {
            "description": "If true, lead is TEST — no confirmation email to the user",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "email",
          "company",
          "consent"
        ],
        "type": "object"
      },
      "name": "send_to_tol"
    },
    {
      "description": "Begin interactive proposal intake from a task description. Returns clarifying questions (volume, systems, frequency, sign-off). Stateless.",
      "inputSchema": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "properties": {
          "consultant_hours_per_month": {
            "type": "number"
          },
          "frequency": {
            "type": "string"
          },
          "hourly_rate_sek": {
            "type": "number"
          },
          "language": {
            "enum": [
              "en",
              "sv"
            ],
            "type": "string"
          },
          "sign_off": {
            "type": "string"
          },
          "systems": {
            "type": "string"
          },
          "task_description": {
            "type": "string"
          },
          "volume": {
            "type": "string"
          }
        },
        "required": [
          "task_description"
        ],
        "type": "object"
      },
      "name": "start_proposal"
    }
  ]
}

What the leaf hashes

{"body":"313c7223a762ddc6717d1e0307b82db3eeff53e106d0844a57c362ab85de2495","id":558812,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793135165101818,"prev":null,"subject":"9a40a3ee-ad19-4058-885f-423222811cdd","subject_kind":"endpoint"}

Proof

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

  1. 0x9ca6450aefa850ac0915f6d5ac66cba494676c12ab31b4399aa4f4dadad692b0
  2. 0x4102e6513a1f758899b7b50b0787b312470aff2c45e328a8a8e5b3467ad905e3
  3. 0x8b029e2c6789f9c42f9a7bbade2692f2b6ea82b9d0094a7df158ad60d62d8d09
  4. 0x9324d54affeaf9013385d98c614b059cce015fe9adb4ee0f4097041f3d445671
  5. 0x23499fda7b99d8d76c54f631f355578ba4638bb2dec9c631532b88246d8e19d4
  6. 0xd0d1c8243a444502486a50afbb2eadb52968a5cd640606e55bb55d9c362ad530
  7. 0xfd8ec627e94e98cc4d46b720908252fdee20daccea0a0c03fb069d3fc7c7e4f8
  8. 0x8c7df3e0baf6c73528581e646e3b5ce26a9f13aa2f9975e5b953acf686be8787
  9. 0x47dd82961cceddf32dc350d183311911ae3873adee98848686db6b70096100c8
  10. 0xa0c3d96a9eb0bb5788287dc35de7da8ee5e241e1a0bcc54ce6fe3684130c2d2c
  11. 0x3a8098fad61fa78d733f5adad8bdae455b29c03477aef5f65c364efafd1d7f6a
  12. 0x6e52b67215988e172a57437ef7e49cbf100e86fb3bb11c32506b78488daa7f10
  13. 0xe8a6f20810396abd4baf9472081cda6d396bc7cf52a77bffdd9f33b41c62adcc
  14. 0xb37e6165108af3c1962db6b76953aee5ee86201747a07444ad2760bf2d5dca23
  15. 0xa3fff4662cd48659f5bafd0612931759a90e53a7b4209ed8f26f6594a07bb547
  16. 0x64c405a28e8819716221eb2529fe4ce277ab08025e17e685cbd5ece75ceb75c7
  17. 0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66
  18. 0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON