Skip to main content
Glama
README.md4.52 kB
# Fathom MCP Server A read-only Model Context Protocol (MCP) server for accessing Fathom AI API endpoints (meetings, recordings, transcripts, summaries, teams, team members) via GET operations. Built with [FastMCP](https://gofastmcp.com/). This implementation provides streamlined access to Fathom meeting data while minimizing API consumption. It is optimized for efficiency and simplicity, using the toon output format for less token usage and better LLM processing. ## Features - **List Meetings**: Retrieve meetings with optional filtering and inclusion of transcripts/summaries - **Get Summary**: Retrieve markdown summary for a specific recording - **Get Transcript**: Retrieve transcript for a specific recording - **List Teams**: Retrieve all teams - **List Team Members**: Retrieve team members with optional team filtering - **TOON Format Support**: Optimized output format for reduced token usage and better LLM processing ## Requirements - Python 3.10+ - Fathom API key - FastMCP 2.0+ ## Installation 1. Clone or download this repository 2. Install dependencies: ```bash pip install -r requirements.txt ``` or ```bash uv venv && uv sync ``` ## Configuration The server uses environment variables for configuration: - `FATHOM_API_KEY`: Your Fathom API key (required) - `FATHOM_TIMEOUT`: Request timeout in seconds (default: 30) - `OUTPUT_FORMAT`: Output format for tool responses ("toon" or "json", default: "toon") ## Usage ### Direct Python Execution (Recommended) ```json { "fathom": { "command": "python", "args": [ "server.py" ], "env": { "FATHOM_API_KEY": "<api-key>" } } } ``` ### Using UV ```json { "fathom": { "command": "uv", "args": [ "run", "server.py" ], "env": { "FATHOM_API_KEY": "<api-key>" } } } ``` ## Available Tools ### `list_meetings` Retrieve meetings with optional filtering and pagination. **Properties:** - `calendar_invitees` (list[str], optional): Filter by invitee emails - `calendar_invitees_domains` (list[str], optional): Filter by domains - `calendar_invitees_domains_type` (str, optional): Domain filter type (all, only_internal, one_or_more_external) - `created_after` (str, optional): ISO timestamp filter - `created_before` (str, optional): ISO timestamp filter - `cursor` (str, optional): Pagination cursor - `include_action_items` (bool, optional): Include action items - `include_crm_matches` (bool, optional): Include CRM matches - `include_summary` (bool, optional): Include summary - `include_transcript` (bool, optional): Include transcript - `recorded_by` (list[str], optional): Filter by recorder emails - `teams` (list[str], optional): Filter by team names ### `get_summary` Retrieve markdown summary for a recording. **Properties:** - `recording_id` (int): The recording identifier ### `get_transcript` Retrieve transcript for a recording. **Properties:** - `recording_id` (int): The recording identifier ### `list_teams` Retrieve teams with optional pagination. **Properties:** - `cursor` (str, optional): Pagination cursor ### `list_team_members` Retrieve team members with optional filtering and pagination. **Properties:** - `cursor` (str, optional): Pagination cursor - `team` (str, optional): Filter by team name ## Output Format The server supports two output formats configured via the `OUTPUT_FORMAT` environment variable: - **TOON** (default): Token-Optimized Object Notation - optimized for LLM processing with reduced token usage - **JSON**: Standard JSON format with indentation for human readability All output is filtered to remove empty, null, or redundant information for improved efficiency. ### TOON Format Example ```toon items: [ title: "Quarterly Business Review" recording_id: 123456789 created_at: "2025-03-01T17:01:30Z" ] ``` ### JSON Format Example ```json { "items": [ { "title": "Quarterly Business Review", "recording_id": 123456789, "created_at": "2025-03-01T17:01:30Z" } ] } ``` ## Error Handling The server provides comprehensive error handling: - **401 Unauthorized**: Invalid API key - **404 Not Found**: Resource not found - **429 Rate Limited**: Too many requests - **500 Server Error**: Fathom API issues All errors are logged via MCP context with appropriate severity levels. ## Security - API keys are loaded from environment variables - No sensitive data is logged - HTTPS is used for all API requests - Error messages don't expose internal details ## License MIT License.

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/druellan/fathom-get-mcp'

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