使用说明
RAG搜索MCP服务器
一个模型上下文协议(MCP)服务器,使用LlamaIdex和OpenAI为“注意力就是你所需要的”论文提供RAG(检索增强生成)搜索功能。
概述
该服务器从Transformer的开创性论文“Attention Is All You Need”中创建了一个可搜索的知识库,并通过MCP工具将其公开。它允许您查询论文中关于变压器架构和注意力机制的内容。
特性
- RAG搜索:使用自然语言查询“注意力是你所需要的一切”论文
- 矢量存储索引:使用LlamaIndex创建高效的向量嵌入
- MCP集成:与MCP兼容客户端无缝集成
- OpenAI集成:利用OpenAI的模型进行搜索和检索
先决条件
- Python 3.8+
- OpenAI API密钥
- “注意力就是你所需要的”PDF文件
安装
- 克隆此存储库:
git clone <your-repo-url>
cd rag-search-mcp-server
- 安装依赖项:
pip install fastmcp python-dotenv llama-index
- 创建一个
.env根目录中的文件:
OPENAI_API_KEY=your_openai_api_key_here
重要:The .env 文件应放置在与您的文件相同的目录中 custom_mcp_server_rag_tool.py 文件。此文件存储您的敏感API凭据,不应提交到版本控制。添加 .env 到你的 .gitignore 文件。
- 下载“注意力就是你所需要的”论文,并将其放在:
C:\Users\spacecat\Downloads\attention_is_all_you_need.pdf
或者更新路径 custom_mcp_server_rag_tool.py 以匹配您的文件位置。
用法
启动服务器
运行服务器:
python custom_mcp_server_rag_tool.py
服务器将:
- 加载PDF文档
- 根据文档内容创建矢量存储索引
- 使用可用的RAG搜索工具启动MCP服务器
连接到克劳德桌面
要将此MCP服务器与Claude Desktop一起使用:
-
配置Claude桌面:将服务器添加到Claude Desktop配置文件中:
视窗:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:~/.config/Claude/claude_desktop_config.json -
添加服务器配置:
{ "mcpServers": { "rag-search": { "command": "python", "args": ["path/to/your/custom_mcp_server_rag_tool.py"], "env": { "OPENAI_API_KEY": "your_openai_api_key_here" } } } }替代方案(使用.env文件):
{ "mcpServers": { "rag-search": { "command": "python", "args": ["path/to/your/custom_mcp_server_rag_tool.py"] } } }(确保.env文件与Python脚本位于同一目录中)
-
重新启动克劳德桌面 以使更改生效。
-
验证连接:您应该在Claude Desktop的界面中看到RAG搜索工具。
使用RAG搜索工具
连接到MCP客户端后,您可以使用 search_rag 查询论文的工具:
示例查询:
- “什么是注意力机制?”
- “多头注意力是如何工作的?”
- “解释变压器架构”
- “自我关注的优点是什么?”
编码结构
custom_mcp_server_rag_tool.py
├── Environment Setup (OpenAI API key)
├── AppContext (Data class for storing the index)
├── Lifespan Manager (Loads PDF and creates index)
├── MCP Server Setup
└── RAG Search Tool (Query interface)
关键组件
- FastMCP:MCP服务器框架
- SimpleDirectoryReader:加载PDF文档
- 矢量库索引:创建可搜索的向量嵌入
- 查询引擎:处理自然语言查询
配置
环境变量
| 变量 | 描述 | 必填 |
|---|---|---|
OPENAI_API_KEY |
用于嵌入和LLM的OpenAI API密钥 | 是 |
文件路径
更新PDF文件路径 lifespan 功能:
documents = SimpleDirectoryReader(input_files=["path/to/your/pdf"]).load_data()
api参考
工具
search_rag
- 描述:在PDF中搜索有关变压器和注意力方法的内容
- 参数:
message(string):搜索查询
- 退货:包含论文相关信息的字符串响应
依赖项
fastmcp:MCP服务器框架python-dotenv:环境变量管理llama-index:RAG和矢量搜索功能openai:OpenAI API集成(通过Calma-Index)
故障排除
常见问题
-
缺少OpenAI API密钥
- 确保您的
.env文件包含有效OPENAI_API_KEY - 检查钥匙是否有足够的积分
- 如果使用Claude Desktop配置,请验证JSON中是否正确设置了API密钥
- 确保您的
-
找不到PDF文件
- 验证中的PDF路径
lifespan函数 - 确保文件存在并且可读
- 验证中的PDF路径
-
导入错误
- 安装所有必需的依赖项:
pip install fastmcp python-dotenv llama-index
- 安装所有必需的依赖项:
-
Claude桌面连接问题
- 验证路径
custom_mcp_server_rag_tool.py配置正确 - 确保Python在您的系统PATH中
- 检查Claude Desktop日志中的错误消息
- 配置更改后重新启动Claude Desktop
- 验证路径
-
服务器未启动
- 确保所有依赖项都已安装
- 检查PDF文件路径是否可访问
- 验证OpenAI API密钥是否有效并具有信用
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。
致谢
- Vaswani等人发表的“注意力是你所需要的一切”论文。
- RAG能力的LlamaIdex
- MCP服务器框架的FastMCP