Fathom MCP 服务器
一个模型上下文协议(MCP)服务器,为人工智能代理提供访问Fathom AI会议数据的权限,包括会议记录、摘要、团队以及团队成员信息。
特点/特性
这个MCP服务器提供了5个工具来与Fathom AI进行交互:
fathom_list_meetings- 列出会议,并可应用筛选条件(日期范围、受邀者、团队等)fathom_get_summary- 通过会议记录ID获取会议摘要fathom_get_transcript- 获取包含发言者信息和时间戳的会议记录fathom_list_teams- 列出组织中的所有团队fathom_list_team_members- 列出特定团队的成员
建筑学
- 框架Next.js 15 配备 App Router
- MCP适配器: MCP处理器(或MCP处理程序) (Vercel 官方的 MCP 适配器)
- 交通支持Streamable HTTP和服务器发送事件(SSE)
- 部署Vercel,支持自动HTTPS和全球CDN
- 类型安全全面支持 TypeScript,配备 Zod 验证
快速入门
1. 克隆并安装
git clone
cd fathom-mcp-server
npm install2. 环境设置
复制环境模板并添加您的Fathom API密钥:
cp .env.example .env.local编辑 .env.local:
FATHOM_API_KEY=your_fathom_api_key_here从以下位置获取您的API密钥: Fathom 设置.
3. 本地开发
npm run devMCP服务器将在 http://localhost:3000/api/mcp
4. 部署到Vercel

或者手动部署:
npm install -g vercel
vercel加上你的 FATHOM_API_KEY 在Vercel仪表板中设置环境变量。
客户集成
OpenAI AgentKit(可译为“OpenAI 代理工具包”)
使用Bearer令牌认证直接连接到HTTP终端:
{
"mcpServers": {
"fathom": {
"url": "https://fathom-mcp.vercel.app/api/mcp",
"auth": {
"type": "bearer",
"token": "YOUR_FATHOM_API_KEY"
}
}
}
}配置步骤:
- 替换
YOUR_FATHOM_API_KEY使用您实际的Fathom AI API密钥 - API密钥作为Bearer令牌传递在Authorization头中
- 这确保了API密钥由客户端控制且安全无虞
Claude Desktop(可译为“Claude桌面版”或根据具体语境简化为“Claude桌面”)
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"fathom": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://fathom-mcp.vercel.app/api/mcp"
]
}
}
}配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\\Claude\\claude_desktop_config.json
光标
添加到您的 ~/.cursor/mcp.json:
{
"mcpServers": {
"fathom": {
"url": "https://your-app.vercel.app/api/mcp"
}
}
}工具使用示例
列出最近会议
{
"name": "fathom_list_meetings",
"arguments": {
"created_after": "2024-01-01T00:00:00Z",
"include_summary": true,
"limit": 10
}
}获取会议记录
{
"name": "fathom_get_transcript",
"arguments": {
"recording_id": 123456789
}
}按团队筛选会议
{
"name": "fathom_list_meetings",
"arguments": {
"teams": ["Engineering", "Product"],
"include_action_items": true
}
}列出团队成员
{
"name": "fathom_list_team_members",
"arguments": {
"team_id": "team_123"
}
}API 参考文档
理解会议列表
列出会议,并应用可选过滤器。
参数:
calendar_invitees(字符串数组):用于过滤的电子邮件地址calendar_invitees_domains(字符串数组):用于过滤的公司域名calendar_invitees_domains_type(枚举): 按外部域名过滤created_after(字符串):ISO 8601 时间戳created_before(字符串):ISO 8601 时间戳include_transcript(布尔值):是否包含转录本数据include_summary(布尔值):是否包含汇总数据include_action_items(布尔值):包含行动项include_crm_matches(布尔值):是否包含CRM匹配项limit(数字):最大结果数(1-100)cursor(字符串):分页游标recorded_by(string\[\]): 按记录者电子邮件过滤teams(string\[\]): 通过团队名称过滤
获取摘要(或:获取概要信息)
通过会议录音ID获取会议摘要。
参数:
recording_id(数字):录音ID
获取转录本(fathom_get_transcript)
获取包含发言人信息的会议记录。
参数:
recording_id(编号):录音ID
列出团队列表
列出组织中的所有团队。
参数:
cursor(字符串):可选的分页游标
列出团队成员列表
列出特定团队的成员。
参数:
team_id(字符串):团队IDcursor(字符串):可选的分页游标
错误处理
该服务器包含全面的错误处理机制:
- 缺少API密钥如果(满足条件),清除错误信息
FATHOM_API_KEY未设置 - Fathom API 错误带有状态码的格式正确错误响应
- 速率限制优雅地处理429响应
- 输入验证Zod schema 对所有工具输入进行验证
- 网络错误超时和连接错误处理
安全考量
- 仅限HTTPSVercel 提供自动 TLS 证书
- CORS 头信息配置为适用于OpenAI的基础设施
- API密钥安全存储在环境变量中,从不提交
- 输入验证所有输入均通过Zod模式进行验证
- 速率限制尊重Fathom API的速率限制
发展
项目结构
├── 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测试
在本地测试MCP服务器:
# 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"
}'类型检查
npm run type-check故障排除
常见问题
- “FATHOM_API_KEY”环境变量是必需的
- 确保你已经设置了环境变量 .env.local (本地)或 Vercel 控制台(生产环境)
- Fathom API 错误(401)
- 检查您的API密钥是否有效且具有正确的权限
- “Fathom API 错误(429)”
- 您已达到Fathom的速率限制。请稍后再发送更多请求
- 浏览器中的CORS错误
- 服务器包含了适当的CORS(跨域资源共享)头部。如果问题仍然存在,请检查您的客户端配置
调试模式
在开发环境中启用详细日志记录:
NODE_ENV=development npm run dev贡献
- 为仓库创建分支(或:克隆仓库)
- 创建一个特性分支
- 进行你的更改
- 如适用,请添加测试
- 提交拉取请求
许可证
MIT 许可证 - 详见 LICENSE 文件。
支持
- Fathom API 文档: developers.fathom.ai(可译为:“Fathom.ai的开发者平台”或“Fathom.ai开发者网站”,具体根据上下文调整)
- MCP规范: modelcontextprotocol.io
- 问题在这个仓库中创建一个问题
