MCP Hub
Back to servers

Obsidian Palace MCP

Turns an Obsidian vault into an AI memory palace by providing tools for intent-based storage, full-text search, and Dataview query support with automated link management.

Tools
19
Updated
Dec 12, 2025

Obsidian Palace MCP

npm version License: AGPL-3.0 Node.js GitHub Sponsors

An MCP server that turns your Obsidian vault into an AI memory palace.

What is this?

Obsidian Palace MCP enables AI assistants (Claude, ChatGPT, or any MCP-compatible client) to use your Obsidian vault as a persistent memory store. The AI can:

  • Store knowledge using intent-based storage (AI says WHAT, Palace decides WHERE)
  • Retrieve information using full-text search or structured queries
  • Auto-link notes by detecting mentions of existing note titles
  • Check before storing to prevent duplicates and expand existing knowledge
  • Query with Dataview using familiar DQL syntax
  • Follow standards defined in your vault
  • Track provenance - know where every piece of knowledge came from

v2.0 Features

FeatureDescription
🧠 Intent-Based StorageAI expresses intent; Palace resolves location
📚 Multi-Vault SupportMultiple vaults with read/write access control
⚛️ Atomic NotesAuto-splitting large content into hub + children
📋 Standards SystemAI follows user-defined binding standards
🔗 Auto-LinkingAutomatically creates [[wiki-links]] between related notes
📊 Dataview QueriesQuery your vault using DQL syntax
📍 ProvenanceTrack source, confidence, and verification status
🤖 AI-AgnosticWorks with any MCP-compatible client
Fast SearchSQLite FTS5 full-text search index
👁️ Live SyncWatches for external changes to your vault
Context ClarificationAI asks for missing context before storing

Installation

npm install -g obsidian-palace-mcp

Or use directly with npx:

npx obsidian-palace-mcp

Quick Start

1. Configure Claude Desktop / Claude Code

Add to your MCP client configuration:

Single Vault (Quick Setup):

{
  "mcpServers": {
    "obsidian-palace": {
      "command": "npx",
      "args": ["obsidian-palace-mcp"],
      "env": {
        "PALACE_VAULTS": "/path/to/your/obsidian/vault:main:rw"
      }
    }
  }
}

Multi-Vault (Quick Setup):

{
  "mcpServers": {
    "obsidian-palace": {
      "command": "npx",
      "args": ["obsidian-palace-mcp"],
      "env": {
        "PALACE_VAULTS": "/path/to/work:work:rw,/path/to/personal:personal:rw",
        "PALACE_DEFAULT_VAULT": "work"
      }
    }
  }
}

Multi-Vault (Config File):

{
  "mcpServers": {
    "obsidian-palace": {
      "command": "npx",
      "args": ["obsidian-palace-mcp"],
      "env": {
        "PALACE_CONFIG_PATH": "~/.config/palace/config.yaml"
      }
    }
  }
}

2. Create a Vault Config (Optional)

Create .palace.yaml in your vault root for custom structure mapping:

vault:
  name: my-knowledge
  description: "My knowledge base"

structure:
  technology:
    path: "technologies/{domain}/"
  command:
    path: "commands/{domain}/"
  project:
    path: "projects/{project}/"

See Configuration Guide for full options.

Tools

Core Tools

ToolDescription
palace_storeStore knowledge with intent-based resolution
palace_checkCheck for existing knowledge before storing
palace_readRead a specific note
palace_improveUpdate existing notes intelligently
palace_recallSearch the vault for information

Structure & Navigation

ToolDescription
palace_listList notes in a directory
palace_structureGet vault directory tree
palace_vaultsList configured vaults

Graph Intelligence

ToolDescription
palace_linksGet backlinks and outgoing links
palace_orphansFind notes with no connections
palace_relatedFind related notes
palace_autolinkScan vault and create wiki-links

Queries

ToolDescription
palace_dataviewExecute Dataview (DQL) queries
palace_queryProperty-based queries

Standards & AI Support

ToolDescription
palace_standardsLoad binding standards for AI
palace_standards_validateValidate notes against standards
palace_clarifyGenerate clarifying questions for incomplete context

Sessions

ToolDescription
palace_session_startStart a research session
palace_session_logLog activity to current session

Knowledge Organization

Knowledge Layers

Palace organizes knowledge into three layers:

Layer 1: Technical (never project-specific)

  • technologies/ - Technology documentation
  • commands/ - CLI commands and scripts
  • reference/ - Quick references

Layer 2: Domain (reusable knowledge)

  • standards/ - Standards and conventions
  • patterns/ - Reusable patterns
  • research/ - Research findings

Layer 3: Contextual (project/client specific)

  • projects/ - Project decisions and configs
  • clients/ - Client-specific knowledge

Intent-Based Storage

AI expresses WHAT to store; Palace determines WHERE:

palace_store({
  title: "Docker Bridge Networking",
  content: "...",
  intent: {
    knowledge_type: "command",
    domain: ["docker", "networking"],
    scope: "general"
  }
})
// Resolves to: commands/docker/networking/docker-bridge-networking.md

Atomic Notes

Large content is automatically split into hub + atomic notes:

  • Max 200 lines per atomic note
  • Max 6 H2 sections per note
  • Hub notes (_index.md) provide navigation

Note Format

Notes use YAML frontmatter for metadata:

---
type: technology
status: active
domain: [kubernetes, networking]
source:
  origin: ai:research
  confidence: 0.8
  verified: false
tags: [kubernetes, networking]
created: 2025-12-05T14:30:00Z
modified: 2025-12-05T14:30:00Z
---

# Kubernetes Networking

Content here...

Knowledge Types

TypeLayerPurpose
technology1Technology documentation
command1CLI commands and snippets
reference1Quick reference material
standard2Standards and conventions
pattern2Reusable patterns
research2Research findings
decision3Project decisions
configuration3Project-specific configs
troubleshooting1-2Problems and solutions
notevariesGeneral notes

Example Usage

Storing Knowledge (v2.0 way)

AI: "I'll document this Docker networking command."

[Uses palace_check to verify no existing note]
[Uses palace_store with:
  - knowledge_type: "command"
  - domain: ["docker", "networking"]
  - scope: "general"
  - technologies: ["docker"]
]

Finding Information

User: "What do we know about setting up Tailscale?"

AI: [Uses palace_recall with query: "tailscale setup"]
    [Uses palace_related to find connected topics]
    "Based on your notes, here's what we have..."

Following Standards

AI starts session:
[Uses palace_standards({ binding: 'required' })]
[Acknowledges standards before proceeding]

User: "Help me with a git commit"
AI: [Follows git workflow standard from vault]

Environment Variables

VariableRequiredDefaultDescription
PALACE_VAULTSYes*-Vault config: path:alias:mode,...
PALACE_CONFIG_PATHNo~/.config/palace/config.yamlGlobal config file
PALACE_DEFAULT_VAULTNoFirst vaultDefault vault alias
PALACE_LOG_LEVELNoinfodebug, info, warn, error
PALACE_WATCH_ENABLEDNotrueWatch for file changes

*Required unless PALACE_CONFIG_PATH is set pointing to a config file.

Troubleshooting

Server won't start

"PALACE_VAULTS is required"

  • Ensure you've set PALACE_VAULTS in your MCP client config or use PALACE_CONFIG_PATH
  • Format: path:alias:mode (e.g., /path/to/vault:main:rw)

"Cannot find module 'better-sqlite3'"

  • Run npm rebuild better-sqlite3 if you installed globally
  • This native module may need recompilation for your Node version

Notes not appearing

Check vault path

  • Verify the path in PALACE_VAULTS points to your actual Obsidian vault
  • The path should contain .obsidian/ folder

Check ignore patterns

  • Files in .obsidian/, templates/, or directories with .palace-ignore are skipped
  • Notes with palace_ignore: true in frontmatter are also skipped

Search not finding notes

Rebuild the index

  • Delete .palace/index.sqlite in your vault and restart the server
  • The index will be rebuilt automatically on startup

Permission errors

Read-only vault

  • Check the mode in PALACE_VAULTS - use :rw for read-write, :ro for read-only
  • Verify file system permissions on the vault directory

Documentation

Development

# Clone the repository
git clone https://github.com/Probably-Computers/obsidian-palace-mcp.git
cd obsidian-palace-mcp

# Install dependencies
npm install

# Run in development mode
npm run dev

# Run tests
npm test

# Build for production
npm run build

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

See CONTRIBUTING.md for detailed guidelines.

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see LICENSE for details.

Commercial Use

If you need to use Obsidian Palace MCP in proprietary software or as part of a commercial SaaS without open-sourcing your modifications, commercial licenses are available. See LICENSE-COMMERCIAL.md for options.

Support the Project

If you find Obsidian Palace MCP useful, consider supporting its development:

Credits

Built by Probably Computers

Inspired by the Luci project's Memory Palace concept.

Reviews

No reviews yet

Sign in to write a review