项目简介
RAGFlow Claude 上下文协议服务器是一个基于 Model Context Protocol (MCP) 实现的后端服务,旨在将RAGFlow的强大知识库检索和文档管理能力无缝集成到LLM客户端(如Claude Desktop)中。它通过标准化的方式提供工具和上下文信息,极大地丰富了LLM与外部数据的交互能力,支持智能问答、文档分析等多种场景。
主要功能点
- 直接文档检索: 支持通过数据集名称或ID精确检索文档块,并提供相似度评分、分页和结果过滤。
- 智能查询优化 (DSPy): 利用DSPy框架进行迭代式查询深化和改进,以获取更精准的检索结果。
- 结果增强与控制: 提供分页、相似度阈值、文档过滤等参数,精细控制检索结果数量和质量。
- 数据集和文档管理: 能够列出所有可用的知识库,并查看特定知识库中的文档。
- 模糊匹配与名称查找: 支持通过模糊匹配和名称来查找数据集和文档,无需记忆复杂的ID。
- 会话管理: 提供查询和重置聊天会话的功能,方便管理LLM与知识库的交互状态。
- Cloudflare Zero Trust 支持: 可选配置Cloudflare Zero Trust,确保API调用的安全性。
安装步骤
- 克隆代码库:
打开终端或命令提示符,执行以下命令:
git clone https://github.com/norandom/ragflow-claude-desktop-local-mcp cd ragflow-claude-desktop-local-mcp - 安装依赖:
建议先单独安装DSPy,以避免潜在的构建问题(尤其是在macOS上),然后使用 'uv' 工具安装所有其他依赖:
pip install git+https://github.com/stanfordnlp/dspy.git uv install - 配置服务器:
复制示例配置文件 'config.json.sample',并将其重命名为 'config.json':
然后,使用文本编辑器打开 'config.json' 文件,根据您的实际环境修改以下配置项:cp config.json.sample config.json- 'RAGFLOW_BASE_URL': 您的 RAGFlow 实例的URL,例如 '"http://your-ragflow-server:port"'。
- 'RAGFLOW_API_KEY': 您的 RAGFlow API 密钥。
- 'RAGFLOW_DEFAULT_RERANK': 默认的重排模型,例如 '"rerank-multilingual-v3.0"'(如果RAGFlow实例支持重排功能)。
- 'CF_ACCESS_CLIENT_ID' (可选): 如果您的 RAGFlow 实例受 Cloudflare Zero Trust 保护,请填写您的 Cloudflare Access Client ID。
- 'CF_ACCESS_CLIENT_SECRET' (可选): 如果您的 RAGFlow 实例受 Cloudflare Zero Trust 保护,请填写您的 Cloudflare Access Client Secret。
- 'DSPY_MODEL': 用于查询细化的DSPy语言模型,例如 '"openai/gpt-4o-mini"'。
- 'OPENAI_API_KEY': 如果使用OpenAI模型进行DSPy查询深化,则需要此API密钥。 (或者,如果您在 'config.json' 中将 'PROVIDER' 设置为 '"openrouter"',则需要 'OPENROUTER_API_KEY' 以及 'OPENROUTER_SITE_URL' 和 'OPENROUTER_SITE_NAME' 等可选配置)。
服务器配置(MCP客户端使用)
MCP服务器配置通常在LLM客户端(如Claude Desktop)中完成。以下是一个JSON格式的配置示例,您需要将其添加到您的Claude Desktop MCP配置中。请注意,'command' 和 'args' 参数应指向您本地服务器脚本的正确路径:
{ "mcpServers": { "ragflow": { "command": "uv", "args": [ "run", "--directory", "/path/to/ragflow-claude-desktop-local-mcp", // 请务必替换为您的项目实际绝对路径,例如 "/Users/youruser/ragflow-claude-desktop-local-mcp" "ragflow-claude-mcp" ] } } }
配置信息说明:
- 'mcpServers': 客户端中用于定义所有MCP服务器的顶级键。
- 'ragflow': 您为这个MCP服务器实例定义的名称,可以自定义,例如您可以命名为 '"my_ragflow_server"'。
- 'command': 启动MCP服务器的可执行命令。这里使用 'uv',因为它是一个快速的Python包管理器和运行器,用于执行Python模块。
- 'args': 传递给 'command' 的参数列表。
- '"run"': 'uv' 命令的一个子命令,用于运行Python模块。
- '"--directory"': 指定MCP服务器代码的根目录。
- '"/path/to/ragflow-claude-desktop-local-mcp"': 这是您克隆的项目所在的绝对路径,请务必将其替换为您的实际路径。 例如,如果您将项目克隆到您的用户主目录,它可能是 '"/Users/yourusername/ragflow-claude-desktop-local-mcp"'。
- '"ragflow-claude-mcp"': 这是MCP服务器的主入口模块的名称,它位于 'src/ragflow_claude_mcp/server.py'。
基本使用方法
配置完成后,您的LLM客户端(如Claude Desktop)即可通过调用该MCP服务器提供的工具来与RAGFlow知识库进行交互。以下是一些您可以在LLM客户端中使用的示例指令(它们会触发MCP服务器上的对应工具):
- 列出所有知识库:
Please use the ragflow_list_datasets tool to show me all available knowledge bases. - 通过知识库名称检索文档:
Please use the ragflow_retrieval_by_name tool with dataset_name "BASF" and query "What is BASF's latest income statement?" - 对特定文档进行搜索:
Please use the ragflow_retrieval_by_name tool with dataset_name "BASF", document_name "annual_report_2023", and query "What were the key financial highlights for 2023?" - 使用DSPy深化查询:
Please use the ragflow_retrieval_by_name tool with dataset_name "Quant Literature", query "what is a volatility clock", deepening_level 2 for intelligent query refinement.
(更多详细的工具参数和使用示例请参考项目README文件)
信息
分类
AI与计算