stdio server.
What The MCP Server Can Access
The MCP server can read organization-scoped Bounty data that the authenticated user can already access:- Account context and data freshness.
- Saved marketing metric definitions, trends, and breakdowns.
- Campaign rankings and campaign performance.
- Campaign analysis findings.
- Facebook ad rankings, campaign ads, and creative analytics.
- Google Ads keyword and bidding diagnostics.
- Existing Bounty actions.
Set Up In Claude Code
Claude Code can connect to Bounty as a remote HTTP MCP server:bounty server and follow the browser login flow. Bounty will ask you to sign in if needed, then approve MCP access for the local Claude Code client.
For client-specific command details, see Claude Code’s MCP documentation.
After authentication, ask Claude Code questions such as:
- “Use Bounty MCP to rank Google Ads campaigns by CAC for the last 30 days.”
- “Find saved metrics related to CAC, then show the daily trend for the best matching metric.”
- “Analyze campaign
facebook:1234567890for the last 7 days and summarize the evidence.”
Set Up In Claude Cowork
Claude’s hosted custom connectors, including Cowork connectors, use remote MCP servers from Anthropic’s cloud infrastructure. Add Bounty as a custom web connector using:Set Up In ChatGPT
ChatGPT can use remote MCP servers through custom apps in developer mode. Create a custom app from ChatGPT’s Apps settings and use the Bounty MCP server URL:How Authentication Works
The MCP endpoint requires a bearer token:401 Unauthorized with a WWW-Authenticate header pointing to its protected resource metadata.
Bounty exposes OAuth discovery metadata at:
| Endpoint | Purpose |
|---|---|
GET /cli/authorize | Browser authorization page. |
POST /api/mcp/oauth/register | Dynamically registers an allowed public PKCE MCP client. |
POST /api/cli/authorize | Creates a one-time MCP authorization code after the user approves access. |
POST /api/mcp/oauth/token | Exchanges an MCP authorization code and PKCE verifier for an MCP bearer token. |
GET, POST, DELETE /api/mcp | Streamable HTTP MCP endpoint. |
registration_endpoint. The token flow uses the authorization_code grant, PKCE S256, and the mcp:read scope. The resulting MCP bearer token is audience-bound to api/mcp and wraps the user’s Bounty session. It expires with the underlying session; when it expires, reconnect the MCP client to authorize again.
Bounty never asks the MCP client for an organization id, schema name, warehouse name, connection string, or platform credential. Organization and data scope are always derived from the authenticated Bounty user.
Dynamic Client Registration
POST /api/mcp/oauth/register supports allowed public PKCE MCP clients, including MCP Inspector, Claude Code, hosted Claude and Cowork connectors, and ChatGPT custom apps. Dynamic registration does not require a pre-issued Bounty client id, and Bounty does not issue a client secret.
Registration accepts:
- HTTP redirect URIs on
localhostor127.0.0.1for local clients such as MCP Inspector and Claude Code. https://chatgpt.com/connector/oauth/{callback_id}and the legacyhttps://chatgpt.com/connector_platform_oauth_redirectcallback for ChatGPT.https://claude.ai/api/mcp/auth_callbackfor hosted Claude and Cowork connectors.- Grant types that include
authorization_code. - Response types that include
code. - Scope unset or limited to
mcp:read.
/api/cli/authorize resolve the request to the MCP audience; plain Bounty CLI authorization remains local-loopback only.
Example registration payload:
client_id, client_id_issued_at, and echoed client metadata.
Set Up In MCP Inspector
In MCP Inspector, use the Streamable HTTP server URL:0.0.0.0:3000, use the local app URL that users can open:
localhost:3000 instead of 0.0.0.0:3000.
Date Ranges
Most data tools accept either explicit dates:todayyesterdaylast_7_dayslast_30_daysmonth_to_date
Tool Reference
All tools are read-only and return both text and structured JSON. Data-bearing tools include freshness, warnings, and a confidence basis.| Tool | Use It For | Key Inputs |
|---|---|---|
get_account_context | Understand the authenticated organization, timezone, available paid platforms, primary conversion metadata, catalog counts, and freshness. | None |
search_marketing_catalog | Search saved metrics, curated data sources, dimensions, and available campaign platforms. | query, limit |
get_metric_definition | Inspect a saved metric before making semantic claims. | metricId |
get_metric_trend | Fetch daily, weekly, or monthly values for one or more saved metrics. | metricId or metricIds, granularity, includeComponents, date range |
get_metric_breakdown | Break one saved metric down by an approved catalog dimension. | metricId, breakdownColumn, limit, date range |
rank_campaigns | Rank paid campaigns by spend, primary conversions, or CAC/CPA. | platform, sortBy, sortDirection, limit, date range |
get_campaign_performance | Fetch daily campaign performance, conversion-event breakdowns, correlated metrics, and fallback flags. | campaignId, optional platform, date range |
analyze_campaign | Return executive-ready findings for one campaign with supporting evidence. | campaignId, optional platform, date range |
rank_ads | Rank Facebook ads across campaigns by spend, impressions, clicks, CTR, CPC, frequency, fatigue, status, and trend. | status, sortBy, sortDirection, limit, date range |
get_campaign_ads | Fetch ad-level evidence for one Facebook campaign. | campaignId, date range |
get_creative_analytics | Fetch Facebook creative hook, hold, frequency, fatigue, aggregate, and daily performance data. | adId, limit, date range |
get_google_keyword_diagnostics | Inspect Google Ads keyword performance and bidding strategy diagnostics. | campaignId, date range |
search_actions | Search existing Bounty actions without mutating them. | query, status, includeStale, limit |
Example Workflows
Start broad, then drill down:Evidence And Confidence
Bounty MCP responses are designed for evidence-based analysis:- Use
rank_campaignsfor campaign CAC rankings instead of ad hoc joins. - Treat stale freshness, missing freshness, or source-alignment warnings as directional.
- Prefer configured primary conversion and paid-efficiency semantics over raw platform conversion counts.
- Cite the tool outputs, date range, and warnings when making budget or performance recommendations.