Fathom AI Notetaker 非官方MCP服务器
一个模型上下文协议(MCP)服务器,通过Fathom API提供对Fathom会议录音和文字记录的访问。使用Python构建,并且 uv 便于设置和部署。
目的
这款MCP服务器为像Claude这样的AI助手提供了一个安全的接口,以便其访问和搜索您的Fathom会议录音,并检索包含发言人信息的详细文字记录。
特点/功能
可用工具
list_meetings- 列出所有可用的Fathom会议录音,支持分页和高级过滤
- 按日历邀请者(电子邮件地址)筛选 - 按会议记录人筛选 - 按日期范围筛选(创建时间在之后,创建时间在之前) - 包含AI生成的摘要 - 包含完整成绩单 - 支持使用游标进行分页
get_transcript- 获取包含发言者姓名、电子邮件和时间戳的完整会议记录
- 获取任何录音的详细文字记录 - 包括说话人识别 - 带时间戳的条目
search_meetings- 通过标题关键词搜索会议
- 在会议标题中快速搜索关键词 - 可配置的结果限制
先决条件
- Python 3.10或更高版本
uv包管理器- Fathom API密钥(从https://app.fathom.video/settings/integrations获取)
安装
第一步:安装uv
如果你没有 uv 已安装:
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"安装完成后重启您的终端。
步骤2:克隆或下载项目
git clone https://github.com/YOUR_USERNAME/fathom-mcp.git
cd fathom-mcp/fathom-uv步骤3:设置虚拟环境并安装依赖项
# Create virtual environment
uv venv
# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
.venv\Scripts\activate
# Install dependencies
uv pip install -e .步骤4:配置API密钥
创建一个 .env 从模板中获取文件:
cp .env.example .env编辑 .env 文件并添加您的Fathom API密钥:
FATHOM_API_KEY=your_actual_api_key_here获取您的API密钥:
- 访问 https://app.fathom.video/settings/integrations
- 生成或复制您的API密钥
- 把它粘贴到
.env文件
注: 这个(或“该”) .env 文件已被添加到git忽略列表以保障安全。切勿将你的实际API密钥提交到版本控制系统中。
Claude 桌面版的配置
步骤1:找到您的Claude桌面配置
找到你的Claude桌面配置文件:
- macOS(发音为“麦-OS”,但通常直接称为“Mac OS”或简化为“OS”,不过“macOS”是其官方名称):
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux(发音为“利尼斯”):
~/.config/Claude/claude_desktop_config.json
步骤2:添加Fathom服务器
编辑配置文件并将Fathom服务器添加到其中 mcpServers 部分/章节:
macOS/Linux:
{
"mcpServers": {
"fathom": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/fathom-uv",
"run",
"fathom.py"
]
}
}
}Windows:
{
"mcpServers": {
"fathom": {
"command": "uv",
"args": [
"--directory",
"C:\\ABSOLUTE\\PATH\\TO\\fathom-uv",
"run",
"fathom.py"
]
}
}
}重要提示:
- 替换
/ABSOLUTE/PATH/TO/fathom-uv使用您项目目录的实际绝对路径 - 你可以通过运行来获取绝对路径
pwd(macOS/Linux) 或cd(Windows)在项目目录中 - 在Windows系统中,使用双反斜杠(
\\) 或正斜杠 (/) 在路径中
第三步:可选 - 在配置中覆盖API密钥
如果你想覆盖(或重写) .env 文件API密钥,您可以直接将其添加到配置中:
{
"mcpServers": {
"fathom": {
"command": "uv",
"args": [
"--directory",
"/ABSOLUTE/PATH/TO/fathom-uv",
"run",
"fathom.py"
],
"env": {
"FATHOM_API_KEY": "your_override_api_key_here"
}
}
}
}环境变量优先级:
- Claude Desktop 配置中的环境变量(最高优先级)
.env项目目录中的文件- 系统环境变量
FATHOM_API_KEY
步骤4:重启Claude桌面应用
- 彻底戒掉 Claude Desktop(不仅仅是关闭窗口)
- macOS(发音为“Mac OS”,即“苹果操作系统”)使用Cmd+Q或从菜单中选择“退出Claude” - Windows右键点击系统托盘图标,选择“退出”或“关闭”
- 重新启动 Claude 桌面版
- 查找工具图标以确认服务器已连接
使用示例
一旦配置完成,您就可以向Claude提问:
列出会议
- “给我显示我最近的Fathom会议”
- “列出最近10次会议”
- “给我显示包含摘要的会议”
按受邀者筛选
- “显示john@example.com被邀请的会议”
- “将 Jane(邮箱:jane@example.com)和 Bob(邮箱:bob@example.com)列为会议邀请者”
按录音器过滤
- “显示由alice@example.com记录的会议”
按日期筛选
- “显示2024年10月1日之后创建的会议”
- “列出上周的会议”
获取成绩单
- “获取Fathom录音12345678的文字记录”
- “给我看一下录音ID 95116213的转录文本”
搜索会议
- “在我的Fathom会议中搜索‘项目规划’”
- “查找关于‘冲刺评审’的会议”
分页
- “使用光标显示下一页会议:\[光标字符串\]”
示例输出
列出会议(基础)
✅ Found 5 meetings:
📝 Title: Team Standup
🆔 Recording ID: 95116213
📅 Date: 2024-10-17T22:01:35Z
👤 Recorded by: John Smith (Engineering)
🔗 Share: https://fathom.video/share/abc123
👥 Invitees: john@example.com, jane@example.com
---
...获取转录文本
✅ Transcript for recording 95116213:
[00:00:01] John Smith (john@example.com): Good morning everyone
[00:00:03] Jane Doe (jane@example.com): Morning! How's everyone doing?
[00:00:05] John Smith (john@example.com): Great! Let's get started with the standup
...搜索会议
✅ Found 2 meetings matching 'planning':
📝 Title: Sprint Planning Meeting
🆔 Recording ID: 95100807
📅 Date: 2024-10-15T20:03:55Z
👤 Recorded by: John Smith
🔗 Share: https://fathom.video/share/xyz789
---
...本地测试
在将服务器连接到Claude之前,您可以在本地进行测试:
# Make sure your .env file is configured
# Run the server
uv run fathom.py服务器将启动并监听标准输入/输出上的MCP协议消息。您应该会看到:
Starting Fathom MCP server...
FATHOM_API_KEY configured按 Ctrl+C 停止服务器。
故障排除
服务器未在Claude中显示
- 检查配置文件的语法 - 确保你的JSON是有效的
- 验证绝对路径 - 使用
pwd或者cd获取正确的路径 - 检查UV安装情况 - 跑
which uv(macOS/Linux) 或where uv(Windows) - 完全重启Claude桌面版 - 确保完全退出,而不仅仅是关闭窗口
API密钥问题
错误:“FATHOM_API_KEY 未配置”
- 检查一下你的
.env文件存在于项目目录中 - 验证API密钥在(此处)是否格式正确
.env文件 - 确保键周围没有多余的空格或引号
错误:“401 未授权”
- 您的API密钥可能无效或已过期
- 在 https://app.fathom.video/settings/integrations 生成一个新密钥
- 更新您的
.env使用新密钥关联文件
工具调用失败
- 检查克劳德的日志 如需详细错误信息:
# macOS/Linux
tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
# Windows
type %APPDATA%\Claude\Logs\mcp*.log- 验证API连接性 验证您是否可以访问Fathom API
- 检查录音ID - 确保录音ID存在且您有权访问它
无可用成绩单
- 会议结束后,转录文件可能需要一段时间来处理
- 有些会议可能未启用会议记录功能
- 首先在Fathom网络界面中验证记录是否存在
速率限制
如果你看到“429 率限制”错误:
- 请稍等几分钟后再重试
- 减少请求的频率
- 考虑使用分页功能,而不是一次性获取所有会议
发展
项目结构
fathom-mcp/
├── fathom-uv/
│ ├── fathom.py # Main MCP server implementation
│ ├── pyproject.toml # Project dependencies and metadata
│ ├── .env.example # Template for environment variables
│ ├── .env # Your actual API key (gitignored)
│ ├── .gitignore # Git ignore rules
│ ├── claude_desktop_config.example.json # Example Claude Desktop config
│ └── uv.lock # Dependency lock file
├── README.md # This file
├── QUICKSTART.md # Quick start guide
└── LICENSE # MIT License添加新功能
- 编辑
fathom.py添加新工具 - 使用
@mcp.tool()新函数的装饰器 - 遵循现有的错误处理和日志记录模式
- 在本地使用进行测试
uv run fathom.py - 重启 Claude 桌面版以应用更改
记录日志
服务器将日志记录到标准错误输出(而非标准输出),以避免干扰MCP协议:
- 信息级别:一般操作
- 警告级别:配置问题
- 错误级别:API错误和异常
安全考虑因素
- API密钥存储永远不要把你
.env文件提交到版本控制系统 - Git忽略文件(或 Git忽略列表)这个
.env文件被自动忽略 - 环境变量API密钥可以通过环境变量进行覆盖
- 记录日志API密钥绝不会在日志或响应中记录或暴露
- HTTPS所有API请求均使用HTTPS加密
性能注意事项
- 对于有多位发言人的会议,转录请求可能需要更长时间
- 搜索在客户端进行(先获取会议数据,然后进行过滤)
- 对于大型会议列表,建议使用分页功能
- 默认限制:列表中20次会议,搜索中10次
API详情
- 基本URL:
https://api.fathom.ai/external/v1 - 认证API密钥通过
X-Api-Key头球 - 所使用的终点指标:
- GET /meetings - 列出带有元数据的会议 - GET /recordings/{id}/transcript - 获取成绩单
- API 参考文档https://developers.fathom.ai/api-reference/meetings/list-meetings 的中文翻译为:https://developers.fathom.ai/(开发者文档)/api参考/会议/列出会议
许可证
麻省理工学院许可证(MIT License)
支持
对于问题或疑问:
- Fathom API文档:https://docs.fathom.video/
- MCP(模型上下文协议)文档:https://modelcontextprotocol.io/
- 检查Claude Desktop日志以获取调试信息
