HomeOther › obsidian-mcp-server

obsidian-mcp-server

Read, write, search, and surgically edit Obsidian notes, tags, and frontmatter via MCP.

TypeScript
★ 686 stars Last pushed 2026-09-23 License: Apache-2.0

Connect

Review any command before running it. Package names and URLs come from the server's own registry entry.

Package (npm 3.6.0)

npx -y [email protected]

Or add to your MCP client config:

{
  "mcpServers": {
    "obsidian-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "<YOUR_VALUE>",
        "OBSIDIAN_BASE_URL": "<YOUR_VALUE>",
        "OBSIDIAN_VERIFY_SSL": "<YOUR_VALUE>",
        "OBSIDIAN_REQUEST_TIMEOUT_MS": "<YOUR_VALUE>",
        "OBSIDIAN_ENABLE_COMMANDS": "<YOUR_VALUE>",
        "OBSIDIAN_READ_PATHS": "<YOUR_VALUE>",
        "OBSIDIAN_WRITE_PATHS": "<YOUR_VALUE>",
        "OBSIDIAN_READ_ONLY": "<YOUR_VALUE>",
        "OBSIDIAN_OMNISEARCH_URL": "<YOUR_VALUE>",
        "MCP_LOG_LEVEL": "<YOUR_VALUE>"
      }
    }
  }
}
  • OBSIDIAN_API_KEY required — Bearer token for the Obsidian Local REST API plugin (Settings → Community Plugins → Local REST API).
  • OBSIDIAN_BASE_URL — 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 — Whether to verify the TLS certificate on the Obsidian endpoint. Default false because the plugin uses a self-signed cert.
  • OBSIDIAN_REQUEST_TIMEOUT_MS — Per-request timeout in milliseconds.
  • OBSIDIAN_ENABLE_COMMANDS — 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 — 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 — Optional comma-separated vault-relative folder allowlist for writes. Same syntax as OBSIDIAN_READ_PATHS. Unset = full vault. Example: 'projects/,scratch/'.
  • OBSIDIAN_READ_ONLY — 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 — 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 — Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

This server takes extra arguments — see its repository.

Package (npm 3.6.0)

Package: npm obsidian-mcp-server

  • OBSIDIAN_API_KEY required — Bearer token for the Obsidian Local REST API plugin (Settings → Community Plugins → Local REST API).
  • OBSIDIAN_BASE_URL — 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 — Whether to verify the TLS certificate on the Obsidian endpoint. Default false because the plugin uses a self-signed cert.
  • OBSIDIAN_REQUEST_TIMEOUT_MS — Per-request timeout in milliseconds.
  • OBSIDIAN_ENABLE_COMMANDS — 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 — 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 — Optional comma-separated vault-relative folder allowlist for writes. Same syntax as OBSIDIAN_READ_PATHS. Unset = full vault. Example: 'projects/,scratch/'.
  • OBSIDIAN_READ_ONLY — 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 — 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 — The hostname for the HTTP server.
  • MCP_HTTP_PORT — The port to run the HTTP server on.
  • MCP_HTTP_ENDPOINT_PATH — The endpoint path for the MCP server.
  • MCP_AUTH_MODE — Authentication mode to use: 'none', 'jwt', or 'oauth'.
  • MCP_LOG_LEVEL — Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').

This server takes extra arguments — see its repository.

Related servers

Data from the Official MCP Registry