Skip to main content
Glama

obsidian-mcp

An MCP server that gives an AI agent read and write access to a folder of Markdown notes. Point it at an Obsidian vault, a Logseq graph, or any notes directory.

Four tools, no dependencies beyond the MCP SDK, one file.

search_notes   full-text search with surrounding context
read_note      read one note by relative path
list_notes     enumerate notes, optionally under a subfolder
write_note     create a note, or append to an existing one

Setup

pip install -r requirements.txt

Register it with Claude Code by adding a .mcp.json at the root of your project:

{
  "mcpServers": {
    "vault": {
      "command": "python",
      "args": ["/path/to/server.py"],
      "env": { "VAULT_ROOT": "/path/to/your/vault" }
    }
  }
}

Restart your session. You'll be asked to approve the server on first use — it can write files, so that prompt is doing real work.

Related MCP server: mcp_notes

Configuration

variable

default

meaning

VAULT_ROOT

current directory

the folder to expose

VAULT_READONLY

unset

set to 1 to drop write_note entirely

VAULT_MAX_RESULTS

20

search result cap

VAULT_MAX_BYTES

100000

truncation limit for read_note

VAULT_READONLY=1 removes the write tool from the advertised list rather than just refusing calls, so an agent never sees a capability it can't use.

Two things worth knowing

Path traversal is checked properly. Every caller-supplied path is resolved and compared against the vault root:

p = (VAULT_ROOT / rel).resolve()
if not p.is_relative_to(VAULT_ROOT):
    raise ValueError(...)

Resolve-then-compare, not a string prefix test — .. and symlinks both defeat string comparison, and without this ../../.ssh/id_rsa is a valid note path.

Errors are returned, not raised. A tool that throws takes the server down, and a dead MCP server is a silent one — the agent simply stops having the capability and carries on without mentioning it. Returning the error text means the agent can see what went wrong and tell you.

Scope

Deliberately small. No embeddings, no vector index, no frontmatter parsing, no graph traversal. Full-text search over Markdown covers most of what an agent actually needs, and it has no index to rebuild or fall out of date.

Search returns one hit per note, which keeps results readable when a term appears forty times in one file.

Licence

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    -
    quality
    C
    maintenance
    MCP server for AI agents to read, write, and organize notes in a local-first, human-in-the-loop note-taking app.
    Last updated
    4
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    MCP server for saving, reading, and listing Markdown notes in the filesystem. Enables agents to persistently store reports or notes as plain Markdown files.
    Last updated
    3
  • A
    license
    -
    quality
    B
    maintenance
    Exposes a personal markdown-based second brain (Obsidian-style) as an MCP server, enabling agents to search, read, and write notes with privacy controls.
    Last updated
    MIT
  • F
    license
    -
    quality
    B
    maintenance
    A fully offline, secure MCP server that enables AI agents to search, read, write, and list local markdown notes using SQLite FTS5, with directory traversal protection.
    Last updated
    1

View all related MCP servers

Related MCP Connectors

  • Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.

  • Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.

  • MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dillonpcousins/obsidian-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server