使用说明
模型上下文协议(MCP)服务器
一种轻量级、高效的服务器实现,用于处理大型语言模型的上下文操作。
概述
模型上下文协议(MCP)服务器提供了一个强大的API,用于管理语言模型使用的文档和上下文。它具有自动任务排队、速率限制和错误处理功能,即使在高负载或遇到错误时也能确保可靠运行。
特性
- 文档管理:创建、检索和删除文档对象
- 上下文管理:创建、更新、检索和删除上下文集合
- 异步任务处理:具有错误隔离功能的任务后台处理
- 速率限制:内置请求限制以防止过载
- 错误处理:失败的任务将被存储以供以后查看和重试
- API文档:自动生成的Swagger UI文档
- 简单身份验证:API基于密钥的安全性
快速开始
先决条件
- Python 3.7+
- pip包管理器
安装
# Clone the repository
git clone https://github.com/your-username/mcp-server.git
cd mcp-server
# Create a virtual environment
python -m venv venv
# Activate the virtual environment
# For Windows:
venv\Scripts\activate
# For macOS/Linux:
source venv/bin/activate
# Install dependencies
pip install fastapi uvicorn pydantic
运行服务器
python app.py
服务器将于启动http://localhost:8000默认情况下。您可以通过设置port环境变量来更改端口。
API文档
服务器运行后,请访问http://localhost:8000/docs访问交互式API文档。
API使用
认证
大多数端点都需要API密钥,该密钥应在 X-API-Key 头球默认的API密钥为 test-api-key,但可以通过设置 MCP_API_KEY 环境变量。
基本操作
1.创建文档
POST /documents
X-API-Key: test-api-key
{
"content": "This is a sample document.",
"metadata": {
"source": "example.com",
"author": "John Doe"
}
}
2.创建上下文
POST /contexts
X-API-Key: test-api-key
{
"name": "Sample Context",
"description": "A collection of related documents",
"documents": ["document-id-1", "document-id-2"]
}
3.检索上下文内容
GET /contexts/{context_id}/content
X-API-Key: test-api-key
管理任务
查看失败的任务
GET /tasks/failed
X-API-Key: test-api-key
重试失败的任务
POST /tasks/retry
X-API-Key: test-api-key
在VS代码中设置
- 在VS Code中打开项目文件夹
- 确保已安装Python扩展
- 选择您的Python解释器(虚拟环境中的解释器)
- 打开终端并运行
python app.py - 通过设置断点并按F5进行调试
环境变量
PORT:服务器端口(默认值:8000)MCP_API_KEY:用于身份验证的API密钥(默认值:test-API-key)
错误处理
服务器被设计为即使单个操作失败,也能继续处理任务。失败的任务存储在单独的队列中,可以通过专用端点进行检查和重试。
局限性
- 此实现使用内存存储,不适合需要数据持久性的生产环境
- 速率限制器是基本的,可能需要根据特定用例进行调整
未来改进
- 持久存储的数据库集成
- 高级身份验证机制
- 更复杂的速率限制
- 大型上下文的流式响应
- 语义搜索的矢量嵌入支持
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交拉取请求。
