使用说明
Attio MCP服务器
一种模型上下文协议(MCP)服务器,为AI助手提供对Attio CRM数据和功能的访问。
特性
- 记录管理:在所有Attio对象中创建、读取、更新、删除和搜索记录
- 列表和条目:管理列表并从列表中添加/删除记录
- 备注:创建和管理附加到记录的注释
- 任务:创建、分配和完成任务
- 评论和帖子:管理记录上的评论线程
- 网络钩子:为事件通知配置webhooks
- 工作区:访问工作区成员信息
- 双重运输:支持stdio(本地)和HTTP流式传输(远程)
安装
npm install
npm run build
认证
每个客户端都使用自己的身份验证 阿提奥API代币。没有单独的服务器级身份验证——Attio令牌是身份。
- 标准模式:令牌通过
ATTIO_API_KEY环境变量 - HTTP模式:令牌通过
Authorization: Bearer <token>每个请求的标题
获取API密钥
- 转到Attio工作区设置
- 导航至 开发者 > API密钥
- 创建一个具有必要作用域的新API密钥:
object_configuration:readrecord_permission:read-writelist_configuration:readlist_entry:read-writenote:read-writetask:read-writeuser_management:read
用法
标准传输(本地/Claude桌面)
最适合本地使用——单个租户,每个用户一个进程。从 ATTIO_API_KEY 环境变量。
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"attio": {
"command": "node",
"args": ["/path/to/attio_mcp/dist/index.js"],
"env": {
"ATTIO_API_KEY": "your_api_key"
}
}
}
}
或者直接运行:
ATTIO_API_KEY=your_api_key node dist/index.js
HTTP流传输(远程/多租户)
最适合托管部署-多对映体,每个连接客户端都通过 Authorization 头球
启动服务器:
node dist/index.js --http
# or
MCP_TRANSPORT=http node dist/index.js
服务器将于启动 http://0.0.0.0:3000/mcp 默认情况下。
通过使用您的Attio令牌发送请求进行连接:
curl -X POST http://localhost:3000/mcp \
-H "Authorization: Bearer your_attio_api_key" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"initialize","params":{"protocolVersion":"2025-03-26","clientInfo":{"name":"test","version":"1.0"}},"id":1}'
每个会话的作用域都是创建它的令牌。后续请求必须包含相同的令牌和 Mcp-Session-Id 初始化过程中返回的标头。
与mcp远程适配器一起使用
对于Claude Desktop连接到远程HTTP服务器:
{
"mcpServers": {
"attio-remote": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://your-server.com/mcp"],
"env": {
"AUTHORIZATION": "Bearer your_attio_api_key"
}
}
}
}
配置
环境变量
| 变量 | 默认值 | 传输 | 描述 |
|---|---|---|---|
ATTIO_API_KEY |
- | stdio(必需) | stdio传输的Attio API令牌 |
ATTIO_BASE_URL |
https://api.attio.com |
both | Attio API基础URL |
ATTIO_TIMEOUT_MS |
30000 |
两者 | 请求超时(毫秒) |
ATTIO_RETRY_ATTEMPTS |
3 |
both | 重试次数 |
MCP_TRANSPORT |
- | - | 设置为 http 使用HTTP传输(默认为stdio) |
MCP_PORT |
3000 |
http | http服务器端口 |
MCP_HOST |
0.0.0.0 |
http | http服务器绑定地址 |
MCP_ALLOWED_ORIGINS |
- | http | 逗号分隔的允许CORS源 |
MCP_SESSION_TTL_SECONDS |
3600 |
http | 会话超时(秒) |
MCP_MAX_SESSIONS |
1000 |
http | 最大并发会话数 |
LOG_LEVEL |
info |
两者 | 日志级别(debug, info, warn, error) |
运输选择
| 方法 | 结果 |
|---|---|
node dist/index.js |
标准传输(默认) |
node dist/index.js --http |
HTTP传输 |
MCP_TRANSPORT=http node dist/index.js |
HTTP传输 |
HTTP端点
| 端点 | 方法 | 描述 |
|---|---|---|
/mcp |
POST/GET/DELETE | MCP可流式HTTP端点 |
/health |
GET | 健康检查(无需身份验证) |
可用工具
对象和属性
| 工具 | 说明 |
|---|---|
attio_objects_list |
列出工作区中的所有对象 |
attio_objects_get |
获取特定对象的详细信息 |
attio_attributes_list |
列出对象或列表的属性 |
记录
| 工具 | 说明 |
|---|---|
attio_records_list |
通过过滤和排序查询记录 |
attio_records_get |
按ID获取单个记录 |
attio_records_create |
创建新记录 |
attio_records_update |
更新记录(附加多选值) |
attio_records_update_overwrite |
更新记录(覆盖多选值) |
attio_records_delete |
删除记录 |
attio_records_assert |
基于匹配属性创建或更新 |
attio_records_search |
对象间的模糊搜索 |
列表和条目
| 工具 | 说明 |
|---|---|
attio_lists_list |
列出所有列表 |
attio_lists_get |
获取列表详细信息 |
attio_entries_list |
查询列表中的条目 |
attio_entries_get |
获取单个条目 |
attio_entries_create |
向列表中添加记录 |
attio_entries_update |
更新条目属性 |
attio_entries_delete |
从列表中删除记录 |
备注
| 工具 | 说明 |
|---|---|
attio_notes_list |
列出注释(可选择按记录筛选) |
attio_notes_get |
获取一张便条 |
attio_notes_create |
创建附加到记录的注释 |
attio_notes_delete |
删除注释 |
任务
| 工具 | 说明 |
|---|---|
attio_tasks_list |
使用筛选器列出任务 |
attio_tasks_get |
获取单个任务 |
attio_tasks_create |
创建新任务 |
attio_tasks_update |
更新任务属性 |
attio_tasks_complete |
将任务标记为已完成 |
attio_tasks_delete |
删除任务 |
评论和帖子
| 工具 | 说明 |
|---|---|
attio_threads_list |
列出评论线程 |
attio_threads_get |
获取包含所有评论的帖子 |
attio_threads_resolve |
将线程标记为已解决 |
attio_comments_create |
创建新评论 |
attio_comments_delete |
删除评论 |
网络钩子
| 工具 | 说明 |
|---|---|
attio_webhooks_list |
列出所有Webhook |
attio_webhooks_get |
获取webhook详细信息 |
attio_webhooks_create |
创建新的webhook |
attio_webhooks_update |
更新webhook |
attio_webhooks_delete |
删除webhook |
工作区
| 工具 | 说明 |
|---|---|
attio_workspace_members_list |
列出所有工作区成员 |
attio_workspace_members_get |
获取特定工作区成员 |
MCP资源
服务器还为AI上下文公开只读资源:
| 资源URI | 描述 |
|---|---|
attio://objects |
所有Attio对象的列表 |
attio://lists |
所有可用列表的列表 |
attio://workspace/members |
任务分配的工作区成员 |
示例用法
配置后,您可以询问Claude:
- “列出Attio的所有公司”
- “搜索包含‘Acme’的记录”
- “使用电子邮件创建新的人员记录john@example.com"
- “在Acme Corp的公司记录中添加注释”
- “创建一个任务来跟进约翰,下周五到期”
- “显示分配给我的所有未完成任务”
发展
# Run in development mode (HTTP, default)
npm run dev
# Run tests
npm test
# Type check
npm run lint
速率限制
服务器遵守Attio的速率限制:
- 读取请求:100/秒
- 写入请求:25/秒
内置速率限制器自动处理节流。
许可证
麻省理工学院