{"servers":[{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.50.0","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.50.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-10T02:13:30.628311Z","publishedAt":"2026-09-10T02:13:30.628311Z","updatedAt":"2026-09-10T02:13:30.628311Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.50.1","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.50.1","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-11T05:41:14.84765Z","publishedAt":"2026-09-11T05:41:14.84765Z","updatedAt":"2026-09-11T05:41:14.84765Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.50.2","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.50.2","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-11T20:09:39.204504Z","publishedAt":"2026-09-11T20:09:39.204504Z","updatedAt":"2026-09-11T20:09:39.204504Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.50.3","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.50.3","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-12T23:00:35.125222Z","publishedAt":"2026-09-12T23:00:35.125222Z","updatedAt":"2026-09-12T23:00:35.125222Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.50.4","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.50.4","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-13T14:17:08.051303Z","publishedAt":"2026-09-13T14:17:08.051303Z","updatedAt":"2026-09-13T14:17:08.051303Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.51.0","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.51.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-15T05:11:46.753458Z","publishedAt":"2026-09-15T05:11:46.753458Z","updatedAt":"2026-09-15T05:11:46.753458Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.52.0","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.52.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"description":"Vault folder for daily notes. Overrides the folder configured in Obsidian's daily-notes plugin.","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"description":"Filename date format for daily notes (Moment.js tokens). Overrides the format configured in Obsidian's daily-notes plugin.","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: \"Daily Notes\", \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-16T04:49:09.985039Z","publishedAt":"2026-09-16T04:49:09.985039Z","updatedAt":"2026-09-16T04:49:09.985039Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.52.1","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.52.1","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-17T04:07:46.598149Z","publishedAt":"2026-09-17T04:07:46.598149Z","updatedAt":"2026-09-17T04:07:46.598149Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.53.0","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.53.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-18T06:24:57.483398Z","publishedAt":"2026-09-18T06:24:57.483398Z","updatedAt":"2026-09-18T06:24:57.483398Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.0","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.0","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-19T07:16:09.775493Z","publishedAt":"2026-09-19T07:16:09.775493Z","updatedAt":"2026-09-19T07:16:09.775493Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.1","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.1","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-21T20:10:06.697848Z","publishedAt":"2026-09-21T20:10:06.697848Z","updatedAt":"2026-09-21T20:10:06.697848Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.2","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.2","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-23T23:51:06.32642Z","publishedAt":"2026-09-23T23:51:06.32642Z","updatedAt":"2026-09-23T23:51:06.32642Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.3","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.3","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-26T13:13:02.470814Z","publishedAt":"2026-09-26T13:13:02.470814Z","updatedAt":"2026-09-26T13:13:02.470814Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.4","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.4","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-29T17:46:52.581991Z","publishedAt":"2026-09-29T17:46:52.581991Z","updatedAt":"2026-09-29T17:46:52.581991Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.5","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.5","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-29T18:07:31.549457Z","publishedAt":"2026-09-29T18:07:31.549457Z","updatedAt":"2026-09-29T18:07:31.549457Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.6","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.6","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-09-30T03:32:00.572719Z","publishedAt":"2026-09-30T03:32:00.572719Z","updatedAt":"2026-09-30T03:32:00.572719Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliasunder/vault-cortex","description":"Standalone MCP server for Obsidian vaults — hybrid search, notes & files, memory, tasks, OAuth 2.1","title":"Vault Cortex","repository":{"url":"https://github.com/aliasunder/vault-cortex","source":"github","id":"1226067541"},"version":"0.54.7","websiteUrl":"https://github.com/aliasunder/vault-cortex","packages":[{"registryType":"oci","identifier":"ghcr.io/aliasunder/vault-cortex:0.54.7","runtimeHint":"docker","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp","headers":[{"description":"Bearer token used by the MCP client. Must match the MCP_AUTH_TOKEN env var passed to the container.","isRequired":true,"value":"Bearer {MCP_AUTH_TOKEN}","isSecret":true,"variables":{"MCP_AUTH_TOKEN":{"description":"Bearer token for MCP client authentication. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true}},"name":"Authorization"}]},"runtimeArguments":[{"description":"Publish the container's port 8000 on the host.","value":"8000:8000","type":"named","name":"-p"},{"description":"Bind-mount your Obsidian vault into the container at /vault.","isRequired":true,"value":"{VAULT_PATH}:/vault:rw","variables":{"VAULT_PATH":{"description":"Absolute path to your Obsidian vault on the host machine.","isRequired":true,"format":"filepath"}},"type":"named","name":"-v"},{"description":"Named volume for persistent state under /data — search index, OAuth token DB, and any log files. Keeps OAuth sessions alive across container restarts.","value":"vault-cortex-data:/data","type":"named","name":"-v"}],"environmentVariables":[{"description":"Bearer token for MCP client authentication. Must match the Authorization header sent by clients. Generate with: openssl rand -hex 32","isRequired":true,"isSecret":true,"name":"MCP_AUTH_TOKEN"},{"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.","default":"http://localhost:8000","name":"PUBLIC_URL"},{"description":"Enable or disable the embedding pipeline. When false, no ONNX model is downloaded, no vector tables are created, and search uses FTS5 only.","default":"true","name":"EMBEDDING_ENABLED"},{"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.","default":"blended","choices":["blended","none"],"name":"RERANK_MODE"},{"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.","default":"false","name":"WINDOWS_MODE"},{"description":"Enable or disable the structured memory layer. When false, memory tools are hidden, bootstrap is skipped, and server metadata omits memory references.","default":"true","name":"MEMORY_ENABLED"},{"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.","default":"true","name":"FILE_TOOLS_ENABLED"},{"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.","default":"false","name":"READONLY_MODE"},{"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":"DISABLED_TOOLS"},{"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.","default":"About Me","name":"MEMORY_DIR"},{"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\".","default":"Daily Notes","name":"DAILY_NOTES_FOLDER"},{"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\".","default":"YYYY-MM-DD","name":"DAILY_NOTES_FORMAT"},{"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.","default":"0","name":"TRUST_PROXY_HOPS"},{"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.","default":"0","name":"TRUST_FORWARDED_HOPS"},{"description":"IANA timezone for timestamps and daily note resolution.","default":"UTC","name":"TZ"},{"description":"Logging verbosity.","default":"info","choices":["debug","info","warn","error"],"name":"LOG_LEVEL"},{"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.","format":"filepath","name":"LOG_DIR"},{"description":"Days to keep log files before automatic cleanup on startup; only applies when LOG_DIR is a path.","format":"number","default":"90","name":"LOG_RETENTION_DAYS"},{"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":"PROTECTED_PATHS"},{"description":"Comma-separated vault folder names excluded from vault_find_orphans. Default: DAILY_NOTES_FOLDER (else \"Daily Notes\"), \"Templates\", MEMORY_DIR.","name":"ORPHAN_EXCLUDE_FOLDERS"},{"description":"Override the OAuth service documentation URL exposed via discovery metadata.","default":"https://github.com/aliasunder/vault-cortex","name":"SERVICE_DOCUMENTATION_URL"},{"description":"Largest file vault_read_file will read, in bytes. Reading a larger file returns an error instead of content.","format":"number","default":"52428800","name":"MAX_FILE_BYTES"},{"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.","format":"number","default":"49152","name":"MAX_IMAGE_OUTPUT_BYTES"},{"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.","format":"number","default":"5","name":"MAX_PDF_RENDER_PAGES"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-01T02:48:13.00592Z","publishedAt":"2026-10-01T02:48:13.00592Z","updatedAt":"2026-10-01T02:48:13.00592Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-09-29/server.schema.json","name":"io.github.alibaizhanov/densely","description":"Lossless context compression: 2-8x fewer tokens, byte-exact recovery, search inside payloads","repository":{"url":"https://github.com/alibaizhanov/densely","source":"github"},"version":"0.2.1","packages":[{"registryType":"pypi","registryBaseUrl":"https://pypi.org","identifier":"densely","version":"0.2.1","transport":{"type":"stdio"}}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-08-11T13:37:45.385558Z","publishedAt":"2026-08-11T13:37:45.385558Z","updatedAt":"2026-08-11T13:37:45.385558Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alibaizhanov/mengram","description":"Long-term memory for AI agents: semantic facts, episodic events, and procedural workflows","repository":{"url":"https://github.com/alibaizhanov/mengram","source":"github"},"version":"2.25.4","websiteUrl":"https://mengram.io","remotes":[{"type":"streamable-http","url":"https://mengram.io/mcp","headers":[{"description":"Bearer <your Mengram API key> — free key at https://mengram.io","isRequired":true,"isSecret":true,"name":"Authorization"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-20T13:07:38.493172Z","publishedAt":"2026-07-20T13:07:38.493172Z","updatedAt":"2026-07-20T13:07:38.493172Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliboIly/tripwire","description":"MCP for Roblox Studio and Open Cloud: drive Studio, run headless tests, and review game security.","title":"Tripwire","repository":{"url":"https://github.com/aliboIly/Tripwire","source":"github"},"version":"0.2.3","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"tripwire-roblox","version":"0.2.3","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Open Cloud API key. Needed for the headless test and Open Cloud tools; the Studio path does not use it.","isSecret":true,"name":"ROBLOX_OPEN_CLOUD_KEY"},{"description":"Universe id the Open Cloud tools target. Set it alongside the key and place id.","name":"ROBLOX_UNIVERSE_ID"},{"description":"Place id the Open Cloud tools target. Set it alongside the key and universe id.","name":"ROBLOX_PLACE_ID"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-30T09:36:33.47691Z","publishedAt":"2026-06-30T09:36:33.47691Z","updatedAt":"2026-06-30T09:36:33.47691Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliboIly/tripwire","description":"MCP for Roblox Studio and Open Cloud: drive Studio, run headless tests, and review game security.","title":"Tripwire","repository":{"url":"https://github.com/aliboIly/Tripwire","source":"github"},"version":"0.2.4","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"tripwire-roblox","version":"0.2.4","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Open Cloud API key. Needed for the headless test and Open Cloud tools; the Studio path does not use it.","isSecret":true,"name":"ROBLOX_OPEN_CLOUD_KEY"},{"description":"Universe id the Open Cloud tools target. Set it alongside the key and place id.","name":"ROBLOX_UNIVERSE_ID"},{"description":"Place id the Open Cloud tools target. Set it alongside the key and universe id.","name":"ROBLOX_PLACE_ID"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-06-30T11:11:05.563859Z","publishedAt":"2026-06-30T11:11:05.563859Z","updatedAt":"2026-06-30T11:11:05.563859Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.aliboIly/tripwire","description":"MCP for Roblox Studio and Open Cloud: drive Studio, run headless tests, and review game security.","title":"Tripwire","repository":{"url":"https://github.com/aliboIly/Tripwire","source":"github"},"version":"0.2.5","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"tripwire-roblox","version":"0.2.5","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Open Cloud API key. Needed for the headless test and Open Cloud tools; the Studio path does not use it.","isSecret":true,"name":"ROBLOX_OPEN_CLOUD_KEY"},{"description":"Universe id the Open Cloud tools target. Set it alongside the key and place id.","name":"ROBLOX_UNIVERSE_ID"},{"description":"Place id the Open Cloud tools target. Set it alongside the key and universe id.","name":"ROBLOX_PLACE_ID"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-01T18:37:45.705319Z","publishedAt":"2026-07-01T18:37:45.705319Z","updatedAt":"2026-07-01T18:37:45.705319Z","isLatest":true}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.0.0","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.0.0/lumi-app-finder.mcpb","fileSha256":"a7ee0cd19ef364406059422ba93c58ae4a2953dac100c943cfa340e4c79ad528","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-19T02:30:16.531566Z","publishedAt":"2026-07-19T02:30:16.531566Z","updatedAt":"2026-07-19T02:30:16.531566Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.0.1","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.0.1/lumi-app-finder.mcpb","fileSha256":"479784f3a502cff3f083461f9220280d8169acf1b8aca8cf2a5bde2c9e86553e","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-20T08:07:27.156017Z","publishedAt":"2026-07-20T08:07:27.156017Z","updatedAt":"2026-07-20T08:07:27.156017Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.0.2","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.0.2/lumi-app-finder.mcpb","fileSha256":"7a3d2217c379e74c8da52433317fa092bd61f3e359575628ba2f03f0d588acb3","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-20T09:50:36.713904Z","publishedAt":"2026-07-20T09:50:36.713904Z","updatedAt":"2026-07-20T09:50:36.713904Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.0.3","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.0.3/lumi-app-finder.mcpb","fileSha256":"592172803fd74c22bd4611cf91d41274f3e9792c2e6f01897813f6558df4323d","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-20T12:10:32.178721Z","publishedAt":"2026-07-20T12:10:32.178721Z","updatedAt":"2026-07-20T12:10:32.178721Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.1.0","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.1.0/lumi-app-finder.mcpb","fileSha256":"4ff63b9c1676c8777ff61159c97e7fc1b88d1fe4e7c31eb89d4c53944e2c2ec8","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-20T16:21:52.566028Z","publishedAt":"2026-07-20T16:21:52.566028Z","updatedAt":"2026-07-20T16:21:52.566028Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.1.1","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.1.1/lumi-app-finder.mcpb","fileSha256":"d34670480aa2ba63a67514c66b03b430ffc5ec1d440bf690a525324441a02bb5","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-21T07:58:40.749267Z","publishedAt":"2026-07-21T07:58:40.749267Z","updatedAt":"2026-07-21T07:58:40.749267Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 28 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.1.2","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.1.2/lumi-app-finder.mcpb","fileSha256":"43602c821059a298168cb0fd2560b9f7b906aa91db4f40f6718bdd4c7c1ba82c","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"28 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-21T08:16:07.573769Z","publishedAt":"2026-07-21T08:16:07.573769Z","updatedAt":"2026-07-21T08:16:07.573769Z","isLatest":false}}},{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.alice51849/lumi-app-finder","description":"Find iOS apps by task across 29 live apps and 50 Apple locales, with direct App Store links.","title":"Lumi App Finder","repository":{"url":"https://github.com/alice51849/lumi-mcp","source":"github"},"version":"1.1.3","websiteUrl":"https://alice51849.github.io/ios-app-guide/","packages":[{"registryType":"mcpb","identifier":"https://github.com/alice51849/lumi-mcp/releases/download/v1.1.3/lumi-app-finder.mcpb","fileSha256":"24f4b5e376ab379a622920b12f968cbdc03b6714ff19066d677fa63b779f1dd6","transport":{"type":"stdio"}}],"_meta":{"io.modelcontextprotocol.registry/publisher-provided":{"catalog":"https://alice51849.github.io/ios-app-guide/data/lumi-studio-publisher-search-intent-catalog.json","coverage":"29 verified live iOS apps across all 50 Apple locales","disclosure":"First-party publisher catalog; text relevance is not an independent ranking."}}},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-07-22T02:08:38.306039Z","publishedAt":"2026-07-22T02:08:38.306039Z","updatedAt":"2026-07-22T02:08:38.306039Z","isLatest":false}}}],"metadata":{"nextCursor":"io.github.alice51849/lumi-app-finder:1.1.3","count":30}}
