← Assay Observatory

⚡ 4-Protocol A2A, Glama 6-Dim TDQS, x402 Bazaar & Stripe MPP Compiler

Assay Badge
Target: https://api.adadvisor.ai
Source: Live MCP JSON-RPC (tools/list) | Tools Audited: 43 | Current Glama TDQS: 4.33/5.0 (86.7/100) → Compiled: 5.0/5.0 (100/100)
1. Glama 6-Dim TDQS: 4.33/5.0 → 5.0/5.0
2. A2A Agent Card: ○ MISSING (Auto-Generated in $9 Pack)
3. x402 v2 Bazaar: ● Ready in $9 Pack
4. Stripe MPP (-32042): ● Ready in $9 Pack

Embed Verified README Badge (Free): [![Assay MCP Security](https://assay.agentdiet.dev/v1/badge.svg?target=https://api.adadvisor.ai)](https://assay.agentdiet.dev/?inspect=https://api.adadvisor.ai)

Canonical SHA-256 Schema Lock: sha256:ba243fe253d08.. → sha256:b9b2232edc138..

1. Per-Tool Glama 2026 Rubric Breakdown (43 Tools)

MCP Tool NameCurrent TDQSDetected Glama Rubric Deductions (Behavior / Conciseness / Parameters / Usage / Schema)
list_ad_accounts4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
list_pages4.35/5.0 (87)Behavior 3/5: no side-effect/quota disclosure
list_campaigns4.35/5.0 (87)Missing outputSchema (Completeness -1)
list_adsets4.35/5.0 (87)Missing outputSchema (Completeness -1)
list_ads4.35/5.0 (87)Missing outputSchema (Completeness -1)
get_performance4.35/5.0 (87)Missing outputSchema (Completeness -1)
get_timeseries4.35/5.0 (87)Missing outputSchema (Completeness -1)
get_results_health3.7/5.0 (74)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose
change_entity_status4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
change_entity_budget3.7/5.0 (74)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose
update_entity4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
duplicate_campaign4.35/5.0 (87)Usage Guidelines 3/5: no sibling routing
duplicate_adset4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
duplicate_ad4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
search_targeting4.35/5.0 (87)Behavior 3/5: no side-effect/quota disclosure
estimate_audience_size4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
list_custom_audiences3.05/5.0 (61)Missing outputSchema (Completeness -1), Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
create_website_audience4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
create_lookalike_audience4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
update_adset_targeting4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
create_campaign4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
create_adset4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
get_pixel_health3.7/5.0 (74)Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
list_creatives3.7/5.0 (74)Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure
create_creative4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
create_ad4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
list_lead_forms4.35/5.0 (87)Behavior 3/5: no side-effect/quota disclosure
get_lead_form4.35/5.0 (87)Behavior 3/5: no side-effect/quota disclosure
check_lead_gen_readiness4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
create_lead_form_audience4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
set_lead_form_status3.7/5.0 (74)Usage Guidelines 3/5: no sibling routing, Parameters 3/5: no cross-param interaction prose
create_lead_form4.9/5.0 (98)5.0/5.0 Glama Rubric Ready
upload_creatives4.35/5.0 (87)Behavior 3/5: no side-effect/quota disclosure
init_upload4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
complete_upload4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
upload_ad_image3.7/5.0 (74)Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
upload_ad_video3.7/5.0 (74)Parameters 3/5: no cross-param interaction prose, Behavior 3/5: no side-effect/quota disclosure
search_ad_images4.35/5.0 (87)Missing outputSchema (Completeness -1)
search_ad_videos3.7/5.0 (74)Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure
preview_existing_creatives3.7/5.0 (74)Missing outputSchema (Completeness -1), Behavior 3/5: no side-effect/quota disclosure
list_media_assets4.35/5.0 (87)Parameters 3/5: no cross-param interaction prose
register_media_assets4.35/5.0 (87)Usage Guidelines 3/5: no sibling routing
list_promotable_posts4.9/5.0 (98)5.0/5.0 Glama Rubric Ready

2. 🔒 FREE LIVE PREVIEW (Tool 1 of 43 Compiled to 5.0/5.0 TDQS + A2A Skill #1)

{
  "tool_1_before": {
    "name": "list_ad_accounts",
    "title": "List Ad Accounts",
    "description": "Discover and list all Meta ad accounts the user can access \u2014 start here.\n\nThis is the entry point for every session. Call this FIRST to find available\nad accounts and get the ad_account_id values required by all other tools.\n\nReturns each account's name, numeric ID, platform type, business name,\ncurrency, data_synced / landed / sync_state, and pixel summary (id, name,\nlast_fired_time, and hosts for each pixel on the account). Use the hosts\nto identify which pixel belongs to which website/business.\n\ndata_synced=false means the account's first Meta sync has not completed:\nhistory older than 90 days is still syncing. While live_reads_enabled is\ntrue, every read tool then answers live from Meta and is complete for the\nlast 90 days and for current entities \u2014 do not wait for data_synced to\nanalyse recent performance. A question the live path cannot answer\n(history beyond 90 days, too many entities) comes back as\nstatus='not_yet_landed' with the sync_state; sync_state.streams_done /\nstreams_total is what to relay when the user asks how far along the sync\nis. While live_reads_enabled is false such accounts read the partial\nsynced copy, as before.\n\nAfter listing accounts, read the resource adadvisor://account/{ad_account_id}/context\nto get the numbers this business's ads are judged by (break-even ROAS and AOV\nfor a sales business, break-even and target cost per lead for a leads\nbusiness, plus the daily budget cap) and the AI-generated business research\nreport.",
    "inputSchema": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "outputSchema": {
      "additionalProperties": true,
      "description": "Response from list_ad_accounts.",
      "properties": {
        "count": {
          "description": "Number of accounts returned.",
          "type": "integer"
        },
        "live_reads_enabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Environment switch. True: accounts whose first sync has not completed are read live from Meta (90-day window). False: such accounts read the partial synced copy, as before."
        },
        "accounts": {
          "items": {
            "additionalProperties": true,
            "description": "One ad account row from list_ad_accounts.",
            "properties": {
              "ad_account_id": {
                "description": "Numeric Meta ad account ID.",
                "type": "string"
              },
              "ad_account_name": {
                "description": "Human-readable account name.",
                "type": "string"
              },
              "account_type": {
                "description": "Platform type, e.g. 'meta', 'tiktok'.",
                "type": "string"
              },
              "is_active": {
                "description": "Whether the account is connected and active.",
                "type": "boolean"
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "IANA timezone name."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "ISO-4217 currency."
              },
              "data_synced": {
                "description": "False until the account's first Meta sync has completed in full. While false (and live_reads_enabled is true) reads are served live from Meta and are complete for the last 90 days and current entities; only older history is still syncing.",
                "type": "boolean"
              },
              "landed": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "The switch the data service routes on: true = every read comes from the synced copy; false = the first sync is still running. Null for non-Meta accounts or when the sync record is unreadable."
              },
              "sync_state": {
                "anyOf": [
                  {
                    "additionalProperties": true,
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Progress of the first sync (Meta accounts): landed, phase (initial | catchup | landed | failed), streams {name: pending | running | completed | failed}, streams_done / streams_total, insights_chunks {done, total}, started_at, landed_at, failed_at. Relay streams_done/streams_total when the user asks how far along the sync is."
              },
              "business_name": {
                "description": "AdAdvisor-side business name.",
                "type": "string"
              },
              "business_id": {
                "description": "Internal business UUID.",
                "type": "string"
              },
              "pixels": {
                "anyOf": [
                  {
                    "items": {
                      "additionalProperties": true,
                      "description": "Pixel summary attached to an ad account.",
                      "properties": {
                        "id": {
                          "description": "Pixel ID.",
                          "type": "string"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Pixel display name."
                        },
                        "last_fired_time": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "ISO-8601 timestamp of the last firing."
                        },
                        "hosts": {
                          "anyOf": [
                            {
                              "items": {
                                "additionalProperties": true,
                                "type": "object"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Domains the pixel fires on, sorted by hit count."
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Pixel summary (Meta accounts only)."
              }
            },
            "required": [
              "ad_account_id",
              "ad_account_name",
              "account_type",
              "is_active",
              "data_synced",
              "business_name",
              "business_id"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "accounts"
      ],
      "type": "object"
    },
    "annotations": {
      "title": "List Ad Accounts",
      "readOnlyHint": true,
      "openWorldHint": true
    },
    "_meta": {
      "fastmcp": {
        "tags": [
          "discovery",
          "read"
        ]
      }
    }
  },
  "tool_1_compiled_5_0_tdqs": {
    "name": "list_ad_accounts",
    "title": "List Ad Accounts",
    "description": "Discover and list all Meta ad accounts the user can access \u2014 start here.\n\nThis is the entry point for every session. Call this FIRST to find available\nad accounts and get the ad_account_id values required by all other tools.\n\nReturns each account's name, numeric ID, platform type, business name,\ncurrency, data_synced / landed / sync_state, and pixel summary (id, name,\nlast_fired_time, and hosts for each pixel on the account). Use the hosts\nto identify which pixel belongs to which website/business.\n\ndata_synced=false means the account's first Meta sync has not completed:\nhistory older than 90 days is still syncing. While live_reads_enabled is\ntrue, every read tool then answers live from Meta and is complete for the\nlast 90 days and for current entities \u2014 do not wait for data_synced to\nanalyse recent performance. A question the live path cannot answer\n(history beyond 90 days, too many entities) comes back as\nstatus='not_yet_landed' with the sync_state; sync_state.streams_done /\nstreams_total is what to relay when the user asks how far along the sync\nis. While live_reads_enabled is false such accounts read the partial\nsynced copy, as before.\n\nAfter listing accounts, read the resource adadvisor://account/{ad_account_id}/context\nto get the numbers this business's ads are judged by (break-even ROAS and AOV\nfor a sales business, break-even and target cost per lead for a leads\nbusiness, plus the daily budget cap) and the AI-generated business research\nreport. WHEN TO USE: Call list_ad_accounts for this operation; for sibling workflows use list_pages, list_campaigns, list_adsets. WHEN NOT TO USE: Do not call for unrelated mutations. PARAMETER INTERACTIONS: Takes no required arguments. Read-only and idempotent; failed calls do not mutate state.",
    "inputSchema": {
      "additionalProperties": false,
      "properties": {},
      "type": "object"
    },
    "outputSchema": {
      "additionalProperties": true,
      "description": "Response from list_ad_accounts.",
      "properties": {
        "count": {
          "description": "Number of accounts returned.",
          "type": "integer"
        },
        "live_reads_enabled": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Environment switch. True: accounts whose first sync has not completed are read live from Meta (90-day window). False: such accounts read the partial synced copy, as before."
        },
        "accounts": {
          "items": {
            "additionalProperties": true,
            "description": "One ad account row from list_ad_accounts.",
            "properties": {
              "ad_account_id": {
                "description": "Numeric Meta ad account ID.",
                "type": "string"
              },
              "ad_account_name": {
                "description": "Human-readable account name.",
                "type": "string"
              },
              "account_type": {
                "description": "Platform type, e.g. 'meta', 'tiktok'.",
                "type": "string"
              },
              "is_active": {
                "description": "Whether the account is connected and active.",
                "type": "boolean"
              },
              "timezone": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "IANA timezone name."
              },
              "currency": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "ISO-4217 currency."
              },
              "data_synced": {
                "description": "False until the account's first Meta sync has completed in full. While false (and live_reads_enabled is true) reads are served live from Meta and are complete for the last 90 days and current entities; only older history is still syncing.",
                "type": "boolean"
              },
              "landed": {
                "anyOf": [
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "The switch the data service routes on: true = every read comes from the synced copy; false = the first sync is still running. Null for non-Meta accounts or when the sync record is unreadable."
              },
              "sync_state": {
                "anyOf": [
                  {
                    "additionalProperties": true,
                    "type": "object"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Progress of the first sync (Meta accounts): landed, phase (initial | catchup | landed | failed), streams {name: pending | running | completed | failed}, streams_done / streams_total, insights_chunks {done, total}, started_at, landed_at, failed_at. Relay streams_done/streams_total when the user asks how far along the sync is."
              },
              "business_name": {
                "description": "AdAdvisor-side business name.",
                "type": "string"
              },
              "business_id": {
                "description": "Internal business UUID.",
                "type": "string"
              },
              "pixels": {
                "anyOf": [
                  {
                    "items": {
                      "additionalProperties": true,
                      "description": "Pixel summary attached to an ad account.",
                      "properties": {
                        "id": {
                          "description": "Pixel ID.",
                          "type": "string"
                        },
                        "name": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Pixel display name."
                        },
                        "last_fired_time": {
                          "anyOf": [
                            {
                              "type": "string"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "ISO-8601 timestamp of the last firing."
                        },
                        "hosts": {
                          "anyOf": [
                            {
                              "items": {
                                "additionalProperties": true,
                                "type": "object"
                              },
                              "type": "array"
                            },
                            {
                              "type": "null"
                            }
                          ],
                          "default": null,
                          "description": "Domains the pixel fires on, sorted by hit count."
                        }
                      },
                      "required": [
                        "id"
                      ],
                      "type": "object"
                    },
                    "type": "array"
                  },
                  {
                    "type": "null"
                  }
                ],
                "default": null,
                "description": "Pixel summary (Meta accounts only)."
              }
            },
            "required": [
              "ad_account_id",
              "ad_account_name",
              "account_type",
              "is_active",
              "data_synced",
              "business_name",
              "business_id"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "count",
        "accounts"
      ],
      "type": "object"
    },
    "annotations": {
      "title": "List Ad Accounts",
      "readOnlyHint": true,
      "destructiveHint": false,
      "idempotentHint": true,
      "openWorldHint": true
    },
    "_meta": {
      "fastmcp": {
        "tags": [
          "discovery",
          "read"
        ]
      }
    }
  },
  "auto_generated_a2a_skill_1_preview": {
    "id": "list-ad-accounts",
    "name": "List Ad Accounts",
    "description": "Discover and list all Meta ad accounts the user can access \u2014 start here.\n\nThis is the entry point for every session. Call this FIRST to find available\nad accounts and get the ad_account_id values required by all other to",
    "tags": [
      "mcp",
      "a2a",
      "x402",
      "list"
    ]
  },
  "signed_mcp_lock_preview": {
    "target": "https://api.adadvisor.ai",
    "tools_hash": "sha256:b9b2232edc138927d4d413968883443d70a8f90283e92ac00ad9f5731641ad5b",
    "tdqs": 5.0,
    "protocols": [
      "mcp-2025-03-26",
      "a2a-0.2.1",
      "x402-v2-bazaar",
      "stripe-mpp-32042"
    ],
    "signature": "asr_lock_5c4e873fba63d858cc9c4e19b7ef08a7"
  },
  "locked_bundle_contents": "Unlock remaining 42 compiled 5.0/5.0 tools + full /.well-known/agent-card.json + /.well-known/mcp.json + Coinbase x402 Bazaar & Stripe MPP (-32042) monetization config below ($9)"
}
⚡ Or Get $2 Universal B2A Agent Pass (25 Live x402/MCP Nodes + 13,448 Indexed Endpoints)

Verified 5.0/5.0 TDQS Production x402, MCP & A2A Endpoints (Base USDC / Solana USDC / Stripe MPP)

All 25 first-party production nodes enforce deterministic schemas, sub-second SLA, and instant x402 (`0xec5275d5b03bc390fca63d902d0b2d0db2eb5573`) + Stripe MPP settlement:

1. AgentDiet Token Distiller ($0.001) — /v1/distill | /mcp 2. X402-Broker 13,400+ Router ($0.002) — /v1/x402-broker 3. Prompt-Guard Firewall ($0.002) — /v1/prompt-guard 4. JSON-Repair Validator ($0.001) — /v1/json-repair 5. SERP-Extract Grounding ($0.002) — /v1/serp-extract 6. LLMs.txt Compiler ($0.005) — /v1/llms-generator 7. GitHub Repo Auditor ($0.005) — /v1/github-audit 8. Company Tech-Stack Enrich ($0.005) — /v1/company-enrich 9. SEC EDGAR 10-K/10-Q Intel ($0.008) — /v1/sec-intel 10. Domain OSINT & TLS Recon ($0.003) — /v1/domain-osint 11. Email MX/SPF/DMARC Verifier ($0.002) — /v1/email-verify 12. ArXiv AI/CS Paper Digest ($0.003) — /v1/arxiv-digest 13. E-Commerce Price Extractor ($0.008) — /v1/shopify-spy 14. x402 Endpoint SLA Auditor ($0.005) — /v1/x402-audit 15. On-Chain Rug & Honeypot Scanner ($0.008) — /v1/onchain-risk 16. DEX Liquidity & Slippage Intel ($0.005) — /v1/token-intel 17. Polymarket Live Odds Feed ($0.004) — /v1/polymarket-odds 18. DeFi Stablecoin APY Scanner ($0.005) — /v1/defi-yield 19. HackerNews Sentiment Pulse ($0.003) — /v1/hn-pulse 20. Shopify Catalog & App Intel ($0.006) — /v1/shopify-intel 21. DEX Whale Momentum Scanner ($0.006) — /v1/whale-momentum 22. 5-Min DeFi/DEX Alpha Stream ($0.005) — /v1/alpha-stream 23. 4-Protocol MCP TDQS Compiler ($0.008) — /v1/mcp-compiler 24. Real-Time OSV/CVE Vulnerability Intel ($0.004) — /v1/cve-intel 25. Assay Pre-Flight Security Certifier ($0.005) — /v1/certify