使用说明
使用MCP搜索学术论文
该项目展示了模型上下文协议(MCP)架构,其中服务器提供学术论文搜索功能,客户端在聊天机器人界面中连接到多个MCP服务器。
项目概述
此应用程序包括:
- MCP服务器(
ResearchServer.py):提供搜索和探索arXiv学术论文的工具、资源和提示。 - MCP客户端(
MCPChatbotWithMultipleServers.py):一个聊天机器人界面,可以连接到多个MCP服务器并使用它们的工具、资源和提示。
特性
MCP服务器
- 🔍 搜索论文:按主题搜索arXiv的学术论文
- 📋 提取信息:获取特定论文的详细信息
- 📂 浏览资源:通过基于URI的资源查看论文主题和内容
- 📝 鼓励:为研究任务生成结构化提示
MCP客户端
- 🤖 聊天机器人界面:MCP服务器的自然语言接口
- 🌐 多服务器支持:同时连接到多个MCP服务器
- 🧰 资源导航:浏览论文主题
@命令 - ⚡ 迅速执行:使用以下命令运行预定义提示
/命令
先决条件
- Python 3.9+
- Node.js(用于MCP检查器)
安装
- 克隆此存储库:
git clone https://github.com/Prajapdh/arxiv_mcp_server.git
cd arxiv_mcp_server
- 安装依赖项:
pip install -r requirements.txt
- 创建一个
.env使用您的Anthropic API密钥文件:
ANTHROPIC_API_KEY=your_api_key_here
- 在中配置服务器
server_config.json:
{
"mcpServers": {
"research": {
"command": "uv",
"args": ["run", "ResearchServer.py"],
"env": null
}
}
}
运行MCP服务器
使用stdio传输运行(默认)
uv run ResearchServer.py
使用MCP检查器进行调试
npx @modelcontextprotocol/inspector uv run ResearchServer.py
运行MCP客户端
uv run MCPChatbotWithMultipleServers.py
聊天机器人命令
- 定期查询:键入任何文本与助手聊天
@folders:列出所有可用的论文主题文件夹@<topic>:浏览特定主题的论文/prompts:列出所有可用提示/prompt <name> <arg1=value1>:使用参数执行特定提示exit:退出聊天机器人
服务器功能
工具
| 工具 | 说明 |
|---|---|
search_papers |
基于主题搜索arXiv论文 |
extract_info |
获取特定论文的详细信息 |
资源
| 资源 | 描述 |
|---|---|
papers://folders |
列出所有可用的主题文件夹 |
papers://{topic} |
获取特定主题论文的详细信息 |
鼓励
| 提示 | 描述 |
|---|---|
generate_search_prompt |
生成提示,让Claude查找和讨论学术论文 |
项目结构
DeepLearning MCP tutorial/
├── MCPChatbotWithMultipleServers.py # Multi-server MCP client
├── ResearchServer.py # ArXiv paper search MCP server
├── server_config.json # Server connection configuration
├── requirements.txt # Project dependencies
├── papers/ # Directory for storing paper information
│ └── {topic}/ # Topic-specific directories
│ └── papers_info.json # Stored paper metadata
└── README.md # This file
了解MCP
模型上下文协议(MCP)是将大型语言模型(LLM)连接到外部工具和资源的标准。在本项目中:
- MCP服务器公开工具(功能)、资源(数据源)和提示(模板)
- MCP客户端连接到这些服务器,并使LLM能够使用它们的功能
- 通信通过stdio(用于本地)或SSE(用于网络)进行
扩展项目
- 添加更多具有不同功能的MCP服务器
- 实施其他纸张分析工具
- 添加对其他学术数据库的支持
- 为研究数据创建可视化工具
故障排除
- 如果遇到连接错误,请在启动客户端之前确保服务器正在运行
- 对于SSE传输问题,请检查端口可用性或切换到stdio传输
- 验证在.env文件中正确设置了Anthropic API密钥
