addrbookFor publishers
← 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).

  1. 0x0733dc1e27d3307724510a1319cfb53f96dad33ed59b95d6ac5d52ed96782e4a
  2. 0x30961946f25b7e2949fcf684f826dbd9a6a27cb7c18ac72e75b1b2c70a3a5719
  3. 0x014ae6b21ed4225d9daeff4ee97c9a6cb8e083ab47cf88e0212332ab66df9ebe
  4. 0x3c283471a699a6641947c0bbb163f9ccc5eb10555f013f4e72f54e73fe561c66
  5. 0xb82c5a07b6baf4be24afcc71f41c9b8040e60e0f71bfd1775d8434ccbc485271
  6. 0x19640211aff3ca6543f976439bbc9b74b71a6ead72bde695e4772dc475286f8b
  7. 0xc7706744359bd5da5b36e049e5983f5988457fe7dc75fefc7a733847746ae9cb
  8. 0x96dc708c055dcd983c3ed3bcf73c953be0b5338e2e816237bb1d7b4a01032713
  9. 0x975bd2d60d763c2a3813b33ba4ca96ad373abb710769e6a2d34a5f24cdf5340c
  10. 0xab20ea65b3d1d1695f3ec1ed472b124c0c34eec77e67077c24d8608443e280fc
  11. 0x14706fe5aa0e5f3898d45e678cf7ad8e049f525b3abf19494b1e25108e6f0c2d
  12. 0x83ecdc3f438927cf48db4a55310f9dfd15d99a4a97bbb753d7d44af98599978f
  13. 0x7e8c79bd0dee073006d03de64eaf1047d3bfd30041ac4fc765479ffd5a092e62
  14. 0x29e12cb67839430fa64ab8bd05d52bab606f2978d9e6d2fb094fece9438fd4de
  15. 0x2cf27e8a181d60d0dd27c186c2eddfcbb4e8fa71cf66feeb55a4d730e15ee8c4
  16. 0x518b93854db03dc9fc938883abf30da6eaae5ae0d4336903968fd32a7df8c71b
  17. 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
  18. 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
  19. 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
Day root
0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
Chained
0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
Published
On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4

How to check it · This row as JSON