Serversio.github.sweir1/obsidian-brain
B

Obsidian Brain

io.github.sweir1/obsidian-brain · v1.7.21
▦ npm
v1.7.21npm npm: obsidian-brain↗ Website↗ Repository
{}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"
  }
}