addrbookFor publishers
← The evidence ledger

Evidence row 570866

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint e22c9f80-13ca-424b-90c7-ce7bfea4b5b0
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
dd3d9633b7d71c08a0c98a9dc89b7f0c7bfd8023595e0f07830adb9f73bc7bbd
Leaf
0x59f68614dc7ba09f0fe5796a96e4e6cdadb39b4f865f9111bdf47907ead74847

What was observed

{
  "count": 15,
  "tools": [
    {
      "description": "Run a funnel over a time window and return per-step visitor count, conversion from previous step, conversion from start, and average time to convert between steps. Returns `truncated` flags if the scan cap was hit.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "funnelId": {
            "type": "string"
          },
          "since": {
            "description": "Start of window as unix milliseconds. Defaults to 7 days ago.",
            "type": "number"
          },
          "until": {
            "description": "End of window as unix milliseconds. Defaults to now.",
            "type": "number"
          }
        },
        "required": [
          "funnelId"
        ],
        "type": "object"
      },
      "name": "compute_funnel"
    },
    {
      "description": "Create a new funnel on a project. Steps are 2–10 ordered events or pageview paths. conversionWindowMs caps how long a visitor has between consecutive steps (default 7 days); this is the step-to-step limit, without which a funnel is just event co-occurrence. Returns { id } on success.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "conversionWindowMs": {
            "description": "Max ms between consecutive steps. Default 7 days (604800000). Bounds: 60000 (1 min) to 7776000000 (90 days).",
            "type": "number"
          },
          "description": {
            "description": "Optional longer description.",
            "type": "string"
          },
          "name": {
            "description": "Human-readable name.",
            "type": "string"
          },
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "steps": {
            "description": "Ordered list of 2–10 steps. Visitors must hit them in order.",
            "items": {
              "additionalProperties": false,
              "properties": {
                "kind": {
                  "description": "'event' for a custom analytics.track() event, 'pageview' for a page-path match.",
                  "enum": [
                    "event",
                    "pageview"
                  ],
                  "type": "string"
                },
                "label": {
                  "description": "Optional friendly display name.",
                  "type": "string"
                },
                "match": {
                  "description": "Event name (for kind='event') or exact pageview path (for kind='pageview').",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "match"
              ],
              "type": "object"
            },
            "maxItems": 10,
            "minItems": 2,
            "type": "array"
          }
        },
        "required": [
          "project",
          "name",
          "steps"
        ],
        "type": "object"
      },
      "name": "create_funnel"
    },
    {
      "description": "Soft delete a funnel. The row is retained with status='deleted' and excluded from list/get/compute. Idempotent — calling twice is a no-op. Use if the funnel is obsolete; the record is kept for audit and cannot be undone from MCP.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "funnelId": {
            "type": "string"
          }
        },
        "required": [
          "funnelId"
        ],
        "type": "object"
      },
      "name": "delete_funnel"
    },
    {
      "description": "Count CUSTOM PRODUCT events for a specific project in a time window, optionally filtered to one event name and/or one user. Custom events are emitted by explicit analytics.track() calls in app code (signup_completed, payment_succeeded, etc.). This does NOT count page views — use pageviews_count or weekly_digest for those. Returns count, unique visitors, and a `truncated` flag if the scan hit the maximum scan size.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "description": "Optional event name to filter by (e.g. 'signup_completed'). If omitted, counts all custom events in the window. Do NOT pass 'page_view' here — page views are in a separate table.",
            "type": "string"
          },
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "since": {
            "description": "Start of window as unix milliseconds. Defaults to 7 days ago.",
            "type": "number"
          },
          "until": {
            "description": "End of window as unix milliseconds. Defaults to now.",
            "type": "number"
          },
          "user": {
            "description": "Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "events_count"
    },
    {
      "description": "Return the full definition of one funnel by id: name, description, ordered steps, and conversion window.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "funnelId": {
            "description": "Funnel id from list_funnels or create_funnel.",
            "type": "string"
          }
        },
        "required": [
          "funnelId"
        ],
        "type": "object"
      },
      "name": "get_funnel"
    },
    {
      "description": "Return the current month's custom-event usage, monthly quota, retention days, and plan name for the team.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "get_usage"
    },
    {
      "description": "List active funnels defined on a project. A funnel is a saved ordered sequence of steps (events or pageview paths) that Convalytics computes step-by-step conversion for. Soft-deleted funnels are excluded.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "list_funnels"
    },
    {
      "description": "List all Convalytics projects on the team this token belongs to. Useful when the agent needs to confirm the project it's querying against. No arguments.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "type": "object"
      },
      "name": "list_projects"
    },
    {
      "description": "Count page views for a specific project in a time window. Page views are the automatic hits captured by the browser script tag (separate from custom events). Use this for web-traffic questions like 'how many pageviews in the last 24 hours'. Default window is the last 7 days. Pass `user` to scope to one visitor.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "since": {
            "description": "Start of window as unix milliseconds. Defaults to 7 days ago.",
            "type": "number"
          },
          "until": {
            "description": "End of window as unix milliseconds. Defaults to now.",
            "type": "number"
          },
          "user": {
            "description": "Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "pageviews_count"
    },
    {
      "description": "Return the most recent custom events for a specific project, optionally filtered to one event name and/or one user. PII (userEmail, userName, props) is redacted by default; pass redact: false to include them.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Maximum number of events to return. Default 20, max 100.",
            "type": "number"
          },
          "name": {
            "description": "Optional event name to filter by (e.g. 'signup_completed'). Omit to return events of any name.",
            "type": "string"
          },
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "redact": {
            "description": "If true (default), userEmail/userName are null and props is {}. Set to false to include them.",
            "type": "boolean"
          },
          "user": {
            "description": "Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "recent_events"
    },
    {
      "description": "Return the top pages for a specific project, ranked by views in a time window. Default window is the last 7 days. Use list_projects first if you don't know the project name. Returns path, views, uniqueVisitors, and percentage of total views for each page. Pass `user` to see pages a specific visitor hit.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Maximum number of pages to return. Default 20, max 50.",
            "type": "number"
          },
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "since": {
            "description": "Start of window as unix milliseconds. Defaults to 7 days ago.",
            "type": "number"
          },
          "until": {
            "description": "End of window as unix milliseconds. Defaults to now.",
            "type": "number"
          },
          "user": {
            "description": "Optional. Filter to one visitor/user. Accepts userEmail (case-insensitive) or visitorId (exact). For the full per-user snapshot prefer user_activity.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "top_pages"
    },
    {
      "description": "Return the top referring hosts for a specific project, ranked by visit count in a time window. Includes '(direct)' for visits with no referrer. Default window is the last 7 days.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "limit": {
            "description": "Maximum number of referrers to return. Default 10, max 50.",
            "type": "number"
          },
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "since": {
            "description": "Start of window as unix milliseconds. Defaults to 7 days ago.",
            "type": "number"
          },
          "until": {
            "description": "End of window as unix milliseconds. Defaults to now.",
            "type": "number"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "top_referrers"
    },
    {
      "description": "Patch an existing funnel. Any subset of name/description/steps/conversionWindowMs. Refuses updates on deleted funnels.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "conversionWindowMs": {
            "type": "number"
          },
          "description": {
            "type": "string"
          },
          "funnelId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "steps": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "kind": {
                  "description": "'event' for a custom analytics.track() event, 'pageview' for a page-path match.",
                  "enum": [
                    "event",
                    "pageview"
                  ],
                  "type": "string"
                },
                "label": {
                  "description": "Optional friendly display name.",
                  "type": "string"
                },
                "match": {
                  "description": "Event name (for kind='event') or exact pageview path (for kind='pageview').",
                  "type": "string"
                }
              },
              "required": [
                "kind",
                "match"
              ],
              "type": "object"
            },
            "maxItems": 10,
            "minItems": 2,
            "type": "array"
          }
        },
        "required": [
          "funnelId"
        ],
        "type": "object"
      },
      "name": "update_funnel"
    },
    {
      "description": "Composite snapshot of a specific user's activity on a project. Returns an identity block (visitorId, userEmail, userName, firstSeen, lastSeen), total pageviews, total custom events, session count, top pages this user visited, their most-fired event names, and their 20 most recent events with props. Use this for 'how is dancleary54@gmail.com using my app?' style questions — one call, full picture. For ad-hoc drill-down (just a count, just recent events) pass `user` to the individual tools instead. Default window is the last 7 days.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          },
          "since": {
            "description": "Start of window as unix milliseconds. Defaults to 7 days ago.",
            "type": "number"
          },
          "until": {
            "description": "End of window as unix milliseconds. Defaults to now.",
            "type": "number"
          },
          "user": {
            "description": "User identifier. Accepts userEmail (case-insensitive, e.g. 'dan@example.com') or visitorId (the exact string passed as userId on the original track() call).",
            "type": "string"
          }
        },
        "required": [
          "project",
          "user"
        ],
        "type": "object"
      },
      "name": "user_activity"
    },
    {
      "description": "Composite snapshot of a project's web analytics over a lookback window. Returns unique visitors, pageviews, sessions, bounce rate, average session duration, top 5 pages, top 5 referrers, total custom events, and top 5 event names. Includes period-over-period comparison against the prior equal-length window unless compare: false. Prefer this over chaining top_pages + top_referrers + events_count when the agent just wants to report on the week.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "compare": {
            "description": "Include period-over-period comparison against the prior equal-length window. Default true. Set false for faster response when only current numbers matter.",
            "type": "boolean"
          },
          "days": {
            "description": "Lookback window in days, 1 to 90. Default 7.",
            "type": "number"
          },
          "project": {
            "description": "Project name (case-insensitive, e.g. 'slopbench') or project id from list_projects.",
            "type": "string"
          }
        },
        "required": [
          "project"
        ],
        "type": "object"
      },
      "name": "weekly_digest"
    }
  ]
}

What the leaf hashes

{"body":"dd3d9633b7d71c08a0c98a9dc89b7f0c7bfd8023595e0f07830adb9f73bc7bbd","id":570866,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793139967811135,"prev":null,"subject":"e22c9f80-13ca-424b-90c7-ce7bfea4b5b0","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. 0x59f6a1192ccb7f035b5712234ada4d827a6e5244286771afb578cbabe0bbd501
  2. 0x73e06b8a63f6b8f474fb4e71117e2d57263447c9bd2681ec2f02fc5f2a74fd83
  3. 0xeb6c69b855ac0781eb45bd960b452755ceb8e9bcd67989c22146a688768d6f20
  4. 0xdc2fce14e67b02a9d962e66d4b5f405411476f319e8d8505e3829b1243de7fcf
  5. 0x75d3a043957f48c5ff263f2d65d5e3c19742bc0879a281ac34b66c1c6024e14e
  6. 0x0287121c52978c275e33e6b5d2cadc4831e547f4548c15c4a7b0a70d9399ad7d
  7. 0x594a2e4e842281ac76d09c5b84e8c44d2545f25a8d72d4f9745dd6d549fea056
  8. 0xca8668bd7c0c1d3f1f2bbc181e35d838586dd82f6a80ea54bc715f911dcaaecb
  9. 0x37d0e6abc1c25a76707a8366003c32c6d376be0b7581cf84ea6e4cf5283ba767
  10. 0x6cf83a377be847f8724c2c044ff3e1c0d3b416a7089a20829dd187ec24c8e0c7
  11. 0x5a36e7e6d5cf42671ca353a841c8b4f2fd6b364ce4d06ca7fb1164d94f39f815
  12. 0x6f9c2e17fd073d07da42da76c8ca2f200b30027f0378b0d9628f8fac6f48cd16
  13. 0x5b3213451efe1e2950dd287afaede00cc8a45dfd9721ef9b3d698bde1eeb9909
  14. 0x674bc1173d39130be4d15bbfc7327f8a8af87eb251e54c8d4409c7e840b9e538
  15. 0xb78ea6a255dd06e2f402a1a733bca392fa6243920bcba95e8b80bdfc6ce5f553
  16. 0x3ed50f053eca72dfd3a9d45a11935240bfe691e57835c367ddebe2cbc49efe9d
  17. 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON