addrbookFor publishers
← The evidence ledger

Evidence row 305210

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 8d2e7941-213a-49e1-81cc-1e2c632870e0
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
0d6bacf494792cc7a62bfc1d43bc03f0d13d7e0ba0cb6ef355a09fc68cf66992
Leaf
0xa5dc53efc2a50ef272469fc0662d4fc40ae4720e70f84de25b5348bc5d99b631

What was observed

{
  "count": 21,
  "tools": [
    {
      "description": "Add a new lead to your pipeline. Warns if another visible lead already has the same phone number. Two-step: draft, then confirm.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "business_name": {
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "confirm": {
            "default": false,
            "description": "Leave false to get a draft of the change. Only set true after the user has seen the draft and approved it.",
            "type": "boolean"
          },
          "contact_name": {
            "type": "string"
          },
          "email": {
            "format": "email",
            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "phone": {
            "minLength": 7,
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "business_name",
          "phone"
        ],
        "type": "object"
      },
      "name": "add_lead"
    },
    {
      "description": "Calls logged on one lead, or if no lead is given, the calls you logged in the last N days.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days": {
            "default": 7,
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          },
          "lead_id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "limit": {
            "default": 50,
            "maximum": 200,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "call_history"
    },
    {
      "description": "Take an unclaimed lead from the shared pool into your own pipeline. Two-step: draft, then confirm.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "confirm": {
            "default": false,
            "description": "Leave false to get a draft of the change. Only set true after the user has seen the draft and approved it.",
            "type": "boolean"
          },
          "lead_id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          }
        },
        "required": [
          "lead_id"
        ],
        "type": "object"
      },
      "name": "claim_lead"
    },
    {
      "description": "Turn a Shadow Trial signup into a lead in your pipeline at the shadow_trial stage. Two-step: draft, then confirm.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "confirm": {
            "default": false,
            "description": "Leave false to get a draft of the change. Only set true after the user has seen the draft and approved it.",
            "type": "boolean"
          },
          "trial_id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          }
        },
        "required": [
          "trial_id"
        ],
        "type": "object"
      },
      "name": "convert_trial_to_lead"
    },
    {
      "description": "Search leads you can see: your own plus the unclaimed pool. Filter by name/phone text, status, industry, city or minimum lead score.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "city": {
            "type": "string"
          },
          "industry": {
            "description": "Partial match, e.g. \"hvac\" or \"dental\".",
            "type": "string"
          },
          "limit": {
            "default": 25,
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "min_score": {
            "description": "Pipeline lead score, 1-5.",
            "maximum": 5,
            "minimum": 1,
            "type": "integer"
          },
          "scope": {
            "default": "all",
            "enum": [
              "all",
              "mine",
              "unclaimed"
            ],
            "type": "string"
          },
          "search": {
            "description": "Text to match in business name, contact name or phone.",
            "type": "string"
          },
          "status": {
            "enum": [
              "cold",
              "contacted",
              "shadow_trial",
              "trial_active",
              "won",
              "lost"
            ],
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "find_leads"
    },
    {
      "description": "Everything about one lead: contact info, pitch (cold-call angle, Shadow Trial pitch, pain points), deal details, call history and notes.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "lead_id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          }
        },
        "required": [
          "lead_id"
        ],
        "type": "object"
      },
      "name": "lead_details"
    },
    {
      "description": "Health of the automated lead-gen pipeline (job postings → AI enrichment → unclaimed pool, runs every 4 hours): when it last delivered leads and how many.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "lead_gen_status"
    },
    {
      "description": "Record a call with one of your leads, optionally setting a follow-up. Some outcomes also move the lead's stage (won, trial_started, appointment_booked, not_interested, do_not_call). Two-step: draft, then confirm.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "confirm": {
            "default": false,
            "description": "Leave false to get a draft of the change. Only set true after the user has seen the draft and approved it.",
            "type": "boolean"
          },
          "direction": {
            "default": "outbound",
            "enum": [
              "outbound",
              "inbound"
            ],
            "type": "string"
          },
          "follow_up_at": {
            "description": "When to follow up, as an ISO 8601 date-time with timezone, e.g. 2026-10-09T10:00:00-05:00.",
            "type": "string"
          },
          "lead_id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "outcome": {
            "enum": [
              "no_answer",
              "left_voicemail",
              "not_interested",
              "follow_up",
              "appointment_booked",
              "trial_started",
              "won",
              "do_not_call"
            ],
            "type": "string"
          }
        },
        "required": [
          "lead_id",
          "outcome"
        ],
        "type": "object"
      },
      "name": "log_call"
    },
    {
      "description": "Estimate how much revenue a business loses to unanswered calls, from its own call volume and average job value. No sign-in needed. Ask the user for their numbers rather than guessing them.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "avg_job_value": {
            "description": "Average revenue from one booked job, in dollars.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "booking_percent": {
            "default": 50,
            "description": "Share of answered calls that become a booked job. Default 50 is an assumption.",
            "maximum": 100,
            "minimum": 0,
            "type": "number"
          },
          "calls_per_week": {
            "description": "Inbound calls the business gets in a typical week.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "missed_percent": {
            "default": 30,
            "description": "Share of calls that go unanswered. Default 30 is an assumption; use the business's own figure if known.",
            "maximum": 100,
            "minimum": 0,
            "type": "number"
          }
        },
        "required": [
          "calls_per_week",
          "avg_job_value"
        ],
        "type": "object"
      },
      "name": "missed_call_cost"
    },
    {
      "description": "Who is signed in to RingGuard, and a quick count of their pipeline.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "my_account"
    },
    {
      "description": "Your leads with a follow-up due, including overdue ones, soonest first.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days_ahead": {
            "default": 7,
            "maximum": 90,
            "minimum": 0,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "my_follow_ups"
    },
    {
      "description": "Your call activity over the last N days: totals by outcome, conversations, trials started and wins.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days": {
            "default": 7,
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "my_stats"
    },
    {
      "description": "Businesses that signed up for the free Shadow Trial on ringguard.online and haven't been converted to a lead yet.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days": {
            "default": 14,
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          },
          "include_converted": {
            "default": false,
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "new_trial_signups"
    },
    {
      "description": "Snapshot of your pipeline: leads by stage, won deals and monthly recurring revenue, follow-ups due, the unclaimed pool and open trial signups.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "pipeline_report"
    },
    {
      "description": "Estimate what RingGuard would cost a business per month from how many calls it would handle, compared with a receptionist and an answering service. No sign-in needed.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "avg_call_minutes": {
            "default": 3,
            "description": "Average call length in minutes. Default 3 is an assumption.",
            "exclusiveMinimum": 0,
            "type": "number"
          },
          "calls_per_month": {
            "description": "Calls RingGuard would answer per month (overflow + after-hours).",
            "maximum": 9007199254740991,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "calls_per_month"
        ],
        "type": "object"
      },
      "name": "ringguard_cost_estimate"
    },
    {
      "description": "Sign a business up for RingGuard's free 48-hour Shadow Trial. The RingGuard team follows up by text or call within one business day. Only call this after the person has given their details and explicitly agreed to be contacted and to the privacy policy (https://ringguard.online/privacy). No sign-in needed.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "agreed_to_be_contacted": {
            "const": true,
            "description": "Must be true: the person explicitly agreed to be contacted and to the privacy policy.",
            "type": "boolean"
          },
          "business_name": {
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "contact_name": {
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "format": "email",
            "pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
            "type": "string"
          },
          "industry": {
            "type": "string"
          },
          "message": {
            "description": "Anything the business wants RingGuard to know.",
            "type": "string"
          },
          "phone": {
            "minLength": 7,
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "required": [
          "business_name",
          "contact_name",
          "phone",
          "email",
          "agreed_to_be_contacted"
        ],
        "type": "object"
      },
      "name": "start_shadow_trial"
    },
    {
      "description": "Owner only. Call activity per rep over the last N days, ranked by conversations.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "days": {
            "default": 7,
            "maximum": 365,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "team_leaderboard"
    },
    {
      "description": "The best leads to call right now: not yet won or lost, with a phone number, ranked by lead score and how much the open receptionist job is costing them. Includes the suggested cold-call angle.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "industry": {
            "type": "string"
          },
          "limit": {
            "default": 10,
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          }
        },
        "type": "object"
      },
      "name": "top_leads_to_call"
    },
    {
      "description": "Reverse the most recent change you made through Claude (claim, new lead, status change, logged call or trial conversion). Two-step: draft, then confirm.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "confirm": {
            "default": false,
            "description": "Leave false to get a draft of the change. Only set true after the user has seen the draft and approved it.",
            "type": "boolean"
          }
        },
        "type": "object"
      },
      "name": "undo_last_change"
    },
    {
      "description": "Move one of your leads to a new pipeline stage. Two-step: draft, then confirm.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {
          "confirm": {
            "default": false,
            "description": "Leave false to get a draft of the change. Only set true after the user has seen the draft and approved it.",
            "type": "boolean"
          },
          "lead_id": {
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
            "type": "string"
          },
          "status": {
            "enum": [
              "cold",
              "contacted",
              "shadow_trial",
              "trial_active",
              "won",
              "lost"
            ],
            "type": "string"
          }
        },
        "required": [
          "lead_id",
          "status"
        ],
        "type": "object"
      },
      "name": "update_lead_status"
    },
    {
      "description": "Explains RingGuard, the AI voice receptionist for trade businesses (HVAC, plumbing, roofing, towing): what it does, pricing, how it compares to a receptionist or answering service, and the free Shadow Trial. No sign-in needed.",
      "inputSchema": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "properties": {},
        "type": "object"
      },
      "name": "what_ringguard_does"
    }
  ]
}

What the leaf hashes

{"body":"0d6bacf494792cc7a62bfc1d43bc03f0d13d7e0ba0cb6ef355a09fc68cf66992","id":305210,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793056324822124,"prev":null,"subject":"8d2e7941-213a-49e1-81cc-1e2c632870e0","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. 0xa5dca5a3f0cb7f68c6de01b912c32ec23d7e7c9a5bf3c53b323c1749c6309b47
  2. 0x4f876bdcf1fe22a240e9b431a612d5ca963cf6110e65be66bc2346480efac44f
  3. 0xddf3e5b8b047348a21b5b6396e925b5f726c7ba4cbd77480154de5e4463d37a8
  4. 0x5cf9bf9b9554cf3ff2021208e39f846b5ad3c024065e246a604caaafdda475a5
  5. 0x1253c573667690bba7cb567de832ddd950c3f38f3cfc001ee46d04e69bbff605
  6. 0xc5e21269e1f9743bef459c87e497a142f2721a1f0810aaf5ac0e5d31ce440115
  7. 0xed9f917988e585404aede38975f36af0eee49683339986e257452032502a8323
  8. 0x9327939c5aad99d4fedc41ff2b6c2b3bfa6118841567916c497a244f08e8630d
  9. 0xa77958e153943a895f1beb52fba3929bfedafb69f1e9d958d6f4b9a972909969
  10. 0x33d703f598c504ec2e707e9e28f8a7d8d8905961d218b5b3fe1041ecd10ed9d3
  11. 0xf237135c66ca84b49bee4316c469fc0289ef400162349fc2344fca1bb98dbd0e
  12. 0x21725c62783071369e87d9e0abedb3d8cc37bdab8d0d58308c28aeb7cfd2bc8c
  13. 0xc34c13c58ba9c342ea1b833ac1882a4aea22777c4fd1092b2f83d3bac6b9f845
  14. 0x428106f4ae4ec142f17aebf6fa50935242f8d3f1c211cf95d6351d03d11da2b7
  15. 0x62a900133713919f4eed33d8336876b7a6d538233b8a4f3ed03b29aa44f5bad0
  16. 0x1ac20d30773e1f4f2f811540e9a99b5cca9177c9e2e029acc0d80cf3f1d11f0f
  17. 0xd21942ae3214eff88e08ab04884fd4b11958b51af9a0741b7668e2d07a2c56c9
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON