Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Audioscrape MCP server

Vendor MCP
Open markdown

The Audioscrape MCP connector routes your AI agent's tool calls to Audioscrape's own MCP server through Scalekit. Each user signs in to Audioscrape once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 20 tools.

Tools
20
What they doRead · write · destructive
17 · 3 · 017 read3 write0 destructive
Users sign in with
OAuth app
Your own Audioscrape MCP server app

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Create the Audioscrape MCP connection

    In AgentKit > Connections, create an Audioscrape MCP connection and copy its redirect URI. The name you give it is the connection_name your code passes. See Configure connections.

  4. Register an OAuth app

    Audioscrape MCP server connections use your own OAuth app. Register one with Audioscrape MCP server and add the redirect URI you copied.

    Then enter the app's Client ID and Client Secret on the Audioscrape MCP connection.

  5. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'audioscrapemcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Audioscrape MCP:', link)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'audioscrapemcp_get_charts',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • audioscrapemcp_fetchCompatibility fetch: the full transcript of a search result as one plain-text document.Read-only

    Fetch Result Document

    Compatibility fetch: the full transcript of a search result as one plain-text document. Clients with structured-output support should prefer get_transcript, which returns typed segments.

    Inputs

    idstringrequired
    A result id from the search tool (e.g. ep_12345)
  • audioscrapemcp_get_chartsGet current podcast chart rankings (Apple Podcasts, Spotify) by country.Read-only

    Podcast Charts

    Get current podcast chart rankings (Apple Podcasts, Spotify) by country. Shows the top podcasts for a given market.

    Inputs

    countrystring
    Country code (e.g. 'us', 'gb', 'de')default us
    limitinteger
    Maximum number of rankings to returndefault 50
    platformstring
    Chart platform: 'apple' or 'spotify'. Omit to get both platforms (each item includes a 'platform' field).one of applespotify
  • audioscrapemcp_get_entity_graphExplore the knowledge graph extracted from transcribed audio.Read-only

    Explore Entity Relationships

    Explore the knowledge graph extracted from transcribed audio. Given an entity (person, company, topic...), returns its typed relationships (employed_by, founded, supports, opposes, competes_with, invested_in, ...) with quote evidence from the source audio (episode + timestamp). With second_entity, returns how two entities are connected — including co-occurrence evidence when no typed relationship exists. Relationships are machine-extracted claims with evidence, not verified facts.

    Inputs

    entitystringrequired
    Entity name or slug to explore (e.g. 'Elon Musk' or 'elon-musk')
    limitinteger
    Maximum number of relationships to returndefault 20
    relationship_typestring
    Optional filter to one relationship type, e.g. 'employed_by', 'founded', 'opposes', 'supports', 'competes_with', 'invested_in'.
    second_entitystring
    Optional second entity name or slug. When given, returns how the two entities are connected instead of the full neighborhood.
  • audioscrapemcp_get_episode_overviewSTART HERE for summaries and key takeaways: one small response with the episode's chapters (titled, timestamped), speakers, most-mentioned entities, and metadata.Read-only

    Get Episode Overview

    START HERE for summaries and key takeaways: one small response with the episode's chapters (titled, timestamped), speakers, most-mentioned entities, and metadata. Orders of magnitude cheaper than reading the transcript. Drill into any chapter with get_transcript(episode_id, start_time=chapter.start_time); use search_audio to find specific quotes.

    Inputs

    episode_idstringrequired
    Episode ID (from search_audio, list_podcast_episodes, or get_transcript)
  • audioscrapemcp_get_speakerGet a speaker's bio and audio appearances (across podcasts and uploads).Read-only

    Get Speaker Profile

    Get a speaker's bio and audio appearances (across podcasts and uploads). Use search_speakers first to find the person_slug.

    Inputs

    person_slugstringrequired
    URL slug of the person (e.g. 'elon-musk')
  • audioscrapemcp_get_transcriptGet the transcript and metadata for one audio item — works for both podcast episodes and uploaded audio.Read-only

    Get Full Transcript

    Get the transcript and metadata for one audio item — works for both podcast episodes and uploaded audio. For summaries/takeaways call get_episode_overview FIRST (chapters are far cheaper than reading everything). Returns speaker-identified segments with timestamps. Long episodes are paged to stay under client response limits: check the coverage object (first key in the response) — if truncated=true, call again with start_time=next_start_time until truncated=false; a truncated page means pagination, NOT missing transcription. A 3-hour episode is typically 3-5 calls.

    Inputs

    episode_idstringrequired
    Episode ID to retrieve
    include_metadataboolean
    Include metadata (speakers, entities)default true
    include_segmentsboolean
    Include full transcript segmentsdefault true
    max_charsinteger
    Approximate response-size budget in bytes for the segment list (default 250000, max 400000). Lower it for tighter context budgets.
    start_timenumber
    Resume point in seconds — use coverage.next_start_time from the previous response to page through a long episodedefault 0
  • audioscrapemcp_get_transcription_statusCheck the status of a transcription job submitted via transcribe_audio.Read-only

    Transcription Job Status

    Check the status of a transcription job submitted via transcribe_audio. Returns status ('pending', 'running', 'waiting', 'completed', 'failed'), current pipeline stage, and when complete an episode_id you can use with search_audio or get_transcript. 'waiting' means the recording is stored and starts by itself when the workspace's allowance allows — relay the message, do not retry. When the file turned out to be a recording already in the workspace, the reply says so, reports that recording's status and episode_id, and no minutes were used — use that episode_id with get_transcript. A long recording is transcribed in parts: while 'running', a `progress` object says how many parts are done and whether get_transcript can already return them as a PARTIAL transcript (its coverage note says so; speaker labels are provisional until the last part lands) — never present a partial as the final transcript.

    Inputs

    job_idintegerrequired
    The job_id returned by transcribe_audio