totalaudiopromo avatar

Tap Mcp

totalaudiopromo/total-audio-platform

You'd reach for this when you're running music PR campaigns and want Claude to help manage your outreach workflow. It exposes operations for tracking media contacts, drafting and managing pitch emails, organizing campaigns, and recording outcomes like coverage placements or responses. Think of it as hooking your PR database into Claude so you can query who you've pitched, generate personalized outreach based on past interactions, or analyze which campaigns are converting. The source doesn't reveal specific API endpoints, but the scope is clear: it's for publicists and labels who want conversational access to their campaign data without jumping between spreadsheets and CRMs.

tools
31
auth
Secret needed
transport
STDIO
env vars
2
last updated
Apr 5, 2026

Tools

31 tools

Public tool metadata for what this MCP can expose to an agent.

tap_listList all available taps. ALWAYS call this first before any tap.* tool. If a matching tap exists, use tap.run — it executes with zero AI, faster and more stable than manual tap operations. NEVER bypass a tap by using manual tap.* calls to replicate what a tap already does.

List all available taps. ALWAYS call this first before any tap.* tool. If a matching tap exists, use tap.run — it executes with zero AI, faster and more stable than manual tap operations. NEVER bypass a tap by using manual tap.* calls to replicate what a tap already does.

No parameter schema in public metadata yet.

tap_runRun a pre-built tap. Preferred over tap.* tools — deterministic, zero AI at runtime. Returns {columns, rows, count, timing}. If rows is empty or error, use tap.doctor(site, name) for structured diagnosis before re-forging. On transient failure (timeout, connection), RETRY tap....4 params

Run a pre-built tap. Preferred over tap.* tools — deterministic, zero AI at runtime. Returns {columns, rows, count, timing}. If rows is empty or error, use tap.doctor(site, name) for structured diagnosis before re-forging. On transient failure (timeout, connection), RETRY tap....

Parameters* required
argsobject
Tap arguments
namestring
Tap name
noSandboxboolean
Disable Worker sandbox (use when tap has DataCloneError)default: false
sitestring
Site name
tap_screenshotCapture the current page as an image. LAST RESORT — before using this, prefer: (1) inspect.toasts for operation feedback, (2) tap.eval to check DOM state/URL, (3) inspect.page for url+title. Only use screenshot for visual verification (layout, rendering). When you do use it, p...2 params

Capture the current page as an image. LAST RESORT — before using this, prefer: (1) inspect.toasts for operation feedback, (2) tap.eval to check DOM state/URL, (3) inspect.page for url+title. Only use screenshot for visual verification (layout, rendering). When you do use it, p...

Parameters* required
formatstring
one of jpeg · pngdefault: jpeg
qualityinteger
default: 50
tap_logsRead tap execution history (run + forge events). Filter by site to narrow results. Use to diagnose failures: check error fields, row counts, timing. Consistently 0 rows or repeated errors → use forge.inspect to re-forge.2 params

Read tap execution history (run + forge events). Filter by site to narrow results. Use to diagnose failures: check error fields, row counts, timing. Consistently 0 rows or repeated errors → use forge.inspect to re-forge.

Parameters* required
limitinteger
default: 50
sitestring
tap_doctorRun health checks on taps. Returns {status, score, rows, issues[], error} per tap. Use as: (1) diagnostic entry point when tap.run fails — doctor gives structured root cause, (2) post-save validation after forge.save — doctor confirms health contract passes, (3) batch health a...5 params

Run health checks on taps. Returns {status, score, rows, issues[], error} per tap. Use as: (1) diagnostic entry point when tap.run fails — doctor gives structured root cause, (2) post-save validation after forge.save — doctor confirms health contract passes, (3) batch health a...

Parameters* required
autoboolean
Auto-heal: collect diagnostics for broken taps (current code + page inspection). AI reads diagnostics → forge.verify → forge.save.default: false
formatstring
Output formatone of json · junit · tapdefault: json
namestring
Filter by tap name (optional)
sitestring
Filter by site name (optional — omit for all)
timeoutinteger
Timeout per tap in msdefault: 30000
tap_watchRun a tap once and diff against previous rows. Returns {rows, events[], hasChanges}. Events: added/removed/changed with row data. Stateless — first call: omit previousRows to get baseline. Subsequent calls: pass previous rows to detect changes. Use for monitoring (price change...5 params

Run a tap once and diff against previous rows. Returns {rows, events[], hasChanges}. Events: added/removed/changed with row data. Stateless — first call: omit previousRows to get baseline. Subsequent calls: pass previous rows to detect changes. Use for monitoring (price change...

Parameters* required
argsobject
Tap arguments
keyColstring
Column to use as row identity for diffing
namestring
Tap name
previousRowsarray
Previous rows to diff against (omit for first run)
sitestring
Site name
tap_reloadPush updated taps to all connected runtimes (extension, Playwright) without restarting the daemon. Normally not needed — forge.save auto-notifies. Use after manual tap file edits or tap update.

Push updated taps to all connected runtimes (extension, Playwright) without restarting the daemon. Normally not needed — forge.save auto-notifies. Use after manual tap file edits or tap update.

No parameter schema in public metadata yet.

tap_versionGet protocol version and connected runtime info. Use to verify the extension is connected and check version compatibility before running taps.

Get protocol version and connected runtime info. Use to verify the extension is connected and check version compatibility before running taps.

No parameter schema in public metadata yet.

forge_inspectAnalyze a page for tap forging: detects framework, SSR state, APIs, and generates extraction strategies. Also use this to re-forge a broken tap — inspect the page again to find what changed.1 params

Analyze a page for tap forging: detects framework, SSR state, APIs, and generates extraction strategies. Also use this to re-forge a broken tap — inspect the page again to find what changed.

Parameters* required
urlstring
forge_draftLoad a .tap.js file into memory for verification. Write the tap code to a file first, then pass the path here. Returns content hash for change tracking.1 params

Load a .tap.js file into memory for verification. Write the tap code to a file first, then pass the path here. Returns content hash for change tracking.

Parameters* required
pathstring
Path to .tap.js file (e.g. ~/.tap/forge/draft.tap.js)
forge_verifyTest the draft tap's extraction logic live on a URL. Reads code from forge.draft — no need to pass expression. Returns score, rows, and data preview.3 params

Test the draft tap's extraction logic live on a URL. Reads code from forge.draft — no need to pass expression. Returns score, rows, and data preview.

Parameters* required
descriptionstring
Short summary of what this verifies (e.g. 'HN posts with rank, title, points')
expressionstring
Optional — override expression instead of reading from draft
urlstring
forge_saveSave the draft tap to disk and auto-commit to git. Reads code from forge.draft — no need to pass code. After saving, tap.run can execute it forever with zero AI.3 params

Save the draft tap to disk and auto-commit to git. Reads code from forge.draft — no need to pass code. After saving, tap.run can execute it forever with zero AI.

Parameters* required
codestring
Optional — override code instead of reading from draft
namestring
sitestring
tap_navNavigate to a URL. Before calling this, check tap.list — if a tap exists for this site/task, use tap.run instead. Returns {url, title}. If url differs from requested, a redirect occurred.1 params

Navigate to a URL. Before calling this, check tap.list — if a tap exists for this site/task, use tap.run instead. Returns {url, title}. If url differs from requested, a redirect occurred.

Parameters* required
urlstring
tap_clickClick on an element by visible text or CSS selector. Returns the resulting url and title. After clicking, check inspect.toasts for feedback (errors, confirmations) before proceeding. Use tap.find first if unsure whether the element exists.1 params

Click on an element by visible text or CSS selector. Returns the resulting url and title. After clicking, check inspect.toasts for feedback (errors, confirmations) before proceeding. Use tap.find first if unsure whether the element exists.

Parameters* required
targetstring
tap_typeType text into an input. Auto-detects editor type (standard input, contentEditable, CodeMirror, Draft.js, ProseMirror). Returns the current value — if it doesn't match your input, try tap.eval with execCommand('insertText') or the editor's native API. After typing, check inspe...2 params

Type text into an input. Auto-detects editor type (standard input, contentEditable, CodeMirror, Draft.js, ProseMirror). Returns the current value — if it doesn't match your input, try tap.eval with execCommand('insertText') or the editor's native API. After typing, check inspe...

Parameters* required
selectorstring
textstring
tap_evalEvaluate JavaScript in the browser. The universal escape hatch — use when other tap.* tools can't do what you need.1 params

Evaluate JavaScript in the browser. The universal escape hatch — use when other tap.* tools can't do what you need.

Parameters* required
expressionstring
tap_findFind elements by visible text. Returns position, selector, and bounding box. Use before click/type to verify the target exists.2 params

Find elements by visible text. Returns position, selector, and bounding box. Use before click/type to verify the target exists.

Parameters* required
querystring
rolestring
tap_waitWait for a specified number of milliseconds. Use instead of tap.eval with setTimeout. For waiting on elements, prefer tap.waitFor(selector) instead.1 params

Wait for a specified number of milliseconds. Use instead of tap.eval with setTimeout. For waiting on elements, prefer tap.waitFor(selector) instead.

Parameters* required
msinteger
Milliseconds to waitdefault: 1000
tap_pressKeyPress a key.2 params

Press a key.

Parameters* required
keystring
modifiersinteger
default: 0
tap_uploadUpload files to a file input. After uploading, check inspect.toasts for errors (wrong format, size limit).2 params

Upload files to a file input. After uploading, check inspect.toasts for errors (wrong format, size limit).

Parameters* required
filesstring
selectorstring
tap_cookiesGet cookies for the current site.

Get cookies for the current site.

No parameter schema in public metadata yet.

inspect_domGet page DOM structure.1 params

Get page DOM structure.

Parameters* required
selectorstring
inspect_pageGet page info (url, title, meta).

Get page info (url, title, meta).

No parameter schema in public metadata yet.

inspect_a11yGet accessibility tree.

Get accessibility tree.

No parameter schema in public metadata yet.

inspect_elementInspect a specific element.1 params

Inspect a specific element.

Parameters* required
selectorstring
inspect_networkStartStart network capture.

Start network capture.

No parameter schema in public metadata yet.

inspect_networkDumpDump captured network log. Pass bodies:true to include response bodies (JSON APIs). Waits up to 3s for pending body fetches.2 params

Dump captured network log. Pass bodies:true to include response bodies (JSON APIs). Waits up to 3s for pending body fetches.

Parameters* required
bodiesboolean
Include response bodies for API callsdefault: false
url_filterstring
Filter entries by URL substring
inspect_downloadDownload and parse a URL.1 params

Download and parse a URL.

Parameters* required
urlstring
tab_listList open browser tabs.

List open browser tabs.

No parameter schema in public metadata yet.

intercept_onEnable request interception.1 params

Enable request interception.

Parameters* required
patternsarray
intercept_offDisable request interception.

Disable request interception.

No parameter schema in public metadata yet.

Sponsors

Configuration

TAP_SUPABASE_URL*

Supabase project URL for your TAP workspace

TAP_SUPABASE_KEY*secret

Supabase service role key for your TAP workspace

Readme

Details

Repository
github.com/totalaudiopromo/total-audio-platform
Categories
Sales & Marketing, Media & Entertainment
Package
@totalaudiopromo/tap-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active

Related Sales & Marketing MCP servers

View all
1jaymiller-cmg avatarDealSync — Shared Deal Room for LOs and Realtorsjaymiller-cmg/dealsync-mcp-serverShared deal room where Loan Officers and Realtors track leads from conversation to closing.0stars
2jmpy-me avatarJmpy Mcp Serverjmpy-me/jmpy-mcp-serverOfficial JMPY.me MCP Server: URL shortener, QR codes, and 70+ marketing analytics tools.0stars
3mcp-dir avatarRD Stationmcp-dir/rdstation-mcpRD Station Marketing, contacts/leads (get, upsert, funnel), conversion events and webhooks via the o0stars
4periodix avatarPeriodix Actionsnet.periodix/actionsSearch LinkedIn & Sales Navigator. Get structured people, companies, posts, jobs data. 4.9/5 on G2.0stars
5nicofains1 avatarAgentic Adsnicofains1/agentic-adsAd network for AI agents — monetize MCP servers with contextual ads. 70% revenue share.0stars
6nooxus-ai avatarNooxus Mcpnooxus-ai/nooxus-mcpNooxus Edge Data MCP: Search AI-verified Chinese manufacturers, eliminate B2B hallucinations.0stars