← Back to directory
O

Obsidian Local REST API

Community
A secure REST API and MCP server for your Obsidian vault
Category
Filesystem #5 of 24
Stars
★ 3.0k Very popular
Transport
Streamable HTTP
Runtime
Node.js
Credentials
API key / credential required
License
MIT
Last commit
Tools
16
64FMRS · C

A feature-rich MCP server offering complete local API access to Obsidian notes. Best suited for technical users who want to automate note management and AI integration programmatically. Security is a primary concern due to the self-signed certificate and local HTTP server, but functionality-wise, no similar alternative has been seen yet.

Strongest · Documentation 16/20 Weakest · Reliability 7/20

Reliability
7/20
Security and permissions
14/20
Maintenance
13/20
Documentation
16/20
Setup experience
14/20
Why each score
Reliability 7/20
Supplied material is README plus repo metadata only: no manifest, no source, no CI workflows, no committed tests. The README describes a built-in MCP server at /mcp/ over Streamable HTTP with 15 tools whose list is coherent with the documented REST surface, and it even documents error-shaped behavior (deprecation headers, 400/422 rejection of conflicting targeting), so the happy path reads plausibly. However, nothing verifies MCP initialization, the tool-list handshake, or actual tool behavior; the README itself shows client-side friction (Claude Desktop needs an mcp-remote bridge; certificate trust varies per client). Static calibration caps reliability at 12 without execution evidence; with tests/CI absent and per the conservative round-down rule, scored 7.
Security and permissions 14/20
No red line triggered: API-key bearer authentication, server bound to 127.0.0.1, examples use only placeholders, the plain-HTTP endpoint is opt-in with an explicit insecurity warning, and the delete tool defaults to trash, mitigating destructive side effects. Deductions: no per-operation confirmation flow is documented for dangerous actions, no security policy or disclosure channel is visible, the extension API widens the plugin trust boundary by letting other plugins register routes, and the self-signed certificate plus HTTP fallback, while disclosed, is inherently weak. Least-privilege binding and data boundaries are mostly clear, so above 10; still short of 'explicit confirmation + full data-flow disclosure', hence 14.
Maintenance 13/20
Evidence: MIT license, repo not archived, very low open-issue count (2), README shows active versioning (deprecation schedule targeting 6.0), a published typed extension package (obsidian-local-rest-api), a contributing guide, and a known-extension ecosystem. Deductions: commit history, release cadence, dependency-update process, and a security-response channel are not verifiable from the supplied materials. Solid but not full marks: 13.
Documentation 16/20
The README is layered and strong: quick starts for the REST API and four MCP client types, a full endpoint table, MCP tool/resource tables, auth and certificate instructions, deprecation and migration notes, plus links to interactive API docs and a wiki. Deductions: no parameter-level schema for MCP tools in the README (only names and one-line descriptions), troubleshooting content is sparse (mostly certificate warnings), and no explicit limits/resource disclosure. Not a perfect 20, so 16.
Setup experience 14/20
The mainstream path is few-step and concrete: install and enable the Obsidian plugin, copy the API key from settings, paste ready-made client configuration (full JSON for Claude Code/Cursor, an mcp-remote command for Claude Desktop); certificate download/trust and the HTTP fallback are explained, with macOS/Windows paths given. Deductions: Claude Desktop requires Node.js and an mcp-remote bridge, self-signed certificate trust varies by client and adds friction, and static calibration caps setup at 15 without execution evidence (no CI/tests confirm these configs work), so 14.

Static review · not runListed 2026-08-07

Read the FMRS scoring method →

Fit and risk

What it can accessReads local filesWrites / deletes local files

Best for

  • Users who need programmatic control over their Obsidian vault for automation and AI integration.
  • Developers and power users building note-taking automation workflows.
  • Scenarios where AI agents need to act on your notes directly without exporting or manual copying.

Not for

  • Users uncomfortable with technical setup or unable to handle self-signed certificates.
  • Scenarios requiring public access or non-local servers, as the server is designed for local use.
  • Clients that require other MCP transports (like SSE or stdio) or don't support Streamable HTTP.

Required permissions

  • Full read, write, and delete access to all files in your Obsidian vault.
  • Execute any Obsidian command (equivalent to using the command palette).
  • Access information about the currently active file.
  • Open files in the Obsidian UI.

Risks and side effects

  • If the API key is compromised, an attacker can view and modify all your notes, execute commands, or delete files.
  • The self-signed certificate could be susceptible to man-in-the-middle attacks if not verified properly.
  • Executing commands can lead to unintended modifications, such as deleting or overwriting notes.
  • The local HTTP server could be exploited by other local programs if port binding is not secure.

Setup

Before you start

Runtime:Node.js

Install and enable the 'Local REST API' plugin in Obsidian. Then go to Settings → Local REST API to find your API key and certificate. Configure your MCP client to connect to https://127.0.0.1:27124/mcp/ with the API key provided in the Authorization header. For Claude Desktop, use mcp-remote as a bridge.

claude_desktop_config.json
{
  "mcpServers": {
    "obsidian": {
      "type": "http",
      "url": "https://127.0.0.1:27124/mcp/",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "obsidian": {
      "type": "http",
      "url": "https://127.0.0.1:27124/mcp/",
      "headers": {
        "Authorization": "Bearer <your-api-key>"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add --transport http obsidian https://127.0.0.1:27124/mcp/ --header 'Authorization: Bearer <your-api-key>'

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After connecting the client to https://127.0.0.1:27124/mcp/ with the bearer token, tools such as vault_list should appear in the client's tool list; calling vault_list confirms auth and connectivity.

Troubleshooting

  1. Make sure the certificate is trusted. Download and trust the certificate from https://127.0.0.1:27124/ or use the HTTP endpoint (http://127.0.0.1:27123/mcp/) but enable it first in settings.
  2. Verify the API key is correct and that Obsidian is running with the plugin enabled.
  3. Check the Obsidian console (Ctrl+Shift+I) for any plugin errors.

Things to try

Once connected, you can ask your AI assistant things like:

  • List the files in the root of my Obsidian vault
  • Append a line 'Finished API doc cleanup' under the Log heading in my daily note
  • Run a simple full-text search for notes containing 'quarterly summary'
  • Execute an Obsidian command and open today's daily note

Tools 16

vault_list read-only
List files and subdirectories inside a vault directory
vault_read read-only
Read a file's content, frontmatter, tags, and stat
vault_write writes
Create or overwrite a vault file
vault_append writes
Append content to the end of a vault file
vault_patch writes
Patch a specific heading, block reference, or frontmatter field
vault_delete destructive
Delete a vault file (moves to trash by default)
vault_move writes
Move (rename) a vault file to a new path
vault_copy writes
Copy a vault file to a new path
Show 8 more tools
vault_get_document_map read-only
List the headings, block references, and frontmatter fields in a file
active_file_get_path read-only
Return the vault path of the file currently open in Obsidian
search_query read-only
Search using a JsonLogic query against note metadata
search_simple read-only
Full-text search using Obsidian's built-in search
tag_list read-only
List all tags across the vault with usage counts
command_list read-only
List all registered Obsidian commands
command_execute writes
Execute an Obsidian command by ID
open_file writes
Open a file in the Obsidian UI

Use cases

Automate note management workflows, such as creating or updating notes via scripts.
Empower AI assistants to access and edit your Obsidian notes for knowledge management.
Extract information from your notes through structured queries.
Execute Obsidian commands programmatically, such as daily note creation.

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

This MCP server runs as part of an Obsidian plugin, providing a secure REST API to your notes vault. It allows full CRUD operations on files, sectional editing by heading/block/frontmatter, full-text and structured search, and execution of Obsidian commands. The MCP server connects to authorized AI agents over Streamable HTTP, enabling them to interact seamlessly with your notes. All requests are served over HTTPS with a self-signed certificate and gated behind API key authentication.

Similar servers

Source revision 532af3565925 Data synced 2026-10-12 Read the FMRS scoring method