小贴士:按下Ctrl+D 或 ⌘+D,一键收藏本站,方便下次快速访问!
MIT License
1
最近更新:1个月前

一个模型上下文协议(MCP)服务器,使用Cursor AI和Glama.ai集成提供由AI驱动的客户服务。

AI 客户支持机器人 - MCP 服务器

一个使用 Cursor AI 和 Glama.ai 集成提供 AI 支持的客户支持的 Model Context Protocol (MCP) 服务器。

功能

  • 实时从 Glama.ai 获取上下文
  • 使用 Cursor AI 生成 AI 响应
  • 批量处理支持
  • 优先级队列
  • 速率限制
  • 用户交互跟踪
  • 健康监控
  • 符合 MCP 协议

先决条件

  • Python 3.8+
  • PostgreSQL 数据库
  • Glama.ai API 密钥
  • Cursor AI API 密钥

安装

  1. 克隆仓库:
bash 复制代码
git clone <repository-url>
cd <repository-name>
  1. 创建并激活虚拟环境:
bash 复制代码
python -m venv venv
source venv/bin/activate  # 在 Windows 上: venv\Scripts\activate
  1. 安装依赖项:
bash 复制代码
pip install -r requirements.txt
  1. 基于 .env.example 创建 .env 文件:
bash 复制代码
cp .env.example .env
  1. .env 文件中配置您的凭据:
env 复制代码
# API 密钥
GLAMA_API_KEY=your_glama_api_key_here
CURSOR_API_KEY=your_cursor_api_key_here

# 数据库
DATABASE_URL=postgresql://user:password@localhost/customer_support_bot

# API URL
GLAMA_API_URL=https://api.glama.ai/v1

# 安全
SECRET_KEY=your_secret_key_here

# MCP 服务器配置
SERVER_NAME="AI Customer Support Bot"
SERVER_VERSION="1.0.0"
API_PREFIX="/mcp"
MAX_CONTEXT_RESULTS=5

# 速率限制
RATE_LIMIT_REQUESTS=100
RATE_LIMIT_PERIOD=60

# 日志
LOG_LEVEL=INFO
  1. 设置数据库:
bash 复制代码
# 创建数据库
createdb customer_support_bot

# 运行迁移(如果使用 Alembic)
alembic upgrade head

运行服务器

启动服务器:

bash 复制代码
python app.py

服务器将在 http://localhost:8000 可用。

API 端点

1. 根端点

bash 复制代码
GET /

返回基本的服务器信息。

2. MCP 版本

bash 复制代码
GET /mcp/version

返回支持的 MCP 协议版本。

3. 功能

bash 复制代码
GET /mcp/capabilities

返回服务器功能和支持的特性。

4. 处理请求

bash 复制代码
POST /mcp/process

处理带有上下文的单个查询。

示例请求:

bash 复制代码
curl -X POST http://localhost:8000/mcp/process \
  -H "Content-Type: application/json" \
  -H "X-MCP-Auth: your-auth-token" \
  -H "X-MCP-Version: 1.0" \
  -d '{
    "query": "How do I reset my password?",
    "priority": "high",
    "mcp_version": "1.0"
  }'

5. 批量处理

bash 复制代码
POST /mcp/batch

在单个请求中处理多个查询。

示例请求:

bash 复制代码
curl -X POST http://localhost:8000/mcp/batch \
  -H "Content-Type: application/json" \
  -H "X-MCP-Auth: your-auth-token" \
  -H "X-MCP-Version: 1.0" \
  -d '{
    "queries": [
      "How do I reset my password?",
      "What are your business hours?",
      "How do I contact support?"
    ],
    "mcp_version": "1.0"
  }'

6. 健康检查

bash 复制代码
GET /mcp/health

检查服务器健康状况和服务状态。

速率限制

服务器实现以下默认的速率限制:

  • 每 60 秒 100 个请求
  • 健康检查端点包括速率限制信息
  • 超出速率限制的响应包括重置时间

错误处理

服务器返回结构化的错误响应,格式如下:

json 复制代码
{
  "code": "ERROR_CODE",
  "message": "Error description",
  "details": {
    "timestamp": "2024-02-14T12:00:00Z",
    "additional_info": "value"
  }
}

常见的错误代码:

  • RATE_LIMIT_EXCEEDED: 速率限制超出
  • UNSUPPORTED_MCP_VERSION: 不支持的 MCP 版本
  • PROCESSING_ERROR: 请求处理错误
  • CONTEXT_FETCH_ERROR: 从 Glama.ai 获取上下文时出错
  • BATCH_PROCESSING_ERROR: 批量请求处理错误

开发

项目结构

复制代码
.
├── app.py              # 主应用程序文件
├── database.py         # 数据库配置
├── middleware.py       # 中间件(速率限制、验证)
├── models.py          # 数据库模型
├── mcp_config.py      # MCP 特定配置
├── requirements.txt   # Python 依赖项
└── .env              # 环境变量

添加新功能

  1. mcp_config.py 中添加新的配置选项
  2. 如果需要,在 models.py 中添加新的模型
  3. app.py 中创建新的端点
  4. 更新功能端点以反映新功能

安全

  • 所有 MCP 端点都需要通过 X-MCP-Auth 头进行身份验证
  • 实现了速率限制以防止滥用
  • 数据库凭据应保持安全
  • API 密钥不应提交到版本控制

监控

服务器提供健康检查端点用于监控:

  • 服务状态
  • 速率限制使用情况
  • 连接的服务
  • 处理时间

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建 Pull Request

许可证

该项目根据 MIT 许可证许可 - 请参阅 LICENSE 文件获取详细信息。

支持

如需支持,请在仓库中创建问题或联系开发团队。