NOUZ MCP Server
The NOUZ MCP Server is a semantic knowledge engine for Obsidian that enables AI agents to intelligently structure, analyze, and navigate knowledge bases through vector embeddings and graph relationships. All core operations run locally, ensuring privacy.
File Operations
Read/write Obsidian notes with YAML frontmatter and metadata via
read_file/write_fileBrowse and filter the vault by domain sign, hierarchy level, subfolder, or missing metadata via
list_filesReindex the entire vault into SQLite (optionally with embeddings) via
index_all
Graph Navigation
Traverse parent-child relationships with
get_children/get_parentsGet a compact one-line structural formula
(children)[entity]{parents}showing a note's position viaformat_entity_compact
Semantic Analysis & Metadata
Suggest domain sign, hierarchy level, semantic bridges, and drift warnings for a note via
suggest_metadataFind semantically appropriate parent notes for orphaned notes via
suggest_parentsDetect
core_driftwhen a note's declared intent (sign) diverges from its actual content (core_mix)
Embeddings & Domain Calibration
Generate vector embeddings for arbitrary text via
embedCalibrate core domain vectors from reference texts (etalons) via
calibrate_coresRecalculate automatic domain signs for all notes via
recalc_signs(supports dry-run)Perform bottom-up semantic aggregation (L4→L3→L2) to compute
core_mixviarecalc_core_mix
Hierarchical Modeling
Supports 5 entity levels: Core (L1), Pattern (L2), Module (L3), Quant (L4), Artifact (L5)
Three operating modes: LUCA (graph only), PRIZMA (graph + semantics), SLOI (strict 5-level hierarchy)
Relationship Discovery
Identifies three bridge types between notes: semantic (similar content), tag (shared concepts), and analogical (similar structural roles across domains)
Configuration
Configurable classification and bridge detection thresholds, embedding provider (LM Studio, Ollama, or cloud APIs), and core domain definitions.
Manages notes in an Obsidian vault, providing tools to read, write, and navigate markdown files with YAML frontmatter, including bidirectional link tracking (parents/children), semantic indexing, and hierarchical organization across five knowledge levels.
Integrates with Ollama for local embedding generation, enabling semantic search, similarity matching, and automated metadata suggestions using locally-hosted language models.
Integrates with OpenAI's API for cloud-based embedding generation, supporting semantic analysis, core sign calibration, and vector similarity operations for knowledge graph navigation.
NOUZ — Semantic MCP Server for your knowledge base
Works with Obsidian, Logseq, and any directory of Markdown files.
Structure emerges from content.
Semantic tools for knowledge bases, project memory, and AI agents.
Why Nouz is needed
Folders show where a file is located. But they don't explain to an agent how documents, ideas, and materials within the base are connected.
NOUZ gives the agent semantic coordinates. Each note receives a domain sign, a level in the hierarchy, and links to other notes. The domain is assigned based on the file's content, or manually by you if you want a strict hierarchy.
Related MCP server: Semantic Mesh Memory (SEM) MCP Server
What it does
NOUZ acts as a layer between your note base and an AI agent. It helps turn scattered Markdown files into a graph that can be worked with via MCP:
Automatic Classification (Semantics) You define "Cores" — the base domains of your database (e.g., Systems Analysis, Data & Science, Engineering). When you add a new note, NOUZ reads its text, compares vectors, and suggests a domain sign or a combination of domains.
Finding connections between notes The server builds a directed acyclic graph (DAG) and suggests connections that can be verified before saving:
Semantic bridges: two notes from different domains point to the same idea.
Tag bridges: notes have common hidden concepts at the tag level.
Tracking database evolution (Drift) NOUZ aggregates data from the bottom up. If a module started as one domain, but new notes gradually lead it to another, the server will show a discrepancy (
core_drift).
Depending on your tasks, NOUZ works in three modes: from a simple graph (LUCA) to a strict 5-level hierarchy (SLOI).
How it works
You describe domains in
config.yaml— what area each domain covers and what text features to recognize it by.The server turns descriptions into reference vectors (locally, via LM Studio or Ollama).
Each new note is projected onto these axes. The sign is determined by content, or by you.
L4 receives a domain profile from text classification, and L3/L2 collect
core_mixfrom child nodes. If a module'ssigndiverges fromcore_mix, the server reports acore_drift.
Two types of bridges find connections between notes from different domains: semantic (texts are close) and tag-based (concepts overlap).
Quick start
pip install nouz-mcp
OBSIDIAN_ROOT=/path/to/vault nouz-mcpWithout config.yaml, the server starts in LUCA mode — a graph without semantics, works immediately.
To enable semantic mode, create a local config from the template:
cp config.template.yaml config.yamlIn Windows PowerShell:
Copy-Item config.template.yaml config.yamlOr from source:
git clone https://github.com/Semiotronika/NOUZ-MCP
cd NOUZ-MCP
pip install -r requirements.txt
cp config.template.yaml config.yaml
OBSIDIAN_ROOT=./vault python server.pyConnecting to Claude Desktop, Cursor, Opencode, or any MCP client:
{
"mcpServers": {
"nouz": {
"command": "nouz-mcp",
"env": {
"OBSIDIAN_ROOT": "/path/to/vault",
"NOUZ_CONFIG": "/absolute/path/to/config.yaml",
"EMBED_API_URL": "http://127.0.0.1:1234/v1"
}
}
}
}MCP Tools
Tool | Purpose |
| Sign, level, bridges, drift warnings |
| Write a note with YAML markup |
| Update only YAML without changing the note text |
| Read a note + metadata |
| Update reference vectors for cores |
| Recalculate signs for all notes |
| Recalculate bottom-up aggregation |
| Reindex the entire database |
| Get a vector for text |
| List with filters by level, sign |
| Traverse down the graph |
| Traverse up the graph |
| Find parents for an orphan |
| Create an entity in one step (auto sign, tags, parents) |
| Auto-fill files without markup |
Configuration
Minimal config.yaml:
mode: prizma
etalons:
- sign: S
name: Systems Analysis
text: >
Methodology for analysing complex objects: feedback loops,
emergent properties, self-regulation, bifurcation points.
Cybernetics, synergetics, dissipative structures, catastrophe
theory, autopoiesis — tools for understanding how the whole
exceeds the sum of its parts. Not data and not code — a way
of thinking about how parts form a whole and why systems
behave non-linearly.
- sign: D
name: Data & Science
text: >
Physics and cosmology: from subatomic particles to the large-scale
structure of the Universe. Lagrangians, curvature tensors, scattering
cross-sections, quarks, bosons, fermions, plasma, vacuum fluctuations,
cosmic microwave background, cosmological constant, decoherence.
Pure science about the nature of matter, energy and spacetime.
- sign: E
name: Engineering
text: >
Software engineering, machine learning and infrastructure: writing
and debugging code, deployment, containerisation, neural networks,
inference, tokenisation, data serialisation, microservices, CI/CD,
automated testing, refactoring, Git, Docker, Kubernetes, APIs.
The practical discipline of building computational systems from
architecture to production.
thresholds:
sign_spread: 0.05
confident_spread: 60.0
pattern_second_sign_threshold: 30.0
semantic_bridge_threshold: 0.55
parent_link_threshold: 0.55
artifact_signs:
- sign: n
name: Note
text: Short note, observation, fragment.
- sign: c
name: Concept
text: Definition, concept, entity description.
- sign: r
name: Reference
text: External source, documentation, link, citation.
- sign: l
name: Log
text: Session log, chronology, dialogue record.
- sign: u
name: Update
text: Update, release note, changelog entry.
- sign: h
name: Hypothesis
text: Hypothesis, assumption, speculative idea.
- sign: s
name: Specification
text: Technical specification, instruction, requirements.After configuration, run calibrate_cores — the server will create reference vectors.
Check pairwise cosines: mean-centered between different domains should be
significantly lower than raw. If all pairs are roughly the same, strengthen the differences in the texts.
etalons are semantic domains compared via embeddings.
artifact_signs are material types for L5 artifacts: note, concept, link, log, update, hypothesis, or specification. This is a heuristic label, not a separate reference for embeddings. In the public schema, domains are usually denoted by uppercase letters (S/D/E), and material types by lowercase (n/c/r/l/u/h/s); these can be changed in the config if signs are short and do not conflict with domains. If necessary, you can add keywords for any type: then the server will use your words for heuristics instead of the built-in RU/EN set.
Real calculation example
Here are the actual results for S/D/E etalons with the text-embedding-granite-embedding-278m-multilingual model:
=== Pairwise Cosine (raw) ===
S↔D: 0.5894 S↔E: 0.5862 D↔E: 0.6022
=== Pairwise Cosine (mean-centered) ===
S↔D: -0.5059 S↔E: -0.5117 D↔E: -0.4822Negative mean-centered values here are a good result: after subtracting the mean vector, the domains diverge well. Self-classification: S→99.4%, D→97.5%, E→96.9%.
Variable | Default | Description |
|
| Path to the vault |
| (empty) | Absolute path to |
|
| Name of the SQLite cache file inside |
| (empty) | Full path to the SQLite cache; takes priority over |
|
|
|
|
| Endpoint for embeddings |
| (empty) | API key, if needed |
| (empty) | Model name |
Privacy
Component | Local? |
Embeddings (LM Studio / Ollama) | ✅ Yes |
Your notes | ✅ Yes |
NOUZ Server | ✅ Yes |
AI agent context (Claude, ChatGPT) | ❌ Goes to the cloud |
Everything critical stays on your machine.
Development
git clone https://github.com/Semiotronika/NOUZ-MCP
cd NOUZ-MCP
pip install -e .
python test_server.pyLinks
MIT License © 2026 Semiotronika
Cosines are calculated. Syntax changes. Semantics remain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityFmaintenanceA server that consolidates 21+ Obsidian tools into 5 intelligent operations (vault, edit, view, workflow, system) with contextual workflow hints to help AI agents effectively interact with Obsidian.52636MIT
- FlicenseNot gradedqualityDmaintenanceProvides a coherent memory layer for LLM agents that models beliefs as nodes in a constraint network to detect and surface semantic contradictions. It uses local embeddings and a hybrid geometric-logical energy model to identify conflicting information that requires review.
- FlicenseNot gradedqualityAmaintenanceMCP server that enables full-text search and link navigation over Markdown files as a knowledge graph.
- AlicenseNot gradedqualityDmaintenanceMCP server for a personal knowledge base that captures and structures idea fragments, enabling MCP-capable agents to search, retrieve, and add notes with semantic links and clustering.3MIT
Related MCP Connectors
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
MCP server for URL shortening and management
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Semiotronika/NOUZ-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server