MCP tool
get_campaign_report
Return the URL of a self-contained, printable campaign report — delivered spend by channel, modeled reach, responses, and the causal result (or an honest refusal where the test was not powered or had no clean control market). It is a single HTML file with no scripts and no external requests, rendered in the advertiser brand kit, meant to be opened, printed to PDF and forwarded to people who never log into AdBuyMCP. The document body is deliberately NOT inlined here: it is several kilobytes of markup that is useless to read as text. Use get_measurement instead when you need the numbers themselves. NOTE: the URL is tenant-scoped, not a public share link — under AUTH_MODE=clerk it needs the same credentials this MCP server uses, so a recipient without an account cannot open it. Download it and attach the file, or open it yourself and print to PDF.
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": {
"campaignId": {
"type": "string",
"minLength": 1,
"description": "campaign id to report on"
}
},
"required": [
"campaignId"
]
}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/campaigns/{campaignId}/report",
"pathFields": [
"campaignId"
],
"pathSchema": {
"type": "object",
"properties": {
"campaignId": {
"type": "string",
"minLength": 1,
"description": "campaign id to report on"
}
},
"additionalProperties": false,
"required": [
"campaignId"
]
},
"pathEncoding": "encodeURIComponent for each path field",
"governedAction": null,
"headers": {},
"querySchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"queryEncoding": "URLSearchParams; omit undefined fields, stringify supplied values",
"responseMapping": "REST returns HTML; MCP returns an authenticated report URL and byte count, without the markup."
}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": {},
"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 →