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 9 tools.
- Tools
- 9
- What they doRead · write · destructive
- 9 · 0 · 09 read0 write0 destructive
- Users sign in with
- OAuth
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the Fathom MCP connection
In AgentKit > Connections, create a Fathom MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Fathom, so you don't need to register an OAuth app.
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.actionsconst connector = 'fathommcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'fathommcp_get_identity',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "fathommcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Fathom MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="fathommcp_get_identity",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolfathommcp_find_personFind a person by name across meeting speakers, then return contact info and compact summaries for matched meetings.Read-onlyFathom 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_get_identityReturns the authenticated user's name and email address.Read-onlyFathom 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-onlyFathom 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-onlyFathom 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-onlyFathom 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-onlyFathom 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_list_meetingsList Fathom meetings with filters.Read-onlyFathom List Meetings
List Fathom meetings with filters. Returns recording_id, title, url, recorded_by, calendar_invitees. For team queries call list_teams first. Does NOT scan meeting content — for finding meetings with a specific person use find_person, for topic searches use search_meetings.
Inputs
created_afterstring- ISO 8601 date string. Only return meetings created after this date.
created_beforestring- ISO 8601 date string. Only return meetings created before this date.
cursorstring- Pagination cursor from a previous response.
include_action_itemsboolean- Include action items in results.
include_summaryboolean- Include AI summary in results.
max_pagesinteger- Maximum number of pages to fetch.
recorded_byarray- Filter by recorder email addresses.
teamsarray- Filter by team names (use list_teams to get valid names).
fathommcp_list_teamsList all Fathom teams the current user belongs to.Read-onlyFathom List Teams
List all Fathom teams the current user belongs to. Returns team names. Use the returned names for the teams filter in list_meetings. Call list_teams first if you need team names — do not guess them.
Inputs
This tool takes no inputs.
fathommcp_search_meetingsSearch meeting summaries and titles by topic or keyword (AND logic).Read-onlyFathom Search Meetings
Search meeting summaries and titles by topic or keyword (AND logic). Use for finding specific topics, discussions, ideas, or decisions. Use recorded_by = user email for own recordings, "anyone" for org-wide searches.
Inputs
querystringrequired- Search query. Multiple words use AND logic.
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.
max_pagesinteger- Maximum number of pages to fetch.
No tools match.