使用说明
MCP服务器示例
这个项目 模型上下文协议(MCP) 利用与ChatGPT联动 搜索(Search) 及 查询文档(Fetch) 提供功能的示例服务器。
您可以使用OpenAI Vector Store搜索文档和查看完整内容,以及ChatGPT的Deep Research和Chat Connectors功能。
✨ 特性
-
语义搜索
使用OpenAI Vector Store搜索基于矢量的文档
支持自然语言查询,并以片段形式返回相关文档。 -
文档提取
使用搜索到的文档的ID查看全部内容
包括文件名、正文、URL和元数据 -
基于FastMCP的MCP服务器
根据ChatGPT MCP标准创建的轻量级服务器
使用Server-Sent Events(SSE)与ChatGPT通信 -
基于环境变量的设置
.env通过文件管理API Key、Vector Store ID
📁 项目结构
.
├── server.py
├── requirements.txt
└── .env (사용자가 직접 생성)
🔧 需求
Python 3.9+
安装程序包包括: requirements.txt 在中定义。
示例:
fastmcp
openai
python-dotenv
⚙️ 设置
1.安装Repository
git clone <your-repo-url>
cd <project-folder>
2.创建(可选)虚拟环境
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
3.安装Dependencies
pip install -r requirements.txt
4.创建.env文件
在项目根目录中 .env 创建文件并添加以下内容:
OPENAI_API_KEY=your_openai_api_key
VECTOR_STORE_ID=your_vector_store_id
🚀 运行服务器
使用以下命令运行MCP服务器。
python server.py
服务器默认在以下地址作为基于SSE的MCP服务器:
http://0.0.0.0:8000
在ChatGPT(或Deep Research mode)上注册MCP服务器后,可以使用Search和Fetch工具。
🛠️ 工具
🔍 搜索(查询:str)
在矢量商店中搜索与查询相关的文档。
Response示例:
{
"results": [
{
"id": "file-xxxxx",
"title": "example.pdf",
"text": "문서의 앞부분 200자...",
"url": "https://platform.openai.com/storage/files/file-xxxxx"
}
]
}
📄 fetch(id:str)
获取文档的ID并返回完整内容。
Response示例:
{
"id": "file-xxxxx",
"title": "example.pdf",
"text": "문서 전체 내용...",
"url": "https://platform.openai.com/storage/files/file-xxxxx",
"metadata": {}
}
📚 运作原理
-
搜索
openai.vector_stores.search()呼叫- 返回关联文档列表
-
获取
vector_stores.files.content()将全文片段导入到vector_stores.files.retrieve()通过查询元数据- 合并为一个文档并返回
-
服务器
- 使用FastMCP创建MCP-compliant服务器
- 可在ChatGPT MCP连接模式下使用
📝 日志记录
默认日志级别设置为INFO,并输出搜索/查询请求和服务器启动信息。
📄 许可证
此项目是可自由修改和扩展的示例代码。
