内容
# MCP 研究助手演示
## 概述
本项目演示了一个使用模型上下文协议(MCP)、LangChain、FastAPI 和 Streamlit 构建的研究助手应用。它展示了如何使用 MCP 服务器和 Langchain 创建模块化 AI 系统。
该演示可以搜索和分析科学论文,提供文档的语言分析,并为交互这些 AI 功能创建用户友好的界面。
<!-- 
 -->
<div align="center">
<img src="assets/search_and_open.gif" alt="搜索和打开文章">
<img src="assets/parse_and_answer.gif" alt="解析和回答">
</div>
## 架构
该演示由三个主要组件组成:
1. MCP 服务器:
- ArXiv 服务器:提供用于搜索和检索 ArXiv 上的科学论文的工具
- 文档语言服务器:提供用于分析和理解文本的文档语言工具
2. FastAPI 客户端服务器:
- 作为 MCP 服务器之间的协调层
- 实现一个研究助手代理,使用来自两个 MCP 服务器的工具
- 公开一个用于与助手交互的 API
3. Streamlit 用户界面:
- 提供用户友好的网页界面
- 允许用户查询研究助手
- 显示搜索结果、论文分析和其它输出
## 工作原理
1. 用户通过 Streamlit 用户界面提交研究问题或请求
2. 请求被发送到 FastAPI 客户端服务器
3. 客户端服务器使用 MultiServerMCPClient 与多个 MCP 服务器协调
4. 根据请求,调用适当的工具(ArXiv 搜索、文档分析等)
5. 结果被处理并返回到 Streamlit 用户界面进行显示
## 快速入门
**环境设置**
复制模板环境文件:
```bash
cp .env.template .env
```
编辑 `.env` 文件,添加您的 API 密钥和配置
**使用 Docker Compose 运行**
使用 Docker Compose 运行整个应用程序的最简单方法:
```bash
docker-compose up -d
```
这将启动所有组件:
- ArXiv 服务器,端口 8000
- 文档语言服务器,端口 8001
- 客户端服务器,端口 8002
- Streamlit 用户界面,端口 8501
然后访问 [此处](http://localhost:8501) 以访问 Streamlit 用户界面。