Skip to main content
Glama
trevorwelch

Fathom Video MCP Server

by trevorwelch
README.md
# Fathom Video MCP Server

An MCP (Model Context Protocol) server that provides access to your [Fathom](https://fathom.video) meeting recordings, AI-generated summaries, and transcripts.

## Features

- **List Meetings** - Browse your Fathom meetings with filtering by date, recorder, or team
- **Get Summaries** - Retrieve AI-generated meeting summaries in markdown format
- **Get Transcripts** - Access full transcripts with speaker attribution and timestamps

## Installation

### From source

```bash
git clone https://github.com/trevorwelch/fathom-video-mcp.git
cd fathom-video-mcp
uv sync
```

## Configuration

### Step 1: Get your Fathom API Key

1. Login to your Fathom account, go to [fathom.video/api_settings/new](https://fathom.video/api_settings/new) 
2. Select **Generate Api Key**
3. Copy your new API key and save it somewhere secure

### Step 2: Add to Claude Code or Claude Desktop

Choose one of the following based on which Claude app you use.

#### Claude Code

Edit `~/.claude/settings.json`:

```json
{
  "mcpServers": {
    "fathom": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/fathom-video-mcp", "fathom-video-mcp"],
      "env": {
        "FATHOM_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

Replace `/path/to/fathom-video-mcp` with the actual path where you cloned the repo.

#### Claude Desktop

Edit your config file:
- **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "fathom": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/fathom-video-mcp", "fathom-video-mcp"],
      "env": {
        "FATHOM_API_KEY": "your-api-key-here"
      }
    }
  }
}
```

Replace `/path/to/fathom-video-mcp` with the actual path where you cloned the repo.

### Step 3: Restart Claude

Restart Claude Code or Claude Desktop to load the new MCP server. You should now be able to ask Claude about your Fathom meetings.

## Available Tools

### list_meetings

List your Fathom meetings with optional filters.

**Parameters:**
- `limit` (int, optional): Maximum number of meetings to return (1-50)
- `search` (string, optional): Smart search - matches titles, attendee names, and email domains
- `cursor` (string, optional): Pagination cursor from previous response
- `created_after` (string, optional): ISO timestamp to filter meetings after
- `created_before` (string, optional): ISO timestamp to filter meetings before
- `include_summary` (bool, optional): Include AI summary in response
- `include_transcript` (bool, optional): Include transcript in response
- `include_action_items` (bool, optional): Include action items in response
- `recorded_by` (list[string], optional): Filter by recorder email addresses
- `teams` (list[string], optional): Filter by team names
- `calendar_invitees_domains_type` (string, optional): Filter by invitee type ('all', 'only_internal', 'one_or_more_external')
- `invitee_domains` (list[string], optional): Filter by invitee email domains (e.g., ['acme.com'])

**Example:**
```
List my meetings from the last week
```

### get_summary

Get the AI-generated summary for a specific meeting.

**Parameters:**
- `recording_id` (int, required): The recording ID from list_meetings

**Example:**
```
Get the summary for meeting 123456789
```

### get_transcript

Get the full transcript with speaker attribution.

**Parameters:**
- `recording_id` (int, required): The recording ID from list_meetings

**Example:**
```
Get the transcript for meeting 123456789
```

## Development

### Running locally

```bash
cd fathom-video-mcp
uv sync
export FATHOM_API_KEY="your-api-key"
uv run python -m fathom_video_mcp.server
```

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: listing meetings, retrieving summaries, and fetching transcripts. No overlap or ambiguity exists.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (list_meetings, get_summary, get_transcript), making them predictable and easy to understand.

Tool Count5/5

With 3 tools, the server is well-scoped for its purpose of accessing meeting recordings. Each tool is necessary and there are no superfluous tools.

Completeness5/5

The tool set covers the core workflow: listing meetings, then retrieving either the summary or transcript. No obvious gaps exist for the stated domain.

Maintenance

ActivityInactive
ResponsivenessNo issues