Obsidian Brain✓
io.github.sweir1/obsidian-brain · v1.7.21
{}server.json
The full server descriptor as registered with IndusMCP.
{
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.sweir1/obsidian-brain",
"description": "Obsidian MCP server: semantic search, knowledge graph, and vault editing. No plugin required.",
"title": "Obsidian Brain",
"repository": {
"url": "https://github.com/sweir1/obsidian-brain",
"source": "github"
},
"version": "1.7.21",
"websiteUrl": "https://sweir1.github.io/obsidian-brain/",
"packages": [
{
"registryType": "npm",
"identifier": "obsidian-brain",
"version": "1.7.21",
"runtimeHint": "npx",
"transport": {
"type": "stdio"
},
"runtimeArguments": [
{
"value": "-y",
"type": "positional"
}
],
"packageArguments": [
{
"value": "server",
"type": "positional"
}
],
"environmentVariables": [
{
"description": "Absolute path to your Obsidian vault (or any folder of .md files).",
"isRequired": true,
"format": "string",
"name": "VAULT_PATH"
},
{
"description": "Where to store the SQLite index + embedding cache. Defaults to $XDG_DATA_HOME/obsidian-brain or ~/.local/share/obsidian-brain.",
"format": "string",
"name": "DATA_DIR"
},
{
"description": "Preset name: english (default, bge-small-en-v1.5), english-fast, english-quality, multilingual, multilingual-quality, multilingual-ollama. Ignored when EMBEDDING_MODEL is set.",
"format": "string",
"default": "english",
"choices": [
"english",
"english-fast",
"english-quality",
"multilingual",
"multilingual-quality",
"multilingual-ollama"
],
"name": "EMBEDDING_PRESET"
},
{
"description": "Power-user override: any transformers.js checkpoint or Ollama model id. Takes precedence over EMBEDDING_PRESET. Switching auto-reindexes.",
"format": "string",
"name": "EMBEDDING_MODEL"
},
{
"description": "Embedding backend. 'transformers' (local, default) or 'ollama' (requires a running Ollama server).",
"format": "string",
"default": "transformers",
"choices": [
"transformers",
"ollama"
],
"name": "EMBEDDING_PROVIDER"
},
{
"description": "Base URL of a local Ollama server. Only used when EMBEDDING_PROVIDER=ollama.",
"format": "string",
"default": "http://localhost:11434",
"name": "OLLAMA_BASE_URL"
},
{
"description": "Override the embedding dimensionality when EMBEDDING_PROVIDER=ollama. If unset, the server probes the model on startup.",
"format": "number",
"name": "OLLAMA_EMBEDDING_DIM"
},
{
"description": "Override Ollama's num_ctx for embed requests. Default 8192. Ollama's own default is 2048 which silently truncates long chunks for models trained on larger contexts (nomic-embed-text at 8192, bge-m3 at 8192, qwen3-embedding:0.6b at 32 768). See https://github.com/ollama/ollama/issues/7008.",
"name": "OLLAMA_NUM_CTX"
},
{
"description": "Auto-pull the configured Ollama model when /api/show returns 404 (model not present). Default ON — choosing an Ollama-backed preset is implicit consent to download its model. Streams /api/pull progress to stderr. Set to '0' to disable auto-pull and fall back to the actionable error path (`HTTP 404 — try: ollama pull <model>`).",
"format": "string",
"choices": [
"",
"0",
"1"
],
"name": "OBSIDIAN_BRAIN_OLLAMA_AUTO_PULL"
},
{
"description": "Set to '1' to disable the live chokidar file watcher. Useful on SMB/NFS vaults where FSEvents/inotify don't fire reliably — fall back to running `obsidian-brain index` on a schedule (launchd/systemd).",
"format": "string",
"name": "OBSIDIAN_BRAIN_NO_WATCH"
},
{
"description": "Set to '1' to skip the startup catchup reindex pass that picks up edits made while the server was down. The live file watcher still starts (via OBSIDIAN_BRAIN_NO_WATCH=1 to disable that separately), and first-time indexing on an empty DB is unaffected — this knob only governs the post-restart `enqueueBackgroundReindex` walk.",
"format": "string",
"name": "OBSIDIAN_BRAIN_NO_CATCHUP"
},
{
"description": "Per-file reindex debounce for the live watcher, in milliseconds.",
"format": "number",
"default": "3000",
"name": "OBSIDIAN_BRAIN_WATCH_DEBOUNCE_MS"
},
{
"description": "Graph-wide community-detection (Louvain) debounce for the live watcher, in milliseconds. Louvain is the only expensive op — batching it prevents per-edit CPU spikes.",
"format": "number",
"default": "60000",
"name": "OBSIDIAN_BRAIN_COMMUNITY_DEBOUNCE_MS"
},
{
"description": "Per-tool-call timeout in milliseconds. Tools exceeding this return an MCP error instead of hanging.",
"format": "number",
"default": "30000",
"name": "OBSIDIAN_BRAIN_TOOL_TIMEOUT_MS"
},
{
"description": "Override the adaptive chunk-size budget (in tokens). When set, this beats the capacity probed from the model's tokenizer or Ollama /api/show. Use for debugging or for models with stale tokenizer configs.",
"format": "number",
"name": "OBSIDIAN_BRAIN_MAX_CHUNK_TOKENS"
},
{
"description": "Override the per-user config directory where obsidian-brain stores model overrides (`model-overrides.json`) and the user-fetched seed (`seed-models.json`). Default is `$XDG_CONFIG_HOME/obsidian-brain` on macOS/Linux (or `~/.config/obsidian-brain`) and `%APPDATA%/obsidian-brain` on Windows. Both files survive `npm update obsidian-brain` because they live outside the package.",
"format": "filepath",
"name": "OBSIDIAN_BRAIN_CONFIG_DIR"
},
{
"description": "Set to \"1\" to print a verbose synchronous startup trace to stderr — every preflight, createContext, server.connect, and shutdown step is logged with a monotonic timestamp. The LAST line before any silent failure tells you exactly which step the server reached. No-op when unset (no overhead). Use to diagnose silent-crash failure modes.",
"format": "string",
"choices": [
"",
"1"
],
"name": "OBSIDIAN_BRAIN_DEBUG"
}
]
}
],
"_meta": {
"dev.indusmcp/source": "official-registry-mirror",
"dev.indusmcp/synced": "2026-05-12"
}
}