使用说明
Fathom AI MCP服务器
A. 模型上下文协议 (MCP)服务器,用于与 Fathom AI API此服务器提供用于访问会议记录、摘要、成绩单、团队和Webhook的工具。
快速开始
git clone https://github.com/Dot-Fun/fathom-mcp.git
cd fathom-mcp
uv pip install fastmcp httpx pydantic
export FATHOM_API_KEY="your_api_key_here"
fastmcp run server.py
特性
工具
- list_meetings:列出具有高级筛选功能的会议(按参与者、日期范围、团队),并可选择包含成绩单、摘要、行动项和CRM匹配项
- get_summary:检索会议摘要(支持异步传递)
- get_transcript:检索包含演讲者信息和时间戳的会议记录(支持异步传递)
- list_teams:列出所有可访问的团队
- list_team_members:列出具有可选团队筛选的团队成员
- create_webhook:使用可定制的触发器和内容包含创建用于会议通知的webhooks
- delete_webhook:按ID删除Webhook
资源
- fathom://api/info:API信息和可用端点
- fathom://api/rate-limits:限速信息和最佳做法
安装
-
克隆此存储库或将文件复制到本地计算机
-
使用uv(推荐)或pip安装依赖项:
# Using uv (recommended)
uv pip install -e .
# Or using pip
pip install -e .
- 设置您的Fathom API密钥:
创建一个 .env 项目根目录中的文件:
FATHOM_API_KEY=your_api_key_here
服务器自动加载 .env 供当地使用。
从获取API密钥 父亲设置页面.
用法
运行服务器
地方发展(stdio)
# Using fastmcp CLI
fastmcp run server.py
# Or directly with Python
python server.py
HTTP服务器
# Modify server.py to run as HTTP server
if __name__ == "__main__":
mcp.run(transport="http", host="0.0.0.0", port=8000)
与Claude Desktop集成
添加到您的Claude Desktop配置(claude_desktop_config.json):
{
"mcpServers": {
"fathom": {
"command": "uv",
"args": [
"--directory",
"/path/to/fathom-mcp",
"run",
"fastmcp",
"run",
"server.py"
],
"env": {
"FATHOM_API_KEY": "your_api_key_here"
}
}
}
}
与食品法典委员会整合(替代方案)
将此块添加到Codex配置中(~/.codex/config.toml):
[mcp_servers.fathom]
command = "uv"
args = ["--directory", "/path/to/fathom-mcp", "run", "fastmcp", "run", "server.py"]
然后重新启动Codex(或重新加载MCP服务器)并验证:
codex mcp list
API 参考
认证
所有请求都需要 FATHOM_API_KEY 环境变量。API密钥是用户级的,可以访问:
- 用户记录的会议
- 与用户团队共享的会议
速率限制
- 全球限额:每60秒窗口调用60个API
- 速率受限的请求返回HTTP 429
- 监控速率限制标头:
RateLimit-Limit,RateLimit-Remaining,RateLimit-Reset
工具示例
列出最近的会议
# List meetings with transcripts from the last week
result = await list_meetings(
created_after="2024-01-01T00:00:00Z",
include_transcript=True,
include_summary=True
)
获取会议摘要
# Get summary for a specific recording
summary = await get_summary(recording_id=123456789)
创建Webhook
# Create webhook for team recordings with all content
webhook = await create_webhook(
destination_url="https://your-app.com/webhook",
triggered_for=["my_recordings", "shared_team_recordings"],
include_transcript=True,
include_summary=True,
include_action_items=True,
include_crm_matches=True
)
# Returns webhook ID, URL, and secret for signature verification
按参与者筛选会议
# Find meetings with specific participants
meetings = await list_meetings(
calendar_invitees=["alice@acme.com", "bob@acme.com"],
include_action_items=True
)
列出团队成员
# Get all members of the Sales team
members = await list_team_members(team="Sales")
错误处理
服务器处理常见的API错误:
- 401未经授权:API密钥无效或丢失
- 400错误请求:无效参数
- 404未找到:资源不存在
- 429价格有限:请求太多(包括重置时间)
发展
项目结构
fathom-mcp/
├── server.py # Main MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── Dockerfile # Container configuration for deployment
├── package.json # Package metadata
├── README.md # This file
├── .env # Environment variables (API key)
└── .dockerignore # Docker build exclusions
代码质量
该项目使用Ruff进行linting和格式化:
# Install dev dependencies
uv pip install -e ".[dev]"
# Run linter
ruff check .
# Auto-fix issues
ruff check --fix .
# Format code
ruff format .
测试
服务器已经用真实的Fathom API数据进行了测试。看 TEST_RESULTS.md 查看详细的测试结果。
手动测试:
# Set your API key
export FATHOM_API_KEY="your_api_key_here"
# Test server loads
python -c "from server import mcp; print('✓ Server ready')"
# Test API connectivity
python -c "
import asyncio
from server import make_request
asyncio.run(make_request('GET', '/meetings'))
"
API 文档
有关API完整文档,请访问:
许可证
这个项目是开源的,可以在MIT许可证下使用。
贡献
欢迎投稿!请随时提交拉取请求。
支持
致谢
建于 FastMCP -构建MCP服务器的快速Python方法。
