Skip to main content
Glama

validate_bid_request

Read-onlyIdempotent

Validate an OpenRTB 2.x bid request JSON payload against a tracked spec version. Returns structured issues with rule ids, severities, and JSON paths.

Input Schema

TableJSON 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 request 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

Output Schema

TableJSON 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. 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"
      +]
  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."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"
      +]
  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."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"
      +]
  4. First observed

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds the return shape ('structured issues with rule ids, severities, and JSON paths') and the fact that validation is pinned to a tracked spec version, which is genuine extra context. It omits the scope-warning behavior for unverified vendor profiles.

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

Conciseness4/5

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

Two sentences, no filler, with the action and the return format front-loaded. Every sentence earns its place. It is arguably too terse for a tool with 4 parameters and a large vendor-profile enum, but that is a completeness issue rather than verbosity.

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

Completeness3/5

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

Output schema exists, so return values need not be spelled out, and annotations cover the safety profile. What is missing is routing: with five siblings including a direct response-side counterpart, the agent gets no guidance on tool selection or on the scope-warning fallback for unverified profiles.

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

Parameters3/5

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

Schema description coverage is 100% and both enums (dialect, profile) plus the version list are richly documented in the schema itself. The description adds no parameter meaning at all, so the baseline of 3 applies when the schema carries the full burden.

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

Purpose4/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 request JSON payload against a tracked spec version.' That is unambiguous and distinguishable from validate_bid_response/validate_artf_request by scope. However, it never explicitly names the counterpart tools, so sibling differentiation rests on the reader noticing 'bid request' in the name.

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

Usage Guidelines2/5

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

No when-to-use, when-not, or alternative tooling guidance appears in the description. Nothing tells the agent how to choose between this and validate_bid_response, validate_artf_request, or when to first call list_openrtb_versions. The useful direction hints (proto-json for gRPC traffic, 'choose the matching traffic direction') live in the schema, not the description.

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.