← The evidence ledger
Evidence row 568328
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint a0dae477-cfc9-44c4-8442-0d512ede453f
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 994a599a64817d8f9f9cf59ae7cca0a3c1c6f936c6b8e12dea996becbee75b37
- Leaf
- 0x7b00d4968ee409d678a4341c757f6f52614de537a2122a7144ea5cf2ecb9c5a8
What was observed
{
"count": 6,
"tools": [
{
"description": "Live catalogue totals plus the valid values for search filters (brands, product types, conditions, flexes, hands, price range). Call this before filtered searches if unsure which brand or product_type spellings the catalogue uses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"context": {
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
"type": "string"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "get_catalog_stats"
},
{
"description": "Deal-quality assessment for one product: CaddenceScore (0-100 rating of the current best DEAL, not the club), price trajectory vs typical/low/high, used market stats, and per-build availability (condition/flex/loft/hand) with the cheapest retailer and a buy_url purchase link per build. Use this to answer \"is this a good price right now?\".",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"context": {
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
"type": "string"
},
"product": {
"description": "Product slug (preferred, from search results) or numeric product id",
"minLength": 1,
"type": "string"
},
"slug": {
"description": "Alias for product — pass either",
"minLength": 1,
"type": "string"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "get_deal_intelligence"
},
{
"description": "Current best-value products across the UK market: largest verified price spreads between retailers (3+ retailers, false-positive filters applied). Good for \"what are the best golf deals right now?\". Follow up with get_product_offers for purchase links.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"category": {
"description": "Product type filter, e.g. \"driver\", \"iron_set\", \"putter\"",
"type": "string"
},
"context": {
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
"type": "string"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "get_market_deals"
},
{
"description": "Daily lowest/average UK price for one product over a trailing window, plus summary stats (historical low with date, high, trend direction). Optionally scoped to a variant configuration; if the variant series is too thin the backend falls back to product-level history (see scope field).",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"condition": {
"enum": [
"new",
"used"
],
"type": "string"
},
"context": {
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
"type": "string"
},
"days": {
"default": 90,
"description": "Trailing window in days",
"maximum": 365,
"minimum": 7,
"type": "integer"
},
"flex": {
"type": "string"
},
"hand": {
"description": "e.g. \"RH\" or \"LH\"",
"type": "string"
},
"loft": {
"type": "string"
},
"product": {
"description": "Product slug (preferred, from search results) or numeric product id",
"minLength": 1,
"type": "string"
},
"slug": {
"description": "Alias for product — pass either",
"minLength": 1,
"type": "string"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "get_price_history"
},
{
"description": "Current UK retailer offers for one product, in-stock first then cheapest, with variant details (shaft, flex, hand, loft, condition). The summary object always gives the cheapest in-stock new offer and the cheapest in-stock used offer, with counts, whatever condition is requested. Used means every second-hand condition (used, refurbished, ex-display); each offer still states its own condition. Set condition to \"new\" when the shopper wants a new club and \"used\" for second-hand; the default \"all\" mixes both. Each offer and each cheapest entry includes buy_url, a Caddence redirect link. Always present buy_url as the purchase link when the user wants to buy; never reconstruct or substitute retailer URLs.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"condition": {
"description": "Which offers to list: \"new\", \"used\" (any second-hand condition) or \"all\" (default; reserves room for both so used stock cannot hide new). Applied before the 30-offer cap.",
"enum": [
"new",
"used",
"all"
],
"type": "string"
},
"context": {
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
"type": "string"
},
"product": {
"description": "Product slug (preferred, from search results) or numeric product id",
"minLength": 1,
"type": "string"
},
"slug": {
"description": "Alias for product — pass either",
"minLength": 1,
"type": "string"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "get_product_offers"
},
{
"description": "Search Caddence's UK golf equipment price-comparison catalogue (clubs, balls, bags, shoes, accessories across all major UK golf retailers; prices in GBP, refreshed daily). Returns best current prices with retailer counts. When in_stock is false, price is the last seen price, not a live offer. For retailer offers and purchase links, follow up with get_product_offers using the returned slug. If unsure of valid brand or product_type values, call get_catalog_stats first.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"brand": {
"description": "Exact brand filter, e.g. \"Titleist\"",
"type": "string"
},
"condition": {
"enum": [
"new",
"used"
],
"type": "string"
},
"context": {
"description": "Explain why you are calling this tool and how it fits into the user's overall goal. This parameter is used for analytics and user intent tracking. YOU MUST provide 15-25 words (count carefully). NEVER use first person ('I', 'we', 'you') - maintain third-person perspective. NEVER include sensitive information such as credentials, passwords, or personal data. Example (20 words): \"Searching across the organization's repositories to find all open issues related to performance complaints and latency issues for team prioritization.\"",
"type": "string"
},
"limit": {
"default": 10,
"maximum": 25,
"minimum": 1,
"type": "integer"
},
"max_price": {
"description": "Maximum price in GBP",
"exclusiveMinimum": 0,
"type": "number"
},
"min_price": {
"description": "Minimum price in GBP",
"minimum": 0,
"type": "number"
},
"offset": {
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"on_sale": {
"description": "Only products currently below RRP",
"type": "boolean"
},
"product_type": {
"description": "Exact type filter, e.g. \"driver\", \"iron_set\", \"putter\", \"balls\"",
"type": "string"
},
"query": {
"description": "Free-text search, e.g. \"taylormade qi10 driver\"",
"type": "string"
},
"sort_by": {
"enum": [
"price_low",
"price_high",
"savings",
"rrp_discount"
],
"type": "string"
}
},
"required": [
"context"
],
"type": "object"
},
"name": "search_golf_products"
}
]
}What the leaf hashes
{"body":"994a599a64817d8f9f9cf59ae7cca0a3c1c6f936c6b8e12dea996becbee75b37","id":568328,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793138983378714,"prev":null,"subject":"a0dae477-cfc9-44c4-8442-0d512ede453f","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0x7b009c172ca84fac4d0f0c54c898e1e175bc146b3d16e96a82e54ddf42979f75
- 0x020a2211952f5cd630512fad78ce6a4f25a3a793a2ef295f3eb5804f11f6f544
- 0x0affecb1429c5ecdfe4e21e63be78f60dc300f0387e032ce86903f3c5ee97567
- 0x7807ef0a2cc2f26c2de3f2b8dcdea336cb7cbbb51b0ecafaea0f462358a76699
- 0x29c82b5d1f3d8d8c5c07c9b7256811b4db0d67b1710a3793f8898e02a345ba08
- 0x30666b8f8dede1980bbc5dc91bf200904e3d0c3e059d3d52159a4e7f19a7a9ce
- 0xf48ce44e782c9dfb0a0eabcf04578c4d085f31fda08e71866a4fa9b9c8e25c29
- 0x0393524a7b08577bcb0082fbecece07e4a642d0d412c9e4f95bc5f05e81a6508
- 0x052b54bf9ef59149f047f91c868c9dd7147804cc949509af060da089db214721
- 0xfef57df15e224ff9386b18d4cb8f7ec9c25b01deb7b18ef2a9c35d5bed8ea685
- 0x926531ee7b85e18ef250d5e2cf7f1fe039b14d7d9a1ebadd7e87f963de66741a
- 0x0574b16d30fa9d3621e88c3779ea2cd142521826d4e75735f3ae6d4ed075cfc4
- 0x8f2d125f5fe55a24b5da16577766eeaa13f24a272bb4c1c016f423ae917da681
- 0x9848c068b1371232529d2b5738fdc45b854c57da041b69ea7c9e112b14e2d9d1
- 0x275720ecabb68df33eee92ae4fd70572a8d952d6c61c061c2869cfc3217aa5c5
- 0x23cf9bb4337ee8be7fcae368fd69d24c62c11fb45882127b4cd919bb96a19996
- 0x0e01aa9525097570a6edaf32bfc959de57bf5c24317cf10c0716affea85ca60d
- 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4