
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
@totalaudiopromo/tap-mcp
Advanced tools
MCP server for Total Audio Promo — music PR campaign management via Model Context Protocol. 49 tools + 3 resources for contacts, campaigns, pitches, outcomes, skills, approvals, and batch operations. v0.3.0 adds REST v1 scoped-key auth, tap_run_skill / ta
MCP server for Total Audio Promo — the music PR platform that AI agents can fully operate.
Exposes 49 tools and 3 resources via the Model Context Protocol, giving Claude, Cursor, Hermes, and custom agents access to the full music PR workflow: contacts, campaigns, drafting, outcomes, skills, approvals, batch operations, and the per-message human-gate doctrine.
/settings/api-keys and set TAP_API_KEY=tap_ak_…. The server proxies every read and write through https://totalaudiopromo.com/api/v1/* with that key — no Supabase credentials in your environment.tap_list_skills, tap_get_skill, tap_run_skill, tap_fork_skill, tap_get_invocation. Surfaces the workspace's editable skill set so external agents can discover what TAP can do, run a skill, and read the audit log.tap_get_approval_queue. There is deliberately no tap_approve_pitch or tap_send_pitch. Approval and send are per-message human actions in the TAP UI (PRODUCT_GUARDRAILS.md §1).tap_list_campaigns — List campaigns with optional status filtertap_get_campaign — Campaign detail with contact counts and pitch statstap_create_campaign — Create a new draft campaigntap_campaign_memory — Read or write campaign learningstap_list_contacts — List contacts with filters (status, genre, BBC-only, search)tap_search_contacts — Free-text contact searchtap_contact_insights — Enrichment and relationship insightstap_create_contact — Create a single contacttap_suggest_contacts — AI-scored contact suggestions for a campaigntap_add_contact_to_campaign — Link an existing contact to a campaigntap_draft_pitch — Generate an AI draft for a single contacttap_list_pitch_drafts — List pitch drafts for a campaigntap_batch_draft_pitches — Generate drafts for up to 20 contacts at oncetap_queue_pitch_review — Move drafts into queued-for-review statetap_log_outcome — Log campaign outcomes (replied, coverage, playlist, pass)tap_get_outcomes — Read outcomes for a campaigntap_get_channel_outcomes — Group outcomes by channeltap_list_skills — Discover the workspace's skill set (defaults + forks)tap_get_skill — Fetch a skill in full (manifest, body, source)tap_run_skill — Execute a skill; writes a skill_invocation audit rowtap_fork_skill — Override a default skill body with the workspace's edittap_get_invocation — Read a single audit row by idtap_get_approval_queue — Read-only view of pitches awaiting human reviewtap_request_approval — Pause an agent session and wait for human reviewtap_get_approval_status — Poll an agent_sessions row for an approval verdicttap_analyse_campaign — Performance, outcomes, and relationship metrics in one calltap_get_action_queue — Today's prioritised action queuetap_batch_enrich — Queue enrichment for multiple contactstap_batch_import — Import contacts in bulk with dedupe + validationtap_batch_validate — Validate multiple contact recordstap_batch_draft_pitches — see Pitchestap_get_asset_url — Resolve a workspace asset to a signed download URLtap_list_campaign_assets — List assets attached to a campaigntap_get_play_summary — WARM summary for a campaign (radio detections)tap_list_radio_plays — Per-station play historytap_enrol_reference_track — Add a track to the fingerprint monitortap_set_send_consent — Toggle workspace-level send consenttap_create_sequence — Build a multi-step outreach sequencetap_propose_send — Surface a draft into the human approval queuetap_queue_execution / tap_approve_execution / tap_list_pending_executions — Sequence execution gatetap://campaigns — Browse campaigns as JSONtap://contacts — Browse contacts as JSONtap://artists — Browse artists as JSONcontacts:read contacts:write campaigns:read campaigns:write pitches:read pitches:write outcomes:read outcomes:write approvals:read skills:read skills:write webhooks:read webhooks:write enrich validate. For a read-only audit agent: just the :read scopes./workspace/).{
"mcpServers": {
"tap": {
"command": "npx",
"args": ["-y", "@totalaudiopromo/tap-mcp@latest"],
"env": {
"TAP_API_KEY": "tap_ak_abc123...",
"TAP_WORKSPACE_ID": "0544294f-..."
}
}
}
}
That's it. The server proxies every call through /api/v1/* with your key. Rotating the key is a single click in the UI; the server picks up the new value on next restart.
{
"mcpServers": {
"tap": {
"command": "npx",
"args": ["-y", "@totalaudiopromo/tap-mcp@latest"],
"env": {
"TAP_SUPABASE_URL": "https://...supabase.co",
"TAP_SUPABASE_KEY": "eyJ...",
"TAP_WORKSPACE_ID": "0544294f-..."
}
}
}
}
On startup the server prints a one-time stderr warning. Migrate before 14 June 2026.
approved. tap_get_approval_queue is read-only. tap_propose_send enters the queue; nothing exits it without a human.TAP_WORKSPACE_ID (legacy). Cross-workspace reads are impossible.X-RateLimit-* headers. Mint a separate key per agent if you need higher throughput on one call type.skill_invocation. Every send signal writes to tap_signals with source_app: 'mcp' so the workspace's Co-pilot → History tab shows exactly what each agent did.tap_list_skills returns the skills available in the calling workspace. TAP ships sensible defaults; Agency-tier workspaces can fork any default and edit it through the UI (/settings/skills) or via tap_fork_skill.
> tap_list_skills
{
"skills": [
{ "slug": "draft-pitches", "source": "default", "version": "1.0.0" },
{ "slug": "fact-check", "source": "default", "version": "1.0.0" },
{ "slug": "voice-check", "source": "workspace", "version": "1.2.0" },
{ "slug": "cross-check-contacts", "source": "default", "version": "1.0.0" }
]
}
Running a skill records the input/output/error/duration in skill_invocation and (for programmatic skills) returns the structured output inline. For llm skills the output may include a draft payload — that draft goes into campaign_pitch_drafts with approval_state: 'pending' and waits for human approval.
> tap_run_skill --slug draft-pitches --input '{"campaign_id":"...","contact_ids":["..."]}'
{
"ok": true,
"invocation_id": "a3...",
"output": { "drafts_created": 12, "queued_for_approval": 12 },
"duration_ms": 4200
}
| Variable | Required (REST) | Required (legacy) | Purpose |
|---|---|---|---|
TAP_API_KEY | yes | no | tap_ak_* scoped key from /settings/api-keys |
TAP_WORKSPACE_ID | yes | yes | Workspace UUID — defence in depth |
TAP_URL | no | no | Override base URL (default https://totalaudiopromo.com) |
TAP_SUPABASE_URL | no | yes | Supabase project URL (legacy only) |
TAP_SUPABASE_KEY | no | yes | Supabase service-role key (legacy only) |
TAP_SUPABASE_ANON_KEY | no | optional | Anon key for RLS-scoped client (legacy only) |
TAP_ACCESS_TOKEN | no | optional | User access token (legacy only) |
TAP_CRON_SECRET | optional | optional | Required for tap_batch_draft_pitches legacy path |
GET /.well-known/agent-skills/workspace/index.json with Authorization: Bearer tap_ak_…tap-cli (terminal), sink-cli (contact discovery)MIT. Source at https://github.com/totalaudiopromo/total-audio-platform/tree/main/packages/tap-mcp.
FAQs
MCP server for Total Audio Promo — music PR campaign management via Model Context Protocol. 49 tools + 3 resources for contacts, campaigns, pitches, outcomes, skills, approvals, and batch operations. v0.3.0 adds REST v1 scoped-key auth, tap_run_skill / ta
We found that @totalaudiopromo/tap-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.