使用说明
Cloudflare员工的CRM MCP服务器方法
用于方法CRM的基于类型脚本的模型上下文协议(MCP)服务器,部署在具有API密钥身份验证的Cloudflare Workers上。
概述
该MCP服务器使Claude Desktop和其他MCP客户端能够通过22个专用工具与Method CRM的REST API进行交互。专为Cloudflare员工打造 agents SDK(createMcpHandler),它提供了低延迟和自动扩展的全球边缘部署。
生活: https://method.avinashsangle.com
特征
-
22个MCP工具 分为6类:
- 表:查询、获取、创建、更新、删除记录
- 发现:发现表模式,查找引用ID
- 文件:上传、列表、下载、管理文件附件
- 用户:获取经过身份验证的用户信息
- 事件:创建和管理事件自动化例程
- API密钥:管理API密钥访问和权限
-
API密钥验证:
- 通过请求头传递方法CRM API密钥
- 支持
X-Method-API-Key: <key>或Authorization: APIKey <key>
-
边缘部署:
- Cloudflare员工+
agentsSDK(createMcpHandler) - Wrangler 4.x(代理SDK所需)
- 启动时间约80ms,自动缩放,高可用性
- Cloudflare员工+
-
架构缓存:
- 表模式的Workers KV缓存(延迟减少70-90%)
- 分层TTL:高流量表10分钟,其他表5分钟
- 分开
SCHEMAS具有多租户隔离的KV命名空间
-
生产就绪:
- 使用TypeScript和Zod模式进行类型安全
- 具有指数回退的速率限制和重试逻辑
- 全面的错误处理
-
多租户支持:
- 每个客户端通过头提供自己的方法CRM API密钥
- 无状态架构——服务器端不存储凭据
- 支持每个租户自定义方法CRM基本URL
-
破坏性行动的保障措施:
- 所有CREATE、UPDATE、DELETE工具都需要
_skip_confirmation: true - 现场验证阻止系统现场修改
- 所有CREATE、UPDATE、DELETE工具都需要
-
AI代理可发现性:
- 丰富的JSON登录页面位于
/ - 完整的工具目录,请访问
/capabilities和/.well-known/mcp.json - AI友好
/robots.txt
- 丰富的JSON登录页面位于
运作原理
客户端通过每个请求的请求头提供自己的方法CRM API密钥。服务器是无状态的——服务器端不存储凭据。
必填标题 (其中之一):
X-Method-API-Key: <your_api_key>Authorization: APIKey <your_api_key>
可选标题:
X-Method-URL: https://rest.method.me(覆盖自定义方法CRM部署)
先决条件
- Node.js 18+和npm
- Cloudflare帐户(免费版有效)
- 使用API访问的方法CRM帐户
- 您的方法CRM API密钥
安装
# Clone the repository
git clone https://github.com/avisangle/method-crm-mcp-workers
cd method-crm-mcp-workers
# Install dependencies
npm install
配置
牧马人.汤姆
需要两个Workers KV命名空间:
name = "method-crm-mcp-workers"
main = "src/index.ts"
compatibility_date = "2024-09-23"
compatibility_flags = ["nodejs_compat"]
[[kv_namespaces]]
binding = "TOKENS"
id = "your_tokens_kv_id"
[[kv_namespaces]]
binding = "SCHEMAS"
id = "your_schemas_kv_id"
[vars]
API_BASE_URL = "https://rest.method.me/api/v1"
DEPLOYMENT_MODE = "multi-tenant"
发展
# Run local development server
npm run dev
# Available at http://localhost:8787
# Type check
npm run type-check
# Run tests
npm test
部署
# Create Workers KV namespaces
npx wrangler kv:namespace create TOKENS
npx wrangler kv:namespace create SCHEMAS
# Update wrangler.toml with the generated namespace IDs
# Deploy to Cloudflare Workers (requires Wrangler 4.x)
npm run deploy
备注:牧马人4.x是必需的。这
agentsSDK(createMcpHandler)与Wrangler 3.x不兼容。
客户端配置
克劳德代码(CLI)
原生HTTP支持——无需代理。运行一次以全局注册:
claude mcp add --transport http method-crm https://method.avinashsangle.com/mcp \
--header "X-Method-API-Key:your_api_key_here"
或添加到 .mcp.json 在项目根目录中:
{
"mcpServers": {
"method-crm": {
"type": "http",
"url": "https://method.avinashsangle.com/mcp",
"headers": {
"X-Method-API-Key": "your_api_key_here"
}
}
}
}
克劳德桌面
需要 mcp遥控器 作为代理。添加 claude_desktop_config.json:
{
"mcpServers": {
"method-crm": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://method.avinashsangle.com/mcp",
"--header",
"X-Method-API-Key:your_api_key_here"
]
}
}
}
配置文件位置:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
Claude.ai(网络版)
原生HTTP支持——无需代理。加载项设置→ 集成:
{
"mcpServers": {
"method-crm": {
"url": "https://method.avinashsangle.com/mcp",
"headers": {
"X-Method-API-Key": "your_api_key_here"
}
}
}
}
光标
添加 ~/.cursor/mcp.json (全球)或 .cursor/mcp.json (项目):
{
"mcpServers": {
"method-crm": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://method.avinashsangle.com/mcp",
"--header",
"X-Method-API-Key:your_api_key_here"
]
}
}
}
帆板运动
添加 ~/.codeium/windsurf/model_config.json:
{
"mcpServers": {
"method-crm": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://method.avinashsangle.com/mcp",
"--header",
"X-Method-API-Key:your_api_key_here"
]
}
}
}
可用工具
表格(7个工具)
method_tables_query-使用OData筛选器查询表method_tables_get-按ID获取单个记录method_tables_create-创建新记录⚠️ 需要_skip_confirmation: truemethod_tables_update-更新现有记录⚠️ 需要_skip_confirmation: truemethod_tables_delete-删除记录⚠️ 需要_skip_confirmation: truemethod_tables_fields-发现表架构和可用字段method_tables_lookup-查找参考字段的RecordID值
文件(6个工具)
method_files_upload-上传文件附件⚠️ 需要_skip_confirmation: truemethod_files_list-列出具有筛选功能的文件method_files_download-下载文件内容method_files_get_url-生成临时下载URLmethod_files_update_link-在记录之间移动文件⚠️ 需要_skip_confirmation: truemethod_files_delete-删除文件⚠️ 需要_skip_confirmation: true
用户(1个工具)
method_user_get_info-获取当前用户信息
活动(4个工具)
method_events_create_routine-创建自动化例程⚠️ 需要_skip_confirmation: truemethod_events_list_routines-列出所有例程method_events_get_routine-获取日常详细信息method_events_delete_routine-删除例程⚠️ 需要_skip_confirmation: true
API密钥(4个工具)
method_apikeys_create-创建新的API密钥⚠️ 需要_skip_confirmation: truemethod_apikeys_list-列出API密钥method_apikeys_update-更新API密钥⚠️ 需要_skip_confirmation: truemethod_apikeys_delete-吊销API密钥⚠️ 需要_skip_confirmation: true
⚠️ 所有破坏性操作都需要
"_skip_confirmation": true在工具参数中防止意外数据丢失。
建筑
src/
├── index.ts # Main entry point, HTTP handlers, discoverability endpoints
├── config.ts # Environment validation and constants
├── auth/ # Authentication strategies
│ ├── manager.ts # Auth strategy pattern
│ ├── apiKey.ts # API Key authentication
│ └── context.ts # User context and header extraction
├── cache/ # Schema caching
│ ├── types.ts # Cache type definitions
│ └── schemaCache.ts # Workers KV schema cache manager
├── client/ # HTTP client
│ ├── methodClient.ts # API client with retry/backoff
│ └── errors.ts # Error formatting
├── models/ # Data models
│ ├── schemas.ts # Zod schemas for all tool inputs
│ └── types.ts # TypeScript interfaces
├── utils/ # Utilities
│ ├── formatting.ts # JSON/Markdown response formatters
│ ├── query.ts # OData query builder
│ └── validation.ts # Field/permission validators
└── tools/
└── index.ts # Unified tool router (all 22 tools)
可发现性端点
| 端点 | 描述 |
|---|---|
GET / |
丰富的JSON登录页面,具有功能和快速入门 |
GET /health |
健康检查({"status":"ok","version":"1.0.0"}) |
GET /capabilities |
包含22种工具的完整工具目录 |
GET /.well-known/mcp.json |
标准MCP发现(镜像 /capabilities) |
GET /robots.txt |
AI友好服务器描述 |
POST /mcp |
MCP协议端点 |
相关项目
- Python 版本: crm-mcp方法 -适用于铁路、Fly.io和传统部署
安全
- 仅通过HTTPS传输API密钥
- 服务器端未存储凭据(无状态多租户)
- 日志或错误消息中没有秘密
- 破坏性操作需要明确
_skip_confirmation: true旗帜 - 工厂模式(新鲜
McpServer每个请求)防止跨客户端数据泄漏
故障排除
身份验证失败
- 验证您的方法CRM API密钥有效且处于活动状态
- 确保标题格式正确:
X-Method-API-Key: <key> - 检查密钥是否具有您正在执行的操作所需的权限
API调用失败
- 验证API键是否有权访问正在查询的表/资源
- 在检查方法CRM API状态https://developer.method.me
- 查看Cloudflare仪表板日志中的错误消息
破坏性操作被阻止
- 添加
"_skip_confirmation": true关于工具的论点 - 例子:
{ "table": "Customer", "record_id": "123", "_skip_confirmation": true }
构建错误:“cloudflare内部:电子邮件”
- 升级到牧马人4.x:
npm install --save-dev wrangler@4 - 使用时会出现此错误
agents使用Wrangler 3.x的SDK
速率限制
- 方法CRM对API调用有速率限制
- 服务器以指数回退(2s、4s、8s)自动重试
贡献
欢迎投稿!请打开问题或拉取请求。
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
支持
- 问题: GitHub问题
- 方法CRM API文档: https://developer.method.me
- MCP文件: https://modelcontextprotocol.io
- 服务器功能: https://method.avinashsangle.com/capabilities
