addrbookFor publishers
← The evidence ledger

Evidence row 56157

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.scalably/google-ads-mcp
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
9cfbcfe82d80fefaae120640bb658339b23e142cdb598d10d0081481df4675f0
Leaf
0x92f780f10d2b7b21e3493fa16164e5505fd472109048fa6c4a8f6f6d05f8a9cb

What was observed

{
  "endpoints": [
    [
      "web",
      "https://scalably.io/mcp/google-ads-mcp"
    ]
  ],
  "name": "Google Ads MCP",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-09-09T06:25:55.847425Z",
        "status": "active",
        "statusChangedAt": "2026-09-09T06:25:55.847425Z",
        "updatedAt": "2026-09-09T06:25:55.847425Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "description": "Google Ads MCP: GAQL queries, resources, recommendations, keyword ideas, change history. 11 tools.",
      "name": "io.scalably/google-ads-mcp",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "Google Ads API developer token from the Ads API Center",
              "isRequired": true,
              "isSecret": true,
              "name": "GOOGLE_ADS_DEVELOPER_TOKEN"
            },
            {
              "description": "OAuth2 client_id for a Desktop-app credential",
              "isRequired": true,
              "name": "GOOGLE_ADS_CLIENT_ID"
            },
            {
              "description": "OAuth2 client_secret paired with the client_id",
              "isRequired": true,
              "isSecret": true,
              "name": "GOOGLE_ADS_CLIENT_SECRET"
            },
            {
              "description": "Long-lived OAuth2 refresh_token for the adwords scope",
              "isRequired": true,
              "isSecret": true,
              "name": "GOOGLE_ADS_REFRESH_TOKEN"
            },
            {
              "description": "10-digit customer ID of the manager account (MCC)",
              "isRequired": true,
              "name": "GOOGLE_ADS_LOGIN_CUSTOMER_ID"
            },
            {
              "description": "Google Ads API version to target, default set by the server",
              "name": "GOOGLE_ADS_API_VERSION"
            },
            {
              "description": "Log level, default WARNING",
              "name": "GOOGLE_ADS_LOG_LEVEL"
            },
            {
              "description": "Use proto-plus message types, default true",
              "name": "GOOGLE_ADS_USE_PROTO_PLUS"
            }
          ],
          "identifier": "scalably-google-ads-mcp",
          "registryBaseUrl": "https://pypi.org",
          "registryType": "pypi",
          "runtimeHint": "uvx",
          "transport": {
            "type": "stdio"
          },
          "version": "1.0.1"
        },
        {
          "fileSha256": "9bb16efe79901a358e8c4976f69a18dc7562e85a4e7c22f65112dbcf85c60b1f",
          "identifier": "https://github.com/scalably-io/google-ads-mcp/releases/download/v1.0.1/google-ads-mcp.mcpb",
          "registryType": "mcpb",
          "transport": {
            "type": "stdio"
          }
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/scalably-io/google-ads-mcp"
      },
      "title": "Google Ads MCP",
      "version": "1.0.1",
      "websiteUrl": "https://scalably.io/mcp/google-ads-mcp"
    }
  },
  "source": "mcp_registry",
  "summary": "Google Ads MCP: GAQL queries, resources, recommendations, keyword ideas, change history. 11 tools."
}

What the leaf hashes

{"body":"9cfbcfe82d80fefaae120640bb658339b23e142cdb598d10d0081481df4675f0","id":56157,"kind":"listing","method":"baseline/1","observed_us":1793025437407516,"prev":null,"subject":"mcp_registry:io.scalably/google-ads-mcp","subject_kind":"source_record"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).

  1. 0x92f77a6b2ead325464338f777fe29b20701777a370178d92436941812f66a971
  2. 0x10d55417bec2d4ea5f0ee9278bc3e69a86805e51ef2134ecc5146182405c530b
  3. 0xad22682792f729c402877621508a6452e2dce04e0ca8408e8eb790c75341e41c
  4. 0xbdf9d1d07b6afa435c21bca11093c3eaec67cb660f7fbd647e542c5e8e136505
  5. 0x731542af79f5514fae3111b57b559b4e651b6c9de40a840369bbeaccc003492e
  6. 0xdd9796cf4c70efb9de366ef2a1b234b7c0a58f9af2c9825a9ebb5b19e5702373
  7. 0xd4fdcdd896810dd44671463e939ff70dbb5eaa1afbe78cdbe5add9aefb18954d
  8. 0xbf37a472631f7c9f2e6dcf91995f374227363448f4a983b461387ff216185751
  9. 0x5b65de95c5a7ba5b8c5e80ff96aa7a6db82e0e4dace39875ce6ceeb7e99207e0
  10. 0x578356ff984cd9d8af7804ab292b224cedc3adc7906f706cb4393c7f03af33b7
  11. 0xdcd590752acb338329aec3087ddc69ef4b8fcbe0bb91a9b8e37e17c10a9dfe92
  12. 0x3b55f6d5345bce3e1332e014f19526d25328fb6283d3518837a015c3621c0d1c
  13. 0x45c1d3062bbe98a6b1540c7e2ccf6516eedd6ef07fdfeb1ba77ee6272970447c
  14. 0xf0edabbb9ba0d643e5505d19d07637eb6f6aed0a1c7356af43ae7d84ae9ef0c5
  15. 0xf0bd63870f0bb378fa300bd33563050dcb7b3e02b44eb3ee550c1c534ec4b246
  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