Obsidian MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BASE_URL | No | Explicit public origin. HTTPS except on loopback. | |
| CHUNK_SIZE | No | Approx tokens per chunk | 512 |
| OLLAMA_URL | No | URL of the Ollama instance (used when provider is ollama) | |
| SECRET_KEY | Yes | itsdangerous signer key | |
| VAULT_PATH | No | In-container vault mount | /obsidian |
| FTS_CONFIGS | No | Keyword-search text-search config(s). JSON or CSV. | english |
| DATABASE_URL | Yes | PostgreSQL connection string, e.g. postgresql+asyncpg://user:pass@host/db | |
| MCP_HOSTNAME | No | Public hostname. Derives BASE_URL, ALLOWED_ORIGINS and ALLOWED_HOSTS as https://<host>. Required (or BASE_URL) for the transfer tools. | |
| ALLOWED_HOSTS | No | Accepted Host headers, JSON list. localhost is always added. | |
| CHUNK_OVERLAP | No | Token overlap between chunks | 0 |
| OPENAI_API_KEY | No | OpenAI API key (required when provider is openai) | |
| ALLOWED_ORIGINS | No | CORS origins, JSON list | |
| EMBEDDING_MODEL | No | Ollama model name | bge-m3 |
| MULTI_USER_MODE | No | In-app login, per-user vaults. See Multi-user mode. | false |
| OPENAI_BASE_URL | No | Override for Azure or proxies | https://api.openai.com/v1 |
| SESSION_MAX_AGE | No | Panel session lifetime, seconds (multi-user mode) | 604800 |
| MCP_SANDBOX_MODE | No | Registry-eval only. Skips DB, indexer, embedding provider, and /mcp auth. | false |
| IMPORT_ALLOW_HTTP | No | Let import_from_url fetch plain http | false |
| OLLAMA_KEEP_ALIVE | No | How long Ollama keeps the model resident | -1 |
| EMBEDDING_PROVIDER | No | Embedding provider: ollama or openai | ollama |
| MAX_FILE_READ_BYTES | No | read_file cap (10 MB) | 10485760 |
| SESSION_COOKIE_NAME | No | Panel session cookie name | omcp_session |
| EMBEDDING_DIMENSIONS | No | pgvector column width | 1024 |
| MAX_FILE_WRITE_BYTES | No | write_file cap (25 MB) | 26214400 |
| MCP_RATE_LIMIT_BURST | No | Capacity of the general bucket | 30 |
| INDEX_INTERVAL_SECONDS | No | Periodic reindex cadence | 300 |
| MCP_AUTH_FAILURE_LIMIT | No | Failed /mcp authentications one client address may make per window before a 429 | 60 |
| OPENAI_EMBEDDING_MODEL | No | OpenAI model name | text-embedding-3-small |
| MAX_READ_RESPONSE_CHARS | No | read_note / read_file cap on what is returned to the caller | 40000 |
| MCP_RATE_LIMIT_PER_MINUTE | No | Sustained tool calls per minute per principal | 120 |
| SESSION_PURGE_RETAIN_DAYS | No | How long a dead panel session row is kept | 7 |
| EMBEDDING_EXCLUDE_PATTERNS | No | Globs skipped by the embedder | ["*.excalidraw.md","Excalidraw/*"] |
| MCP_WRITE_RATE_LIMIT_BURST | No | Capacity of the write bucket | 15 |
| OAUTH_KNOWN_REDIRECT_HOSTS | No | Redirect hosts the consent screen badges as known connector destinations. JSON or CSV. | claude.ai,chatgpt.com |
| TRANSFER_TOKEN_TTL_SECONDS | No | Default life of a transfer link | 600 |
| DEFAULT_DAILY_REQUEST_LIMIT | No | Daily quota a newly created API key receives | 5000 |
| MCP_AUTH_FAILURE_TABLE_SIZE | No | Counter slots in the fixed-size address table | 4096 |
| TRANSFER_MAX_UPLOAD_SECONDS | No | How long one claimed upload may stream before the token is spent | 600 |
| WRITE_PRECONDITION_REQUIRED | No | Require expected_hash on supported destructive calls | false |
| SESSION_TOUCH_INTERVAL_SECONDS | No | How stale a session's last_seen_at may get before a validated GET/HEAD rewrites it | 60 |
| MCP_AUTH_FAILURE_WINDOW_SECONDS | No | Window for auth failure budget | 300 |
| MCP_WRITE_RATE_LIMIT_PER_MINUTE | No | Sustained vault-mutating calls per minute per principal | 60 |
| TRANSFER_MAX_CONCURRENT_UPLOADS | No | Simultaneous upload streams | 4 |
| MCP_REFUSAL_LOG_INTERVAL_SECONDS | No | How long one rate-refusal coalescing window stays open | 10 |
| MCP_LIMITER_MAX_TRACKED_PRINCIPALS | No | Principals holding their own limiter entry before sharing one overflow entry | 10000 |
| VAULT_ALLOW_NAMED_STAGING_FALLBACK | No | Accept named staging on filesystems without O_TMPFILE | false |
| VAULT_ROOT_OBSERVE_TIMEOUT_SECONDS | No | How long the vault-root overlap check waits on one root before giving up on it. Multi-user mode only. | 10 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues