Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Plaud MCP server

Vendor MCP
Open markdown

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

Tools
5
What they doRead · write · destructive
5 · 0 · 05 read0 write0 destructive
Users sign in with
OAuth app
Your own Plaud MCP server app

What you can do

  • List recordings: browse Plaud recordings, narrowed by a name substring and an inclusive date_from/date_to range
  • Get recording details: read a recording’s name, timestamps, duration, transcript segments, AI notes, and temporary audio download URL
  • Read timestamped transcripts: fetch raw or AI-cleaned transcripts with speaker attribution, one cursor-paginated page of utterances at a time
  • Read AI-generated notes: retrieve the summary, action items, and key topics for a recording as Markdown blocks
  • Identify the Plaud account: confirm which Plaud account the current tool calls run against

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 Plaud MCP connection

    In AgentKit > Connections, create a Plaud 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

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

    Then enter the app's Client ID and Client Secret on the Plaud 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 = 'plaudmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Plaud 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: 'plaudmcp_get_current_user',
    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
  • plaudmcp_get_current_userGet details of the currently authenticated Plaud account.Read-only

    Get current user

    Get details of the currently authenticated Plaud account.

    Inputs

    This tool takes no inputs.

  • plaudmcp_get_fileGet details of a specific Plaud recording by ID, including name, timestamps, duration, transcript segments, AI notes, and a temporary audio download URL.Read-only

    Get recording details

    Get details of a specific Plaud recording by ID, including name, timestamps, duration, transcript segments, AI notes, and a temporary audio download URL.

    Inputs

    file_idstringrequired
    The file ID of the recording to retrieve. Use list_files to look up IDs.
  • plaudmcp_get_noteFetch AI-generated notes for a Plaud recording - compact summary, action items, and key topics, returned as Markdown blocks.Read-only

    Get recording notes

    Fetch AI-generated notes for a Plaud recording - compact summary, action items, and key topics, returned as Markdown blocks.

    Inputs

    file_idstringrequired
    The file ID of the recording to retrieve notes for. Use list_files to look up IDs.
  • plaudmcp_get_transcriptFetch the timestamped transcript with speaker attribution for a Plaud recording.Read-only

    Get recording transcript

    Fetch the timestamped transcript with speaker attribution for a Plaud recording. Defaults to the `transaction` block (raw transcript with speaker names and timestamps), returned one page of utterances at a time - call again with the returned `next_cursor` to fetch the next page. Set `block` to `outline` or `transaction_polish` to fetch those blocks instead.

    Inputs

    file_idstringrequired
    The file ID of the recording to retrieve the transcript for. Use list_files to look up IDs.
    blockstring
    Which source block to fetch: `transaction` (default; raw transcript with speaker and timestamps), `transaction_polish` (AI-cleaned transcript; same per-utterance shape, keeps speaker and timestamps), or `outline`.one of transactionoutlinetransaction_polish
    cursorstring
    Opaque pagination cursor from a previous call's `next_cursor`. Omit to start from the first utterance.
    limitinteger
    Maximum number of utterances to return in this page (default 50, max 500). Only applies to blocks returned as an utterance list.
  • plaudmcp_list_filesList Plaud recordings.Read-only

    List recordings

    List Plaud recordings. Supports optional filtering: `query` (case-insensitive name substring), `date_from`/`date_to` (YYYY-MM-DD, inclusive). When any filter is set, paginates up to 5 pages x 100 recordings and returns all matches.

    Inputs

    date_fromstring
    Start date, inclusive, in YYYY-MM-DD format. Interpreted in the server's timezone.
    date_tostring
    End date, inclusive, in YYYY-MM-DD format. Interpreted in the server's timezone.
    pageinteger
    Page number (ignored when filters are set). Defaults to 1.
    page_sizeinteger
    Number of recordings to return per page (ignored when filters are set). Defaults to 20.
    querystring
    Case-insensitive substring match on the recording name.

Workflows

plaudmcp_get_file, plaudmcp_get_note, and plaudmcp_get_transcript require a file ID — the identifier of a single recording. Start with plaudmcp_list_files to discover recordings, then pass a file_id to the details, notes, or transcript tools.

Find a recording, then read its notes

Filter the recording list by name substring or date range, take the file_id of a match, and fetch the AI-generated summary and action items.

// Step 1 — find the recording. `query` matches the name, case-insensitively.
const listResult = await scalekit.actions.executeTool({
toolName: 'plaudmcp_list_files',
identifier: 'user_123',
connector: 'plaudmcp',
toolInput: {
query: 'weekly sync',
date_from: '2026-01-01',
date_to: '2026-01-31',
},
});
// Inspect the payload once to learn how Plaud names the recording list and
// its file IDs, then read those fields directly in your own code.
// Security: Log only in development; recording names may expose user data.
console.log(listResult.data);
// Step 2 — read the AI notes for a recording you picked from that payload.
const noteResult = await scalekit.actions.executeTool({
toolName: 'plaudmcp_get_note',
identifier: 'user_123',
connector: 'plaudmcp',
toolInput: { file_id: '66f2b1c8e4b0a1d2c3e4f5a6' },
});
// Security: AI notes summarize the recording. Log only in development, and
// pass the notes to your agent rather than persisting them.
console.log(noteResult.data);

Page through a long transcript

plaudmcp_get_transcript returns one page of utterances at a time and includes a next_cursor when more remain. Pass that cursor back on the next call, and stop when the response returns no cursor.

const pages = [];
let cursor: string | undefined = undefined;
do {
const result = await scalekit.actions.executeTool({
toolName: 'plaudmcp_get_transcript',
identifier: 'user_123',
connector: 'plaudmcp',
toolInput: {
file_id: '66f2b1c8e4b0a1d2c3e4f5a6',
block: 'transaction', // raw transcript with speaker names and timestamps
limit: 200,
...(cursor ? { cursor } : {}),
},
});
pages.push(result.data);
cursor = (result.data as { next_cursor?: string }).next_cursor;
} while (cursor);
console.log(`Fetched ${pages.length} transcript page(s)`);

Choose the right transcript block

plaudmcp_get_transcript reads one of three blocks. Pick the block that matches what the agent needs:

BlockReturnsUse it when
transactionRaw utterances with speaker labels and timestamps. This is the default.Exact wording matters — quoting, compliance review, or speaker attribution
transaction_polishThe same per-utterance shape, cleaned up by AI. Keeps speaker and timestamps.You want readable prose without filler words, but still need timestamps
outlineA structured outline of the recording.You need the shape of the conversation rather than its full text

Get one recording’s metadata and audio

plaudmcp_get_file returns everything about a single recording in one call: name, timestamps, duration, transcript segments, AI notes, and a temporary audio download URL.

const result = await scalekit.actions.executeTool({
toolName: 'plaudmcp_get_file',
identifier: 'user_123',
connector: 'plaudmcp',
toolInput: { file_id: '66f2b1c8e4b0a1d2c3e4f5a6' },
});
// Security: Log only in development; recordings may contain sensitive content.
console.log(result.data);