Fathom MCP Server

Fathom MCP Server

Enables AI agents to access Fathom AI meeting data including transcripts, summaries, teams, and team members. Provides tools to list meetings with filters, retrieve detailed transcripts and summaries, and manage team information.

Category
Visit Server

README

Fathom MCP Server

A Model Context Protocol (MCP) server that provides AI agents with access to Fathom AI meeting data, including transcripts, summaries, teams, and team members.

Features

This MCP server exposes 5 tools for interacting with Fathom AI:

  • fathom_list_meetings - List meetings with optional filters (date ranges, invitees, teams, etc.)
  • fathom_get_summary - Get meeting summary by recording ID
  • fathom_get_transcript - Get meeting transcript with speaker information and timestamps
  • fathom_list_teams - List all teams in the organization
  • fathom_list_team_members - List team members for a specific team

Architecture

  • Framework: Next.js 15 with App Router
  • MCP Adapter: mcp-handler (Vercel's official MCP adapter)
  • Transport: Supports both Streamable HTTP and Server-Sent Events (SSE)
  • Deployment: Vercel with automatic HTTPS and global CDN
  • Type Safety: Full TypeScript support with Zod validation

Quick Start

1. Clone and Install

git clone <your-repo-url>
cd fathom-mcp-server
npm install

2. Environment Setup

Copy the environment template and add your Fathom API key:

cp .env.example .env.local

Edit .env.local:

FATHOM_API_KEY=your_fathom_api_key_here

Get your API key from Fathom Settings.

3. Local Development

npm run dev

The MCP server will be available at http://localhost:3000/api/mcp

4. Deploy to Vercel

Deploy with Vercel

Or deploy manually:

npm install -g vercel
vercel

Add your FATHOM_API_KEY environment variable in the Vercel dashboard.

Client Integration

OpenAI AgentKit

Connect directly to the HTTP endpoint with Bearer token authentication:

{
  "mcpServers": {
    "fathom": {
      "url": "https://fathom-mcp.vercel.app/api/mcp",
      "auth": {
        "type": "bearer",
        "token": "YOUR_FATHOM_API_KEY"
      }
    }
  }
}

Configuration Steps:

  1. Replace YOUR_FATHOM_API_KEY with your actual Fathom AI API key
  2. The API key is passed as a Bearer token in the Authorization header
  3. This keeps the API key client-side controlled and secure

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "fathom": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://fathom-mcp.vercel.app/api/mcp"
      ]
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\\Claude\\claude_desktop_config.json

Cursor

Add to your ~/.cursor/mcp.json:

{
  "mcpServers": {
    "fathom": {
      "url": "https://your-app.vercel.app/api/mcp"
    }
  }
}

Tool Usage Examples

List Recent Meetings

{
  "name": "fathom_list_meetings",
  "arguments": {
    "created_after": "2024-01-01T00:00:00Z",
    "include_summary": true,
    "limit": 10
  }
}

Get Meeting Transcript

{
  "name": "fathom_get_transcript",
  "arguments": {
    "recording_id": 123456789
  }
}

Filter Meetings by Team

{
  "name": "fathom_list_meetings",
  "arguments": {
    "teams": ["Engineering", "Product"],
    "include_action_items": true
  }
}

List Team Members

{
  "name": "fathom_list_team_members",
  "arguments": {
    "team_id": "team_123"
  }
}

API Reference

fathom_list_meetings

List meetings with optional filters.

Parameters:

  • calendar_invitees (string[]): Email addresses to filter by
  • calendar_invitees_domains (string[]): Company domains to filter by
  • calendar_invitees_domains_type (enum): Filter by external domains
  • created_after (string): ISO 8601 timestamp
  • created_before (string): ISO 8601 timestamp
  • include_transcript (boolean): Include transcript data
  • include_summary (boolean): Include summary data
  • include_action_items (boolean): Include action items
  • include_crm_matches (boolean): Include CRM matches
  • limit (number): Max results (1-100)
  • cursor (string): Pagination cursor
  • recorded_by (string[]): Filter by recorder emails
  • teams (string[]): Filter by team names

fathom_get_summary

Get meeting summary by recording ID.

Parameters:

  • recording_id (number): The recording ID

fathom_get_transcript

Get meeting transcript with speaker information.

Parameters:

  • recording_id (number): The recording ID

fathom_list_teams

List all teams in the organization.

Parameters:

  • cursor (string): Optional pagination cursor

fathom_list_team_members

List team members for a specific team.

Parameters:

  • team_id (string): The team ID
  • cursor (string): Optional pagination cursor

Error Handling

The server includes comprehensive error handling:

  • Missing API Key: Clear error message if FATHOM_API_KEY is not set
  • Fathom API Errors: Properly formatted error responses with status codes
  • Rate Limiting: Graceful handling of 429 responses
  • Input Validation: Zod schemas validate all tool inputs
  • Network Errors: Timeout and connection error handling

Security Considerations

  • HTTPS Only: Vercel provides automatic TLS certificates
  • CORS Headers: Configured for OpenAI's infrastructure
  • API Key Security: Stored in environment variables, never committed
  • Input Validation: All inputs validated with Zod schemas
  • Rate Limiting: Respects Fathom API rate limits

Development

Project Structure

├── app/
│   └── api/
│       └── [transport]/
│           └── route.ts          # MCP route handler
├── lib/
│   └── fathom-client.ts          # Fathom API client
├── .env.example                  # Environment template
├── vercel.json                   # Vercel configuration
└── README.md                     # This file

Testing

Test the MCP server locally:

# Start the development server
npm run dev

# Test with curl
curl -X POST http://localhost:3000/api/mcp \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "tools/list"
  }'

Type Checking

npm run type-check

Troubleshooting

Common Issues

  1. "FATHOM_API_KEY environment variable is required"

    • Ensure you've set the environment variable in .env.local (local) or Vercel dashboard (production)
  2. "Fathom API Error (401)"

    • Check that your API key is valid and has the correct permissions
  3. "Fathom API Error (429)"

    • You've hit Fathom's rate limit. Wait before making more requests
  4. CORS errors in browser

    • The server includes proper CORS headers. If issues persist, check your client configuration

Debug Mode

Enable verbose logging in development:

NODE_ENV=development npm run dev

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

License

MIT License - see LICENSE file for details.

Support

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured