Fathom-Simple-MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FATHOM_API_KEY | Yes | Your Fathom API key (required) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_meetingsA | Search meetings by keyword across metadata fields and optionally transcripts. This tool searches meeting metadata (titles, attendees, teams, topics, summaries) and optionally full transcript content. Uses fuzzy matching to handle partial matches, plurals, and case-insensitive search. By default, transcripts are NOT searched or included to optimize performance. Set include_transcript=True to search within and return transcript data. Fetches all meetings (with pagination) and returns those matching the search query. Examples: search_meetings("McDonalds") # Search metadata only search_meetings("budget discussion", include_transcript=True) # Search including transcripts search_meetings("engineering") # Find meetings related to engineering |
| list_meetingsA | Retrieve paginated meetings with filtering and optional content inclusion (action items, CRM matches). Examples: list_meetings() # Get all meetings (paginated) list_meetings(created_after="2024-01-01T00:00:00Z") # Meetings after specific date list_meetings(teams=["Sales", "Engineering"]) # Filter by specific teams list_meetings(calendar_invitees=["john.doe@company.com", "jane.smith@client.com"]) # Filter by specific attendees list_meetings(calendar_invitees_domains=["company.com", "client.com"]) # Filter by attendee domains |
| get_meeting_detailsA | Retrieve comprehensive meeting details including summary and metadata (without transcript). Example: get_meeting_details([recording_id]) |
| get_meeting_transcriptB | Retrieve meeting transcript with essential metadata (id, title, participants, dates). Example: get_meeting_transcript([recording_id]) |
| list_teamsA | Retrieve paginated list of teams with organizational structure. Examples: list_teams_tool() # Get first page of teams list_teams_tool(cursor="abc123") # Get next page using cursor |
| list_team_membersA | Retrieve paginated team members with optional team filtering. Examples: list_team_members_tool() # Get all team members across all teams list_team_members_tool(team="Engineering") # Filter members by team name list_team_members_tool(cursor="def456") # Paginate through member list |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: search, list, get details, get transcript for meetings, and list teams and team members. There is no ambiguity or overlap.
All tools follow a consistent verb_noun pattern in snake_case (e.g., search_meetings, list_teams). The minor pluralization difference between 'list_teams' and 'list_team_members' is natural and acceptable.
The server has 6 tools, which is well-scoped for a simple meeting and team management server. Each tool serves a necessary function without being redundant or excessive.
The tool set covers all read operations for meetings (search, list, details, transcript) and teams (list teams, members). However, it lacks any write operations (create, update, delete), which may be intended but is a minor gap for a full lifecycle.