README.md•2.55 kB
# MCP Server
基于WebSocket的MCP(Model Control Protocol)服务器,用于处理模型请求并提供响应。
## 项目结构
```
MCPServerDemo/
├── src/ # 源代码目录
│ └── mcp/ # MCP实现
│ ├── handlers/ # 请求处理器
│ ├── models/ # 数据模型
│ ├── protocol/ # 协议定义
│ └── server/ # 服务器实现
├── client/ # 客户端示例
│ └── index.html # 测试用HTML客户端
├── .env # 环境变量配置(需要从.env.example创建)
├── .env.example # 环境变量示例
├── main.py # 应用程序入口点
└── README.md # 项目说明
```
## 安装
本项目使用uv进行依赖管理。
```bash
# 安装依赖
uv pip install fastapi uvicorn pydantic pydantic-settings
```
## 配置
1. 复制环境变量示例文件并进行配置:
```bash
cp .env.example .env
```
2. 编辑`.env`文件,设置您的配置。
## 运行
```bash
# 启动服务器
python main.py
```
服务器将在`http://localhost:8000`上运行,WebSocket端点为`ws://localhost:8000/ws`。
## 测试客户端
打开`client/index.html`文件在浏览器中测试MCP服务器。
## MCP协议
MCP协议是一个基于WebSocket的协议,用于控制和管理AI模型。
### 请求格式
```json
{
"id": "请求ID",
"type": "request",
"action": "动作名称",
"messages": [
{
"role": "user",
"content": "消息内容"
}
],
"parameters": {
"参数名": "参数值"
}
}
```
### 响应格式
```json
{
"id": "请求ID",
"type": "response",
"action": "动作名称",
"messages": [
{
"role": "assistant",
"content": "响应内容"
}
],
"metadata": {
"元数据名": "元数据值"
}
}
```
### 错误格式
```json
{
"id": "请求ID",
"type": "error",
"action": "动作名称",
"error": "错误信息",
"details": {
"详情名": "详情值"
}
}
```
### 事件格式
```json
{
"id": "事件ID",
"type": "event",
"event": "事件名称",
"data": {
"数据名": "数据值"
}
}
```
## 支持的动作
- `chat`: 聊天请求
- `completion`: 文本完成请求
## 扩展
您可以通过以下方式扩展MCP服务器:
1. 创建新的处理器在`src/mcp/handlers/`目录
2. 在`main.py`中注册新的处理器
3. 自定义协议实现在`src/mcp/protocol/`目录