Skip to main content
Glama
naumanpathan

FathomBridge

by naumanpathan

šŸŒ‰ FathomBridge

Your meetings, in your AI.

FathomBridge is a zero-install MCP (Model Context Protocol) server that connects any AI CLI or IDE directly to your Fathom meeting transcripts, summaries, and action items — using your API key.

No cloning. No building. One line of config.

npm version License: MIT MCP Compatible


✨ Features

  • šŸ“‹ List meetings — with date, team, and pagination filters

  • šŸ“ Full transcripts — speaker-labelled with timestamps

  • šŸ¤– AI summaries — key points and decisions

  • āœ… Action items — with owners and due dates

  • šŸ” Smart search — find any meeting by title, host, or participant

  • šŸ‘„ Teams — list your Fathom organization teams

  • ⚔ Zero install — runs via npx, nothing to clone or build

  • šŸ”‘ API key auth — simple, local, no OAuth flow needed


Related MCP server: Fathom MCP Server

šŸš€ Quick Start

Step 1 — Get Your Fathom API Key

  1. Log in to fathom.video

  2. Go to Settings → Integrations → API

  3. Copy your API key

Step 2 — Add to Your AI Tool Config

Claude Code (~/.claude/claude.json):

{
  "mcpServers": {
    "fathom": {
      "command": "npx",
      "args": ["-y", "fathombridge"],
      "env": {
        "FATHOM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "fathom": {
      "command": "npx",
      "args": ["-y", "fathombridge"],
      "env": {
        "FATHOM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Windsurf (~/.codeium/windsurf/mcp_config.json):

{
  "mcpServers": {
    "fathom": {
      "command": "npx",
      "args": ["-y", "fathombridge"],
      "env": {
        "FATHOM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Gemini CLI (~/.gemini/settings.json):

{
  "mcpServers": {
    "fathom": {
      "command": "npx",
      "args": ["-y", "fathombridge"],
      "env": {
        "FATHOM_API_KEY": "your-api-key-here"
      }
    }
  }
}

Step 3 — Restart Your AI Tool

Restart Claude Code / Cursor / Windsurf and verify:

/mcp

You should see fathom listed as connected.


šŸ› ļø Available Tools

Tool

Description

list_meetings

List meetings with date/team filters

get_transcript

Full transcript with speaker labels

get_summary

AI summary + key points

get_action_items

Action items with owners/due dates

search_meetings

Search by title, host, participant

list_teams

List organization teams


šŸ’¬ Example Prompts

Once connected, try these in your AI tool:

Show me my last 5 Fathom meetings

Get the transcript from my sprint planning call yesterday

What were the action items from the client call with John?

Search for all meetings about the Q3 roadmap

Show me all meetings from this week with action items

Get the summary of meeting ID abc123

šŸ”’ Security

  • Your API key is stored only in your local MCP config

  • All requests go directly from your machine to Fathom's API

  • No data is stored, logged, or transmitted to any third party

  • Never commit your API key to version control


šŸ”§ Troubleshooting

fathom not showing in /mcp → Restart your AI tool after editing the config file

Error: FATHOM_API_KEY environment variable is required → Make sure the env block in your config has your actual API key

Error: 401 Unauthorized → Your API key is invalid — regenerate it at fathom.video → Settings → API

No meetings found → Your API key only accesses meetings recorded by you or shared to your team

Transcript not available yet → Fathom takes a few minutes to process transcripts after a call ends


šŸ“‹ Requirements

  • Node.js 18 or higher

  • A Fathom account

  • A Fathom API key


šŸ¤ Contributing

Contributions welcome! Please:

  1. Fork the repo

  2. Create a feature branch

  3. Make your changes with tests

  4. Submit a PR with a clear description


šŸ“„ License

MIT Ā© 2026 Nauman Pathan


šŸ™ Acknowledgements

Built on top of the Model Context Protocol by Anthropic. Powered by Fathom.

Available Tools

6 tools
get_action_itemsA

Get only the action items from a meeting — clean list with owners and due dates

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYesThe Fathom meeting ID

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the behavioral disclosure burden. It does disclose the output shape ('clean list with owners and due dates') and implies a read-only operation via 'Get'. However, it omits edge-case behavior such as what happens when there are no action items or when the meeting ID is invalid.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence conveys the operation, the scope, and the output format with no filler. Every word contributes to the agent's understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter tool with no output schema, the description adequately covers what is returned ('owners and due dates') and the input source ('a meeting'). It could be more complete about empty results or error behavior, but the low complexity keeps this from being a major gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with meeting_id already described as 'The Fathom meeting ID'. The description adds no new parameter details beyond referencing the meeting. This matches the baseline where the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') with a clear resource ('action items from a meeting') and explicitly distinguishes itself from sibling tools like get_summary and get_transcript with the word 'only'. An agent can immediately understand what this tool does and how it differs from nearby alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'only the action items' communicates a specific use case: extracting action items rather than summaries or transcripts. It does not explicitly name alternatives or state when not to use this tool, but the context of sibling tools and the 'only' qualifier provide clear contextual guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_summaryB

Get the AI-generated summary, key points, and action items for a meeting

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYesThe Fathom meeting ID (get from list_meetings)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral disclosure. 'Get' implies a read operation and 'AI-generated' hints at a computed or cached summary, but there is no mention of freshness, availability of summaries, or any permissions required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no filler. Every word adds meaning and it communicates the tool's core return content immediately.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool with no output schema, the description adequately names the return content (summary, key points, action items). It could be more complete by addressing the overlap with get_action_items, but the essential calling context is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the meeting_id parameter is documented with its source (list_meetings). The description itself adds no parameter-level details, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and names a clear resource: the AI-generated summary, key points, and action items for a meeting. It is clear, but it does not distinguish itself from the sibling get_action_items, which also covers action items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is given for when to use this tool versus get_action_items, get_transcript, or search_meetings. The only implicit context is 'for a meeting,' which does not help an agent decide between the overlapping siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_transcriptA

Get the full speaker-labelled, timestamped transcript for a meeting

ParametersJSON Schema
NameRequiredDescriptionDefault
meeting_idYesThe Fathom meeting ID (get from list_meetings)

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of explaining behavior. It discloses the output type and its characteristics ('full', 'speaker-labelled', 'timestamped'), which helps an agent understand what will be returned. It does not mention side effects, authorization requirements, or potential unavailability of transcripts, but 'get' reasonably implies a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single front-loaded sentence that directly states the resource and its key attributes. There is no redundant wording or filler, and every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter retrieval tool, the description is mostly complete: it identifies the input, the output, and distinguishing transcript features. It falls slightly short by not providing any explicit usage guidance or disambiguation from sibling tools, though the purpose is clear enough for straightforward selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the meeting_id parameter is already documented with a source hint ('get from list_meetings'). The tool description itself adds no parameter detail, but it does not need to because the schema fully covers the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Get the full speaker-labelled, timestamped transcript') and clearly identifies what is returned. This distinguishes it from sibling tools like get_summary and get_action_items without needing to inspect them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for retrieving a transcript when the user needs the full speaker-labelled, timestamped record of a meeting. However, it does not explicitly state when to prefer this over get_summary or search_meetings, nor does it offer any exclusions or alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_meetingsB

List your Fathom meetings with optional date, team, and pagination filters

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of meetings to return (1-100, default 10)
cursorNoPagination cursor from previous response
team_idNoFilter meetings by team ID
to_dateNoFilter meetings to this date (ISO 8601: 2026-12-31)
from_dateNoFilter meetings from this date (ISO 8601: 2026-01-01)

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry the transparency burden. It discloses the scope ('your' meetings) and hints at pagination via 'pagination filters', but doesn't state that the operation is read-only, nor describe the response shape or pagination behavior such as cursor usage. For a simple listing tool the description does some work but leaves key behavioral details implicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one sentence that front-loads the action and resource, then lists filter categories with no filler. Every word contributes meaning and it is immediately parsable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a five-parameter list tool with no output schema and no annotations, the description covers the basics (what and filters) but lacks return-value expectations, pagination details, and any relation to sibling tools. It is adequate, but an agent would benefit from knowing the response includes a cursor or how list_meetings differs from search_meetings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so each parameter (limit, cursor, team_id, to_date, from_date) is already documented. The description groupes these into 'date, team, and pagination filters' but adds no meaning beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a clear action ('List'), the resource ('your Fathom meetngs'), and the filtering options ('date, team, and pagination filters'). It describes what the tool does unambiguously, but doesn't explicitly differentiate it from sibling search_meetings, so it earns a 4 rather than a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to choose this tool over alternatives like search_meetings. The text says only that filters are available, which implies context but does not state any exclusion or alternative. An agent is left to infer the trade-offs between listing and searching.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_teamsA

List all teams in your Fathom organization

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of conveying behavior. 'List' indicates a read-only operation, which is important, but the description does not disclose whether results are paginated, ordered, or require any specific permissions. For a simple zero-parameter list tool, this is 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that states exactly what the tool does without redundant words. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter listing tool, the description covers the key details: what is listed and the scope ('in your Fathom organization'). The absence of an output schema is a minor gap, but the description is otherwise sufficient for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so there is no parameter semantics for the description to clarify. The baseline of 4 applies because there is simply nothing to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('List') and a specific resource ('all teams in your Fathom organization'), making the operation immediately clear. It also distinguishes itself from the meeting-focused sibling tools by naming 'teams' as the entity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys that this tool is for retrieving teams in the organization, and the sibling tools all concern meetings or transcripts, so there is little ambiguity about when to use this tool. It does not explicitly mention when not to use it, but the resource distinction is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_meetingsB

Search meetings by title, host name, or participant email

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return (default 10)
queryYesSearch query — matches meeting titles, host names, participant emails
include_transcriptNoAlso search within transcript content (slower, uses more API calls)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral disclosure burden. It only states what fields are searched and does not disclose return format, pagination, behavior when no results match, or any cost/rate implications. The slower behavior of include_transcript is disclosed in the schema, not the description, leaving behavioral transparency thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with direct verb-first construction and zero wasted words. The search scope is front-loaded and every part of the sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description must carry more weight, yet it only covers what is searched. Missing are guidance on when to prefer this over list_meetings, the shape of the result set, and any behavioral caveats. For a 3-parameter tool with no output schema, this is an inadequately thin description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — query, limit, and include_transcript are all documented in the schema. The description essentially restates the query parameter's matching behavior ('title, host name, participant email') without adding new meaning, so the baseline 3 applies. No additional parameter semantics are needed beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Search') and resource ('meetings') with explicit search criteria: title, host name, or participant email. This makes the tool's purpose concrete and distinguishes it from list_meetings without needing to open the schema. It earns a 4 rather than 5 because the differentiation from sibling tools is implied, not explicitly stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case — finding a meeting by known attributes rather than listing all meetings or fetching a specific transcript — is reasonably implied by the search semantics. However, no explicit when-to-use or when-not-to-use guidance is given, and no alternatives are named. An agent must infer the boundary between this tool and list_meetings.

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. Dates show when Glama detected each change.

  1. 6 tool updatesv1.0.0
    • First observedget_action_items
    • First observedget_summary
    • First observedget_transcript
    • First observedlist_meetings
    • First observedlist_teams
    • First observedsearch_meetings

TDQS

A3.8/5.0
Disambiguation4/5

list_meetings and search_meetings both return meetings but are differentiated by filtering/browsing versus searching by text fields. get_summary and get_action_items overlap slightly since summaries include action items, but the dedicated action-item tool has a clear distinct purpose.

Naming Consistency5/5

All tool names consistently follow a verb_noun snake_case pattern using list, get, or search verbs. There are no mixed conventions or vague generic names.

Tool Count5/5

Six tools is a well-scoped count for a meeting-insights server. Each tool covers a distinct retrieval need without unnecessary bloat or missing core functions.

Completeness4/5

The server covers core read-only workflows: discovering meetings, searching, retrieving transcripts, summaries, action items, and listing teams. A minor gap is the lack of a dedicated get_meeting endpoint for single-meeting metadata, but list_meetings likely covers that need.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    C
    quality
    D
    maintenance
    Enables access to Fathom.video meeting data including AI-generated transcripts, summaries, and action items. Supports searching meetings, exporting to markdown, and managing webhooks through natural language in Cursor IDE.
    11
    21
    6
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables 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.
    10
    28
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides AI assistants access to Fathom meeting recordings, summaries, and transcripts via tools like list_meetings, get_meeting_summary, and get_meeting_transcript.
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/naumanpathan/fathombridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server