Skip to main content
Glama

validate_bid_response

Read-onlyIdempotent

Validate an OpenRTB 2.x bid response JSON payload against a tracked spec version. Optionally cross-validate it against the originating bid request (impid, mtype, adm markup, dealid, seat, and currency coherence). Returns structured issues with rule ids, severities, and JSON paths.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "payload": "<payload>"
    },
    "name": "validate_bid_response"
  }
}

Input Schema

NameRequiredDescriptionDefault
dialectNoJSON dialect the payload is written in. spec-json (default) types flag fields such as imp.secure, regs.coppa and pmp.private_auction as integers, the way the OpenRTB specification does. proto-json follows the IAB OpenRTB protobuf schema, which declares 28 of those fields bool, so true/false is correct there and an integer is the error. Use proto-json for anything that came off a gRPC bidstream integration.
payloadYesThe OpenRTB bid response as a raw JSON string.
profileNoPublished vendor constraints on top of the selected spec. Choose the matching traffic direction. spec is the default. xandr targets Microsoft Monetize bidder traffic; magnite targets DV+ xAPI. Buyer, supplier and SDK profiles have distinct contracts. Optional extension fields remain optional unless the source explicitly requires them. A direction without a verified contract applies canonical checks and returns a scope warning.
versionNoOpenRTB version id to validate against (default 2.6-202606). One of: 2.0, 2.1, 2.2, 2.3, 2.3.1, 2.4, 2.5, 2.6-202204, 2.6-202210, 2.6-202211, 2.6-202303, 2.6-202309, 2.6-202402, 2.6-202409, 2.6-202501, 2.6-202505, 2.6-202606, 3.0
bid_requestNoOptional: the originating OpenRTB bid request as a raw JSON string. When supplied, every bid is also cross-checked against the Imp it references.
sample_kindNoLabel test-generated payloads as synthetic in validation telemetry.

Output Schema

NameRequiredDescriptionDefault
validYesTrue when the payload has zero spec errors.
issuesYes
dialectNo
profileNo
versionYes
payload_typeYes
cross_validatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / sample_kind
      Added value: +{
      +  "description": "Label test-generated payloads as synthetic in validation telemetry.",
      +  "enum": [
      +    "submitted",
      +    "synthetic"
      +  ],
      +  "type": "string"
      +}
  2. Changed3 schema fields changed
    • changedInput schema / properties / profile / description
      Previous value: -"Exchange profile applied on top of the spec. spec (default) is the specification only. google-ab is Google Authorized Buyers OpenRTB: at=3 (FIXED_PRICE) is a valid auction type, and each Imp must carry ext.billing_id. prebid-server is Prebid Server /openrtb2/auction: each Imp must name a bidder or stored request, and wseat/bseat are refused. xandr is Microsoft Monetize outgoing requests: ext.appnexus.seller_member_id and video.ext.appnexus.context. magnite is Magnite xAPI identity fields: imp.ext.rp.zone_id, site/app ext.rp.site_id, publisher.ext.rp.account_id."New value: +"Published vendor constraints on top of the selected spec. Choose the matching traffic direction. spec is the default. xandr targets Microsoft Monetize bidder traffic; magnite targets DV+ xAPI. Buyer, supplier and SDK profiles have distinct contracts. Optional extension fields remain optional unless the source explicitly requires them. A direction without a verified contract applies canonical checks and returns a scope warning."
    • changedInput schema / properties / profile / enum
      Previous value: -[
      -  "spec",
      -  "google-ab",
      -  "prebid-server",
      -  "xandr",
      -  "magnite"
      -]New value: +[
      +  "spec",
      +  "google-ab",
      +  "prebid-server",
      +  "xandr",
      +  "magnite",
      +  "dv360",
      +  "index-exchange",
      +  "index-exchange-seller",
      +  "unity",
      +  "vungle",
      +  "bidswitch",
      +  "bidswitch-supplier",
      +  "inmobi",
      +  "inmobi-supplier",
      +  "mobilefuse",
      +  "mobilefuse-sdk",
      +  "applovin-alx",
      +  "commerce-grid",
      +  "digital-turbine",
      +  "sovrn",
      +  "equativ",
      +  "equativ-supplier",
      +  "triplelift-supplier",
      +  "adform-handler",
      +  "yandex-sdk-bidding",
      +  "pubmatic-openwrap",
      +  "pubmatic-openwrap-ctv"
      +]
    • changedOutput schema / properties / profile / enum
      Previous value: -[
      -  "spec",
      -  "google-ab",
      -  "prebid-server",
      -  "xandr",
      -  "magnite"
      -]New value: +[
      +  "spec",
      +  "google-ab",
      +  "prebid-server",
      +  "xandr",
      +  "magnite",
      +  "dv360",
      +  "index-exchange",
      +  "index-exchange-seller",
      +  "unity",
      +  "vungle",
      +  "bidswitch",
      +  "bidswitch-supplier",
      +  "inmobi",
      +  "inmobi-supplier",
      +  "mobilefuse",
      +  "mobilefuse-sdk",
      +  "applovin-alx",
      +  "commerce-grid",
      +  "digital-turbine",
      +  "sovrn",
      +  "equativ",
      +  "equativ-supplier",
      +  "triplelift-supplier",
      +  "adform-handler",
      +  "yandex-sdk-bidding",
      +  "pubmatic-openwrap",
      +  "pubmatic-openwrap-ctv"
      +]
  3. Changed3 schema fields changed
    • changedInput schema / properties / profile / description
      Previous value: -"Exchange profile applied on top of the spec. spec (default) is the specification only. google-ab is Google Authorized Buyers OpenRTB: at=3 (FIXED_PRICE) is a valid auction type, and each Imp must carry ext.billing_id. prebid-server is Prebid Server /openrtb2/auction: each Imp must name a bidder or stored request, and wseat/bseat are refused."New value: +"Exchange profile applied on top of the spec. spec (default) is the specification only. google-ab is Google Authorized Buyers OpenRTB: at=3 (FIXED_PRICE) is a valid auction type, and each Imp must carry ext.billing_id. prebid-server is Prebid Server /openrtb2/auction: each Imp must name a bidder or stored request, and wseat/bseat are refused. xandr is Microsoft Monetize outgoing requests: ext.appnexus.seller_member_id and video.ext.appnexus.context. magnite is Magnite xAPI identity fields: imp.ext.rp.zone_id, site/app ext.rp.site_id, publisher.ext.rp.account_id."
    • changedInput schema / properties / profile / enum
      Previous value: -[
      -  "spec",
      -  "google-ab",
      -  "prebid-server"
      -]New value: +[
      +  "spec",
      +  "google-ab",
      +  "prebid-server",
      +  "xandr",
      +  "magnite"
      +]
    • changedOutput schema / properties / profile / enum
      Previous value: -[
      -  "spec",
      -  "google-ab",
      -  "prebid-server"
      -]New value: +[
      +  "spec",
      +  "google-ab",
      +  "prebid-server",
      +  "xandr",
      +  "magnite"
      +]
  4. Changed3 schema fields changed
    • changedInput schema / properties / profile / description
      Previous value: -"Exchange profile applied on top of the spec. spec (default) is the specification only. google-ab is Google Authorized Buyers OpenRTB: at=3 (FIXED_PRICE) is a valid auction type, and each Imp must carry ext.billing_id."New value: +"Exchange profile applied on top of the spec. spec (default) is the specification only. google-ab is Google Authorized Buyers OpenRTB: at=3 (FIXED_PRICE) is a valid auction type, and each Imp must carry ext.billing_id. prebid-server is Prebid Server /openrtb2/auction: each Imp must name a bidder or stored request, and wseat/bseat are refused."
    • changedInput schema / properties / profile / enum
      Previous value: -[
      -  "spec",
      -  "google-ab"
      -]New value: +[
      +  "spec",
      +  "google-ab",
      +  "prebid-server"
      +]
    • changedOutput schema / properties / profile / enum
      Previous value: -[
      -  "spec",
      -  "google-ab"
      -]New value: +[
      +  "spec",
      +  "google-ab",
      +  "prebid-server"
      +]
  5. First observed

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral detail beyond that: the optional cross-check against the originating request and the specific coherence axes (impid, mtype, adm, dealid, seat, currency), plus the return shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action, then the optional mode and the return format. No filler and nothing buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and parameters are fully documented in the schema, so the description only needs purpose, the optional cross-check behavior, and the result shape — all of which it delivers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3; the description earns above that by explaining what bid_request triggers (per-bid cross-check against the referenced Imp) and by enumerating the coherence checks, which is meaning the schema does not carry.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (validate an OpenRTB 2.x bid response JSON payload against a tracked spec version) and names the sibling distinction implicitly — it validates responses, not requests, unlike validate_bid_request/validate_artf_response.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context for the optional cross-validation mode ('when supplied, every bid is also cross-checked against the Imp it references'), which tells the agent when to pass bid_request. It does not explicitly contrast with the sibling validators (validate_bid_request, validate_artf_response), so routing relies on the resource name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.