← All MCP tools

MCP tool

browse_inventory

Browse concrete inventory on ctv, audio, tv, cinema, dooh, search, social — with location, format, monthly audience, CPM (pence), owner, and tags. This is how you hand-pick specific placements ("the Piccadilly Lights screen", "that tech podcast") instead of letting the AI planner choose: browse here, note the item ids, then pass them to create_manual_plan as selections. Filter by city, free-text query, or a maximum CPM in pence.

Input

Pass fields from this schema as the tool arguments. Runtime ownership, product scope and readiness checks still apply.

Input JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "channel": {
      "type": "string",
      "enum": [
        "ctv",
        "audio",
        "tv",
        "cinema",
        "dooh",
        "search",
        "social"
      ],
      "description": "channel whose inventory to browse"
    },
    "city": {
      "description": "filter to a city, e.g. \"London\"",
      "type": "string"
    },
    "query": {
      "description": "free-text search over names, owners, and tags",
      "type": "string"
    },
    "maxCpmMinor": {
      "description": "only items at or below this CPM in minor units (pence), e.g. 800 = £8.00",
      "type": "integer",
      "exclusiveMinimum": 0,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "channel"
  ]
}

REST mapping and authority

The tool wraps this REST endpoint. The mapping identifies path/query/body transformations and approval or idempotency headers.

Request contract
{
  "method": "GET",
  "path": "/api/v1/inventory",
  "pathFields": [],
  "pathSchema": {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  },
  "pathEncoding": "encodeURIComponent for each path field",
  "governedAction": null,
  "headers": {},
  "querySchema": {
    "type": "object",
    "properties": {
      "channel": {
        "type": "string",
        "enum": [
          "ctv",
          "audio",
          "tv",
          "cinema",
          "dooh",
          "search",
          "social"
        ],
        "description": "channel whose inventory to browse"
      },
      "city": {
        "description": "filter to a city, e.g. \"London\"",
        "type": "string"
      },
      "query": {
        "description": "free-text search over names, owners, and tags",
        "type": "string"
      },
      "maxCpmMinor": {
        "description": "only items at or below this CPM in minor units (pence), e.g. 800 = £8.00",
        "type": "integer",
        "exclusiveMinimum": 0,
        "maximum": 9007199254740991
      }
    },
    "additionalProperties": false,
    "required": [
      "channel"
    ]
  },
  "queryEncoding": "URLSearchParams; omit undefined fields, stringify supplied values",
  "responseMapping": "REST JSON is returned as MCP structuredContent and a compatibility text block; privacy-sensitive tools validate their output schema."
}

Output

This is the registered MCP output envelope. Nested fields are only modeled where the schema explicitly defines them.

Output JSON Schema
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "items": {
      "type": "array",
      "items": {}
    }
  },
  "required": [
    "items"
  ],
  "additionalProperties": {}
}

Safety annotations

MCP annotations
{
  "readOnlyHint": true,
  "destructiveHint": false,
  "idempotentHint": false,
  "openWorldHint": false
}

Annotations help a client present the tool. The API independently enforces authorization and exact action approvals. Error and retry guidance →

browse_inventory | AdBuyMCP docs