Repository navigation
v2.0.1
MCP:目录排除机制
模板与附件目录不再进入 AI 的视野。
Obsidian 之类的库里常有 media/(附件)、templates/(模板),它们不是笔记,
但里面可能写着 - [ ] 某某订阅 这样的占位符——一旦被索引,AI 就会把它当成
你的真实待办,搜索结果里也会混进模板内容。
- 新增目录排除配置,四个来源按优先级并集合并:
内置默认 → 用户级~/.config/com.flymd/mcp.json→ 库级<库根>/.flymd/mcp.json
→ 环境变量FLYMD_MCP_EXCLUDE→ 命令行--exclude - 内置默认排除技术目录与
mediaassetsattachmentstemplates附件模板等资源目录 - 匹配语义:不含
/按目录名任意层级命中;含/按相对库根路径前缀命中;
大小写不敏感;allowDirs优先 - 排除是全屏障:被排除目录整棵不进索引,
read_note读到被排除路径直接报错
(否则 AI 猜到路径仍能读到,排除形同虚设) - 新增
--exclude <目录>(可重复)与--print-config(打印生效配置 + 实际被排除的目录 + 笔记总数) - 服务器启动时往 stderr 打印被排除的目录——排除不是黑箱
flymd-mcp --exclude 我的草稿 --exclude 工作/归档
flymd-mcp --print-config// <库根>/.flymd/mcp.json
{
"excludeDirs": ["我的草稿", "工作/归档"],
"allowDirs": ["media/重要笔记"]
}效果:真实库实测,索引笔记从 1134 篇降到 1062 篇,
media/.obsidian/.flymd/
textgenerator/templates/被排除;模板里的假待办不再出现在list_tasks的结果中。
修复
- CI:Linux 与 macOS 的 MCP 产物默认都叫
flymd-mcp,而 GitHub Release 不允许同名资产
——构建脚本改为按平台带后缀(flymd-mcp-linux-x64/flymd-mcp-macos-universal/
flymd-mcp-windows-x64.exe),CI 上传指向带后缀的副本
文档
- MCP 服务器使用指南:
新增「排除目录」一节,含配置格式、匹配规则与--print-config自查方法 - MCP 服务器开发文档
资产
| 平台 | 文件 |
|---|---|
| Windows x64 | flymd_2.0.1_x64-setup.exe、flymd_portable_x64.zip |
| macOS (Intel + Apple Silicon) | flymd_2.0.1_universal.dmg、flymd_universal.app.zip |
| Linux x64 | flymd_2.0.1_amd64.deb、flymd_2.0.1_amd64.AppImage |
| MCP 服务器(独立二进制) | flymd-mcp-windows-x64.exe、flymd-mcp-macos-universal、flymd-mcp-linux-x64 |
MCP 服务器是独立进程,不依赖桌面应用运行。用 Claude Code 时:
claude mcp add flymd -- /绝对路径/flymd-mcp