Skip to main content
Glama
README.md
# Fathom MCP Server

[![MCP](https://img.shields.io/badge/MCP-1.0-blue)](https://modelcontextprotocol.io)
[![Node.js](https://img.shields.io/badge/Node.js-22.14%2B-green)](https://nodejs.org)
[![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)

A Model Context Protocol (MCP) server that enables Claude Desktop (and other MCP clients) to access your [Fathom](https://fathom.video) meeting intelligence — list meetings, read summaries, search by title, and pull full transcripts.

## Features

### Meeting Intelligence Tools

| Tool                     | Description                                                                                                   |
| ------------------------ | ------------------------------------------------------------------------------------------------------------- |
| `fathom_list_meetings`   | List recent meetings with optional date filters. Returns title, date, participants, summary, and action items |
| `fathom_get_summary`     | Get the AI-generated summary for a specific meeting (markdown formatted)                                      |
| `fathom_get_transcript`  | Get the full speaker-labeled, timestamped transcript for a meeting                                            |
| `fathom_search_meetings` | 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 `EXTCONTENT` markers

## Quick Start

### Prerequisites

- Node.js 22.14 or higher
- A [Fathom](https://fathom.video) account with API access
- Claude Desktop (or any MCP-compatible client)

### Get Your Fathom API Key

1. Go to [Fathom Settings](https://app.fathom.video/settings/api)
2. Generate an API key

### Installation

Published package: [@luminarylane/fathom-mcp-server on npm](https://www.npmjs.com/package/@luminarylane/fathom-mcp-server)

#### Option 1: npx (Recommended — Zero Install)

```bash
# Test it works
FATHOM_API_KEY=your-key npx --yes @luminarylane/fathom-mcp-server
```

**Claude Desktop configuration:**

```json
{
  "mcpServers": {
    "fathom": {
      "command": "npx",
      "args": ["--yes", "@luminarylane/fathom-mcp-server"],
      "env": {
        "FATHOM_API_KEY": "your-fathom-api-key"
      }
    }
  }
}
```

#### Option 2: Install from npm

```bash
npm install -g @luminarylane/fathom-mcp-server
```

Then configure Claude Desktop:

```json
{
  "mcpServers": {
    "fathom": {
      "command": "luminarylane-fathom-mcp",
      "env": {
        "FATHOM_API_KEY": "your-fathom-api-key"
      }
    }
  }
}
```

#### Option 3: Install from Source

```bash
git clone https://github.com/luminarylane/fathom-mcp-server.git
cd fathom-mcp-server
npm install
npm run build
```

Then configure Claude Desktop:

```json
{
  "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](https://app.fathom.video/settings/api).

## 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 required
```

Set 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](https://app.fathom.video/settings/api) 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

1. Check [existing issues](https://github.com/luminarylane/fathom-mcp-server/issues)
2. Open a new issue with the full error message, steps to reproduce, and your environment details

## Contributing

Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.

```bash
npm install
npm run dev        # Dev mode
npx tsc --noEmit   # Type check
npx prettier --write .  # Format
```

## License

MIT License — see [LICENSE](LICENSE) for details.

## Acknowledgments

- [Anthropic](https://anthropic.com) for the MCP specification
- [Fathom](https://fathom.video) for meeting intelligence

TDQS

A4.2/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct operation: summary retrieval, transcript retrieval, listing meetings, and searching. No overlaps or ambiguities.

Naming Consistency5/5

All tools follow a consistent 'fathom_verb_noun' pattern, using clear and predictable verbs (get, list, search).

Tool Count5/5

With 4 tools, the server is focused and each tool addresses a core need for meeting data retrieval. No excess or shortage.

Completeness5/5

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

ActivitySlowing
ResponsivenessNo issues