OpenAI矢量存储的MCP服务器
一个与OpenAI的向量存储集成的模型上下文协议(MCP)服务器,提供 search 和 fetch ChatGPT连接器和深入研究的能力。
特性
- 🔍 搜索工具:查询OpenAI矢量存储中的文档
- 📄 提取工具:按ID检索完整文档内容
- 🚀 FastMCP框架:采用FastMCP构建,实现最佳性能
- 🔒 安全:具有API密钥保护的基于环境的配置
- 📊 健康监测:内置健康检查端点
- 🐳 容器化:Docker支持,易于部署
快速开始
1.先决条件
- Python 3.11或更高版本
- 可访问助理API的OpenAI API密钥
- 在OpenAI中创建的带有上传文档的矢量存储
2.克隆和设置
git clone
cd mcp-server-canyon
pip install -r requirements.txt3.环境配置
cp .env.example .env编辑 .env 与你的价值观:
OPENAI_API_KEY=sk-your-openai-api-key
VECTOR_STORE_ID=vs_your-vector-store-id
ASSISTANT_ID=asst_your-assistant-id
PORT=80004.创建矢量存储和助手
如果你还没有矢量存储:
- 首选 OpenAI平台
- 创建启用文件搜索的新助手
- 上传文档以创建矢量存储
- 记下矢量存储ID和助手ID
或者使用我们的辅助脚本:
python setup_assistant.py5.运行服务器
python main.py服务器将于启动 http://localhost:8000 (或您配置的端口)。
部署选项
回复(建议用于测试)
- 将此存储库导入Replit
- 在Replit Secrets中添加环境变量:
- OPENAI_API_KEY - VECTOR_STORE_ID - ASSISTANT_ID
- 点击“运行”-Replit将处理其余部分!
码头工人
# Build the image
docker build -t mcp-server-canyon .
# Run with environment variables
docker run -p 8000:8000 \
-e OPENAI_API_KEY=your-key \
-e VECTOR_STORE_ID=your-vs-id \
-e ASSISTANT_ID=your-assistant-id \
mcp-server-canyon铁路
- 将您的GitHub存储库连接到Railway
- 在铁路仪表板中添加环境变量
- 推送时自动部署
渲染
- 将您的GitHub存储库连接到Render
- 创建新的Web服务
- 设置构建命令:
pip install -r requirements.txt - 设置启动命令:
python main.py - 添加环境变量
API终点
健康检查
GET /health返回服务器状态和配置信息。
MCP工具
服务器使用以下工具实现MCP协议:
搜索工具
- 目的:搜索相关文件
- 输入:
query(字符串) - 输出:搜索结果数组
id,title,text,url
提取工具
- 目的:检索完整文档内容
- 输入:
id(字符串) - 输出:文档对象
id,title,text,url,metadata
ChatGPT集成
1.在ChatGPT中配置
- 转到ChatGPT设置→ 连接器
- 使用部署URL添加新的MCP服务器
- 启用服务器进行深入研究
2.在提示中使用API
curl https://api.openai.com/v1/responses \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "o4-mini-deep-research",
"input": [
{
"role": "user",
"content": [
{
"type": "input_text",
"text": "Search for information about cats and their behavior"
}
]
}
],
"tools": [
{
"type": "mcp",
"server_label": "vector-store",
"server_url": "https://your-deployment-url.com/sse/",
"allowed_tools": ["search", "fetch"],
"require_approval": "never"
}
]
}'发展
地方发展
# Install development dependencies
pip install -r requirements.txt
# Run with auto-reload
uvicorn main:mcp.app --reload --host 0.0.0.0 --port 8000测试
# Test health endpoint
curl http://localhost:8000/health
# Test with MCP client or use in ChatGPT配置选项
| 环境变量 | 描述 | 必填 | 默认 |
|---|---|---|---|
OPENAI_API_KEY | 您的OpenAI API密钥 | 是 | - |
VECTOR_STORE_ID | OpenAI矢量存储ID | 是 | - |
ASSISTANT_ID | OpenAI助理ID | 是 | - |
PORT | 服务器端口 | 否 | 8000 |
安全说明
- 永远不要承诺你的
.env文件或公开API密钥 - 对所有敏感配置使用环境变量
- 服务器包括基本的错误处理和日志记录
- 考虑对生产使用实施限速
故障排除
常见问题
“VECTOR_STORE_ID环境变量是必需的”
- 确保您的
.env文件存在并包含矢量存储ID - 检查矢量存储是否存在于您的OpenAI帐户中
“未找到助手”
- 跑
python setup_assistant.py创建助手 - 验证环境变量中的助手ID
搜索未返回任何结果
- 确保你的矢量存储包含上传的文档
- 检查助手是否可以访问矢量存储
调试模式
启用调试日志记录:
import logging
logging.basicConfig(level=logging.DEBUG)许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
支持
对于问题和疑问:
- 检查 故障排除部分
- 审查 OpenAI的MCP文档
- 在此存储库中打开问题
