使用说明
MCP AI聊天服务器
基于Laravel的人工智能聊天界面,使用自然语言处理和工具调用进行业务管理操作。
🎯 概述
MCP AI聊天服务器使用户能够通过自然语言对话与业务数据进行交互。它利用OpenAI的函数调用功能来:
- 从自然语言输入分析用户意图
- 自动提取参数
- 通过MCP工具执行适当的业务操作
- 返回人性化的响应
✨ 特性
- 自然语言处理:了解印尼语和英语商务查询
- AI驱动的工具调用:使用OpenAI GPT模型进行智能功能选择
- 基于规则的回退:当人工智能服务不可用时,性能会下降
- 实时聊天界面:基于Web的聊天UI,具有会话管理功能
- 综合录井:跟踪所有交互和工具执行
- RESTful API:通过程序访问聊天功能
- 多提供商支持:OpenAI和OpenRouter集成
🛠️ 可用工具
| 工具 | 说明 | 参数 |
|---|---|---|
create_customer |
创建新客户记录 | 姓名、电子邮件、电话 |
get_user |
通过电子邮件检索用户 | 电子邮件 |
search_tasks |
按状态/用户 | 状态、assigned_to查找任务 |
update_task_status |
更改任务状态 | task_id,状态 |
get_overdue_customers |
查找不活跃客户 | 天 |
🚀 快速开始
先决条件
- PHP 8.1+
- 作曲家
- Node.js和npm(用于前端资产)
- 数据库(MySQL/PostgreSQL/SQLite)
安装
-
克隆和安装依赖关系:
git clone <repository-url> cd mcp-server composer install npm install -
环境设置:
cp .env.example .env php artisan key:generate -
配置环境变量:
# Database DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=mcp_chat DB_USERNAME=your_username DB_PASSWORD=your_password # AI Providers AI_PROVIDER=openai # or 'openrouter' OPENAI_API_KEY=your-openai-api-key OPENROUTER_API_KEY=your-openrouter-api-key # MCP Authentication MCP_VALID_KEYS=your-secret-key-here -
数据库设置:
php artisan migrate php artisan db:seed # Optional: seed sample data -
构建资产:
npm run build -
启动服务器:
php artisan serve -
访问应用程序:
- 聊天界面:http://localhost:8000/chat
- API文件:http://localhost:8000/api/documentation
💬 使用示例
web界面
访问 /chat 使用带有示例消息按钮的交互式聊天界面。
API使用
发送聊天消息
curl -X POST "http://localhost:8000/api/mcp/chat" \
-H "Content-Type: application/json" \
-H "X-MCP-Key: your-mcp-key" \
-d '{
"message": "Buatkan customer baru dengan nama John Doe, email john@example.com",
"session_id": "optional-session-id"
}'
回应
{
"reply": "Customer 'John Doe' berhasil dibuat dengan ID 1.",
"executed_tool": "create_customer",
"arguments": {
"name": "John Doe",
"email": "john@example.com"
},
"result": {
"id": 1,
"name": "John Doe",
"email": "john@example.com"
},
"status": "success"
}
对话示例
创建客户:
User: Buatkan user baru dengan nama Andi, email andi@gmail.com
AI: Customer 'Andi' berhasil dibuat dengan ID 5.
正在更新任务状态:
User: Update status task nomor 1 menjadi completed
AI: Status task ID 1 berhasil diubah menjadi 'completed'.
寻找逾期客户:
User: Tampilkan customer yang belum dihubungi lebih dari 30 hari
AI: Ditemukan 3 customer yang belum dihubungi lebih dari 30 hari.
📡 API终点
| 方法 | 端点 | 描述 |
|---|---|---|
| 职位 | /api/mcp/chat |
发送聊天消息 |
| 得到 | /api/mcp/chat/history |
获取对话历史记录 |
| 删除 | /api/mcp/chat/history |
清除对话历史记录 |
认证
所有API端点都需要 X-MCP-Key 带有有效密钥的标头 MCP_VALID_KEYS.
🔧 配置
AI提供商
通过设置在OpenAI和OpenRouter之间进行选择 AI_PROVIDER:
- OpenAI:更可靠,需要API密钥
- 开放路由:替代提供商,支持多种型号
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
AI_PROVIDER |
人工智能服务提供商 | openai |
OPENAI_API_KEY |
OpenAI API密钥 | - |
OPENROUTER_API_KEY |
OpenRouter API密钥 | - |
MCP_VALID_KEYS |
逗号分隔的API密钥 | - |
DB_CONNECTION |
数据库连接 | mysql |
🏗️ 建筑
核心组件
- 代理服务:主要AI处理逻辑
- 工具注册表:管理可用的MCP工具
- MCP工具:个人业务操作处理人员
- 聊天控制器:Web界面和API终结点
- 日志记录:全面的互动跟踪
数据流
- 用户通过API或web界面发送消息
- AgentService使用AI或基于规则的逻辑分析意图
- 选择并执行适当的工具
- 结果被格式化为人类可读的响应
- 记录交互以进行分析
🔒 安全
- 所有终结点的API密钥身份验证
- 输入验证和净化
- 聊天端点的速率限制
- 全面的错误处理
- 回复中没有敏感数据泄露
📊 监控
所有交互都记录在 mcp_command_logs 表格包括:
- 用户消息和人工智能响应
- 执行的工具和参数
- 成功/失败状态
- 会话跟踪
- IP地址和元数据
🧪 测试
运行测试套件:
php artisan test
🤝 贡献
- 复刻仓库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
🆘 支持
对于问题和疑问:
- 检查登录
storage/logs/laravel.log - 审查
mcp_command_logs交互详细信息表 - 确保正确配置API密钥
📚 额外资源
- Laravel文档
- OpenAI函数调用
- OpenRouter API README.md
