Developers
MCP server
Connect an assistant to RevBuddy using Streamable HTTP and the same workspace API key, scopes and Cluster eligibility as REST. Every tool calls the same operation as the API.
https://revbuddy.radioworkflow.com/api/mcpConnection settings
Set the server URL and an Authorization: Bearer header, or xi-api-key. There is no OAuth sign-in or separate MCP account. The placeholder below represents a key supplied through your client's secret settings; use its supported environment-variable syntax.
{
"mcpServers": {
"rev-buddy": {
"type": "http",
"url": "https://revbuddy.radioworkflow.com/api/mcp",
"headers": {
"Authorization": "Bearer YOUR_REVBUDDY_API_KEY"
}
}
}
}For a command-line client with the key already in an environment variable:
claude mcp add --transport http rev-buddy https://revbuddy.radioworkflow.com/api/mcp \
--header "Authorization: Bearer $REVBUDDY_API_KEY"Permissions and behavior
The Bash example follows the Claude Code HTTP setup. Other clients may use a different configuration format.
- tools/list returns only the tools allowed by this key's scopes. Each call rechecks the key, plan and workspace ownership. Revoked keys stop working.
- Writes and spending happen when called. Destructive annotations help the client explain consequences; they do not create an approval step. Review publishing, generation and deletion requests before authorizing them.
- Spending operations require the idempotencyKey argument, with 8 to 128 letters, digits, dots, colons, underscores or hyphens. Reuse it for retries of the same request so a timeout does not create another charge.
- POST is the only transport method. The server issues no session ID and offers no standalone SSE stream. Send one JSON-RPC message per request.
- Requests are bounded at 256 KiB and tool results at 192 KiB. Use smaller result pages or REST for larger responses.
- A tool call uses two authorization checks against the shared limits of 60 per key and 300 per workspace each minute. This allows up to 30 tool calls per key before discovery, resource requests or other traffic. Respect Retry-After on HTTP refusals or retryAfterSeconds in a tool error when a limit is reached.
- Audio download links require the same key in an HTTP header. Audio is not returned as base64 in tool results. The server never fetches an arbitrary URL supplied by a client.
resources/list also exposes the API reference and OpenAPI document. These resources contain contract metadata, not customer records. Customer and advertiser text in operation results is data, not instructions to follow.
Available tools (47)
Your key may show a smaller list, based on its scopes.
| Tool | Scope | Effect |
|---|---|---|
| workspace_get Get workspace | workspace:read | read |
| usage_get Get usage | workspace:read | read |
| catalog_list List visible promotions | catalog:read | read |
| catalog_get Get a promotion | catalog:read | read |
| categories_list List advertiser categories | catalog:read | read |
| calendar_list Get selling calendar | catalog:read | read |
| best_of_get Get monthly Best Of | catalog:read | read |
| kits_list List kits | kits:read | read |
| kit_get Get a kit | kits:read | read |
| kit_open Open a kit | kits:write | write |
| kit_state_set Change kit state | kits:write | write |
| kit_deal_set Save kit deal | kits:write | write |
| kit_rates_set Save sponsor rate card | kits:write | write |
| pipeline_get Get pipeline totals | kits:read | read |
| claims_list List market claims | kits:read | read |
| claim_create Claim market exclusivity | kits:write | write |
| claim_release Release market exclusivity | kits:write | destructive |
| campaigns_list List campaigns | campaigns:read | read |
| campaign_get Get a campaign | campaigns:read | read |
| campaign_launch Launch a campaign | campaigns:write | write |
| campaign_close Close a campaign | campaigns:write | destructive |
| campaign_results Get campaign results | campaigns:read | read |
| campaign_sponsors List campaign sponsors | campaigns:read | read |
| campaign_sponsor_add Add campaign sponsor | campaigns:write | write |
| lead_portals_list List leads portals | leads:read | read |
| leads_list Get consented sponsor leads | leads:read | read |
| audience_lists List audience lists | audience:read | read |
| audience_count Get reachable audience count | audience:read | read |
| stations_list List stations | stations:read | read |
| station_get Get a station | stations:read | read |
| station_add Add a station | stations:write | write |
| station_update Update a station | stations:write | write |
| station_remove Remove a station | stations:write | destructive |
| links_list List short links | links:read | read |
| link_create Create a short link | links:write | write |
| link_repoint Repoint a short link | links:write | write |
| goals_list List revenue goals | goals:read | read |
| goal_get Get a revenue goal | goals:read | read |
| goal_set Set a revenue goal | goals:write | write |
| audio_previews List approved audio previews | audio:read | read |
| audio_request_get Get audio request status | audio:read | read |
| audio_request_create Request studio audio | audio:write | write |
| audio_tags List station sponsor tags | audio:read | read |
| audio_tag_render Render a sponsor tag | audio:render | spend |
| audio_tag_copy Copy sponsor tag to stations | audio:write | write |
| audio_finished List finished spots | audio:read | read |
| audio_finished_render Build finished spots | audio:render | spend |
REST-only operations
- audio_preview_download: Binary download; use audio metadata/tool resource link and fetch with same API key
- audio_finished_download: Binary download; use audio metadata/tool resource link and fetch with same API key