← The evidence ledger
Evidence row 577914
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint 3c84f464-da33-4d28-a851-ecf5c2b74f09
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- 512a18048b9f71002b5ca00a27335837cc8cb14d75e5086df5768b19f22aea47
- Leaf
- 0x0733e20942543853c60ae34b8d5b705589e9f3e3eeb42e56ec308ecea6993df4
What was observed
{
"count": 12,
"tools": [
{
"description": "Read-only listing audit: prioritized findings (severity + impact) plus a summary, derived from the live public listing. Read-only — never edits or pushes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"type": "object"
},
"name": "audit_app"
},
{
"description": "Read-only GOOGLE PLAY listing audit: screenshot grade, the 30/80/4000 title/short/long-description budget, target-term coverage in the long description (Play's keyword surface), a keyword-stuffing guard, prioritized findings + summary, and capability locks for surfaces a public read can't see. Takes a Play package id (com.foo.bar) or a play.google.com URL — NOT a free-text name (Play has no public name search). Play has NO keyword field. Reads public Play data only; never edits or pushes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"brand": {
"description": "App brand name, so brand-burn in the short description is flagged",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"packageName": {
"description": "Exact Play package id (skips resolution)",
"type": "string"
},
"query": {
"description": "Google Play package id (com.foo.bar) or a play.google.com app URL",
"type": "string"
},
"targets": {
"description": "Target search terms to measure long-description coverage for",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object"
},
"name": "audit_play_app"
},
{
"description": "Read-only audit of YOUR OWN Google Play app via the official Play Developer API — full fidelity including the short description (which the public page can't show), with NO capability locks. Requires a configured Play service account (GOOGLE_PLAY_SERVICE_ACCOUNT). Reads only — it opens and DISCARDS a Play 'edit' and NEVER commits, so it can't publish. Owner-only; for a competitor use audit_play_app.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"brand": {
"description": "App brand name, so short-description brand-burn is flagged",
"type": "string"
},
"language": {
"description": "BCP-47 listing language, e.g. en-US",
"type": "string"
},
"packageName": {
"description": "Your app's Play package id, e.g. com.foo.bar",
"type": "string"
},
"targets": {
"description": "Target search terms to measure long-description coverage for",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"packageName"
],
"type": "object"
},
"name": "audit_play_app_owner"
},
{
"description": "Read-only competitor diff: resolves the named competitors and reports their current listings, what changed vs. the last seen state, and a digest line. Read-only metadata comparison; no ranking-algorithm data is invented.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"competitors": {
"description": "Competitor app names or bundle ids to compare against",
"items": {
"type": "string"
},
"minItems": 1,
"type": "array"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"required": [
"competitors"
],
"type": "object"
},
"name": "competitor_watch"
},
{
"description": "Read-only keyword opportunities: terms tracked competitors VISIBLY use that this app doesn't target and doesn't rank top-50 for, sorted by winnability. Inferred from competitor name/subtitle only — never their ranking algorithm.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"type": "object"
},
"name": "keyword_gaps"
},
{
"description": "Read-only localization expansion recommendations (ROI-sorted locales to add) for one of YOUR connected apps, from its most recent App Store Connect run. A static, bundled heuristic over the locales already read — no live install data is fabricated. Empty until you've run an ASC-connected pass.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"appId": {
"description": "Id of a connected app you own",
"type": "string"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "localization_gaps"
},
{
"description": "Read-only ASO snapshot of any App Store app (grade, lead rank, top-10 count, sample). No account or store push — the optimized copy + push commands stay behind the human-approved loop. Works without a key.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"type": "object"
},
"name": "preview_app"
},
{
"description": "Read-only, anonymized aggregate proof across all tracked apps (real rank-win numbers — no app names, no user data). This is the 'prove the rank moved' surface that closes the prepare → approve → push → prove loop. Works without a key.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "proof"
},
{
"description": "Returns a DRAFT optimized listing (name/subtitle/keywords/description) with validation for any app. THIS IS A DRAFT ONLY: it does NOT persist a proposal and does NOT push to the App Store. Publishing stays a human-approved action in ShipASO — an agent can draft and read; only a human approves and pushes.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"type": "object"
},
"name": "propose_copy"
},
{
"description": "Read-only organic rank check across the app's target keywords, plus winnability-ranked opportunities computed from those measured positions. Positions are live-measured, never fabricated.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"type": "object"
},
"name": "rank_check"
},
{
"description": "Read-only screenshot scoring for the app's live store gallery (count, score, grade, levers to improve). Read-only — never uploads or pushes assets.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"bundleId": {
"description": "Exact bundle id (skips resolution)",
"type": "string"
},
"country": {
"description": "ISO country storefront, e.g. US",
"maxLength": 2,
"minLength": 2,
"type": "string"
},
"query": {
"description": "App name, App Store URL, numeric id, or bundle id",
"type": "string"
}
},
"type": "object"
},
"name": "screenshot_coverage"
},
{
"description": "Read-only head-to-head rank war room for one of YOUR connected apps: your tracked-keyword rank history vs. live competitor positions on those same keywords. Reads stored data + live competitor ranks; writes nothing.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"appId": {
"description": "Id of a connected app you own",
"type": "string"
},
"competitors": {
"description": "Competitor names to compare (max 4)",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"appId"
],
"type": "object"
},
"name": "war_room"
}
]
}What the leaf hashes
{"body":"512a18048b9f71002b5ca00a27335837cc8cb14d75e5086df5768b19f22aea47","id":577914,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793142793967310,"prev":null,"subject":"3c84f464-da33-4d28-a851-ecf5c2b74f09","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (273461 rows).
- 0x0733dc1e27d3307724510a1319cfb53f96dad33ed59b95d6ac5d52ed96782e4a
- 0x30961946f25b7e2949fcf684f826dbd9a6a27cb7c18ac72e75b1b2c70a3a5719
- 0x014ae6b21ed4225d9daeff4ee97c9a6cb8e083ab47cf88e0212332ab66df9ebe
- 0x3c283471a699a6641947c0bbb163f9ccc5eb10555f013f4e72f54e73fe561c66
- 0xb82c5a07b6baf4be24afcc71f41c9b8040e60e0f71bfd1775d8434ccbc485271
- 0x19640211aff3ca6543f976439bbc9b74b71a6ead72bde695e4772dc475286f8b
- 0xc7706744359bd5da5b36e049e5983f5988457fe7dc75fefc7a733847746ae9cb
- 0x96dc708c055dcd983c3ed3bcf73c953be0b5338e2e816237bb1d7b4a01032713
- 0x975bd2d60d763c2a3813b33ba4ca96ad373abb710769e6a2d34a5f24cdf5340c
- 0xab20ea65b3d1d1695f3ec1ed472b124c0c34eec77e67077c24d8608443e280fc
- 0x14706fe5aa0e5f3898d45e678cf7ad8e049f525b3abf19494b1e25108e6f0c2d
- 0x83ecdc3f438927cf48db4a55310f9dfd15d99a4a97bbb753d7d44af98599978f
- 0x7e8c79bd0dee073006d03de64eaf1047d3bfd30041ac4fc765479ffd5a092e62
- 0x29e12cb67839430fa64ab8bd05d52bab606f2978d9e6d2fb094fece9438fd4de
- 0x2cf27e8a181d60d0dd27c186c2eddfcbb4e8fa71cf66feeb55a4d730e15ee8c4
- 0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b
- 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
- 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4