
1. 为什么我要让 AI 直接读思源笔记的 sqlite思源笔记用久了最大的痛点不是记不住而是记了找不到。我本地攒了快两年的笔记标签、双链、块引用一大堆可真要问一句「上个月记的那个关于 MCP 配置的坑在哪」靠自带搜索基本靠运气。思源的数据其实全躺在工作空间的temp/siyuan.db里本质就是一个 SQLite 文件表结构也不复杂正文大多在blocks表。既然数据是结构化的那让 AI 通过 MCP 协议去查库、再总结就是最自然的思路。MCPModel Context Protocol你可以理解成给 AI 装的一个「标准插座」AI 客户端负责发指令MCP 服务负责执行具体动作比如查 SQLite。思源笔记这边我们不需要改任何代码只要有一个能读 sqlite 的 MCP 服务把siyuan.db的路径喂给它就行。这篇要解决的就是这条链路怎么用uvx跑起来——uvx是 uv 工具链里用来临时运行 Python 命令行工具的命令不用你手动 pip install直接uvx mcp-server-sqlite就能拉起服务。适合谁看已经在用思源笔记、想让 AI 帮忙检索和总结笔记、又不想折腾复杂后端的人。全程只需要改两个配置文件跑一次连接验证就能让 AI 读到你的笔记数据。下面我按「先讲清楚问题 → 准备 TaoToken → 给可复制配置 → 验证 → 排错 → 收尾」的顺序来你可以直接照着抄。2. 前置准备TaoToken 与 uvx 环境先说模型侧。MCP 只是通道真正理解你问题、决定搜什么关键词的是背后的大模型。我这边用的是 TaoToken 提供的模型接入能力它兼容常见的 OpenAI 风格接口配置起来省事。官网入口在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 注册后在控制台生成 API Key 即可。API 基址是 https://taotoken.net/api 注意这个地址不带任何查询参数直接填就行。拿到 Key 之后建议先去模型对话页面确认模型能正常回话地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。这一步别跳过因为后面 MCP 报错时你得先排除「是模型不通还是 MCP 不通」。如果你打算长期用 AI 做编码或 Agent 类任务可以看下 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 按套餐走比单次调用更划算。工具侧需要两样东西uv含 uvx和一个支持 MCP 的 AI 客户端。uv 的安装很简单Windows 上用官方脚本或 pip 都行装完在 PowerShell 里执行Get-Command uv | Select-Object -ExpandProperty Source这条命令会打印出 uv 的完整路径比如C:\Users\你的用户名\.local\bin\uv.exe。记住这个路径后面配置里command字段要填它而不是直接写uvx。这是很多人第一次配就翻车的地方——客户端启动子进程时不会走你的 shell PATH所以必须给绝对路径。思源这边确认一下工作空间位置数据库一般在工作空间/temp/siyuan.db。注意思源运行时会占用这个文件读操作一般没问题但如果你要写库最好先停掉思源或者用只读模式避免锁冲突。3. 可复制配置config.toml 与 settings.json 骨架不同客户端的配置文件名不一样Cherry Studio 这类用 JSON一些命令行工具用 TOML。我把两种都给你按需取用。核心就一段定义一个名为sqlite-siyuan-rw的 MCP 服务用 uvx 拉起mcp-server-sqlite并把--db-path指向你的siyuan.db。先看 JSON 版本Cherry Studio 的settings.json里 mcpServers 节点{ mcpServers: { sqlite-siyuan-rw: { isActive: true, command: C:\\Users\\你的用户名\\.local\\bin\\uvx.exe, args: [ mcp-server-sqlite, --db-path, C:/Users/你的用户名/SiYuan/temp/siyuan.db ] } } }再看 TOML 版本适合支持config.toml的客户端[mcp_servers.sqlite-siyuan-rw] command C:\\Users\\你的用户名\\.local\\bin\\uvx.exe args [ mcp-server-sqlite, --db-path, C:/Users/你的用户名/SiYuan/temp/siyuan.db ]几个关键点必须说清楚。第一command一定要写 uvx 的绝对路径Windows 下路径里的反斜杠在 JSON 里要写成双反斜杠\\或者干脆用正斜杠/两种客户端都认。第二--db-path后面的路径建议用正斜杠避免转义麻烦。第三mcp-server-sqlite这个包名是 uvx 运行时自动拉取的第一次执行会下载依赖网络慢的话会卡一会儿耐心等或者按下面排错章节换源。如果你只想读不想写可以把服务名里的rw去掉并在 args 里加只读参数不同版本参数名略有差异以uvx mcp-server-sqlite --help输出为准。我实测下来读场景下直接连也没出过锁库问题但养成只读习惯更稳。配置改完记得完全重启客户端很多客户端只在启动时加载 MCP 配置热改不生效。4. 验证一次完整连接从提问到命中 blocks 表配置好之后别急着问复杂问题先用一个能明确命中的查询验证链路。打开你的 AI 客户端确认sqlite-siyuan-rw这个服务状态是绿色/已连接。然后给它一句明确的指令比如请查询思源笔记数据库在 blocks 表里搜索包含「MCP」的内容返回前 5 条并总结它们讲了什么。这里有个细节虽然你在系统提示词里已经写了「默认在 blocks 表搜索」但实测下来提问时再明确提一遍「思源笔记数据库」「blocks 表」命中率会高很多。原因多半是模型对上下文的理解有偏差重复一次关键词能显著降低它乱猜表名的概率。我踩过的坑就是第一次没提表名模型去查了assets表返回一堆空结果。如果一切正常你会看到 AI 先调用 MCP 工具执行 SQL类似SELECT id, content FROM blocks WHERE content LIKE %MCP% LIMIT 5;然后基于返回的行做总结。返回结果里content字段是带思源块标记的文本AI 一般能自己清洗掉标记再总结。到这一步说明 AI → MCP → sqlite → 思源数据 这条链路已经通了。想更直观验证可以自己在客户端里手动触发一次工具调用看返回的原始 JSON。只要能看到blocks表的数据行就证明 uvx 启动的服务和数据库路径都没问题。这一步过了后面才是调提示词、优化搜索关键词的事。5. 本篇常见错排查报错一command 直接填 uvx 启动失败。这是最高频的问题。客户端启动 MCP 子进程时不走系统 PATH所以必须填绝对路径。用第 2 节那条Get-Command uv拿到路径填进command。如果路径里有空格JSON 里不用额外加引号客户端会自己处理。报错二uvx 拉包超时或卡住。首次运行mcp-server-sqlite需要从源拉取网络不稳就会卡。解决办法是在 args 里加换源参数比如在mcp-server-sqlite前面插入-i和镜像地址具体写法以 uv 文档为准或者先手动执行一次uvx mcp-server-sqlite --help把包缓存下来再让客户端启动这样启动时就不用现拉。报错三数据库路径找不到或权限拒绝。检查--db-path指向的文件是否真实存在Windows 下路径分隔符别混用。如果思源正在运行且你开了写模式可能遇到database is locked改成只读或先关思源。报错四连上了但搜不到内容。先确认你搜的关键词确实在笔记里再确认表名。思源正文主要在blocks表但有些内容在attributes或refs表。提问时把表名和库名都带上能减少模型瞎猜。另外模型本身也会影响判断换个更强的模型往往立竿见影。报错五改了配置没生效。九成是没重启客户端。MCP 配置基本都在启动时读取改完必须完全退出再打开不是关窗口那种。6. 把这条链路用起来链路跑通之后真正有价值的是把它变成日常习惯。我的做法是固定几句提示词模板比如「在思源 blocks 表搜索关键词 X按修改时间倒序返回 10 条并总结」这样每次不用重新描述。搜索关键词让模型自己多试几轮第一次没结果就让它换同义词再搜比你自己想关键词省事。模型接入这块如果你要长期跑检索和总结建议把 Key 管理好去控制台创建独立的 API Keyhttps://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 别和别的项目混用方便排查和限额。接入细节和参数说明可以对照文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 。如果你用的是 Claude Code 这类编码 Agent想让它在写代码时也能查你的笔记库可以看 ClaudeCodeAnthropic 的接入方式https://taotoken.net/claudecode-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 思路和这里一样只是客户端换了个壳。最后提醒一句MCP 直连生产库这种事别干思源的siyuan.db是你的知识资产读可以写操作一定谨慎最好在副本上试。把只读链路跑稳再考虑更复杂的自动化。