Skip to main content
Glama
bbdaniels

obsidian-mcp

by bbdaniels

Obsidian MCP

An MCP (Model Context Protocol) server that gives Claude Code read/write access to your Obsidian vault.

Documentation | PyPI | GitHub

Quick Start with Claude Code

The fastest way to get up and running:

claude mcp add obsidian -- uvx obsidian-mcp

Then restart Claude Code and tell it:

"Configure obsidian vault at /path/to/your/vault"

That's it -- Claude can now read, write, and search your Obsidian notes.

Related MCP server: Vault Cortex

Features

  • Read & write notes - Create, edit, and append to markdown files

  • Search - Full-text search across your vault

  • Daily notes - Read or append to daily notes with configurable date format

  • Browse - List files and folders in your vault

  • Secure - Only accesses your configured vault directory

Installation

If you set up via the Quick Start above, you don't need to install anything. uvx runs the package directly from PyPI in an isolated environment each time.

Via pipx (persistent install)

pipx install obsidian-mcp

Then configure Claude Code:

claude mcp add obsidian -- obsidian-mcp

Via pip

pip install obsidian-mcp

Then configure Claude Code:

claude mcp add obsidian -- python3 -m obsidian_mcp.server

From source

git clone https://github.com/bbdaniels/obsidian-mcp.git
cd obsidian-mcp
pip install -e .

Then configure Claude Code:

claude mcp add obsidian -- obsidian-mcp

First-Time Setup

Once configured, tell Claude:

"Configure obsidian vault at /path/to/your/vault"

Claude will run obsidian_configure to set up the vault path. Your configuration is stored at ~/.config/obsidian-mcp/config.json.

Available Tools

Tool

Description

obsidian_configure

Set vault path and daily notes settings

obsidian_status

Show current configuration and vault stats

obsidian_read

Read a note's contents

obsidian_write

Create or overwrite a note

obsidian_append

Append to a note (optionally under a heading)

obsidian_search

Search notes by content

obsidian_list

Browse vault structure

obsidian_daily

Read/append to daily notes

Built-in Prompts

The server includes MCP prompts that provide structured workflows for common note-taking patterns. These show up as invocable prompts in Claude Code.

Prompt

Description

session-start

Review daily notes and project context before starting work

session-end

Document accomplishments, decisions, and open questions at end of session

project-checkin

Review and update a specific project's documentation

Each prompt accepts an optional project argument to focus on a specific project folder.

Automatic Instructions

When this server is connected, Claude automatically receives guidance about when and how to use the Obsidian tools -- no CLAUDE.md configuration needed. The built-in instructions tell Claude to:

  • Check for project context at the start of sessions

  • Document decisions as they're made (not just at the end)

  • Update daily notes with session summaries

  • Search for existing notes before creating new ones

Example Usage

Once configured, you can ask Claude things like:

  • "Search my notes for authentication patterns"

  • "Read my project architecture note"

  • "Append today's session summary to my daily note"

  • "Create a new note at Projects/my-project/decisions.md"

  • "List all notes in my Work folder"

Configuration

Config is stored at ~/.config/obsidian-mcp/config.json:

{
  "vault_path": "/path/to/your/vault",
  "daily_notes_folder": "Daily Notes",
  "daily_notes_format": "%Y-%m-%d"
}

Options

Option

Default

Description

vault_path

(required)

Absolute path to your Obsidian vault

daily_notes_folder

Daily Notes

Folder for daily notes

daily_notes_format

%Y-%m-%d

Date format for daily note filenames

Customizing Claude Instructions (Optional)

The server includes built-in instructions that guide Claude's note-taking behavior automatically. For additional customization, you can add to ~/.claude/CLAUDE.md:

## Obsidian Note-Taking

### Project Notes
- Vault uses project folders (e.g., MyProject/) with notes like Technical Notes.md, Overview.md
- Always update BOTH daily notes AND project-specific notes
- Include commit hashes and file references in technical notes

License

MIT

Available Tools

8 tools
obsidian_appendA

Append content to an existing note, or create it if it doesn't exist. Prefer this over obsidian_write when adding to existing project documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the note relative to vault root
contentYesContent to append to the note
headingNoOptional: append under this heading (creates if doesn't exist)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover behavioral traits. It notes the tool can create notes if they don't exist. However, it doesn't detail append positioning, newline handling, or behavior when heading parameter is used beyond schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff, immediately addresses the key action and usage preference. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple append tool with 3 well-documented parameters and no output schema, the description covers the core behavior and a usage hint. Adequate but could optionally detail edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all parameters. The tool description adds no additional meaning beyond restating the purpose, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool appends content to an existing note or creates it if missing. It also distinguishes from the sibling obsidian_write, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises preferring this over obsidian_write when adding to existing project documentation. Does not explicitly mention when to use alternatives (e.g., full overwrite), but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obsidian_configureA

Configure the Obsidian vault path and settings. Run this first to set up your vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYesAbsolute path to your Obsidian vault folder
daily_notes_folderNoFolder for daily notes (default: 'Daily Notes')
daily_notes_formatNoDate format for daily notes (default: '%Y-%m-%d')

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully disclose behavioral traits. It only states that the tool configures settings, but does not mention side effects (e.g., overwriting existing config), persistence, error handling, or required prerequisites beyond running first.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose and usage order. Every word contributes, with no redundancy or unnecessary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity and absence of output schema, the description covers the basic purpose and initial use case. However, it lacks information on return values, error scenarios, or behavior when running multiple times, which would be helpful for a configuration tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all three parameters described in the schema. The description adds no additional meaning beyond 'Run this first', so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool configures the Obsidian vault path and settings, and explicitly says to run it first. This distinguishes it from sibling tools that perform different operations like appending, writing, or reading notes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance to 'Run this first to set up your vault', indicating it is a prerequisite. However, it does not specify when not to use it or mention alternatives, leaving some ambiguity about subsequent calls.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obsidian_dailyA

Read or append to today's daily note. Creates the note if it doesn't exist. Use this at the end of work sessions to document accomplishments, decisions, and open questions.

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesWhether to read or append to the daily note
contentNoContent to append (required if action is 'append')
dateNoOptional: specific date (YYYY-MM-DD format). Defaults to today.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description bears full burden. It discloses that the note is created if missing, a key behavioral trait. However, it does not specify read behavior when note doesn't exist, nor details on authorization, rate limits, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. First sentence defines the action and behavior; second gives usage guidance. No redundant or extraneous words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Simple tool with full schema coverage, but no output schema. The description omits return value details and leaves ambiguity about read action on missing notes (does it create or return empty?). Adequate but not fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline 3. The description adds context by naming the resource as 'daily note' and creation behavior, but does not provide additional per-parameter semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Read or append to today's daily note' with a specific verb and resource. It distinguishes from sibling tools like obsidian_read and obsidian_append by focusing on 'today's daily note' and noting creation behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use case: 'Use this at the end of work sessions to document accomplishments, decisions, and open questions.' Lacks explicit when-not-to-use or alternatives, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obsidian_listB

List notes and folders in the vault. Use at the start of sessions to discover project folders and available documentation.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoFolder to list (default: vault root)
recursiveNoInclude subfolders recursively (default: false)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It only states the action without disclosing any behavioral traits such as read-only nature, permissions, or side effects. The implied read-only operation is not explicitly confirmed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with the key information front-loaded. Every word adds value; no wasted space.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations. The description gives a usage hint (start of sessions) but does not describe the format of the returned list or clarify recursion behavior, which is left to the schema. Adequate but could be more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Both parameters are fully described in the input schema (100% coverage), so the description adds no additional parameter information beyond the schema. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List notes and folders in the vault', which is a specific verb and resource. It is distinguishable from sibling tools like obsidian_search and obsidian_read, though it does not explicitly differentiate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description suggests using the tool 'at the start of sessions to discover project folders and available documentation', which provides some usage context but no explicit when-not-to-use guidance or comparison with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obsidian_readB

Read the contents of a note from the Obsidian vault. Returns the full markdown content.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the note relative to vault root (e.g., 'Projects/my-project.md' or 'Projects/my-project')

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description only says 'Read the contents' and 'Returns full markdown'. It does not disclose behavior on invalid paths, idempotency, or any safety guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with action and object. Second sentence adds return type. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with one parameter, the description covers the essential: what it reads and what it returns. Lacks error handling info but acceptable given low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add extra meaning beyond the schema's parameter description. Schema already provides path examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool reads a note and returns full markdown content. It distinguishes from siblings like obsidian_list (lists notes) and obsidian_search (searches content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives (e.g., obsidian_list for listing, obsidian_search for searching). Missing context on prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obsidian_statusA

Show current configuration and vault status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It correctly indicates a read operation (Show) with no destructive side effects, but lacks details like caching behavior or response structure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that efficiently conveys the purpose without any unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, no output schema, and a simple read purpose, the description is fully complete. It tells the agent exactly what the tool does without needing further details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so baseline is 4. The description does not need to add parameter information, as the schema already covers 100%.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Show current configuration and vault status' clearly states the tool's function with a specific verb ('Show') and resource ('configuration and vault status'), distinguishing it from sibling tools that perform append, configure, daily, list, read, search, or write operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. However, given the distinct purpose and sibling tool names, the use case for checking status is implied without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obsidian_writeA

Create or overwrite a note in the Obsidian vault. Creates parent folders if needed.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesPath to the note relative to vault root
contentYesFull markdown content for the note

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description fully carries behavioral context. It notes automatic parent folder creation (a side effect). Otherwise, the behavior is straightforward; no contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no redundant information. Every word contributes meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (2 params, no output schema), the description covers the core function and a key side effect. Could mention error handling or return value, but not necessary for this straightforward write tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema descriptions for 'path' and 'content' are adequate. The description adds value by clarifying that parent folders are created if needed, supplementing path semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Create or overwrite a note in the Obsidian vault', specifying the verb (create/overwrite) and resource (note). It distinguishes from sibling tools like obsidian_append (append) and obsidian_read (read).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies use for creation or full replacement, contrasting with obsidian_append for appending. However, lacks explicit 'when not to use' or mention of alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.2.0
    • First observedobsidian_append
    • First observedobsidian_configure
    • First observedobsidian_daily
    • First observedobsidian_list
    • First observedobsidian_read
    • First observedobsidian_search
    • First observedobsidian_status
    • First observedobsidian_write

TDQS

A4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: append vs write, daily for daily notes, list for browsing, read for viewing, search for finding, configure/status for setup. No overlapping functionality.

Naming Consistency5/5

All tools follow the 'obsidian_<verb>' pattern in snake_case, creating a predictable and uniform naming scheme. Even 'daily' fits as a verb-like noun.

Tool Count5/5

With 8 tools, the set covers all essential note-taking operations (CRUD, search, daily notes, configuration) without excess or deficiency.

Completeness4/5

The tool set covers create, read, update (append), search, list, and configuration. However, it lacks a delete or trash operation, which is a minor gap for full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

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/bbdaniels/obsidian-mcp'

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