mcp-research-server
by XiaoHG
README.md
# MCP ChatBot L9 —— 混合传输模式
在 L7 的基础上,将 research server 从本地 stdio 子进程改为**远程 SSE 服务器**。
## 架构变化
| 组件 | L7 | L9 |
|------|----|----|
| research server | stdio 子进程 | SSE 远程 (port 8001) |
| filesystem server | stdio 子进程 | stdio 子进程 (不变) |
| fetch server | stdio 子进程 | stdio 子进程 (不变) |
| LLM API | DeepSeek (openai SDK) | DeepSeek (不变) |
## 运行方式
```bash
# 1. 启动远程 SSE 服务器(终端 1)
uv run research_server.py
# 2. 启动聊天机器人(终端 2)
uv run mcp_chatbot.py
```
## 命令
| 命令 | 说明 |
|------|------|
| `@folders` | 查看可用论文主题文件夹 |
| `@topic_name` | 查看某主题的论文列表 |
| `/prompts` | 列出所有提示模板 |
| `/prompt <name> arg1=val1 ...` | 执行提示模板 |
| `quit` | 退出对话 |
---
## 🚀 部署到 Render(远程 SSE 服务)
### 1. 创建 GitHub 仓库
在 [GitHub](https://github.com/new) 创建新仓库(例如 `mcp-research-server`),**不要**勾选 "Add a README file"。
### 2. 推送代码
```bash
cd L9/mcp_project
# 初始化 git
git init
git add .
git commit -m "Initial commit: MCP Research Server (SSE)"
# 关联远程仓库并推送
git remote add origin https://github.com/<你的用户名>/mcp-research-server.git
git branch -M main
git push -u origin main
```
### 3. Render 关联部署
1. 登录 [Render Dashboard](https://dashboard.render.com)(用 GitHub 账号)
2. 点击 **New +** → **Web Service**
3. 选择刚推送的 GitHub 仓库
4. Render 自动检测 `render.yaml`,或者手动配置:
- **Build Command**: `pip install -r requirements.txt`
- **Start Command**: `python research_server.py`
5. 点击 **Deploy Web Service**
### 4. 更新客户端配置
部署成功后,Render 会分配一个 URL(如 `https://mcp-research-server.onrender.com`)。
修改 `server_config.json` 中的 research 服务器 URL:
```json
{
"mcpServers": {
"research": {
"transport": "sse",
"url": "https://mcp-research-server.onrender.com/sse"
}
}
}
```
### 5. 测试远程服务
```bash
# 启动 chatbot(现在连接到远程 Render 服务器)
uv run mcp_chatbot.py
```
> **注意**: Render 免费层在无流量时会休眠,首次请求可能需要 30-60 秒唤醒。
## 项目文件说明
| 文件 | 用途 |
|------|------|
| `research_server.py` | FastMCP SSE 服务器(端口由 PORT 环境变量控制) |
| `mcp_chatbot.py` | 混合传输客户端(sse_client + stdio_client) |
| `server_config.json` | MCP 服务器连接配置 |
| `render.yaml` | Render Blueprint 部署配置 |
| `requirements.txt` | Render 部署用的 pip 依赖 |
| `pyproject.toml` | 本地开发用 uv 依赖 |
| `papers/` | 论文数据存储目录 |
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues