io.github.cyanheads

obsidian-mcp-server

MCP server for Obsidian — read, write, search, and surgically edit notes, tags, and frontmatter.

communityapplication

Package Details

Transportstdio
Runtimenode

Package Arguments

Positional
Position 0
run
Position 1
start:stdio

Environment Variables

OBSIDIAN_API_KEY(str)
Required

Bearer token for the Obsidian Local REST API plugin (Settings → Community Plugins → Local REST API).

OBSIDIAN_BASE_URL(str)
Default:http://127.0.0.1:27123

Base URL of the Obsidian Local REST API. Default: http://127.0.0.1:27123 (enable "Non-encrypted (HTTP) Server" in plugin settings). Use https://127.0.0.1:27124 for the always-on HTTPS port (self-signed cert; pair with OBSIDIAN_VERIFY_SSL=false).

OBSIDIAN_VERIFY_SSL(str)
Default:false

Whether to verify the TLS certificate on the Obsidian endpoint. Default false because the plugin uses a self-signed cert.

OBSIDIAN_REQUEST_TIMEOUT_MS(str)
Default:30000

Per-request timeout in milliseconds.

OBSIDIAN_ENABLE_COMMANDS(str)
Default:false

Opt-in flag for the command-palette pair (obsidian_list_commands + obsidian_execute_command). Off by default — Obsidian commands are opaque and can be destructive.

OBSIDIAN_READ_PATHS(str)

Optional comma-separated vault-relative folder allowlist for reads. Prefix-based with implicit recursion; case-insensitive; trailing slashes normalized. Unset = full vault. Write paths are implicitly readable. Example: 'public/,projects/'.

OBSIDIAN_WRITE_PATHS(str)

Optional comma-separated vault-relative folder allowlist for writes. Same syntax as OBSIDIAN_READ_PATHS. Unset = full vault. Example: 'projects/,scratch/'.

OBSIDIAN_READ_ONLY(str)
Default:false

Global read-only kill switch. When true, every write is denied regardless of OBSIDIAN_WRITE_PATHS, and the command-palette pair is suppressed (commands can mutate). Useful for shared or public-facing deployments.

OBSIDIAN_OMNISEARCH_URL(str)

Override URL for the Omnisearch plugin HTTP server. Unset derives from OBSIDIAN_BASE_URL host with port 51361. Required only if the Omnisearch plugin is not on the default port.

MCP_LOG_LEVEL(str)
Default:info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

TransportStreamable HTTP
Runtimenode

Package Arguments

Positional
Position 0
run
Position 1
start:http

Environment Variables

OBSIDIAN_API_KEY(str)
Required

Bearer token for the Obsidian Local REST API plugin (Settings → Community Plugins → Local REST API).

OBSIDIAN_BASE_URL(str)
Default:http://127.0.0.1:27123

Base URL of the Obsidian Local REST API. Default: http://127.0.0.1:27123 (enable "Non-encrypted (HTTP) Server" in plugin settings). Use https://127.0.0.1:27124 for the always-on HTTPS port (self-signed cert; pair with OBSIDIAN_VERIFY_SSL=false).

OBSIDIAN_VERIFY_SSL(str)
Default:false

Whether to verify the TLS certificate on the Obsidian endpoint. Default false because the plugin uses a self-signed cert.

OBSIDIAN_REQUEST_TIMEOUT_MS(str)
Default:30000

Per-request timeout in milliseconds.

OBSIDIAN_ENABLE_COMMANDS(str)
Default:false

Opt-in flag for the command-palette pair (obsidian_list_commands + obsidian_execute_command). Off by default — Obsidian commands are opaque and can be destructive.

OBSIDIAN_READ_PATHS(str)

Optional comma-separated vault-relative folder allowlist for reads. Prefix-based with implicit recursion; case-insensitive; trailing slashes normalized. Unset = full vault. Write paths are implicitly readable. Example: 'public/,projects/'.

OBSIDIAN_WRITE_PATHS(str)

Optional comma-separated vault-relative folder allowlist for writes. Same syntax as OBSIDIAN_READ_PATHS. Unset = full vault. Example: 'projects/,scratch/'.

OBSIDIAN_READ_ONLY(str)
Default:false

Global read-only kill switch. When true, every write is denied regardless of OBSIDIAN_WRITE_PATHS, and the command-palette pair is suppressed (commands can mutate). Useful for shared or public-facing deployments.

OBSIDIAN_OMNISEARCH_URL(str)

Override URL for the Omnisearch plugin HTTP server. Unset derives from OBSIDIAN_BASE_URL host with port 51361. Required only if the Omnisearch plugin is not on the default port.

MCP_HTTP_HOST(str)
Default:127.0.0.1

The hostname for the HTTP server.

MCP_HTTP_PORT(str)
Default:3010

The port to run the HTTP server on.

MCP_HTTP_ENDPOINT_PATH(str)
Default:/mcp

The endpoint path for the MCP server.

MCP_AUTH_MODE(str)
Default:none

Authentication mode to use: 'none', 'jwt', or 'oauth'.

MCP_LOG_LEVEL(str)
Default:info

Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').