客户成功MCP服务器
一种模型上下文协议(MCP)服务器,提供类似于Gainsight的客户成功管理工具。该服务器使AI助手能够管理客户成功操作,包括行动呼吁、健康评分和风险警报。
特性
🔐 身份验证和安全
- 基于JWT的身份验证 基于角色的访问控制系统
- API密钥验证 用于多网络访问(LibreChat、外部客户端)
- 用户注册 通过电子邮件验证
- 安全令牌和API密钥管理
- 看 API_KEY_SETUP.md 用于API密钥配置
📋 行动呼吁(CTA)
- 为账户创建、更新和管理CTA
- 优先级和状态跟踪
- 任务和截止日期管理
- 基于标签的分类
- PostgreSQL中的持久存储
💚 健康评分跟踪
- 跟踪整体账户健康评分(0-100)
- 具有加权计算的多个指标
- 状态类别(优秀、良好、有风险、危急)
- 趋势分析(改善、下降、稳定)
- PostgreSQL中的持久存储
⚠️ 账户风险警报
- 为账户创建和管理风险警报
- 风险等级分类(无、低、中、高)
- 影响评分和建议行动
- 警报确认工作流
- PostgreSQL中的持久存储
🗄️ 数据库查询
- 对PostgreSQL执行SQL查询(Google Cloud SQL或本地)
- 检查表架构并列出可用表
- 支持标准PostgreSQL语法
安装
先决条件
- Python 3.10或更高版本
- PostgreSQL 14+ --要么 谷歌云SQL 用于生产或本地开发实例
- 已配置SES的AWS帐户(可选,用于用户注册电子邮件验证)
uv包管理器(推荐)或pip
设置
- 克隆项目目录:
git clone https://github.com/Think-like-a-Terminator/mcp_customersuccess.git- 使用uv安装依赖项:
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
uv pip install -e .或者使用pip:
pip install -e .- 设置PostgreSQL数据库:
选项A——本地(Docker,开发速度最快):
docker compose up -d这将同时启动PostgreSQL、MCP服务器和MailHog(本地SMTP)。数据库模式通过以下方式自动应用 init-db.sql.
选项B——谷歌云SQL:
- 在中创建PostgreSQL 15实例 云SQL - 创建一个名为的数据库 customer_success - 通过云SQL身份验证代理或私有IP连接 - 应用架构: psql -h -U postgres -d customer_success -f init-db.sql
- 配置环境变量:
cp .env.example .env编辑 .env 并配置:
- PostgreSQL连接 (必填): - POSTGRES_HOST:数据库主机(例如。, localhost 或云SQL私有IP) - POSTGRES_PORT:端口,默认值 5432 - POSTGRES_DB:数据库名称,默认值 customer_success - POSTGRES_USER:数据库用户,默认值 postgres - POSTGRES_PASSWORD:数据库密码 - JWT_SECRET_KEY:更改为安全随机字符串 - AWS SES凭据(可选,用于验证电子邮件) - SMTP凭据(可选,用于验证电子邮件)
用法
运行服务器
用于本地测试
uv run python -m src.server使用Claude Desktop进行配置
添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):
{
"mcpServers": {
"customer-success": {
"command": "uv",
"args": [
"--directory",
"your-project-directory",
"run",
"python",
"-m",
"src.server"
],
"env": {
"JWT_SECRET_KEY": "your-secret-key",
"POSTGRES_HOST": "your-db-host",
"POSTGRES_PORT": "5432",
"POSTGRES_DB": "customer_success",
"POSTGRES_USER": "postgres",
"POSTGRES_PASSWORD": "your-db-password",
"AWS_ACCESS_KEY_ID": "your-aws-key",
"AWS_SECRET_ACCESS_KEY": "your-aws-secret",
"AWS_REGION": "us-east-1",
"SES_FROM_EMAIL": "noreply@yourdomain.com"
}
}
}
}使用VS代码进行配置
创建 .vscode/mcp.json:
{
"servers": {
"customer-success": {
"type": "stdio",
"command": "uv",
"args": [
"--directory",
"your-project-directory",
"run",
"python",
"-m",
"src.server"
]
}
}
}可用工具
身份验证和用户管理
- 验证:获取API访问的访问令牌
- 注册用户:注册新用户帐户(通过电子邮件验证)
- 验证用户邮箱:使用验证码验证电子邮件
- 重新发送_验证_电子邮件:重新发送验证电子邮件
- list_users:列出所有注册用户(仅限管理员)
API密钥管理
- generate_api_key:为客户端身份验证生成新的API密钥(仅限管理员)
- list_api_keys:列出所有带有元数据的API密钥
- revoke_api_key:停用API密钥
- delete_api_key:永久删除API密钥
行动呼吁
- create_call_to_action:创建新的CTA
- list_call_to_actions:列出带有过滤器的CTA
- update_call_to_action:更新CTA状态、优先级等。
- get_call_to_action:获取特定CTA的详细信息
健康评分
- update_health_score:设置或更新帐户健康评分
- get_health_score:获取帐户的健康评分
- list_health_scores:使用筛选器列出健康评分
风险警报
- create_risk_alert:创建新的风险警报
- list_risk_alerts:列出带有过滤器的风险警报
- 确认_风险_警报:确认风险警报
- get_risk_alert:获取特定警报的详细信息
数据库工具
- 查询数据库:对PostgreSQL执行SQL查询
- get_database_tables:列出数据库中的所有表
- get_table_schema:检查特定表的列和类型
- test_database_connection:验证数据库连接是否正常
默认用户
出于测试目的,服务器包括默认用户:
- 管理用户
- 用户名: admin - 密码: admin123 - 访问:完全读/写/管理权限
- CSM用户
- 用户名: csm - 密码: csm123 - 访问:读/写权限
⚠️ 重要提示: 在生产环境中更改这些密码!
示例用法
1.身份验证
Use the authenticate tool with username "admin" and password "admin123"2.发出行动呼吁
Use create_call_to_action with:
- account_id: "acct-001"
- title: "Conduct QBR"
- description: "Schedule quarterly business review"
- priority: "high"
- due_date_days: 143.更新健康评分
Use update_health_score with:
- account_id: "acct-001"
- overall_score: 85
- metrics: [
{"name": "usage", "value": 90, "weight": 0.4},
{"name": "engagement", "value": 80, "weight": 0.3}
]
- trend: "improving"4.创建风险警报
Use create_risk_alert with:
- account_id: "acct-002"
- risk_level: "high"
- risk_factors: ["Low product usage", "Unresponsive to emails"]
- impact_score: 85
- recommended_actions: ["Schedule executive call", "Review usage data"]AWS SES设置
要使用AWS SES通过电子邮件验证注册用户,请执行以下操作:
- 创建AWS帐户 并配置SES
- 验证您的发件人电子邮件 SES中的地址
- 移出SES沙盒 用于生产用途
- 配置凭据 在
.env:
AWS_ACCESS_KEY_ID=your-key
AWS_SECRET_ACCESS_KEY=your-secret
AWS_REGION=us-east-1
SES_FROM_EMAIL=noreply@yourdomain.com注: 如果没有AWS凭据,服务器将以模拟模式运行以发送电子邮件(打印到控制台)。
数据存储
所有数据都保存在 PostgreSQL (生产环境中的Google Cloud SQL,或用于开发的本地Docker容器)。架构在中定义 init-db.sql 使用Docker Compose时自动应用。
生产:
- 使用具有私有IP访问权限的Google Cloud SQL(PostgreSQL 15)
- 启用自动备份和时间点恢复
- 商店
POSTGRES_PASSWORD和JWT_SECRET_KEY谷歌秘密管理器 - 看
cloudbuild.yaml对于Cloud Run部署管道
安全注意事项
- 立即更改默认密码
- 使用强JWT密钥
- 定期旋转令牌
- 实施速率限制
- 在生产环境中使用HTTPS
- 安全地存储AWS凭据
- 实施适当的错误处理
- 添加审核日志记录
- 定期安全更新
发展
运行测试
uv run pytest代码格式化
uv run black src/代码检查
uv run ruff check src/建筑
cs_cloud_mcp/
├── src/
│ ├── __init__.py
│ ├── server.py # Main MCP server with all tool definitions
│ ├── auth.py # JWT authentication logic
│ ├── config.py # Settings loaded from environment variables
│ ├── models.py # Pydantic data models
│ ├── db_service.py # PostgreSQL connection and query execution
│ ├── mcp_storage.py # CTA, health score, and risk alert persistence
│ ├── user_service.py # User registration, verification, and management
│ └── email_service.py # SMTP / AWS SES email service
├── init-db.sql # Database schema and seed data
├── docker-compose.yml # Local dev stack (MCP server + PostgreSQL + MailHog)
├── Dockerfile
├── cloudbuild.yaml # Google Cloud Build → Cloud Run deployment
├── pyproject.toml # Project dependencies
├── .env.example # Environment variables template
├── .gitignore
└── README.md贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加测试
- 提交拉取请求
支持
对于问题、疑问或贡献:
- 在GitHub上打开一个问题
- 检查MCP文件:https://modelcontextprotocol.io
- 加入MCP社区讨论
路线图
未来的增强功能:
- \[\]高级分析和报告
- \[\]先进的风险评分算法
- \[\]Webhook集成
- \[\]全面的测试覆盖率
______________________________________________________________________
内置于❤️ 使用模型上下文协议
