这篇帖子是上篇帖子的续集:
评论区的朋友提醒了我一个大问题:
这两天想了很多办法,最终确认,至少在 Cherry Studio 里,官方给的 SQLite MCP 示例(就是上篇帖子里那个)没办法从根源上禁止修改和增删行为。
但在寻求办法的过程中,另一个 MCP Server 引起了我的注意:
它只提供了三个工具:
read_query
(查询)list_tables
(列出表名)describe_table
(描述表)
根本就没有修改和增删内容的功能。
这不开搞?
然后一通搞就搞通了。
先看效果:
我让它加一个字段,它却用的是查询工具,然后反馈没有权限。
这下彻底放心用了!
下面是教程部分。
1. 安装 uv 和 node.js
具体参考上篇,就不赘述了。
虽然 node.js 在这个 MCP 里不是必须的,但顺便装了吧,除非你不想用别的 MCP 了。
2. 安装 fastmcp
这个项目只多一个依赖:fastmcp==0.4.1
直接 pip
就行了:
# 1. 打开 Powershell
# 2. 输入下面的命令
pip install fastmcp==0.4.1
注意!这里必须开代理,否则拉不下来!
3. 准备 MCP Server 本体
这个 MCP Server 和上篇里的不一样,要事先准备。
点这个链接应该就能下载了:
https://github.com/hannesrudolph/sqlite-explorer-fastmcp-mcp-server/archive/refs/heads/main.zip
下载不了就去项目仓库(开头提到的 GitHub 链接)里下载:
然后解压出来,找到里面的 sqlite_explorer.py
,记下它的路径。
4. 添加 MCP 服务器
有了上篇的基础,这篇就讲简单点。
4.1 命令框
uv
上篇说只支持 uvx
,这次发现好像 uv
也支持。
然后上篇要用绝对路径的原因找到了,其实是 Cherry Studio 的环境变量没更新,重启 Cherry Studio 就好了。
4.2 参数框
run --with fastmcp --with uvicorn fastmcp run sqlite_explorer.py 路径 # 这行填你之前记下的路径
4.3 环境变量框
SQLITE_DB_PATH=思源数据库路径 # 等于号后面换成你思源数据库路径,上篇讲了在哪
最后长这样:
点确定,应该就成了。
使用部分就不讲了,和上篇一样,把上篇的 MCP Server 换成这篇的就行了。
最后感谢热心网友的提醒 🙏
2025.03.19 更新
感谢评论区大神提供的方法!将 sqlite_explorer.py
中的第 96 行的 return [dict(row) for row in results if row is not None]
改成 return [str(dict(row)) for row in results if row is not None]
可以解决搜索结果里中文以编码形式呈现的问题。
改动前:
改动后:
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于