NOUZ 是一个面向 Markdown 与 Obsidian 的本地语义 MCP 服务器,定位为笔记库与 AI 代理之间的中间层,把分散的 Markdown 文件整理成便于人和代理使用的图。文档称“结构从内容中产生”,可处理 Obsidian、Logseq 以及任何 Markdown 文件目录,基于 MCP Python SDK v2。
用途方面,NOUZ 主要在以下方向提供能力:自动语义分类,用户定义“核心”(基础领域),新增笔记时 NOUZ 读取文本、比较向量,并建议领域标记或领域组合;检索笔记间的联系,服务器构建有向结构图,层级保持为无环 DAG,额外的语义联系并存,包括“语义桥梁”(不同领域的两条笔记指向同一想法),显式标签联系可手动存储在 YAML 中;跟踪笔记库演化(漂移),NOUZ 保存内容节点的领域画像并与声明的标记比较,若模块描述为一个领域但其画像逐渐偏向另一领域,服务器会显示差异(core_drift)。根据任务不同,NOUZ 有三种模式,从简单图(LUCA)到严格的五级层级(SLOI)。
工作原理上,用户在 config.yaml 中描述领域,即每个领域覆盖的范围及识别文本特征;服务器把这些描述转为向量基准(本地,通过 LM Studio 或 Ollama);每条新笔记投影到这些轴上,标记由内容或用户确定。文档强调两个层面的区分:artifact_signs 描述 L5 工件的形态(日志、来源、假设、规格等),这些标记不会聚合为 L4 领域标记;core_mix 不是工件类型之和,而是 SQLite 索引中的领域画像,L4/L3/L2 通过 recalc_signs 从自身文本获得,父节点随后可通过 recalc_core_mix 获得子内容节点的平均画像;当保存的领域画像与当前 sign 指向不同主导领域时出现 core_drift。语义桥梁在跨领域笔记文本意义相近时发现联系,若两条笔记已有分块,还会用最佳分块对额外验证并返回具体特征。标签则保持为用户显式标注。
使用方式方面,没有 config.yaml 时服务器以 LUCA 模式启动,即无语义图,可立即运行。要启用语义模式,需从模板创建本地配置。文档给出了 Windows PowerShell 与从源码构建两种方式,以及连接 Claude Desktop、Cursor、Opencode 或任意 MCP 客户端的方法。配置后运行 calibrate_cores,服务器会创建基准向量;应检查成对余弦值,不同领域之间的均值中心化值应明显低于原始值;如果所有对都近似相同,需增强文本差异。也可从已安装包单独检查基准:nouz-calc-etalons --config config.yaml。
概念上,etalons 是通过嵌入比较的语义领域;artifact_signs 是 L5 工件的材料类型:笔记、概念、链接、日志、更新、假设或规格,属于启发式标签。领域通常用大写字母(S/D/E)表示,材料类型用小写(n/c/r/l/u/h/s),可在配置中替换为其他值。必要时可为任意类型添加 keywords,服务器会使用你的词做启发式而非内置俄英集合。文档还给出了 S/D/E 基准在 text-embedding-granite-embedding-278m-multilingual 模型下的实际结果:负的均值中心化值是好结果,说明减去平均向量后领域分离良好;当前 nouz-calc-etalons 的基准冒烟测试为 S→99.6%、D→98.5%、E→98.1%,这是对每个基准在相同中心化后能否稳定回到自身标记的快速检查,而非对整个库的评估。
限制与数据安全方面,文档称所有关键内容都留在你自己的机器上。项目采用 MIT 许可证。文档还提到官网 semiotronika.ru 和 Glama Registry 入口。至于收费、价格、具体模型依赖版本、平台支持范围等,资料未提供,暂未提供。