SuperAPI AI Directory

NOUZ-MCP

Semantic knowledge graph for Obsidian with graph, classification and hierarchy modes, local embeddings, semantic bridge discovery and drift detection.

Open website

About this tool

NOUZ is a local semantic MCP server for Markdown and Obsidian, positioned as an intermediary layer between a note vault and AI agents, organizing scattered Markdown files into a graph that is convenient for both humans and agents to use. The documentation states that "structure emerges from content," and it can handle Obsidian, Logseq, as well as any Markdown file directory, based on the MCP Python SDK v2.

In terms of purpose, NOUZ mainly provides capabilities in the following directions: automatic semantic classification, where users define "cores" (base domains), and when new notes are added, NOUZ reads the text, compares vectors, and suggests domain tags or domain combinations; retrieving connections between notes, where the server builds a directed structural graph, the hierarchy remains an acyclic DAG, and additional semantic connections coexist, including "semantic bridges" (two notes from different domains pointing to the same idea), while explicit tag connections can be manually stored in YAML; tracking note vault evolution (drift), where NOUZ saves the domain profile of content nodes and compares it with declared tags. If a module is described as one domain but its profile gradually leans toward another domain, the server will show the difference (core_drift). Depending on the task, NOUZ has three modes, from a simple graph (LUCA) to a strict five-level hierarchy (SLOI).

In terms of how it works, users describe domains in config.yaml, that is, the scope covered by each domain and the textual features used to identify it; the server converts these descriptions into vector baselines (locally, via LM Studio or Ollama); each new note is projected onto these axes, and tags are determined by the content or the user. The documentation emphasizes a distinction at two levels: artifact_signs describe the form of L5 artifacts (logs, sources, hypotheses, specifications, etc.), and these tags do not aggregate into L4 domain tags; core_mix is not the sum of artifact types, but rather the domain profile in the SQLite index. L4/L3/L2 obtain it from their own text through recalc_signs, and parent nodes can then obtain the average profile of child content nodes through recalc_core_mix; core_drift occurs when the saved domain profile and the current sign point to different dominant domains. Semantic bridges discover connections when the text meaning of cross-domain notes is similar, and if both notes already have chunks, the best chunk pair is also used for additional verification and specific features are returned. Tags remain explicitly annotated by the user.

In terms of usage, when there is no config.yaml, the server starts in LUCA mode, that is,No semantic graph, runnable immediately. To enable semantic mode, create a local configuration from the template. The documentation provides two approaches: Windows PowerShell and building from source, as well as methods for connecting Claude Desktop, Cursor, Opencode, or any MCP client. After configuration, run calibrate_cores, and the server will create baseline vectors; you should check the pairwise cosine values, and the mean-centered values between different domains should be noticeably lower than the raw values; if all pairs are approximately the same, you need to enhance the textual differences. You can also check the baselines separately from the installed package: nouz-calc-etalons --config config.yaml.

Conceptually, etalons are semantic domains compared via embeddings; artifact_signs are the material types of L5 artifacts: notes, concepts, links, logs, updates, hypotheses, or specifications, and are heuristic labels. Domains are usually represented by uppercase letters (S/D/E), and material types by lowercase letters (n/c/r/l/u/h/s), which can be replaced with other values in the configuration. If necessary, keywords can be added for any type, and the server will use your words for heuristics instead of the built-in Russian-English sets. The documentation also provides actual results for the S/D/E baselines under the text-embedding-granite-embedding-278m-multilingual model: negative mean-centered values are good results, indicating that after subtracting the average vector, the domains are well separated; the current benchmark smoke test for nouz-calc-etalons is S→99.6%, D→98.5%, E→98.1%, which is a quick check of whether each baseline can stably return to its own label after the same centering, rather than an evaluation of the entire library.

Regarding limitations and data security, the documentation states that all key content remains on your own machine. The project uses the MIT license. The documentation also mentions the official website semiotronika.ru and the Glama Registry entry. As for fees, pricing, specific model dependency versions, platform support scope, etc., the materials do not provide them, and they are not provided for now.