RAG搜索服务器

一个基于LlamaIndex和OpenAI的MCP服务器,提供对《Attention Is All You Need》论文的检索增强生成(RAG)搜索功能。

  • by abhisheksharma637
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 abhisheksharma637/mcp_server

使用说明

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文件

安装

  1. 克隆此存储库:
git clone <your-repo-url>
cd rag-search-mcp-server
  1. 安装依赖项:
pip install fastmcp python-dotenv llama-index
  1. 创建一个 .env 根目录中的文件:
OPENAI_API_KEY=your_openai_api_key_here

重要:The .env 文件应放置在与您的文件相同的目录中 custom_mcp_server_rag_tool.py 文件。此文件存储您的敏感API凭据,不应提交到版本控制。添加 .env 到你的 .gitignore 文件。

  1. 下载“注意力就是你所需要的”论文,并将其放在:
C:\Users\spacecat\Downloads\attention_is_all_you_need.pdf

或者更新路径 custom_mcp_server_rag_tool.py 以匹配您的文件位置。

用法

启动服务器

运行服务器:

python custom_mcp_server_rag_tool.py

服务器将:

  1. 加载PDF文档
  2. 根据文档内容创建矢量存储索引
  3. 使用可用的RAG搜索工具启动MCP服务器

连接到克劳德桌面

要将此MCP服务器与Claude Desktop一起使用:

  1. 配置Claude桌面:将服务器添加到Claude Desktop配置文件中:

    视窗: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Linux: ~/.config/Claude/claude_desktop_config.json

  2. 添加服务器配置:

    {
      "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脚本位于同一目录中)

  3. 重新启动克劳德桌面 以使更改生效。

  4. 验证连接:您应该在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)

故障排除

常见问题

  1. 缺少OpenAI API密钥

    • 确保您的 .env 文件包含有效 OPENAI_API_KEY
    • 检查钥匙是否有足够的积分
    • 如果使用Claude Desktop配置,请验证JSON中是否正确设置了API密钥
  2. 找不到PDF文件

    • 验证中的PDF路径 lifespan 函数
    • 确保文件存在并且可读
  3. 导入错误

    • 安装所有必需的依赖项: pip install fastmcp python-dotenv llama-index
  4. Claude桌面连接问题

    • 验证路径 custom_mcp_server_rag_tool.py 配置正确
    • 确保Python在您的系统PATH中
    • 检查Claude Desktop日志中的错误消息
    • 配置更改后重新启动Claude Desktop
  5. 服务器未启动

    • 确保所有依赖项都已安装
    • 检查PDF文件路径是否可访问
    • 验证OpenAI API密钥是否有效并具有信用

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 提交拉取请求

许可证

此项目根据MIT许可证获得许可-有关详细信息,请参阅许可证文件。

致谢

  • Vaswani等人发表的“注意力是你所需要的一切”论文。
  • RAG能力的LlamaIdex
  • MCP服务器框架的FastMCP