{
  "serverInfo": {
    "name": "rtblint",
    "version": "0.12.0"
  },
  "authentication": {
    "required": false,
    "schemes": []
  },
  "websiteUrl": "https://rtblint.org",
  "tools": [
    {
      "name": "validate_bid_request",
      "description": "Validate an OpenRTB 2.x bid request JSON payload against a tracked spec version. Returns structured issues with rule ids, severities, and JSON paths.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "payload": { "type": "string", "description": "The OpenRTB bid request as a raw JSON string." },
          "version": { "type": "string", "description": "OpenRTB version id (default 2.6-202606)." },
          "dialect": { "type": "string", "enum": ["spec-json", "proto-json"], "description": "JSON dialect. spec-json (default) or proto-json for gRPC bidstream payloads." },
          "profile": { "type": "string", "enum": ["spec", "google-ab", "prebid-server", "xandr", "magnite"], "description": "Exchange profile. spec (default), google-ab for Authorized Buyers extras, prebid-server for Prebid Server /openrtb2/auction extras, xandr for Microsoft Monetize extras, or magnite for Magnite xAPI identity fields." }
        },
        "required": ["payload"]
      },
      "annotations": { "readOnlyHint": true, "idempotentHint": true, "destructiveHint": false, "openWorldHint": false }
    },
    {
      "name": "validate_bid_response",
      "description": "Validate an OpenRTB 2.x bid response JSON payload. Optionally cross-validate against the originating bid request.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "payload": { "type": "string", "description": "The OpenRTB bid response as a raw JSON string." },
          "version": { "type": "string", "description": "OpenRTB version id (default 2.6-202606)." },
          "dialect": { "type": "string", "enum": ["spec-json", "proto-json"], "description": "JSON dialect. spec-json (default) or proto-json." },
          "profile": { "type": "string", "enum": ["spec", "google-ab", "prebid-server", "xandr", "magnite"], "description": "Exchange profile. spec (default), google-ab, prebid-server, xandr, or magnite." },
          "bid_request": { "type": "string", "description": "Optional originating bid request JSON for cross-validation." }
        },
        "required": ["payload"]
      },
      "annotations": { "readOnlyHint": true, "idempotentHint": true, "destructiveHint": false, "openWorldHint": false }
    },
    {
      "name": "validate_artf_request",
      "description": "Validate an ARTF RTBRequest envelope plus the OpenRTB payloads it carries.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "payload": { "type": "string", "description": "The ARTF RTBRequest envelope as a raw JSON string." },
          "version": { "type": "string", "description": "OpenRTB version id for the carried payloads." }
        },
        "required": ["payload"]
      },
      "annotations": { "readOnlyHint": true, "idempotentHint": true, "destructiveHint": false, "openWorldHint": false }
    },
    {
      "name": "validate_artf_response",
      "description": "Validate an ARTF RTBResponse mutation set against the RTBRequest it answers. apply=true writes the mutations and revalidates.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "payload": { "type": "string", "description": "The ARTF RTBResponse as a raw JSON string." },
          "rtb_request": { "type": "string", "description": "The ARTF RTBRequest envelope this response answers." },
          "apply": { "type": "boolean", "description": "Write the mutations and revalidate (default false)." },
          "version": { "type": "string", "description": "OpenRTB version id for the carried payloads." }
        },
        "required": ["payload", "rtb_request"]
      },
      "annotations": { "readOnlyHint": true, "idempotentHint": true, "destructiveHint": false, "openWorldHint": false }
    },
    {
      "name": "list_openrtb_versions",
      "description": "List every OpenRTB version id this build can validate against, from 2.0 through the monthly 2.6 snapshots.",
      "inputSchema": { "type": "object", "properties": {} },
      "annotations": { "readOnlyHint": true, "idempotentHint": true, "destructiveHint": false, "openWorldHint": false }
    },
    {
      "name": "get_adcp_capabilities",
      "description": "AdCP protocol discovery. Declares the experimental measurement protocol and bid-stream conformance metrics.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "adcp_version": { "type": "string", "description": "Release-precision AdCP version the caller pins." },
          "protocols": { "type": "array", "items": { "type": "string" }, "description": "Filter which per-protocol capability blocks are returned." }
        }
      },
      "annotations": { "readOnlyHint": true, "idempotentHint": true, "destructiveHint": false, "openWorldHint": false }
    }
  ],
  "resources": [
    {
      "uri": "https://rtblint.org/docs/mcp/",
      "name": "MCP reference",
      "description": "Hosted MCP endpoint, tools, and client setup.",
      "mimeType": "text/html"
    },
    {
      "uri": "https://rtblint.org/.well-known/mcp/server-card.json",
      "name": "MCP server card",
      "description": "Machine-readable tool catalog for this server.",
      "mimeType": "application/json"
    }
  ],
  "prompts": [
    {
      "name": "validate_openrtb",
      "description": "Validate an OpenRTB bid request JSON string against a tracked IAB spec snapshot."
    },
    {
      "name": "check_artf_mutations",
      "description": "Check an ARTF RTBResponse mutation set against the RTBRequest it answers before proposing it."
    }
  ]
}
