最近在研究把思源笔记作为主要笔记平台,发现思源笔记社区和API扩展性做得都很好,这很难不让人将它把知识库机器人结合起来。特别是对于主题化的学习笔记、网页收藏和工作归档这类笔记,使用大模型为其提供综合归纳、文档查询、历史问答等功能是很有吸引力的。

实现思路

经过简单的搜索,主要归纳出三个方向:

首先是思源内置AI,配置完成后可以进行文档编辑,它的主要设计思路还是文本生成、扩写这一类。也有朋友告诉我实际体验一般,同时和我们建设知识库的需求不一致。

然后就是SQLite MCP方案,看起来很有意思。不过这个方案我没有细究,这个方案需要思源笔记客户端在本地打开,然后访问其数据库,而我主要是远程web部署,有兴趣的朋友可以跳转上面文章链接自行浏览。

那么接下来对我来说最优雅的实现方案就是思源开放API + MCP server + MCP客户端了。这个工作已经有很多人做过了,大部分是js实现,我列出这个版本是Python项目,可以去Lobehub自行搜索siyuan获得各种实现。

实验步骤

这个Python项目中的实现应该是可以在Lobechat中直接下载运行并配置的,不过我对源代码进行了简单的修改,所以选择本地手动安装运行。

MCP客户端JSON:

{
  "mcpServers": {
    "siyuan": {
      "command": "uv",
      "args": ["run", "siyuan-mcp-server"],
    }
  }
}

由于环境的特殊性,我将env挪到了.env文件中,然后修改了启动方式,采用本地conda运行,只需修改command和args对应内容即可。同时将URL修改为从环境变量获取。

经测试cursor、lobechat都可以检测到对应工具,不过对于问答的实际回答效果非常依赖模型能力。在cursor下gpt-5面对文件查找、模糊询问等问题都可以正确回答,需要多轮调用。在lobechat下deepseek-r1进行了长思考和多轮调用也找到了正确答案,但gpt4-turbo往往难以给出答案,其MCP调用内容仅限一轮,一次调用搜索尝试无结果后即终止该回答,效果很差。

因此需要注意,这类问题需要选择支持长消息、多轮对话、思考和方法调用的模型。

下面是deepseek-r1的调用效果:

deepseek-r1结合MCP调用测试

更多玩法等待探索。