CRM模型上下文协议服务器

一个用于客户关系管理的模型上下文协议服务器,支持Google Sheets集成、Calendly预约和SendGrid邮件通知。

  • by lokv010
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 lokv010/crm_mcp_server

使用说明

CRM MCP服务器

一个模型上下文协议(MCP)服务器,用于通过SendGrid集成Google表格、日历预约和电子邮件通知进行客户关系管理。

✓ 完全支持MCP协议 -与OpenAI Agent Builder和Claude Desktop配合使用

特性

  • 谷歌表格CRM:存储和管理客户服务记录
  • 日历集成:安排预约和管理预订
  • 电子邮件通知:通过SendGrid发送预约确认和提醒
  • MCP协议:用于OpenAI Agent Builder的具有HTTP/SSE传输的本地MCP服务器
  • 标准运输:用于Claude Desktop的传统MCP服务器

快速开始

1.安装依赖项

npm install

2.设置Google表格凭据

请遵循中的详细说明 google_cred/README.md 致:

  1. 创建Google Cloud项目
  2. 启用Google Sheets API
  3. 创建服务帐户并下载凭据
  4. 将凭据放入 google_cred/credentials.json
  5. 使用服务帐户电子邮件共享您的电子表格

3.配置环境变量

复制示例环境文件:

cp .env.example .env

编辑 .env 使用您的凭据:

# Google Sheets (Required)
GOOGLE_SHEETS_CREDENTIALS_PATH=./google_cred/credentials.json
GOOGLE_SHEETS_SPREADSHEET_ID=your_spreadsheet_id_here

# Calendly (Optional)
CALENDLY_API_TOKEN=your_calendly_api_token
CALENDLY_ORGANIZATION_URI=https://api.calendly.com/organizations/your_org_id

# SendGrid Email (Optional)
SENDGRID_API_KEY=your_sendgrid_api_key
SENDGRID_FROM_EMAIL=noreply@yourdomain.com
SENDGRID_FROM_NAME=CRM Support

# REST API Configuration
REST_API_PORT=3000
REST_API_KEY=your-secret-api-key-here

4.建设项目

npm run build

用法

适用于OpenAI代理生成器(MCP协议)

这是将此服务器与OpenAI一起使用的推荐方式。

启动MCP服务器:

npm run start:mcp

服务器将在上运行 http://localhost:3100/mcp 默认情况下。

配置OpenAI代理生成器:

  1. 在OpenAI Agent Builder中,添加一个新操作
  2. 选择“连接到MCP服务器”
  3. 输入服务器URL: http://localhost:3100/mcp
  4. OpenAI将通过MCP协议自动发现所有可用工具

验证它是否正常工作:

  • 健康检查: http://localhost:3100/health
  • 当OpenAI连接时,服务器日志将显示“会话已初始化”
  • OpenAI Agent Builder应列出所有工具(谷歌表格、日历、电子邮件)

将提供哪些工具?

  • 所有Google表格CRM工具(如果已配置)
  • 所有日历约会工具(如果已配置)
  • 所有SendGrid电子邮件工具(如果已配置)

适用于MCP客户端(Claude Desktop)

启动MCP服务器:

npm start

添加到您的Claude Desktop配置(claude_desktop_config.json):

{
  "mcpServers": {
    "crm-server": {
      "command": "node",
      "args": ["/path/to/crm_mcp_server/dist/index.js"],
      "env": {
        "MCP_SERVER_TYPE": "all",
        "GOOGLE_SHEETS_CREDENTIALS_PATH": "/path/to/credentials.json",
        "GOOGLE_SHEETS_SPREADSHEET_ID": "your_spreadsheet_id"
      }
    }
  }
}

可用工具

谷歌表格工具

  • initialize_sheet -设置带有标题的工作表(运行一次)
  • add_customer_record -添加新的客户支持票
  • get_customer_record -按ID检索特定记录
  • update_customer_record -更新现有记录
  • search_customer_records -按电子邮件、姓名、状态或优先级搜索
  • list_all_customers -获取所有客户记录

日历工具

  • list_event_types -列出可用的预约类型
  • get_event_type -获取事件类型的详细信息
  • get_scheduling_link -获取客户预订链接
  • list_scheduled_events -查看已安排的约会
  • get_event_invitee -获取受邀者详细信息
  • cancel_event -取消预约

电子邮件工具

  • send_appointment_confirmation -发送预约确认电子邮件
  • send_appointment_reminder -发送预约提醒
  • send_custom_email -发送自定义电子邮件

如何选择正确的服务器模式

使用 npm run start:mcp (端口3100)- 推荐

  • ✓ OpenAI代理生成器
  • ✓ 使用HTTP/SSE传输实现正确的MCP协议
  • ✓ OpenAI可以自动发现所有工具
  • ✓ 本地MCP通信

使用 npm start (stdio)

  • ✓ 适用于克劳德桌面
  • ✓ 使用stdio传输
  • ✓ 添加到claude_desktop_config json

使用 npm run start:api (端口3000)- 已弃用

  • ✗ REST API包装器(不是真正的MCP协议)
  • ✗ 不适用于OpenAI Agent Builder
  • ✗ 仅适用于传统兼容性

API身份验证

如果你设置 REST_API_KEY 在 .env,将其包含在所有请求中:

curl -H "x-api-key: your-api-key" http://localhost:3000/api/tools

或者通过离开来禁用身份验证 REST_API_KEY 空的。

项目结构

crm_mcp_server/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── rest-api.ts           # REST API server
│   ├── mcp-bridge.ts         # MCP to REST adapter
│   ├── sheets-server.ts      # Google Sheets integration
│   ├── calendly-server.ts    # Calendly integration
│   ├── email-server.ts       # Email notifications
│   └── types.ts              # TypeScript interfaces
├── google_cred/
│   └── README.md             # Google credentials setup guide
├── openai-api-spec.yaml      # OpenAPI spec for OpenAI agents
├── .env.example              # Environment template
└── README.md                 # This file

故障排除

Google表格权限被拒绝

  • 确保电子表格与服务帐户电子邮件共享
  • 检查一下 credentials.json 路径正确

API身份验证失败

  • 验证 REST_API_KEY 比赛在 .env 以及请求标头
  • 或删除 REST_API_KEY 禁用身份验证

服务器无法启动

  • 跑 npm install 确保所有依赖项都已安装
  • 检查是否设置了所有必需的环境变量
  • 验证指定路径上是否存在凭据文件

安全说明

  • 永不承诺 .env 或 credentials.json 到版本控制
  • 在生产中使用强大的API密钥
  • 部署到生产环境时启用HTTPS
  • 定期轮换API令牌

许可证

麻省理工学院