{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.maxkuminov/obsidian-mcp","description":"Self-hosted agent memory as a markdown vault: semantic and keyword search, wikilink graph, OAuth","title":"Obsidian MCP Server","repository":{"url":"https://github.com/maxkuminov/obsidian-mcp","source":"github","id":"1184745561"},"version":"0.9.3","websiteUrl":"https://github.com/maxkuminov/obsidian-mcp#readme","packages":[{"registryType":"oci","identifier":"ghcr.io/maxkuminov/obsidian-mcp:v0.9.3","transport":{"type":"streamable-http","url":"http://localhost:8000/mcp"},"environmentVariables":[{"description":"PostgreSQL 16 + pgvector (0.8.0+) connection URL for the app's NON-superuser role, e.g. postgresql+asyncpg://obsidian_mcp:<password>@postgres:5432/obsidian_mcp. A superuser role or a CHANGE_ME password is refused at startup.","isRequired":true,"isSecret":true,"name":"DATABASE_URL"},{"description":"Path of the Obsidian vault inside the container (mount your vault read-write there).","isRequired":true,"format":"filepath","default":"/obsidian","name":"VAULT_PATH"},{"description":"itsdangerous signer for cookies/sessions. Generate with `openssl rand -hex 32`; the app refuses to start on a placeholder.","isRequired":true,"isSecret":true,"name":"SECRET_KEY"},{"description":"Public hostname your reverse proxy routes to. Also derives BASE_URL, ALLOWED_ORIGINS and ALLOWED_HOSTS as https://<MCP_HOSTNAME> unless those are set explicitly.","isRequired":true,"placeholder":"obsidian-mcp.example.com","name":"MCP_HOSTNAME"},{"description":"Embedding provider: `ollama` (self-hosted, default) or `openai` (bring your own key). Switching after deploy requires `make reset-embeddings`.","default":"ollama","choices":["ollama","openai"],"name":"EMBEDDING_PROVIDER"},{"description":"Ollama endpoint serving bge-m3 (used when EMBEDDING_PROVIDER=ollama). Must be https or loopback unless EMBEDDING_ALLOW_PLAINTEXT is set.","default":"http://ollama:11434","name":"OLLAMA_URL"},{"description":"OpenAI (or OpenAI-compatible) API key for text-embedding-3-* (required when EMBEDDING_PROVIDER=openai; the server refuses to start without it).","isSecret":true,"name":"OPENAI_API_KEY"}]}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-29T19:56:10.591873Z","publishedAt":"2026-10-29T19:56:10.591873Z","updatedAt":"2026-10-29T19:56:10.591873Z","isLatest":true}}}
