fathom-mcp-server
The Fathom MCP server enables MCP clients like Claude Desktop to access Fathom meeting intelligence with the following capabilities:
List Recent Meetings (
fathom_list_meetings): Retrieve recent meetings with optional date range filters (before/after), pagination, and configurable limits (up to 50). Returns title, date, participants, summary, and action items.Get Meeting Summary (
fathom_get_summary): Fetch the AI-generated, markdown-formatted summary for a specific meeting by recording ID.Get Full Transcript (
fathom_get_transcript): Retrieve the complete speaker-labeled, timestamped transcript for a specific meeting by recording ID.Search Meetings (
fathom_search_meetings): Search across the most recent 50 meetings by keyword matched against titles, with optional date filtering.
The server also includes built-in reliability features: client-side token-bucket rate limiting (60 requests/minute), automatic retries with exponential backoff for 429 errors, structured error responses with recovery hints, and prompt injection protection via EXTCONTENT markers.
Allows listing recent meetings, retrieving AI-generated summaries, pulling full speaker-labeled transcripts, and searching meetings by title with optional date filtering.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@fathom-mcp-serverlist my recent meetings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Fathom MCP Server
A Model Context Protocol (MCP) server that enables Claude Desktop (and other MCP clients) to access your Fathom meeting intelligence — list meetings, read summaries, search by title, and pull full transcripts.
Features
Meeting Intelligence Tools
Tool | Description |
| List recent meetings with optional date filters. Returns title, date, participants, summary, and action items |
| Get the AI-generated summary for a specific meeting (markdown formatted) |
| Get the full speaker-labeled, timestamped transcript for a meeting |
| Search meetings by keyword in title with optional date filtering |
Built-in Reliability
Token-bucket rate limiter — respects Fathom's 60 req/min limit client-side
Auto-retry on 429 — exponential backoff (2s, 4s, 8s) up to 3 retries
Structured error responses — actionable error messages with status codes and recovery hints
Prompt injection protection — external content wrapped in randomised
EXTCONTENTmarkers
Related MCP server: Fathom AI MCP Server
Quick Start
Prerequisites
Node.js 22.14 or higher
A Fathom account with API access
Claude Desktop (or any MCP-compatible client)
Get Your Fathom API Key
Go to Fathom Settings
Generate an API key
Installation
Published package: @luminarylane/fathom-mcp-server on npm
Option 1: npx (Recommended — Zero Install)
# Test it works
FATHOM_API_KEY=your-key npx --yes @luminarylane/fathom-mcp-serverClaude Desktop configuration:
{
"mcpServers": {
"fathom": {
"command": "npx",
"args": ["--yes", "@luminarylane/fathom-mcp-server"],
"env": {
"FATHOM_API_KEY": "your-fathom-api-key"
}
}
}
}Option 2: Install from npm
npm install -g @luminarylane/fathom-mcp-serverThen configure Claude Desktop:
{
"mcpServers": {
"fathom": {
"command": "luminarylane-fathom-mcp",
"env": {
"FATHOM_API_KEY": "your-fathom-api-key"
}
}
}
}Option 3: Install from Source
git clone https://github.com/luminarylane/fathom-mcp-server.git
cd fathom-mcp-server
npm install
npm run buildThen configure Claude Desktop:
{
"mcpServers": {
"fathom": {
"command": "node",
"args": ["/path/to/fathom-mcp-server/dist/index.js"],
"env": {
"FATHOM_API_KEY": "your-fathom-api-key"
}
}
}
}Usage Examples
Once configured, ask Claude to:
"What meetings did I have this week?"
"Get the summary for my last standup"
"Search for meetings about product roadmap"
"Pull the transcript from my meeting with the design team"
"List all meetings from the past month"
Authentication
Set the FATHOM_API_KEY environment variable with your API key from Fathom Settings.
Rate Limits
Fathom enforces 60 requests per 60 seconds per user. The server handles this automatically with a client-side token bucket and exponential backoff retries.
Troubleshooting
Missing API key
FATHOM_API_KEY env var is requiredSet the FATHOM_API_KEY environment variable before starting the server.
401 Authentication failed
AUTH_FAILED: FATHOM_API_KEY is invalid or expired.Check your API key in Fathom Settings and regenerate if needed.
Rate limit exceeded
RATE_LIMITED: Fathom rate limit (60/min). Wait 60s and retry.The server handles short waits automatically. For longer windows, wait and retry.
Reporting Issues
Check existing issues
Open a new issue with the full error message, steps to reproduce, and your environment details
Contributing
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
npm install
npm run dev # Dev mode
npx tsc --noEmit # Type check
npx prettier --write . # FormatLicense
MIT License — see LICENSE for details.
Acknowledgments
Available Tools
4 toolsfathom_get_summaryA
Get the AI-generated summary for a specific meeting. Returns markdown-formatted summary.
| Name | Required | Description | Default |
|---|---|---|---|
| recording_id | Yes | The meeting/recording ID from fathom_list_meetings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'returns markdown-formatted summary' which hints at read-only behavior, but does not state side effects, auth requirements, or rate limits. Adequate but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, direct sentences with no redundant information. Front-loaded with purpose and output format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple retrieval tool with one required parameter and no output schema, the description is complete: it specifies input source, output format, and core functionality.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter, which already explains it comes from fathom_list_meetings. The tool description adds no additional semantic information beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool gets an AI-generated summary for a specific meeting, explicitly mentioning the markdown format. It is distinct from siblings like fathom_get_transcript (different output) and fathom_list_meetings (different purpose).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It is implied that one uses it when needing a summary rather than a transcript, but there are no when-not or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fathom_get_transcriptA
Get the full speaker-labeled, timestamped transcript for a specific meeting. Use sparingly — transcripts can be large. Prefer fathom_list_meetings for quick overviews.
| Name | Required | Description | Default |
|---|---|---|---|
| recording_id | Yes | The meeting/recording ID from fathom_list_meetings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description mentions large size but does not disclose other behavioral traits such as read-only nature, latency, or output format beyond basic structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. Front-loaded with purpose, followed by usage guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple one-parameter tool with no output schema. It explains what the tool returns and gives usage advice, though it could specify output format more precisely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description covers the only parameter (recording_id) fully. The tool description adds no additional meaning beyond restating the parameter name.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves a full transcript with speaker labels and timestamps. Does not explicitly differentiate from fathom_get_summary or fathom_search_meetings, only from fathom_list_meetings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit advice to use sparingly due to size and suggests an alternative for quick overviews (fathom_list_meetings). Does not address when to use other siblings like fathom_get_summary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fathom_list_meetingsA
List recent meetings from Fathom with optional date filters. Returns title, date, participants, summary, and action items.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Only meetings after this ISO 8601 date (e.g., 2026-03-12) | |
| limit | No | Number of meetings to return (default: 10, max: 50) | |
| before | No | Only meetings before this ISO 8601 date | |
| cursor | No | Pagination cursor for next page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description indicates read-only operation (list), and discloses return fields. No annotations provided, so description carries burden but lacks details on authentication, rate limits, or pagination behavior beyond what schema provides. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with action and resource, no wasted words. Could slightly expand on output structure but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
4 params, no required, no output schema. Description lists return fields but not structure (e.g., array of objects), and omits pagination details. Adequate for a list tool but missing some completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds 'with optional date filters' but no parameter-specific details beyond schema. No added value over what schema already provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' and resource 'meetings from Fathom' with optional date filters, clearly distinguishing from sibling tools that search or retrieve individual meetings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for listing recent/date-filtered meetings, but no explicit guidance on when to use vs siblings (e.g., search_meetings for keyword search). No when-not-to-use or alternative suggestions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fathom_search_meetingsA
Search the most recent 50 meetings by keyword in title. Client-side filtering since Fathom API doesn't have native search. Use the 'after' param to narrow the window.
| Name | Required | Description | Default |
|---|---|---|---|
| after | No | Only meetings after this ISO 8601 date | |
| limit | No | Max results to return (default: 10) | |
| query | Yes | Search keyword to match against meeting titles |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Reveals that the tool only searches the most recent 50 meetings and performs client-side filtering. Annotations are absent, so the description provides the primary behavioral context. Missing details on case sensitivity, exact matching, or behavior when query matches more than 50 meetings.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each essential: purpose, technical limitation, and usage tip. Concise and front-loaded with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers input behavior well but lacks details on output format, pagination, or how results are returned. Without an output schema, the description should clarify what the tool returns (e.g., meeting IDs, metadata).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions (100% coverage). The description adds value by explaining the client-side filtering context and how the 'after' parameter narrows the window, enhancing understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search'), resource ('meetings'), and scope ('most recent 50 by keyword in title'). It distinguishes from sibling tools like fathom_list_meetings, which lists all meetings without keyword filtering.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains that client-side filtering is used due to API limitations, and advises using the 'after' param to narrow the search window. However, it does not explicitly compare to sibling tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v1.0.0- First observed
fathom_get_summary - First observed
fathom_get_transcript - First observed
fathom_list_meetings - First observed
fathom_search_meetings
TDQS
Scored across 4 tools
Each tool targets a distinct operation: summary retrieval, transcript retrieval, listing meetings, and searching. No overlaps or ambiguities.
All tools follow a consistent 'fathom_verb_noun' pattern, using clear and predictable verbs (get, list, search).
With 4 tools, the server is focused and each tool addresses a core need for meeting data retrieval. No excess or shortage.
The set covers all likely retrieval operations (list, get summary, get transcript, search). There are no obvious gaps for the domain of meeting information access.
Maintenance
Related MCP Connectors
Connect Claude to Fathom meeting recordings, transcripts, and summaries
- mcpOAuthai.fathom.api
Give your AI assistant real meeting context via Fathom so every output grounded in your work
Search meetings, export summaries and transcripts, and manage recordings from any AI tool.
Search and read your Laxis meeting transcripts, AI summaries, and participants from Claude.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables LLMs to interact with Fathom.video API for managing meeting recordings, retrieving transcripts and AI-generated summaries, searching meeting content, and accessing analytics and team data.1010 npm1MIT
- AlicenseNot gradedqualityCmaintenanceExposes the Fathom AI meeting intelligence API to Claude, allowing users to list meetings, fetch transcripts, and retrieve summaries. It also enables management of teams and members through the Model Context Protocol.45 npmMIT
- AlicenseAqualityCmaintenanceEnables Claude to search and retrieve meeting information from Fathom AI through natural language queries.28MIT
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants access to Fathom meeting recordings, summaries, and transcripts via tools like list_meetings, get_meeting_summary, and get_meeting_transcript.MIT