使用说明
Rathinam MCP服务器-后端
使用模型上下文协议(MCP)在外部API上进行CRUD操作的AI驱动的自然语言接口。
🎯 项目概述
这个Django后端允许管理员/开发人员使用人工智能(Claude/GPT)支持的自然语言查询对现有API执行CRUD操作。用户可以简单地键入以下命令,而不是手动调用API或编写代码:
- “添加一个名叫Rahul的25岁学生”
- “更新所有价格低于100的产品,设置10%的折扣”
- “显示上周的所有订单”
MCP服务器解释这些命令,确定适当的API调用,并自动执行它们。
📋 先决条件
- Python 3.10或更高版本
- PostgreSQL 14或更高版本
- Redis(用于缓存和Celery)
- Node.js 18+(用于Next.js前端-独立项目)
🚀 安装和设置
1.克隆存储库
git clone <your-repo-url>
cd rathinam-mcp-backend
2.创建虚拟环境
# Using uv (recommended)
uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
# Or using standard venv
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
3.安装依赖项
pip install -r requirements.txt
4.设置PostgreSQL数据库
# Create database
createdb rathinam_mcp
# Or using psql
psql -U postgres
CREATE DATABASE rathinam_mcp;
\q
5.配置环境变量
# Copy the example env file
cp .env.example .env
# Edit .env and update with your values
nano .env # or use your preferred editor
要更新的重要变量:
SECRET_KEY-生成安全密钥DB_PASSWORD-您的PostgreSQL密码ANTHROPIC_API_KEY-Claude的Anthropic API密钥CORS_ALLOWED_ORIGINS-您的Next.js前端URL
6.创建所需目录
mkdir -p logs media staticfiles static
7.运行迁移
python manage.py makemigrations
python manage.py migrate
8.创建初始管理员用户
python manage.py create_initial_admin
这将创建:
- 超级管理员用户(用户名:
admin,密码:Admin@123) - 默认MCP配置
- 默认AI模型(Claude Sonnet 4.5)
⚠️ 重要提示:立即更改默认密码!
9.收集静态文件
python manage.py collectstatic --noinput
10.运行开发服务器
python manage.py runserver
API将于 http://localhost:8000
📚 API文档
服务器运行后,访问:
- Swagger用户界面: http://localhost:8000/api/docs/
- ReDoc: http://localhost:8000/api/redoc/
- OpenAPI 规范: http://localhost:8000/api/schema/
🔐 认证
所有API端点(登录除外)都需要JWT身份验证。
登录
POST /api/v1/auth/login/
Content-Type: application/json
{
"username": "admin",
"password": "Admin@123"
}
# Response:
{
"refresh": "eyJ0eXAiOiJKV1QiLCJ...",
"access": "eyJ0eXAiOiJKV1QiLCJ...",
"user": {
"id": 1,
"username": "admin",
"email": "admin@rathinam.edu",
"role": "SUPER_ADMIN"
}
}
使用访问令牌
在授权标头中包含令牌:
GET /api/v1/conversations/
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJ...
刷新令牌
POST /api/v1/auth/token/refresh/
Content-Type: application/json
{
"refresh": "eyJ0eXAiOiJKV1QiLCJ..."
}
📁 项目结构
rathinam-mcp-backend/
├── config/ # Main project settings
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── apps/
│ └── core/ # Main application
│ ├── models.py # Database models
│ ├── serializers.py # DRF serializers
│ ├── views.py # API views
│ ├── urls.py # URL routing
│ ├── permissions.py # Custom permissions
│ ├── admin.py # Django admin config
│ └── management/
│ └── commands/
│ └── create_initial_admin.py
├── logs/ # Application logs
├── media/ # User uploads
├── static/ # Static files
├── staticfiles/ # Collected static files
├── requirements.txt
├── .env.example
├── .env
├── .gitignore
├── manage.py
└── README.md
🔑 API关键终结点
认证
POST /api/v1/auth/login/-登录POST /api/v1/auth/logout/-注销POST /api/v1/auth/token/refresh/-刷新令牌GET /api/v1/auth/me/-当前用户信息PUT /api/v1/auth/change-password/-更改密码
对话
GET /api/v1/conversations/-列出对话POST /api/v1/conversations/-创建对话GET /api/v1/conversations/{id}/-获取对话POST /api/v1/conversations/{id}/end/-结束对话
查询
GET /api/v1/queries/-列出查询POST /api/v1/queries/-创建查询GET /api/v1/queries/{id}/-获取查询详细信息
外部API
GET /api/v1/external-apis/-列出外部APIPOST /api/v1/external-apis/-添加外部APIPOST /api/v1/external-apis/{id}/health-check/-检查API运行状况
仪表盘
GET /api/v1/dashboard/overview/-仪表板统计信息GET /api/v1/dashboard/recent-conversations/-最近的聊天记录GET /api/v1/dashboard/recent-queries/-最近的查询
监控
GET /api/v1/alerts/-列出警报POST /api/v1/alerts/{id}/acknowledge/-确认警报GET /api/v1/metrics/latest/-最新系统指标
🛠️ 配置
添加外部API
- 登录到管理面板:http://localhost:8000/admin/
- 首选 外部API → 添加外部API
- 填写:
- 名称(例如“学生管理API”)
- 基本URL(例如,“https://api.yourdomain.com")
- Auth类型(API_KEY、BEARER_TOKEN等)
- 身份验证凭据(JSON格式)
- 为此API添加API终结点
配置AI模型
- 首选 AI模型 在管理面板中
- 更新Claude的API密钥或添加OpenAI
- 将一个模型设置为默认值
- 配置max_tokens和温度
🧪 测试
# Run tests
python manage.py test
# Run with coverage
coverage run manage.py test
coverage report
📊 数据库模型
核心型号
- 管理员用户 -系统用户(管理员/开发人员)
- 审计 -完整的审计跟踪
- MCP对话 -聊天会话
- MCP消息 -个人聊天消息
- MCPQuery -自然语言查询
- API调用 -外部API调用跟踪
配置
- 外观! -外部API配置
- API 终点 -API端点目录
- MCP配置 -系统设置
- AI模型 -AI模型配置
监控
- 系统度量 -性能指标
- 警报 -系统警报
- 使用统计 -用户使用情况跟踪
🔒 安全特性
- 带令牌刷新的JWT身份验证
- 基于角色的访问控制(SUPER_ADMIN、ADMIN、DEVELOPER)
- 登录尝试失败后帐户锁定
- 全面的审计日志记录
- 加密敏感数据
- CORS保护
- HTTPS在生产环境中的实施
🚀 生产部署
使用Gunicorn
gunicorn config.wsgi:application --bind 0.0.0.0:8000 --workers 4
使用Docker(即将推出)
docker-compose up -d
生产环境变量
更新您的 .env:
DEBUG=False
ALLOWED_HOSTS=your-domain.com,www.your-domain.com
SECRET_KEY=<generate-secure-key>
CORS_ALLOWED_ORIGINS=https://your-frontend.com
📝 后续步骤
- ✅ 后端设置完成
- 🔄 设置MCP服务器集成(下一阶段)
- 🎨 构建Next.js前端
- 🤖 配置AI模型和提示
- 🔗 连接到现有的CRUD API
🆘 故障排除
数据库连接错误
# Check PostgreSQL is running
sudo systemctl status postgresql
# Verify database exists
psql -U postgres -l
移民问题
# Reset migrations (DANGER: loses data)
python manage.py migrate --run-syncdb
端口已在使用中
# Kill process on port 8000
lsof -ti:8000 | xargs kill -9
📞 支持
对于问题和疑问:
- 在GitHub上创建问题
- 电子邮件:support@rathinam.edu
📄 许可证
[您的许可证在这里]
内置❤️ Rathinam学院
