Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Fathom MCP server

Vendor MCP
Open markdown

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

Tools
12
What they doRead · write · destructive
11 · 1 · 011 read1 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

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

    In AgentKit > Connections, create a Fathom MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Fathom, so you don't need to register an OAuth app.

  4. 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 = 'fathommcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Fathom 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: 'fathommcp_get_identity',
    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
  • fathommcp_find_personFind a person by name across meeting speakers, then return contact info and compact summaries for matched meetings.Read-only

    Fathom Find Person

    Find a person by name across meeting speakers, then return contact info and compact summaries for matched meetings. Searches the speaker index directly. Use recorded_by = user email for own recordings, "anyone" for org-wide lookups.

    Inputs

    namestringrequired
    The person's name to search for.
    recorded_bystringrequired
    Filter by recorder. Use the authenticated user's email for own recordings or 'anyone' for org-wide search.
    created_afterstring
    ISO 8601 date string. Only search meetings created after this date.
  • fathommcp_find_relevant_meetingsTargeted ranked retrieval for specific facts, decisions, quotes, named projects, companies, products, people-plus-topic questions, or locating the best matching meetings.Read-only

    Find Relevant Meetings

    Targeted ranked retrieval for specific facts, decisions, quotes, named projects, companies, products, people-plus-topic questions, or locating the best matching meetings. Searches meeting titles, participant names, and full transcripts, returning the strongest matches first. Do not use for broad themes, frequencies, trends, or synthesis across many meetings; use scan_meeting_summaries for those. Use distinctive terms people would actually have said. Complementary parallel calls are allowed for different targeted phrasings. Rate every query word from 0 to 10 in word_weights. Use title_only=true for a named recurring meeting series. recorded_by is required; prefer 'anyone' when scope is ambiguous. Pass user_question as the user's complete original request verbatim; it is used to write the per-meeting relevant extracts. This starts the search and returns a search_id to pass to get_relevant_meetings_result.

    Inputs

    recorded_bystringrequired
    Recorder email, or 'anyone' for all accessible meetings.
    user_questionstringrequired
    The user's complete original request, verbatim.
    date_fromstring
    Earliest meeting date, YYYY-MM-DD.
    date_tostring
    Latest meeting date, YYYY-MM-DD.
    limitinteger
    Maximum ranked candidates to consider; default 20. At most 20 meetings are enriched and returned.default 20
    querystring
    Distinctive keyword terms for targeted ranked retrieval.
    title_onlyboolean
    Search meeting titles only, newest first, for named series.default false
    word_weightsobject
    Every query word rated 0-10 for distinctiveness.
  • fathommcp_get_identityReturns the authenticated user's name and email address.Read-only

    Fathom Get Identity

    Returns the authenticated user's name and email address. Call this once per session to determine who the authenticated user is. The email is needed only for queries explicitly scoped to the user's own recordings (recorded_by filter), not for every tool call.

    Inputs

    This tool takes no inputs.

  • fathommcp_get_meeting_summaryReturns the AI summary of a specific Fathom meeting.Read-only

    Fathom Get Meeting Summary

    Returns the AI summary of a specific Fathom meeting. Required: recording_id (from list_meetings). When presenting, cite with a working link using the meeting url field.

    Inputs

    recording_idintegerrequired
    The recording ID from list_meetings.
  • fathommcp_get_meeting_transcriptReturns the full transcript of a specific Fathom meeting.Read-only

    Fathom Get Meeting Transcript

    Returns the full transcript of a specific Fathom meeting. Required: recording_id (from list_meetings). Pass url to get timestamped deep links. Fetch at most 3 transcripts per query — they are large.

    Inputs

    recording_idintegerrequired
    The recording ID from list_meetings.
    urlstring
    The meeting URL from list_meetings for timestamped deep links.
  • fathommcp_get_recording_by_call_idResolve a Fathom call ID to a recording_id plus title, date, and url.Read-only

    Fathom Get Recording By Call Id

    Resolve a Fathom call ID to a recording_id plus title, date, and url. Use when the user pastes or types a numeric call ID. Pass the returned recording_id to get_meeting_summary, get_meeting_transcript, etc.

    Inputs

    call_idintegerrequired
    The numeric Fathom call ID.
  • fathommcp_get_recording_by_urlResolve a Fathom URL to a recording_id plus title, date, and url.Read-only

    Fathom Get Recording By Url

    Resolve a Fathom URL to a recording_id plus title, date, and url. Accepts direct call URLs (/calls/:id) and share links. Use when the user pastes any Fathom link.

    Inputs

    urlstringrequired
    A Fathom call URL or share link.
  • fathommcp_get_relevant_meetings_resultReturns the find_relevant_meetings result for a search_id.Read-only

    Get Relevant Meetings Result

    Returns the find_relevant_meetings result for a search_id. While the search is still running it says so; searches usually finish in 15-30 seconds and can take up to 3 minutes, so keep calling this tool with the same search_id until the meetings are returned. Do not answer from other tools while it runs.

    Inputs

    search_idstringrequired
    The search_id returned by find_relevant_meetings.