Nouz — Claude Code MCP server: what it does, how to install
Connects Obsidian or Logseq Markdown vaults to AI assistants, building acyclic graphs and mapping semantic bridges across notes.
claude mcp add --env OBSIDIAN_ROOT=<OBSIDIAN_ROOT> --env NOUZ_CONFIG=<NOUZ_CONFIG> --env NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> --env NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> --env EMBED_ENABLED=<EMBED_ENABLED> --transport stdio nouz -- uvx nouz-mcpWhat Nouz does
Nouz links a folder of Markdown notes with an AI assistant. The server structures files into a directed acyclic graph (DAG) and calculates domain marks based on reference vectors. As notes evolve, the server flags conceptual drift in its local SQLite index when content wanders away from its assigned domain.
Setup depth depends on the chosen mode. Starting without config.yaml runs the basic LUCA graph immediately. Activating the PRIZMA or 5-level SLOI hierarchies requires configuring domain baselines and connecting a local embedding provider such as Ollama or LM Studio. Semantic bridges link notes across domains by matching text chunks with high similarity.
Running semantic tools requires Python 3.10+ and an active EMBED_API_URL. Without an embedding model, advanced classification stays disabled.
What it helps with
- organize unstructured Markdown files into a directed acyclic graph
- classify incoming notes by matching text against domain vectors
- locate conceptual bridges between notes belonging to separate domains
- detect subject drift inside evolving documents using stored domain profiles
Example prompts for the agent
- Run
process_orphanson the vault to categorize unlinked files and suggest parents. - Use
suggest_metadataon this draft to find domain signs and cross-topic bridges. - Recompute domain profiles across parent notes using
recalc_core_mix.
How to install Nouz
Platform CLI
claude mcp add --env OBSIDIAN_ROOT=<OBSIDIAN_ROOT> --env NOUZ_CONFIG=<NOUZ_CONFIG> --env NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> --env NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> --env EMBED_ENABLED=<EMBED_ENABLED> --transport stdio nouz -- uvx nouz-mcpReplace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>
Platform CLI
codex mcp add nouz --env OBSIDIAN_ROOT=<OBSIDIAN_ROOT> --env NOUZ_CONFIG=<NOUZ_CONFIG> --env NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> --env NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> --env EMBED_ENABLED=<EMBED_ENABLED> -- uvx nouz-mcpReplace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>
Config file
{
"mcpServers": {
"nouz": {
"command": "uvx",
"args": [
"nouz-mcp"
],
"env": {
"OBSIDIAN_ROOT": "<OBSIDIAN_ROOT>",
"NOUZ_CONFIG": "<NOUZ_CONFIG>",
"NOUZ_DATABASE_NAME": "<NOUZ_DATABASE_NAME>",
"NOUZ_DATABASE_PATH": "<NOUZ_DATABASE_PATH>",
"EMBED_ENABLED": "<EMBED_ENABLED>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>
Config file
{
"servers": {
"nouz": {
"type": "stdio",
"command": "uvx",
"args": [
"nouz-mcp"
],
"env": {
"OBSIDIAN_ROOT": "<OBSIDIAN_ROOT>",
"NOUZ_CONFIG": "<NOUZ_CONFIG>",
"NOUZ_DATABASE_NAME": "<NOUZ_DATABASE_NAME>",
"NOUZ_DATABASE_PATH": "<NOUZ_DATABASE_PATH>",
"EMBED_ENABLED": "<EMBED_ENABLED>"
}
}
}
}Replace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>
Platform CLI
gemini mcp add -e OBSIDIAN_ROOT=<OBSIDIAN_ROOT> -e NOUZ_CONFIG=<NOUZ_CONFIG> -e NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> -e NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> -e EMBED_ENABLED=<EMBED_ENABLED> nouz uvx nouz-mcpReplace <…> with your own values. 3 more environment variables are in the server README. uvx runs the command named after the package; if the README names another one, use uvx --from nouz-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Nouz
How to install Nouz in Claude Code?
Install it with claude mcp add nouz-mcp -- uvx nouz-mcp. To pass vault paths and settings upfront, use: `claude mcp add --env OBSIDIAN_ROOT=<OBSIDIAN_ROOT> --env NOUZ_CONFIG=<NOUZ_CONFIG> --env NOUZ_DATABASE_NAME=<NOUZ_DATABASE_NAME> --env NOUZ_DATABASE_PATH=<NOUZ_DATABASE_PATH> --env EMBED_ENABLED=<EMBED_ENABLED> --transport stdio nouz -- uvx nouz-mcp`.
What does Nouz do?
It provides graph navigation, automatic YAML metadata generation, and semantic linking over local Markdown directories. It tracks domain changes over time and ensures hierarchical relationships stay acyclic.
Does Nouz require external embedding APIs?
No cloud APIs are necessary. Vector operations connect locally to Ollama or LM Studio endpoints specified by EMBED_API_URL, while basic graph mode runs without embeddings.