addrbookFor publishers
← The evidence ledger

Evidence row 54003

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.trakkr-aisearch/openai-ads-mcp
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
86202e0ac8429823abc1b94e720356aa8bd6d33f9062763b65e3a12aaaab8a0a
Leaf
0xdc1687f24da42dae2c8ca1b586e3c972d8fcd7033b0c4c7c5c720b9f7a440e95

What was observed

{
  "endpoints": [
    [
      "mcp",
      "https://openai-ads-mcp.trakkr.ai/mcp"
    ],
    [
      "web",
      "https://trakkr.ai/openai-ads-mcp"
    ]
  ],
  "name": "OpenAI Ads MCP",
  "owner_address": null,
  "raw": {
    "_meta": {
      "io.modelcontextprotocol.registry/official": {
        "isLatest": true,
        "publishedAt": "2026-07-22T07:16:59.80313Z",
        "status": "active",
        "statusChangedAt": "2026-07-22T07:16:59.80313Z",
        "updatedAt": "2026-07-22T07:16:59.80313Z"
      }
    },
    "server": {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "_meta": {
        "io.modelcontextprotocol.registry/publisher-provided": {
          "categories": [
            "Marketing",
            "Advertising",
            "AI Visibility"
          ],
          "keywords": [
            "openai-ads",
            "chatgpt-ads",
            "openai ads mcp",
            "chatgpt ads mcp",
            "advertiser-api",
            "mcp",
            "marketing-automation"
          ],
          "tools": [
            "get_account",
            "list_campaigns",
            "get_insights",
            "build_campaign",
            "draft_context_hints",
            "upload_creative",
            "send_conversions"
          ]
        }
      },
      "description": "OpenAI Ads MCP for ChatGPT Ads campaigns, creatives, audiences, insights, and conversions.",
      "name": "io.github.trakkr-aisearch/openai-ads-mcp",
      "packages": [
        {
          "environmentVariables": [
            {
              "description": "OpenAI Ads API key from Ads Manager. Scoped to one ad account.",
              "format": "string",
              "isRequired": true,
              "isSecret": true,
              "name": "OPENAI_ADS_API_KEY"
            },
            {
              "default": "1",
              "description": "Set to 1 for first connection so write tools are hidden.",
              "format": "boolean",
              "name": "OPENAI_ADS_MCP_READONLY"
            },
            {
              "default": "100",
              "description": "Optional budget guard for spend-changing tools. Defaults to 100.",
              "format": "number",
              "name": "OPENAI_ADS_BUDGET_CEILING_USD"
            }
          ],
          "identifier": "openai-ads-mcp",
          "registryType": "npm",
          "runtimeHint": "npx",
          "transport": {
            "type": "stdio"
          },
          "version": "0.1.7"
        },
        {
          "environmentVariables": [
            {
              "description": "OpenAI Ads API key from Ads Manager. Scoped to one ad account.",
              "format": "string",
              "isRequired": true,
              "isSecret": true,
              "name": "OPENAI_ADS_API_KEY"
            },
            {
              "default": "1",
              "description": "Set to 1 for first connection so write tools are hidden.",
              "format": "boolean",
              "name": "OPENAI_ADS_MCP_READONLY"
            },
            {
              "default": "100",
              "description": "Optional budget guard for spend-changing tools. Defaults to 100.",
              "format": "number",
              "name": "OPENAI_ADS_BUDGET_CEILING_USD"
            }
          ],
          "identifier": "openai-ads-mcp",
          "registryType": "pypi",
          "runtimeHint": "uvx",
          "transport": {
            "type": "stdio"
          },
          "version": "0.1.7"
        }
      ],
      "remotes": [
        {
          "headers": [
            {
              "description": "OpenAI Ads API key from Ads Manager. Required only for Ads API tool calls; discovery, initialize, and tools/list work without it.",
              "isSecret": true,
              "name": "X-OpenAI-Ads-API-Key"
            }
          ],
          "type": "streamable-http",
          "url": "https://openai-ads-mcp.trakkr.ai/mcp"
        }
      ],
      "repository": {
        "id": "1274750114",
        "source": "github",
        "url": "https://github.com/trakkr-aisearch/openai-ads-mcp"
      },
      "title": "OpenAI Ads MCP",
      "version": "0.1.7",
      "websiteUrl": "https://trakkr.ai/openai-ads-mcp"
    }
  },
  "source": "mcp_registry",
  "summary": "OpenAI Ads MCP for ChatGPT Ads campaigns, creatives, audiences, insights, and conversions."
}

What the leaf hashes

{"body":"86202e0ac8429823abc1b94e720356aa8bd6d33f9062763b65e3a12aaaab8a0a","id":54003,"kind":"listing","method":"baseline/1","observed_us":1793025424745766,"prev":null,"subject":"mcp_registry:io.github.trakkr-aisearch/openai-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. 0xdc16e47158dfa49ba9fe431ff4001810e50bbc79640d8be77d0f01bb8e7d71f5
  2. 0x88b72402a6991ef2d19859c2f92131c5ee6b4cf3574bf7d7bc36434cb9af1f17
  3. 0x73de2cd525ceff0dc54e3437017bc0cad41ed7d4d1c32f2ae2a5798f171d2f56
  4. 0x116209332967053a9b0cadbfb3435a8494ae01a876944c089e7375c95d73a516
  5. 0x9e5f87a9fcab691e20b81fe0cfb556f4b92657a07cbf5a85bd1585ae621986cd
  6. 0xf60d432653452f895e5cbb7f1f27e0ba91295b77ddfa3663b796b81e843d65a7
  7. 0xf9d7917c6c5928594bba005f940d0f1c3cfc87ea47b97e5b159bed1aa850daf3
  8. 0x951736d9d598e93f09efae42a84e08ef77bb5a21443df842f36a9d33f7f0cd81
  9. 0x4e1572e2e2ec907331277d3602fe8e09dd600e1fc06fc63e36876d8476f6f39a
  10. 0xafea070fa3cd55d0c50ec39d914de8a0022e87d64becb9dc6998df49697576c3
  11. 0x7ec512db50ffb560b82f17e53667bcea802a69de4d98e67a44363985fac7f4da
  12. 0x4b7a7525bd11eaa3154ce1b1171d1b54b83370163f39203e230c520e42560c4b
  13. 0xa4edde833302b48399053e2519aea1aed1074cd102bf4b553643df1866cce4ec
  14. 0x0b7541c75cc482a7134110311d7dbd02095d969ba21177de9b21a52a55981718
  15. 0x6dc40f983a3840a0ad927a9ca17f4ff1e3b649a6c735e2a09b140db7c2caf13b
  16. 0x703f95866af09c5e5d6ead7411e9a10f964a41a2aff64d4a55ff0053c023a023
  17. 0xd0651cb9bc8155eb52b5247d506e74b8a935057dc190ba52091702ac25ed3a40
  18. 0x9a9024edb5069d88a324facb310a5ce8e495214bbaa968f077bede437390194f
  19. 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON