An MCP server for interacting with Obsidian vaults through the Obsidian Local REST API plugin. It can read, list, search, create, append, patch, replace, tag, and delete notes, and optionally execute Obsidian commands over STDIO or Streamable HTTP.
From the registry: MCP server for Obsidian vaults — read, write, search, and edit notes via the Local REST API plugin.
Please install the `obsidian-mcp-server` MCP server into my current AI client (that's you).
Required prerequisites (do these first if not already done):
- **Install and enable the Obsidian Local REST API plugin** — In Obsidian, install and enable the Obsidian Local REST API plugin for your vault. Generate an API key in Settings → Community Plugins → Local REST API. (https://github.com/coddingtonbear/obsidian-local-rest-api/)
- **Enable the plugin HTTP server or configure HTTPS** — The server defaults to connecting to the plugin at http://127.0.0.1:27123. Enable the plugin's "Non-encrypted (HTTP) Server" setting to use that default, or set OBSIDIAN_BASE_URL to your HTTPS endpoint instead.
Optional prerequisites:
- Install Node.js or Bun — Install Node.js v22+ or Bun v1.3.11+ to run the server. The simplest portable path uses npx, so Node.js is sufficient. (https://bun.sh/)
Canonical MCP server config (stdio transport):
- command: `npx`
- args: ["-y","obsidian-mcp-server@latest"]
- required environment variables:
- `MCP_TRANSPORT_TYPE`: Transport mode for the MCP server. Use stdio for MCP client configuration. (example: `stdio`)
- `OBSIDIAN_API_KEY`: Bearer token for the Obsidian Local REST API plugin. (example: `<your-obsidian-local-rest-api-key>`)
- optional environment variables:
- `MCP_LOG_LEVEL`: Log level in RFC 5424 format. (example: `info`)
- `OBSIDIAN_BASE_URL`: Base URL of the Obsidian Local REST API plugin. Set this if you are not using the default local HTTP endpoint, such as when using the always-on HTTPS port. (example: `<your-obsidian-base-url>`)
- `OBSIDIAN_VERIFY_SSL`: Whether to verify the TLS certificate when connecting over HTTPS. Default is false because the plugin commonly uses a self-signed certificate. (example: `false`)
- `OBSIDIAN_REQUEST_TIMEOUT_MS`: Per-request timeout in milliseconds for calls to the Obsidian Local REST API. (example: `30000`)
- `OBSIDIAN_ENABLE_COMMANDS`: Opt-in flag to enable the Obsidian command-palette tools obsidian_list_commands and obsidian_execute_command. (example: `true`)
- `MCP_AUTH_MODE`: Authentication mode for the server. Supported values are none, jwt, or oauth. (example: `jwt`)
- `MCP_AUTH_SECRET_KEY`: Shared secret used to verify incoming JWTs. Required when MCP_AUTH_MODE=jwt. (example: `<your-jwt-secret>`)
- `OTEL_ENABLED`: Enable OpenTelemetry tracing. (example: `true`)
Note: The README also supports Streamable HTTP transport, but the simplest portable client config is stdio via npx. For HTTP mode, the server uses MCP_TRANSPORT_TYPE=http and defaults to host 127.0.0.1, port 3010, endpoint path /mcp. Additional HTTP-only env vars are MCP_HTTP_HOST, MCP_HTTP_PORT, and MCP_HTTP_ENDPOINT_PATH.
Add this MCP server to my current client's config in the correct format for you. If you need secrets or credentials I haven't provided, ASK me — do not invent values or leave raw placeholders. After adding it, tell me how to verify the server is connected.OBSIDIAN_API_KEYrequiredAPI key for the Obsidian Local REST API plugin.OBSIDIAN_ENABLE_COMMANDSEnables command listing and command execution tools.AI orchestration with hive-mind swarms, neural networks, and 87 MCP tools for enterprise dev.