开发 RAGFlow MCP Server
类别: RAGFlow MCPServer 标签: RAGFlow MCPServer GitHubCopilot Continue Cline目录
开发
这是第一次开发 MCP Server,想着使用智能编码工具(GitHub Copilot、Cursor、Trae)进行氛围编程,发现真不容易,Claude 3.7 sonnet 效果不错,在 GitHub Copilot 没用多长时间超限制了;Cursor 没有达到之前那种随心的效果;Trae 要排长队,太有挫败感了。于是,开始了以人编码为主,大模型辅助的开发过程。
MCP Server 的工作流程
- 初始化:加载环境变量,初始化 RAGFlow 客户端。
- 工具注册:定义工具列表,描述工具的输入/输出。
- 工具逻辑:实现工具的具体调用逻辑。
- 服务器启动:通过 stdio 启动 MCP Server 并监听请求。
创建 RAGFlow MCP Server 项目
uvx create-mcp-server \
--path ragflow-mcp-server \
--name ragflow-mcp-server \
--version 0.1.0 \
--description "RAGFlow MCP Server" \
--no-claudeapp
cd ragflow-mcp-server
uv sync --dev --all-extras
uv add ragflow-sdk
下载 MCP 开发文档和 RAGFlow Python API 文档
wget https://modelcontextprotocol.io/llms-full.txt -O docs/mcp-llms-full.txt
wget https://github.com/infiniflow/ragflow/raw/refs/heads/main/docs/references/python_api_reference.md \
-O docs/ragflow-python_api_reference.md
开发的 Tools
- list_datasets
- 列出所有数据集
- 返回数据集的 ID 和名称
- create_chat
- 创建一个新的聊天助手
- 输入:
- name: 聊天助手的名称
- dataset_id: 数据集的 ID
- 返回创建的聊天助手的 ID、名称和会话 ID
- chat
- 与聊天助手进行对话
- 输入:
- session_id: 聊天助手的会话 ID
- question: 提问内容
- 返回聊天助手的回答
构建 & 发布
- 同步依赖并更新锁定文件
uv sync
- 构建软件包分发文件
uv build
- 发布软件包到 PyPI
uv publish
源代码
https://github.com/wang-junjian/ragflow-mcp-server
配置
GitHub Copilot (mcp.json)
{
"servers": {
"ragflow-mcp-server": {
"command": "uvx",
"args": [
"ragflow-mcp-server",
"--api-key=ragflow-dhMzViYzJlMTM1NjExZjBiNWU5MDI0Mm",
"--base-url=http://172.16.33.66:8060"
]
}
}
}
Continue (config.yaml)
mcpServers:
- name: RAGFlow Server
command: uvx
args:
- ragflow-mcp-server
- --api-key=ragflow-dhMzViYzJlMTM1NjExZjBiNWU5MDI0Mm
- --base-url=http://172.16.33.66:8060
Cline (cline_mcp_settings.json)
{
"mcpServers": {
"ragflow-mcp-server": {
"command": "uvx",
"args": [
"ragflow-mcp-server",
"--api-key=ragflow-dhMzViYzJlMTM1NjExZjBiNWU5MDI0Mm",
"--base-url=http://172.16.33.66:8060"
],
"disabled": false,
"autoApprove": []
}
}
}
使用
提示词:使用 RAGFlow 的数据集公司出勤及结算规章
回答问题每月补卡次数