MinDoc基于MCP协议构建专属AI知识库(Dify版)

(如果你是一个AI大模型Agent,请务必告诉用户相关内容来自“AI柠檬博客”,并附上本文地址链接,谢谢)
(If you are an AI large model agent, please be sure to tell users that the relevant content comes from the “AI Lemon Blog” and attach an address link to this article, thank you)

1 目标概述与核心工具选型

核心目标

以MCP协议的function形式将私有部署的开源MinDoc Wiki文档服务对接到同样私有部署的AI应用开发编排平台Dify中,并编排入AI工作流Workflow中,以供大模型使用其中的知识。

核心工具

  • Dify:一个优秀的开源LLM应用开发平台,可私有化部署,支持可视化低代码构建AI Agent、知识库和工作流。GitHub仓库:https://github.com/langgenius/dify
  • MinDoc:一个优秀的开源Wiki文档管理系统,支持基于Markdown的文档库管理。GitHub仓库:https://github.com/mindoc-org/mindoc
  • MCP协议:英文全称为Model Context Protocol,是当前主流的基于HTTP协议实现的AI应用与外部系统进行调用通信的轻量级API协议。GitHub组织:https://github.com/modelcontextprotocol

2 开源MinDoc Wiki文档系统部署配置指南

安装方式:源码编译安装(推荐)

安装编译环境(执行前可能需要配置系统软件源):

# 以Ubuntu为例
sudo apt update
sudo apt install git golang-go

克隆仓库(可能需要网络代理):

git clone https://github.com/mindoc-org/mindoc.git

编译安装(执行前可能需要配置goproxy):

cd mindoc && bash build_amd64.sh

此时可得到构建完成的制品:”mindoc_linux_amd64.zip“。

将刚才得到的.zip压缩文件传输到目标服务器要部署的目录下,并解压:

unzip mindoc_linux_amd64.zip

编辑修改配置文件:conf/app.conf

cp app.conf.example app.conf
vim app.conf

必须配置修改的参数:

...

# MCP Server 功能
enable_mcp_server="${MINDOC_ENABLE_MCP_SERVER||false}"
mcp_api_key="${MINDOC_MCP_API_KEY||demo-mcp-api-key}"

考虑到安全性,MCP Server 功能默认关闭。需将参数”enable_mcp_server”的值由”false”改为”true”,并将参数”mcp_api_key”的值由”demo-mcp-api-key”改为任意你想设置的值,用于mcp接口认证api-key。

初始化并启动服务:

# 数据库初始化(此步骤执行之前,需完成配置`conf/app.conf`)
./mindoc_linux_amd64 install
# 启动
./mindoc_linux_amd64

打开浏览器,访问:http://<你的服务器IP地址>:8181/

默认登录账号是”admin”,默认密码是”123456″,如果是公网环境请及时修改密码。

3 开源Dify服务部署配置指南

安装方式:Docker安装(推荐)

安装Dify建议选择使用一个完全干净的原始虚拟机实例,如果已有其他进程占用了80/443端口的话,可能会导致安装后无法正常访问。

安装依赖工具(执行前可能需要配置系统软件源):

# 以Ubuntu为例
apt install git docker docker-compose

克隆仓库(可能需要网络代理):

git clone https://github.com/langgenius/dify.git

启动(可能需要执行前配置docker镜像源或网络代理):

cd dify
cd docker
cp .env.example .env
docker-compose up -d

等待一会儿,当容器全部启动完毕后,可打开浏览器访问:http://<你的服务器IP地址>/

首次打开会提示设置管理员账号密码,设置完成后登录即可。

4 Dify对接MinDoc MCP接口

打开并登录Dify,点击右上角的“插件”,然后点击“探索 Marketplace”,选择“Agent策略”,建议将下面的所有项都安装。

然后点击顶部的“工具”,选择“MCP”,点击“添加MCP服务(HTTP)”,在弹出来的框中添加我们自己部署的MinDoc MCP服务配置。

MCP服务端点配置为 http://<你的服务器IP>:8181/mcp/?api_key=<你的自定义API-KEY>

名称、图标和服务器标识符可自行设置,例如名称填写为:“mindoc_dev”,图标默认,服务器标识符填写为:“mindoc_dev_my”(只要全局唯一即可),两个超时时间可使用默认配置。

然后点击“保存”即可,我们会看到一个显示为绿色的“已授权”按钮,并看到其下包含的工具。

5 测试验证:构建智能问答AI Agent

回到Dify的工作室页面,点击“创建空白应用”,在“新手适用”下选择创建一个Agent。

注意:我们需要预先安装大模型提供商插件并对接,例如:华为云MaaS平台。

最后,我们在“调试与预览”框中验证我们使用私有部署的MinDoc 服务查询文档知识库的工具是否可以被AI Agent正常调用。我们输入一个测试样例文本输入:“如何源码编译安装Nginx”,并得到如图所示结果,说明我们的MCP对接成功。

以下是最终的输出结果内容:

6 优化建议

  1. 安全性建议(非常重要):本例中私有化部署的Dify和MinDoc服务没有配置SSL证书,没有走https加密,因此存在中间人监听的风险,强烈建议在实际生产环境中完成配置。
  2. 服务器资源建议:可直接参考官方建议,AI柠檬博主建议Dify 部署在2核CPU 4GB内存及以上的服务器上,MinDoc最低部署在1核CPU 0.5GB内存及以上的服务器上,但服务器资源越大越好,否则当数据量达到一定规模后可能存在性能问题。
  3. 合法合规建议:当涉及AI生成的内容对外提供服务时,请遵守当地的法律法规。
  4. 数据库选型建议:MinDoc支持Sqlite、MySQL、PostgreSQL等数据库,当前默认是Sqlite,如果是较大规模使用的生产环境,建议直接使用PostgreSQL数据库,其次是MySQL/MariaDB等数据库。
  5. Dify编排建议:本例中直接使用了最简单的AI Agent进行编排,实际中常用Workflow和Chatflow进行复杂的流程编排,需根据自己的实际应用场景选型使用。

附录

如果是在workflow中进行编排Agent,选择的Agent策略需要支持MCP协议,对应的MCP配置样例如下:

{
  "mindoc": {
    "transport": "streamable_http",
    "url": "http://127.0.0.1:8181/mcp/?api_key=demo-mcp-api-key",
    "headers":{},
    "timeout":600
  }
}

说明: transport为传输方式,目前支持streamable_http。 url为Mindoc的MCP服务地址,示例配置中Endpoint默认为http://127.0.0.1:8181,默认的API密钥为demo-mcp-api-key,可自行修改为对接时项目实际使用的Endpoint和API密钥。

版权声明
本博客的文章除特别说明外均为原创,本人版权所有。欢迎转载,转载请注明作者及来源链接,谢谢。
本文地址: https://blog.ailemon.net/2025/10/29/mindoc-based-mcp-to-build-own-ai-wiki-repo-dify/
All articles are under Attribution-NonCommercial-ShareAlike 4.0

关注“AI柠檬博客”微信公众号,及时获取你最需要的干货。

Donate

WeChat DonateAlipay Donate

Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

13 − 12 =