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.
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 paramsRun 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....
argsobjectnamestringsitestringnoSandboxbooleantap_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 paramsCapture 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...
formatstringjpeg · pngdefault: jpegqualityintegertap_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 paramsRead 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.
sitestringlimitintegertap_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 paramsRun 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...
autobooleannamestringsitestringformatstringjson · junit · tapdefault: jsontimeoutintegertap_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 paramsRun 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...
argsobjectnamestringsitestringkeyColstringpreviousRowsarraytap_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 paramsAnalyze 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.
urlstringforge_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 paramsLoad 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.
pathstringforge_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 paramsTest 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.
urlstringexpressionstringdescriptionstringforge_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 paramsSave 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.
codestringnamestringsitestringtap_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 paramsNavigate 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.
urlstringtap_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 paramsClick 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.
targetstringtap_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 paramsType 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...
textstringselectorstringtap_evalEvaluate JavaScript in the browser. The universal escape hatch — use when other tap.* tools can't do what you need.1 paramsEvaluate JavaScript in the browser. The universal escape hatch — use when other tap.* tools can't do what you need.
expressionstringtap_findFind elements by visible text. Returns position, selector, and bounding box. Use before click/type to verify the target exists.2 paramsFind elements by visible text. Returns position, selector, and bounding box. Use before click/type to verify the target exists.
rolestringquerystringtap_waitWait for a specified number of milliseconds. Use instead of tap.eval with setTimeout. For waiting on elements, prefer tap.waitFor(selector) instead.1 paramsWait for a specified number of milliseconds. Use instead of tap.eval with setTimeout. For waiting on elements, prefer tap.waitFor(selector) instead.
msintegertap_pressKeyPress a key.2 paramsPress a key.
keystringmodifiersintegertap_uploadUpload files to a file input. After uploading, check inspect.toasts for errors (wrong format, size limit).2 paramsUpload files to a file input. After uploading, check inspect.toasts for errors (wrong format, size limit).
filesstringselectorstringtap_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 paramsGet page DOM structure.
selectorstringinspect_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 paramsInspect a specific element.
selectorstringinspect_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 paramsDump captured network log. Pass bodies:true to include response bodies (JSON APIs). Waits up to 3s for pending body fetches.
bodiesbooleanurl_filterstringinspect_downloadDownload and parse a URL.1 paramsDownload and parse a URL.
urlstringtab_listList open browser tabs.List open browser tabs.
No parameter schema in public metadata yet.
intercept_onEnable request interception.1 paramsEnable request interception.
patternsarrayintercept_offDisable request interception.Disable request interception.
No parameter schema in public metadata yet.
TAP_SUPABASE_URL*Supabase project URL for your TAP workspace
TAP_SUPABASE_KEY*secretSupabase service role key for your TAP workspace
io.github.socialapishub/social-media-api
io.github.xpaysh/social-media
com.thenextgennexus/youtube-media-mcp-server
io.github.ludmila-omlopes/youtube-video-analyzer
csoai-org/social-media-ai-mcp
com.ezbizservices/social-media