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.
{
"$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.
{
"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.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"items": {
"type": "array",
"items": {}
}
},
"required": [
"items"
],
"additionalProperties": {}
}Safety 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 →