{"servers":[{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-05-20T19:09:27.577304Z","publishedAt":"2026-05-20T19:09:27.577304Z","statusChangedAt":"2026-05-20T19:09:27.577304Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.11","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.11","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-07T16:22:31.803084Z","publishedAt":"2026-06-07T16:22:31.803084Z","statusChangedAt":"2026-06-07T16:22:31.803084Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.12","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.12","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-07T20:29:04.127507Z","publishedAt":"2026-06-07T20:29:04.127507Z","statusChangedAt":"2026-06-07T20:29:04.127507Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.13","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.13","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-08T17:15:30.162336Z","publishedAt":"2026-06-08T17:15:30.162336Z","statusChangedAt":"2026-06-08T17:15:30.162336Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.14","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.14","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-08T17:41:54.686172Z","publishedAt":"2026-06-08T17:41:54.686172Z","statusChangedAt":"2026-06-08T17:41:54.686172Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.16","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.16","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-08T18:07:16.569823Z","publishedAt":"2026-06-08T18:07:16.569823Z","statusChangedAt":"2026-06-08T18:07:16.569823Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.17","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.17","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-09T02:07:28.347624Z","publishedAt":"2026-06-09T02:07:28.347624Z","statusChangedAt":"2026-06-09T02:07:28.347624Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"vault-cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.18","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.18","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-09T03:35:36.256312Z","publishedAt":"2026-06-09T03:35:36.256312Z","statusChangedAt":"2026-06-09T03:35:36.256312Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.19","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.19","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-09T14:16:17.925887Z","publishedAt":"2026-06-09T14:16:17.925887Z","statusChangedAt":"2026-06-09T14:16:17.925887Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.20","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.20","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-09T19:24:08.33091Z","publishedAt":"2026-06-09T19:24:08.33091Z","statusChangedAt":"2026-06-09T19:24:08.33091Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.21","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.21","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-10T01:33:32.232659Z","publishedAt":"2026-06-10T01:33:32.232659Z","statusChangedAt":"2026-06-10T01:33:32.232659Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.22","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.22","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-10T02:18:17.084574Z","publishedAt":"2026-06-10T02:18:17.084574Z","statusChangedAt":"2026-06-10T02:18:17.084574Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.15.23","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.15.23","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-10T18:09:42.092847Z","publishedAt":"2026-06-10T18:09:42.092847Z","statusChangedAt":"2026-06-10T18:09:42.092847Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.16.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.16.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-11T04:35:18.083991Z","publishedAt":"2026-06-11T04:35:18.083991Z","statusChangedAt":"2026-06-11T04:35:18.083991Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.16.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.16.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-11T14:06:37.716043Z","publishedAt":"2026-06-11T14:06:37.716043Z","statusChangedAt":"2026-06-11T14:06:37.716043Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.16.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.16.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-11T17:13:32.785635Z","publishedAt":"2026-06-11T17:13:32.785635Z","statusChangedAt":"2026-06-11T17:13:32.785635Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.16.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.16.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-11T18:08:09.889646Z","publishedAt":"2026-06-11T18:08:09.889646Z","statusChangedAt":"2026-06-11T18:08:09.889646Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-12T20:58:03.797717Z","publishedAt":"2026-06-12T20:58:03.797717Z","statusChangedAt":"2026-06-12T20:58:03.797717Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-12T22:28:40.140499Z","publishedAt":"2026-06-12T22:28:40.140499Z","statusChangedAt":"2026-06-12T22:28:40.140499Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-13T01:11:53.301729Z","publishedAt":"2026-06-13T01:11:53.301729Z","statusChangedAt":"2026-06-13T01:11:53.301729Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-13T03:12:35.853111Z","publishedAt":"2026-06-13T03:12:35.853111Z","statusChangedAt":"2026-06-13T03:12:35.853111Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-13T17:50:39.647593Z","publishedAt":"2026-06-13T17:50:39.647593Z","statusChangedAt":"2026-06-13T17:50:39.647593Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-13T18:10:01.314723Z","publishedAt":"2026-06-13T18:10:01.314723Z","statusChangedAt":"2026-06-13T18:10:01.314723Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-13T22:13:22.202218Z","publishedAt":"2026-06-13T22:13:22.202218Z","statusChangedAt":"2026-06-13T22:13:22.202218Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.7","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.7","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-14T20:18:24.33493Z","publishedAt":"2026-06-14T20:18:24.33493Z","statusChangedAt":"2026-06-14T20:18:24.33493Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.17.8","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.17.8","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-14T22:44:36.331629Z","publishedAt":"2026-06-14T22:44:36.331629Z","statusChangedAt":"2026-06-14T22:44:36.331629Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.18.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.18.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-15T01:36:52.989993Z","publishedAt":"2026-06-15T01:36:52.989993Z","statusChangedAt":"2026-06-15T01:36:52.989993Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.18.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.18.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-15T05:22:32.221824Z","publishedAt":"2026-06-15T05:22:32.221824Z","statusChangedAt":"2026-06-15T05:22:32.221824Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.18.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.18.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, link graph, 23 tools, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-15T22:13:07.241274Z","publishedAt":"2026-06-15T22:13:07.241274Z","statusChangedAt":"2026-06-15T22:13:07.241274Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.19.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.19.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 23 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-17T16:53:39.91159Z","publishedAt":"2026-06-17T16:53:39.91159Z","statusChangedAt":"2026-06-17T16:53:39.91159Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.19.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.19.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 23 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-18T01:33:29.865399Z","publishedAt":"2026-06-18T01:33:29.865399Z","statusChangedAt":"2026-06-18T01:33:29.865399Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.19.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.19.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 23 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-18T17:49:59.078584Z","publishedAt":"2026-06-18T17:49:59.078584Z","statusChangedAt":"2026-06-18T17:49:59.078584Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.19.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.19.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 23 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-18T18:45:57.543312Z","publishedAt":"2026-06-18T18:45:57.543312Z","statusChangedAt":"2026-06-18T18:45:57.543312Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.19.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.19.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 23 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-18T20:15:48.382428Z","publishedAt":"2026-06-18T20:15:48.382428Z","statusChangedAt":"2026-06-18T20:15:48.382428Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.19.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.19.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 23 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-19T18:13:50.309131Z","publishedAt":"2026-06-19T18:13:50.309131Z","statusChangedAt":"2026-06-19T18:13:50.309131Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.20.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.20.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 24 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-20T02:35:44.6954Z","publishedAt":"2026-06-20T02:35:44.6954Z","statusChangedAt":"2026-06-20T02:35:44.6954Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.20.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.20.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 24 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-21T00:42:14.282505Z","publishedAt":"2026-06-21T00:42:14.282505Z","statusChangedAt":"2026-06-21T00:42:14.282505Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.20.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.20.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 24 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-21T20:06:18.139636Z","publishedAt":"2026-06-21T20:06:18.139636Z","statusChangedAt":"2026-06-21T20:06:18.139636Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.21.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.21.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 25 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-21T23:37:36.093885Z","publishedAt":"2026-06-21T23:37:36.093885Z","statusChangedAt":"2026-06-21T23:37:36.093885Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.21.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.21.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 25 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-22T20:11:29.347762Z","publishedAt":"2026-06-22T20:11:29.347762Z","statusChangedAt":"2026-06-22T20:11:29.347762Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.22.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.22.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"MCP server for Obsidian vaults — search, memory, links, 25 tools + 3 prompts, OAuth-protected."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-22T22:56:59.817764Z","publishedAt":"2026-06-22T22:56:59.817764Z","statusChangedAt":"2026-06-22T22:56:59.817764Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-23T04:50:52.806468Z","publishedAt":"2026-06-23T04:50:52.806468Z","statusChangedAt":"2026-06-23T04:50:52.806468Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-23T20:47:43.156044Z","publishedAt":"2026-06-23T20:47:43.156044Z","statusChangedAt":"2026-06-23T20:47:43.156044Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-23T22:21:47.057365Z","publishedAt":"2026-06-23T22:21:47.057365Z","statusChangedAt":"2026-06-23T22:21:47.057365Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-24T17:12:31.621268Z","publishedAt":"2026-06-24T17:12:31.621268Z","statusChangedAt":"2026-06-24T17:12:31.621268Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-24T19:03:07.032675Z","publishedAt":"2026-06-24T19:03:07.032675Z","statusChangedAt":"2026-06-24T19:03:07.032675Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-25T03:06:13.719959Z","publishedAt":"2026-06-25T03:06:13.719959Z","statusChangedAt":"2026-06-25T03:06:13.719959Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-25T17:07:52.041777Z","publishedAt":"2026-06-25T17:07:52.041777Z","statusChangedAt":"2026-06-25T17:07:52.041777Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.7","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.7","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-25T18:34:33.8879Z","publishedAt":"2026-06-25T18:34:33.8879Z","statusChangedAt":"2026-06-25T18:34:33.8879Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.8","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.8","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-25T19:46:40.174533Z","publishedAt":"2026-06-25T19:46:40.174533Z","statusChangedAt":"2026-06-25T19:46:40.174533Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.9","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.9","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-25T23:10:45.955107Z","publishedAt":"2026-06-25T23:10:45.955107Z","statusChangedAt":"2026-06-25T23:10:45.955107Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.10","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.10","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-26T15:20:11.960328Z","publishedAt":"2026-06-26T15:20:11.960328Z","statusChangedAt":"2026-06-26T15:20:11.960328Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.11","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.11","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-27T03:06:06.894751Z","publishedAt":"2026-06-27T03:06:06.894751Z","statusChangedAt":"2026-06-27T03:06:06.894751Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.23.12","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.23.12","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — plugin-free, 25 tools + 3 prompts, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-29T23:54:23.303801Z","publishedAt":"2026-06-29T23:54:23.303801Z","statusChangedAt":"2026-06-29T23:54:23.303801Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.24.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.24.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 25 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-06-30T18:50:10.401941Z","publishedAt":"2026-06-30T18:50:10.401941Z","statusChangedAt":"2026-06-30T18:50:10.401941Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.25.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.25.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 25 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-01T00:50:01.315858Z","publishedAt":"2026-07-01T00:50:01.315858Z","statusChangedAt":"2026-07-01T00:50:01.315858Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.25.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.25.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 25 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-01T02:10:30.481067Z","publishedAt":"2026-07-01T02:10:30.481067Z","statusChangedAt":"2026-07-01T02:10:30.481067Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.25.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.25.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 25 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-01T05:16:05.645786Z","publishedAt":"2026-07-01T05:16:05.645786Z","statusChangedAt":"2026-07-01T05:16:05.645786Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.25.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.25.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 25 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-02T21:45:38.699038Z","publishedAt":"2026-07-02T21:45:38.699038Z","statusChangedAt":"2026-07-02T21:45:38.699038Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.25.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.25.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 25 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-03T00:00:17.745904Z","publishedAt":"2026-07-03T00:00:17.745904Z","statusChangedAt":"2026-07-03T00:00:17.745904Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, structured memory, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-04T20:11:42.688782Z","publishedAt":"2026-07-04T20:11:42.688782Z","statusChangedAt":"2026-07-04T20:11:42.688782Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-04T20:23:10.288887Z","publishedAt":"2026-07-04T20:23:10.288887Z","statusChangedAt":"2026-07-04T20:23:10.288887Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-05T22:14:58.174654Z","publishedAt":"2026-07-05T22:14:58.174654Z","statusChangedAt":"2026-07-05T22:14:58.174654Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-06T18:01:42.605179Z","publishedAt":"2026-07-06T18:01:42.605179Z","statusChangedAt":"2026-07-06T18:01:42.605179Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-07T01:01:34.96575Z","publishedAt":"2026-07-07T01:01:34.96575Z","statusChangedAt":"2026-07-07T01:01:34.96575Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-07T03:01:26.471001Z","publishedAt":"2026-07-07T03:01:26.471001Z","statusChangedAt":"2026-07-07T03:01:26.471001Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-07T04:57:38.231301Z","publishedAt":"2026-07-07T04:57:38.231301Z","statusChangedAt":"2026-07-07T04:57:38.231301Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.7","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.7","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-07T16:15:27.213932Z","publishedAt":"2026-07-07T16:15:27.213932Z","statusChangedAt":"2026-07-07T16:15:27.213932Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.8","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.8","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-09T16:17:32.519525Z","publishedAt":"2026-07-09T16:17:32.519525Z","statusChangedAt":"2026-07-09T16:17:32.519525Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.26.9","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-mcp:0.26.9","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-09T17:28:45.746901Z","publishedAt":"2026-07-09T17:28:45.746901Z","statusChangedAt":"2026-07-09T17:28:45.746901Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.27.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.27.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-10T00:12:49.039184Z","publishedAt":"2026-07-10T00:12:49.039184Z","statusChangedAt":"2026-07-10T00:12:49.039184Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.27.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.27.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-10T02:16:26.794091Z","publishedAt":"2026-07-10T02:16:26.794091Z","statusChangedAt":"2026-07-10T02:16:26.794091Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.27.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.27.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 26 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-11T03:59:14.412617Z","publishedAt":"2026-07-11T03:59:14.412617Z","statusChangedAt":"2026-07-11T03:59:14.412617Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.28.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.28.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 27 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-12T16:51:10.64572Z","publishedAt":"2026-07-12T16:51:10.64572Z","statusChangedAt":"2026-07-12T16:51:10.64572Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.28.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.28.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 27 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-12T17:20:55.066395Z","publishedAt":"2026-07-12T17:20:55.066395Z","statusChangedAt":"2026-07-12T17:20:55.066395Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.28.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.28.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 27 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-12T19:52:34.309132Z","publishedAt":"2026-07-12T19:52:34.309132Z","statusChangedAt":"2026-07-12T19:52:34.309132Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.28.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.28.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 27 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-12T21:26:12.771257Z","publishedAt":"2026-07-12T21:26:12.771257Z","statusChangedAt":"2026-07-12T21:26:12.771257Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.28.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.28.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 27 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-13T02:58:45.141892Z","publishedAt":"2026-07-13T02:58:45.141892Z","statusChangedAt":"2026-07-13T02:58:45.141892Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, memory, tasks, 28 tools, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-13T16:54:32.182624Z","publishedAt":"2026-07-13T16:54:32.182624Z","statusChangedAt":"2026-07-13T16:54:32.182624Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-13T18:03:21.971406Z","publishedAt":"2026-07-13T18:03:21.971406Z","statusChangedAt":"2026-07-13T18:03:21.971406Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-13T20:56:02.462376Z","publishedAt":"2026-07-13T20:56:02.462376Z","statusChangedAt":"2026-07-13T20:56:02.462376Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-15T02:42:15.009091Z","publishedAt":"2026-07-15T02:42:15.009091Z","statusChangedAt":"2026-07-15T02:42:15.009091Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-16T20:25:25.045636Z","publishedAt":"2026-07-16T20:25:25.045636Z","statusChangedAt":"2026-07-16T20:25:25.045636Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-17T00:47:24.405771Z","publishedAt":"2026-07-17T00:47:24.405771Z","statusChangedAt":"2026-07-17T00:47:24.405771Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-17T05:26:55.032175Z","publishedAt":"2026-07-17T05:26:55.032175Z","statusChangedAt":"2026-07-17T05:26:55.032175Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.29.7","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.29.7","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-18T17:31:35.356801Z","publishedAt":"2026-07-18T17:31:35.356801Z","statusChangedAt":"2026-07-18T17:31:35.356801Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.30.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.30.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_ASSET_BYTES","format":"number","default":"52428800","description":"Largest asset file vault_read_asset will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_asset, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-19T23:53:19.405009Z","publishedAt":"2026-07-19T23:53:19.405009Z","statusChangedAt":"2026-07-19T23:53:19.405009Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.30.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.30.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_ASSET_BYTES","format":"number","default":"52428800","description":"Largest asset file vault_read_asset will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_asset, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-20T21:29:19.566444Z","publishedAt":"2026-07-20T21:29:19.566444Z","statusChangedAt":"2026-07-20T21:29:19.566444Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.31.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.31.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_ASSET_BYTES","format":"number","default":"52428800","description":"Largest asset file vault_read_asset will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_asset, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_asset. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-21T05:51:39.008882Z","publishedAt":"2026-07-21T05:51:39.008882Z","statusChangedAt":"2026-07-21T05:51:39.008882Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.31.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.31.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_ASSET_BYTES","format":"number","default":"52428800","description":"Largest asset file vault_read_asset will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_asset, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_asset. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-21T22:18:12.402914Z","publishedAt":"2026-07-21T22:18:12.402914Z","statusChangedAt":"2026-07-21T22:18:12.402914Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.31.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.31.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_ASSET_BYTES","format":"number","default":"52428800","description":"Largest asset file vault_read_asset will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_asset, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_asset. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-21T23:10:47.2575Z","publishedAt":"2026-07-21T23:10:47.2575Z","statusChangedAt":"2026-07-21T23:10:47.2575Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.32.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.32.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-22T04:10:13.030225Z","publishedAt":"2026-07-22T04:10:13.030225Z","statusChangedAt":"2026-07-22T04:10:13.030225Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-25T17:39:46.113097Z","publishedAt":"2026-07-25T17:39:46.113097Z","statusChangedAt":"2026-07-25T17:39:46.113097Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-26T05:47:05.528816Z","publishedAt":"2026-07-26T05:47:05.528816Z","statusChangedAt":"2026-07-26T05:47:05.528816Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-26T21:37:02.869157Z","publishedAt":"2026-07-26T21:37:02.869157Z","statusChangedAt":"2026-07-26T21:37:02.869157Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-29T00:31:41.574983Z","publishedAt":"2026-07-29T00:31:41.574983Z","statusChangedAt":"2026-07-29T00:31:41.574983Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-30T19:47:32.000907Z","publishedAt":"2026-07-30T19:47:32.000907Z","statusChangedAt":"2026-07-30T19:47:32.000907Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-07-30T21:37:15.512562Z","publishedAt":"2026-07-30T21:37:15.512562Z","statusChangedAt":"2026-07-30T21:37:15.512562Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-01T02:36:58.86052Z","publishedAt":"2026-08-01T02:36:58.86052Z","statusChangedAt":"2026-08-01T02:36:58.86052Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.33.7","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.33.7","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-03T05:43:24.245257Z","publishedAt":"2026-08-03T05:43:24.245257Z","statusChangedAt":"2026-08-03T05:43:24.245257Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.34.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.34.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-03T21:10:55.295771Z","publishedAt":"2026-08-03T21:10:55.295771Z","statusChangedAt":"2026-08-03T21:10:55.295771Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.35.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.35.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-04T04:28:39.657167Z","publishedAt":"2026-08-04T04:28:39.657167Z","statusChangedAt":"2026-08-04T04:28:39.657167Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.35.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.35.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-08T05:06:25.468819Z","publishedAt":"2026-08-08T05:06:25.468819Z","statusChangedAt":"2026-08-08T05:06:25.468819Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.35.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.35.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-09T01:23:04.406177Z","publishedAt":"2026-08-09T01:23:04.406177Z","statusChangedAt":"2026-08-09T01:23:04.406177Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.36.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.36.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-11T14:17:27.922213Z","publishedAt":"2026-08-11T14:17:27.922213Z","statusChangedAt":"2026-08-11T14:17:27.922213Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.36.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.36.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-13T00:10:35.01195Z","publishedAt":"2026-08-13T00:10:35.01195Z","statusChangedAt":"2026-08-13T00:10:35.01195Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.36.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.36.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-13T20:08:28.287644Z","publishedAt":"2026-08-13T20:08:28.287644Z","statusChangedAt":"2026-08-13T20:08:28.287644Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.36.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.36.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-14T02:41:24.804286Z","publishedAt":"2026-08-14T02:41:24.804286Z","statusChangedAt":"2026-08-14T02:41:24.804286Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.36.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.36.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-15T18:55:41.942003Z","publishedAt":"2026-08-15T18:55:41.942003Z","statusChangedAt":"2026-08-15T18:55:41.942003Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.37.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.37.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-17T22:17:03.05654Z","publishedAt":"2026-08-17T22:17:03.05654Z","statusChangedAt":"2026-08-17T22:17:03.05654Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.37.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.37.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-18T00:28:06.308334Z","publishedAt":"2026-08-18T00:28:06.308334Z","statusChangedAt":"2026-08-18T00:28:06.308334Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.37.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.37.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-18T20:14:44.816164Z","publishedAt":"2026-08-18T20:14:44.816164Z","statusChangedAt":"2026-08-18T20:14:44.816164Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.37.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.37.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-18T23:27:32.316676Z","publishedAt":"2026-08-18T23:27:32.316676Z","statusChangedAt":"2026-08-18T23:27:32.316676Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.37.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.37.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-19T01:37:01.631458Z","publishedAt":"2026-08-19T01:37:01.631458Z","statusChangedAt":"2026-08-19T01:37:01.631458Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.38.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.38.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-20T05:08:11.187802Z","publishedAt":"2026-08-20T05:08:11.187802Z","statusChangedAt":"2026-08-20T05:08:11.187802Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.38.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.38.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HEADER","default":"false","description":"Trust the RFC 7239 Forwarded header as the client identity for OAuth rate limiting and request logs. Enable only when the proxy in front sets it (e.g. AWS API Gateway)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-20T06:40:01.019495Z","publishedAt":"2026-08-20T06:40:01.019495Z","statusChangedAt":"2026-08-20T06:40:01.019495Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.38.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.38.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HEADER","default":"false","description":"Trust the RFC 7239 Forwarded header as the client identity for OAuth rate limiting and request logs. Enable only when the proxy in front sets it (e.g. AWS API Gateway)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for persistent log files. Unset by default — logs go to stdout only. Set to /data/logs to also write date-stamped .log files to the persistent volume."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"30","description":"Days to retain persistent log files before cleanup."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-20T18:28:18.96523Z","publishedAt":"2026-08-20T18:28:18.96523Z","statusChangedAt":"2026-08-20T18:28:18.96523Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.39.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.39.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HEADER","default":"false","description":"Trust the RFC 7239 Forwarded header as the client identity for OAuth rate limiting and request logs. Enable only when the proxy in front sets it (e.g. AWS API Gateway)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-21T02:44:42.339374Z","publishedAt":"2026-08-21T02:44:42.339374Z","statusChangedAt":"2026-08-21T02:44:42.339374Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.40.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.40.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HEADER","default":"false","description":"Trust the RFC 7239 Forwarded header as the client identity for OAuth rate limiting and request logs. Enable only when the proxy in front sets it (e.g. AWS API Gateway)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-22T18:07:13.748187Z","publishedAt":"2026-08-22T18:07:13.748187Z","statusChangedAt":"2026-08-22T18:07:13.748187Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.40.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.40.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HEADER","default":"false","description":"Trust the RFC 7239 Forwarded header as the client identity for OAuth rate limiting and request logs. Enable only when the proxy in front sets it (e.g. AWS API Gateway)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-22T18:54:17.632716Z","publishedAt":"2026-08-22T18:54:17.632716Z","statusChangedAt":"2026-08-22T18:54:17.632716Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.41.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.41.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HEADER","default":"false","description":"Trust the RFC 7239 Forwarded header as the client identity for OAuth rate limiting and request logs. Enable only when the proxy in front sets it (e.g. AWS API Gateway)."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-23T04:56:41.488012Z","publishedAt":"2026-08-23T04:56:41.488012Z","statusChangedAt":"2026-08-23T04:56:41.488012Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.42.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.42.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-24T05:51:19.42872Z","publishedAt":"2026-08-24T05:51:19.42872Z","statusChangedAt":"2026-08-24T05:51:19.42872Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.42.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.42.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note. Default: MEMORY_DIR and \"Daily Notes\"."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-25T02:07:59.233249Z","publishedAt":"2026-08-25T02:07:59.233249Z","statusChangedAt":"2026-08-25T02:07:59.233249Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.43.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.43.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-27T07:26:35.205711Z","publishedAt":"2026-08-27T07:26:35.205711Z","statusChangedAt":"2026-08-27T07:26:35.205711Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.44.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.44.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-27T20:44:16.102858Z","publishedAt":"2026-08-27T20:44:16.102858Z","statusChangedAt":"2026-08-27T20:44:16.102858Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.45.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.45.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-27T23:21:50.417535Z","publishedAt":"2026-08-27T23:21:50.417535Z","statusChangedAt":"2026-08-27T23:21:50.417535Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.46.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.46.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-08-31T15:42:18.09434Z","publishedAt":"2026-08-31T15:42:18.09434Z","statusChangedAt":"2026-08-31T15:42:18.09434Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.47.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.47.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-01T02:15:59.253135Z","publishedAt":"2026-09-01T02:15:59.253135Z","statusChangedAt":"2026-09-01T02:15:59.253135Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.48.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.48.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-01T05:02:24.200193Z","publishedAt":"2026-09-01T05:02:24.200193Z","statusChangedAt":"2026-09-01T05:02:24.200193Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.48.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.48.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-02T12:31:59.546275Z","publishedAt":"2026-09-02T12:31:59.546275Z","statusChangedAt":"2026-09-02T12:31:59.546275Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.48.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.48.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-03T05:17:36.679457Z","publishedAt":"2026-09-03T05:17:36.679457Z","statusChangedAt":"2026-09-03T05:17:36.679457Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.48.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.48.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-04T01:29:35.882027Z","publishedAt":"2026-09-04T01:29:35.882027Z","statusChangedAt":"2026-09-04T01:29:35.882027Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.49.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.49.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-06T14:11:51.958574Z","publishedAt":"2026-09-06T14:11:51.958574Z","statusChangedAt":"2026-09-06T14:11:51.958574Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.49.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.49.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-08T23:34:00.635415Z","publishedAt":"2026-09-08T23:34:00.635415Z","statusChangedAt":"2026-09-08T23:34:00.635415Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.50.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.50.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-10T02:13:30.628311Z","publishedAt":"2026-09-10T02:13:30.628311Z","statusChangedAt":"2026-09-10T02:13:30.628311Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.50.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.50.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-11T05:41:14.84765Z","publishedAt":"2026-09-11T05:41:14.84765Z","statusChangedAt":"2026-09-11T05:41:14.84765Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.50.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.50.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-11T20:09:39.204504Z","publishedAt":"2026-09-11T20:09:39.204504Z","statusChangedAt":"2026-09-11T20:09:39.204504Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.50.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.50.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-12T23:00:35.125222Z","publishedAt":"2026-09-12T23:00:35.125222Z","statusChangedAt":"2026-09-12T23:00:35.125222Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.50.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.50.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-13T14:17:08.051303Z","publishedAt":"2026-09-13T14:17:08.051303Z","statusChangedAt":"2026-09-13T14:17:08.051303Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.51.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.51.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-15T05:11:46.753458Z","publishedAt":"2026-09-15T05:11:46.753458Z","statusChangedAt":"2026-09-15T05:11:46.753458Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.52.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.52.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-16T04:49:09.985039Z","publishedAt":"2026-09-16T04:49:09.985039Z","statusChangedAt":"2026-09-16T04:49:09.985039Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.52.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.52.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-17T04:07:46.598149Z","publishedAt":"2026-09-17T04:07:46.598149Z","statusChangedAt":"2026-09-17T04:07:46.598149Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.53.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.53.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-18T06:24:57.483398Z","publishedAt":"2026-09-18T06:24:57.483398Z","statusChangedAt":"2026-09-18T06:24:57.483398Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.0","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.0","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-19T07:16:09.775493Z","publishedAt":"2026-09-19T07:16:09.775493Z","statusChangedAt":"2026-09-19T07:16:09.775493Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.1","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.1","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-21T20:10:06.697848Z","publishedAt":"2026-09-21T20:10:06.697848Z","statusChangedAt":"2026-09-21T20:10:06.697848Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.2","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.2","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-23T23:51:06.32642Z","publishedAt":"2026-09-23T23:51:06.32642Z","statusChangedAt":"2026-09-23T23:51:06.32642Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.3","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.3","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-26T13:13:02.470814Z","publishedAt":"2026-09-26T13:13:02.470814Z","statusChangedAt":"2026-09-26T13:13:02.470814Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.4","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.4","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":false,"updatedAt":"2026-09-29T17:46:52.581991Z","publishedAt":"2026-09-29T17:46:52.581991Z","statusChangedAt":"2026-09-29T17:46:52.581991Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.5","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.5","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-29T18:07:31.549457Z","publishedAt":"2026-09-29T18:07:31.549457Z","statusChangedAt":"2026-09-29T18:07:31.549457Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.6","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.6","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-30T03:32:00.572719Z","publishedAt":"2026-09-30T03:32:00.572719Z","statusChangedAt":"2026-09-30T03:32:00.572719Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.7","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.7","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-01T02:48:13.00592Z","publishedAt":"2026-10-01T02:48:13.00592Z","statusChangedAt":"2026-10-01T02:48:13.00592Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.8","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.8","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-03T04:17:22.902131Z","publishedAt":"2026-10-03T04:17:22.902131Z","statusChangedAt":"2026-10-03T04:17:22.902131Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.9","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.9","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-05T22:01:33.145901Z","publishedAt":"2026-10-05T22:01:33.145901Z","statusChangedAt":"2026-10-05T22:01:33.145901Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.10","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.10","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-06T05:51:12.066179Z","publishedAt":"2026-10-06T05:51:12.066179Z","statusChangedAt":"2026-10-06T05:51:12.066179Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.11","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.11","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-08T03:24:26.626229Z","publishedAt":"2026-10-08T03:24:26.626229Z","statusChangedAt":"2026-10-08T03:24:26.626229Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.12","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.12","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-10T06:13:13.392942Z","publishedAt":"2026-10-10T06:13:13.392942Z","statusChangedAt":"2026-10-10T06:13:13.392942Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.13","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.13","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-11T20:11:49.523649Z","publishedAt":"2026-10-11T20:11:49.523649Z","statusChangedAt":"2026-10-11T20:11:49.523649Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.14","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.14","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"Daily Notes\"."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-16T16:24:20.506657Z","publishedAt":"2026-10-16T16:24:20.506657Z","statusChangedAt":"2026-10-16T16:24:20.506657Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.15","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.15","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json (an empty folder there follows Obsidian's new-note location), falling back to \"Daily Notes\" when that file is missing. Set to / for the vault root."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes; none when that setting is the vault root or empty). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"; no daily folder when that setting is the vault root or empty). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-17T05:31:55.702833Z","publishedAt":"2026-10-17T05:31:55.702833Z","statusChangedAt":"2026-10-17T05:31:55.702833Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}},{"server":{"name":"io.github.aliasunder/vault-cortex","title":"Vault Cortex","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","version":"0.54.16","packages":[{"transport":{"url":"http://localhost:8000/mcp","type":"streamable-http","headers":[{"name":"Authorization","value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32"}},"isRequired":true,"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container."}]},"identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","runtimeHint":"docker","registryType":"oci","runtimeArguments":[{"name":"-p","type":"named","value":"8000:8000","description":"Publish the container's port 8000 on the host."},{"name":"-v","type":"named","value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"format":"filepath","isRequired":true,"description":"Absolute path to your Obsidian vault on the host machine."}},"isRequired":true,"description":"Bind-mount your Obsidian vault into the container at /vault."},{"name":"-v","type":"named","value":"vault-cortex-data:/data","description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts."}],"environmentVariables":[{"name":"MCP_AUTH_TOKEN","isSecret":true,"isRequired":true,"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32"},{"name":"PUBLIC_URL","default":"http://localhost:8000","description":"Public URL clients use to reach this server. Used as the OAuth issuer URL in discovery metadata. Override when exposing the server outside localhost or on a non-default port."},{"name":"EMBEDDING_ENABLED","default":"true","description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only."},{"name":"RERANK_MODE","choices":["blended","none"],"default":"blended","description":"Cross-encoder reranking mode: blended (position-aware score blending after RRF fusion) or none (skip reranking). Only takes effect when EMBEDDING_ENABLED is true."},{"name":"WINDOWS_MODE","default":"false","description":"Windows bind-mount mode: enables filesystem polling for the file watcher and rename-based moves across the Docker Desktop/WSL2 bridge. Set to true when the vault lives on a Windows drive."},{"name":"MEMORY_ENABLED","default":"true","description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references."},{"name":"FILE_TOOLS_ENABLED","default":"true","description":"Enable or disable file tools (vault_read_file, vault_list_files). When false, file tools are hidden and server metadata omits file tool references."},{"name":"READONLY_MODE","default":"false","description":"Run the server read-only: every vault-writing tool is hidden, the memory folder is not auto-created, and server metadata omits write references."},{"name":"DISABLED_TOOLS","description":"Hide individual tools by name, comma-separated. Subtractive only — it cannot re-enable a tool another setting hides; an unknown tool name stops the server at startup."},{"name":"MEMORY_DIR","default":"About Me","description":"Vault folder for structured memory files (About Me-style notes). Memory tools are hidden when MEMORY_ENABLED is false, but this value still feeds the defaults for PROTECTED_PATHS and ORPHAN_EXCLUDE_FOLDERS."},{"name":"DAILY_NOTES_FOLDER","default":"Daily Notes","description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json (an empty folder there follows Obsidian's new-note location), falling back to \"Daily Notes\" when that file is missing or unreadable. Set to / for the vault root."},{"name":"DAILY_NOTES_FORMAT","default":"YYYY-MM-DD","description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin. When unset, read from the vault's .obsidian/daily-notes.json, falling back to \"YYYY-MM-DD\"."},{"name":"TRUST_PROXY_HOPS","default":"0","description":"Number of trusted reverse-proxy hops used to derive the client IP from X-Forwarded-For for OAuth rate limiting and request logs. With 0, injected forwarding headers are ignored."},{"name":"TRUST_FORWARDED_HOPS","default":"0","description":"How many entries from the end of the RFC 7239 Forwarded header's for= list to count to reach the client IP for OAuth rate limiting and request logs. 0 ignores the header; 1 when the proxy in front writes it (e.g. AWS API Gateway); 2 when a CDN fronts that proxy and is the only way to reach it."},{"name":"TZ","default":"UTC","description":"IANA timezone for timestamps and daily note resolution."},{"name":"LOG_LEVEL","choices":["debug","info","warn","error"],"default":"info","description":"Logging verbosity."},{"name":"LOG_DIR","format":"filepath","description":"Directory for log files that survive container re-creation. The container's own log is always written but discarded when the container is recreated; date-stamped files under LOG_DIR persist on the data volume. Default: /data/logs (remote image), $STORAGE_ROOT/data/logs (single-volume mode), none (local image). none keeps only the container log."},{"name":"LOG_RETENTION_DAYS","format":"number","default":"90","description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path."},{"name":"PROTECTED_PATHS","description":"Comma-separated vault folder names blocked from vault_delete_note and vault_move_note. Default: MEMORY_DIR plus the daily notes folder, read from DAILY_NOTES_FOLDER or .obsidian/daily-notes.json (default Daily Notes; none when that setting is the vault root or empty). When set, overrides the default entirely."},{"name":"ORPHAN_EXCLUDE_FOLDERS","description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: the daily notes folder, \"Templates\", and MEMORY_DIR. DAILY_NOTES_FOLDER wins; otherwise .obsidian/daily-notes.json is read per query (fallback \"Daily Notes\"; no daily folder when that setting is the vault root or empty). When set, replaces the defaults entirely. Set to a comma (,) to exclude nothing; an empty value uses the defaults."},{"name":"SERVICE_DOCUMENTATION_URL","default":"https://github.com/aliasunder/vault-cortex","description":"Override the OAuth service documentation URL exposed via discovery metadata."},{"name":"MAX_FILE_BYTES","format":"number","default":"52428800","description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content."},{"name":"MAX_IMAGE_OUTPUT_BYTES","format":"number","default":"49152","description":"Byte budget for images returned by vault_read_file, in binary bytes before base64 encoding. Images exceeding the budget are downscaled/recompressed server-side to fit; raise for clients that accept larger tool responses."},{"name":"MAX_PDF_RENDER_PAGES","format":"number","default":"5","description":"Maximum PDF pages to render as images when raw: true is set on vault_read_file. The per-page byte budget is MAX_IMAGE_OUTPUT_BYTES divided evenly across the rendered pages."}]}],"repository":{"id":"1226067541","url":"https://github.com/aliasunder/vault-cortex","source":"github"},"websiteUrl":"https://github.com/aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1"},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-10-20T02:54:14.029989Z","publishedAt":"2026-10-20T02:54:14.029989Z","statusChangedAt":"2026-10-20T02:54:14.029989Z"},"dev.protogrid/connectability":{"class":"L0","autonomous":false,"human_steps":["run_local_package"],"preferred":{"kind":"package","idx":0},"remotes":[],"packages":[{"idx":0,"registry_type":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.16","version":null,"runtime_hint":"docker","transport":"streamable-http","secrets":["MCP_AUTH_TOKEN"],"requires_execution":true}]},"dev.protogrid/trust":{"score":87,"components":{"hygiene":70,"liveness":null,"freshness":100,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","~liveness-unmeasured","+updated-0d-ago","-multi-version-spam(160)","-unpinned-packages(1)"],"flags":["multi-version-spam"],"blocked":false,"computed_at":"2026-10-20T05:13:21.130Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."}}}],"metadata":{"count":160}}