CRM数据访问协议服务器

Attio MCP Server是一个模型上下文协议服务器,为AI助手提供访问Attio CRM数据及功能的接口,支持记录管理、列表与条目操作、笔记与任务管理等功能。

  • by daniviber
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 daniviber/attio_mcp

使用说明

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密钥

  1. 转到Attio工作区设置
  2. 导航至 开发者 > API密钥
  3. 创建一个具有必要作用域的新API密钥:
    • object_configuration:read
    • record_permission:read-write
    • list_configuration:read
    • list_entry:read-write
    • note:read-write
    • task:read-write
    • user_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/秒

内置速率限制器自动处理节流。

许可证

麻省理工学院