Skip to content

v2.0.1

Choose a tag to compare

@github-actions github-actions released this 01 Nov 09:19
· 18 commits to main since this release

MCP:目录排除机制

模板与附件目录不再进入 AI 的视野。

Obsidian 之类的库里常有 media/(附件)、templates/(模板),它们不是笔记,
但里面可能写着 - [ ] 某某订阅 这样的占位符——一旦被索引,AI 就会把它当成
你的真实待办,搜索结果里也会混进模板内容。

  • 新增目录排除配置,四个来源按优先级并集合并:
    内置默认 → 用户级 ~/.config/com.flymd/mcp.json → 库级 <库根>/.flymd/mcp.json
    → 环境变量 FLYMD_MCP_EXCLUDE → 命令行 --exclude
  • 内置默认排除技术目录与 media assets attachments templates 附件 模板 等资源目录
  • 匹配语义:不含 / 按目录名任意层级命中;含 / 按相对库根路径前缀命中;
    大小写不敏感;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 上传指向带后缀的副本

文档

资产

平台 文件
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