用于ChatGPT深度研究的MCP服务器示例
这是一个样本 模型上下文协议(MCP) 设计用于与ChatGPT配合使用的服务器 深入研究 功能。它通过以下方式提供语义搜索 OpenAI矢量存储 以及文档检索功能,演示如何构建自定义MCP服务器,利用公司特定的知识和工具扩展ChatGPT。
特性
- 搜索工具 -使用OpenAI矢量存储API进行语义搜索
- 提取工具 --完整的文档检索(全文+元数据)
- SSE运输 --与ChatGPT进行实时通信的服务器发送事件
- 样本数据 --五份技术文件捆绑在一起,用于快速测试
- 符合MCP标准 --遵循深度研究集成的官方MCP规范
需求
| 版本 | |
|---|---|
| Python | 3.8+ |
| fastmcp | ≥2.9.0 |
| uvicorn | ≥0.34.3 |
| openai | 最新 |
| 皮丹蒂奇 | (由fastmcp拉) |
安装
pip install fastmcp uvicorn openai导出您的OpenAI密钥:
export OPENAI_API_KEY="YOUR_API_KEY"运行服务器:
python main.py服务器正在监听 http://0.0.0.0:8000 (或 $PORT 渲染过程),启用SSE。
______________________________________________________________________
用法
连接到ChatGPT深度研究
- ChatGPT→ 设置
- 打开 连接器 标签
- 添加连接器 带有URL
http://:8000/sse/ - 点击 测试连接 --它应该显示 *可用的*
端点
| 终点 | 目的 |
|---|---|
/sse/ | 主MCP端点(SSE) |
/ | 健康检查(工具注册显示在日志中) |
工具
搜索
| 字段 | 值 |
|---|---|
| 目的 | 矢量存储的语义搜索 |
| 输入 | 自然语言查询 |
| 输出 | 文档列表(id, title, snippet) |
获取
| 字段 | 值 |
|---|---|
| 目的 | 检索完整文档文本+元数据 |
| 输入 | file-xxx id(来自搜索) |
| 输出 | 完成文档内容 |
矢量存储集成
默认矢量存储为 vs_682552f3ab90819185d4b99adcae7a07,例如包含 Palantir 10‑Q 报告。仅使用OpenAI矢量存储API—— 没有本地回退.
______________________________________________________________________
定制
使用您自己的矢量存储
- 改变
VECTOR_STORE_ID在main.py. - 通过OpenAI API上传文档。
- 推荐的JSON结构:
{
"id": "unique_identifier",
"title": "Document Title",
"text": "Short description",
"content": "Full document content",
"url": "https://optional-source.com",
"metadata": {
"category": "document_category",
"author": "Author Name",
"date": "2024-01-01",
"tags": ["tag1", "tag2"]
}
}- 重新启动服务器。
调整搜索逻辑
- 查询多个店铺
- 自定义排名/过滤器
- 不同的代码段长度或格式
______________________________________________________________________
部署
本地开发人员
python main.py # runs on http://localhost:8000/sse/制作(渲染示例)
- 使用以下命令推送回购
requirements.txt. - 启动命令:
python main.py(读$PORT). - 集
OPENAI_API_KEY和VECTOR_STORE_IDenv变量。
Render提供HTTPS并注销。
隧道开挖以进行局部测试
ngrok http 8000 # or
cloudflared tunnel --url http://localhost:8000______________________________________________________________________
建筑
- FastMCP --MCP实施
- Uvicorn --ASGI服务器
- OpenAI矢量存储 --搜索与检索后端
故障排除
| 问题 | 检查表 |
|---|---|
| 服务器无法启动 | 端口忙吗? $OPENAI_API_KEY 设置? |
| ChatGPT无法连接 | URL是公开的/HTTPS吗? |
| 没有搜索结果 | 正确 VECTOR_STORE_ID?文件已上传? |
| 矢量存储错误 | 存储存在并包含文件吗? |
| 缺少工具 | 检查工具注册的启动日志 |
快速调试命令
# Test SSE endpoint
curl http://localhost:8000/sse/
# List OpenAI models
python - <<'PY'
from openai import OpenAI
print(OpenAI().models.list())
PY______________________________________________________________________
