Skip to main content
Glama

palace-mcp

MCP server that exposes an Obsidian vault to AI assistants via the Local REST API plugin.

Built with FastMCP. Agents can list, read, write, search, and delete notes — and read whichever note is currently open in Obsidian.

Prerequisites

  • Obsidian with the Local REST API plugin installed and running

  • Python 3.12+

  • uv (recommended) or pip

Copy your API key from the plugin settings in Obsidian before continuing.

Related MCP server: obsidian-local-mcp

Installation

git clone <repo-url> palace-mcp
cd palace-mcp
uv sync

Configuration

Variable

Required

Default

Description

OBSIDIAN_API_KEY

yes

—

Bearer token from the Local REST API plugin

OBSIDIAN_HOST

no

127.0.0.1

Host where Obsidian's REST API listens

OBSIDIAN_PORT

no

27123

Port for the REST API

OBSIDIAN_PROTOCOL

no

http

http or https

PALACE_APPEND_DENY

no

/Context/,/System/,Index.md

Comma-separated paths where append_note is blocked

When using HTTPS with the plugin's self-signed certificate, certificate verification is skipped automatically.

Running

Start the server over stdio (the default transport for MCP clients):

export OBSIDIAN_API_KEY="your-api-key"
uv run python server.py

Or via FastMCP:

uv run fastmcp run server.py

Cursor setup

Add to your MCP config (e.g. ~/.cursor/mcp.json):

{
  "mcpServers": {
    "obsidian-palace": {
      "command": "uv",
      "args": ["run", "python", "server.py"],
      "cwd": "/path/to/palace-mcp",
      "env": {
        "OBSIDIAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

Restart Cursor or reload MCP servers after saving.

Tools

Tool

Description

list_notes

List files and folders. Pass a subdirectory path, or leave empty for the vault root.

read_note

Read a note's full contents by vault-relative path (e.g. People/Alice.md).

write_note

Create a new note or overwrite an existing one.

append_note

Append text to the end of a note. Creates the note if it doesn't exist.

search_notes

Full-text search; returns matching filenames ranked by relevance.

active_note

Return the contents of the note currently open in Obsidian.

delete_note

Permanently delete a note. Irreversible — use with care.

Append protection

Some vault paths are treated as overwrite-only. Appending to them can silently stack duplicate content inside a single note, which is hard to detect later.

By default, append_note is refused for paths matching:

  • /Context/ (any note under a Context folder)

  • /System/ (any note under a System folder)

  • Index.md (any file named Index.md)

Use write_note to replace these notes instead. Override the deny list with the PALACE_APPEND_DENY environment variable.

License

MIT

Available Tools

7 tools
active_noteA

Return the contents of the note currently open in Obsidian.

Inputs: no named parameters. Returns: result

append_noteA

Append text to the end of a note (creates the note if it doesn't exist).

Inputs: path (required), content (required). Returns: result

delete_noteA

Permanently delete a note. Use with care — this is irreversible.

Inputs: path (required). Returns: result

list_notesA

List files and folders. Pass a subdirectory path, or leave empty for the vault root.

Inputs: directory. Returns: result

read_noteA

Read a note's full contents by vault-relative path, e.g. 'People/Alice.md'.

Inputs: path (required). Returns: result

search_notesA

Full-text search the vault; returns matching filenames ranked by relevance.

Inputs: query (required). Returns: result

write_noteA

Create a new note or OVERWRITE an existing one at the given vault-relative path.

Inputs: path (required), content (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 7 tools

    Disambiguation5/5

    Each tool maps to a distinct file operation: listing, reading, writing, appending, searching, accessing the active note, and deleting. There is no meaningful overlap between tool purposes.

    Naming Consistency4/5

    Most tools follow a clear verb_note pattern: read_note, write_note, append_note, delete_note, and search_notes. The deviations are minor: list_notes uses plural and active_note is adjective_noun, but the overall convention is still predictable.

    Tool Count5/5

    Seven tools is a well-scoped set for an Obsidian vault server. Each tool covers a necessary note operation without unnecessary bloat.

    Completeness4/5

    The core note lifecycle is covered: list, read, write, append, search, and delete. Missing operations like rename, move, or folder management are minor gaps that agents can usually work around by writing to a new path.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      Provides an MCP server that allows AI assistants to interact with Obsidian vaults, enabling reading/writing notes, managing metadata, searching content, and working with daily notes.
      37
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A local MCP server that wraps the Obsidian CLI to give AI assistants direct access to read, edit, and manage notes within an Obsidian vault. It enables advanced operations such as frontmatter property management, context-aware searching, and the execution of internal Obsidian commands.
      2
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A lightweight MCP server that enables AI assistants to securely read, create, and modify notes in an Obsidian vault, with support for semantic search and web scraping.
      3,971 npm
      MIT