Skip to main content
Glama
quinny1187

Obsidian MCP Server

by quinny1187

Obsidian MCP Server

Direct file system access to Obsidian vaults through Model Context Protocol (MCP).

Features

  • Direct vault access - No plugins or REST API required

  • Auto-discovery - Finds vaults from Obsidian config and common locations

  • Full-text search - Search across all notes with regex support

  • Note operations - Read, write, append, prepend to notes

  • Vault management - List vaults, get statistics, browse files

  • Windows optimized - Handles Windows paths correctly

Related MCP server: Obsidian MCP Server

Installation

  1. Make sure the project is built:

cd C:\repos\obsidian-mcp
npm install
npm run build
  1. Add to Claude Desktop configuration:

Edit %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian-mcp": {
      "command": "node",
      "args": ["C:\\repos\\obsidian-mcp\\dist\\index.js"],
      "env": {
        "OBSIDIAN_VAULT": "C:\\Users\\YourName\\Documents\\YourVault"
      }
    }
  }
}
  1. Restart Claude Desktop

Available Tools

Vault Management

  • list_vaults - Discover available Obsidian vaults

  • get_vault_info - Get statistics about a vault

Note Operations

  • read_note - Read a note with frontmatter and metadata

  • write_note - Create or update a note (overwrite/append/prepend)

  • list_notes - List all notes in vault or folder

  • search_vault - Full-text search with regex and case-sensitive options

Usage Examples

// List available vaults
list_vaults()

// Read a note
read_note(vault_path: "C:\\Users\\Name\\Vault", note_path: "Daily Notes/2024-01-17")

// Write a note
write_note(
  vault_path: "C:\\Users\\Name\\Vault",
  note_path: "New Note",
  content: "# My New Note\n\nContent here",
  mode: "overwrite"
)

// Search vault
search_vault(
  vault_path: "C:\\Users\\Name\\Vault",
  query: "project",
  options: { case_sensitive: false }
)

Vault Discovery

The server automatically discovers vaults from:

  1. Obsidian's configuration (%APPDATA%\obsidian\obsidian.json)

  2. Common locations:

    • %USERPROFILE%\Documents\Obsidian

    • %USERPROFILE%\OneDrive\Documents\Obsidian

  3. Environment variable OBSIDIAN_VAULT

Development

# Install dependencies
npm install

# Build
npm run build

# Run in development
npm run dev

# Type checking
npm run typecheck

Troubleshooting

  • No vaults found: Make sure you have at least one Obsidian vault with .obsidian folder or .md files

  • Permission errors: Run Claude Desktop as the same user who owns the vault files

  • Path not found: Use full absolute paths for vault_path

Future Features

  • Graph navigation (trace links N levels deep)

  • Template execution

  • Smart search with fuzzy matching

  • Active file tracking

  • Partial file updates (patch operations)

  • Frontmatter management

Available Tools

6 tools
get_vault_infoC

Get information about a specific vault

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYesPath to the Obsidian vault

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool retrieves information, implying a read-only operation, but doesn't specify what 'information' includes (e.g., metadata, settings, statistics), whether it requires authentication, or any rate limits. This leaves significant gaps in understanding the tool's behavior beyond basic retrieval.

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 a single, efficient sentence with zero waste. It's appropriately sized for a simple tool, front-loaded with the core purpose, and doesn't include unnecessary details, making it highly concise and well-structured.

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

Completeness2/5

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

Given the complexity of a tool that retrieves information without an output schema, the description is incomplete. It doesn't explain what 'information' entails (e.g., JSON structure, key fields), leaving the agent uncertain about return values. With no annotations and low behavioral transparency, this gap makes the description inadequate for effective tool use.

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?

The input schema has 100% description coverage, with 'vault_path' clearly documented as 'Path to the Obsidian vault'. The description adds no additional meaning beyond this, such as format examples or constraints, so it meets the baseline of 3 where the schema does the heavy lifting without extra value from the description.

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

Purpose3/5

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

The description 'Get information about a specific vault' clearly states the action (get) and resource (vault), but it's vague about what information is retrieved. It distinguishes from siblings like 'list_vaults' (which lists multiple vaults) and 'list_notes' (which lists notes), but doesn't specify what details are included versus excluded, such as metadata or configuration.

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 is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing vault), exclusions (e.g., not for modifying vaults), or comparisons to siblings like 'list_vaults' (for overviews) or 'search_vault' (for content within vaults), leaving usage context unclear.

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

list_notesC

List all notes in a vault or folder

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYesPath to the Obsidian vault
folder_pathNoOptional folder path within vault

TDQS

C2.9/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 states the action ('List all notes') but lacks behavioral details: no mention of pagination, sorting, format of returned notes, error conditions (e.g., invalid paths), or performance implications. For a read operation with zero annotation coverage, this is a significant gap in transparency.

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 a single, efficient sentence with zero waste. It is front-loaded with the core purpose and appropriately sized for a simple list operation. Every word earns its place without redundancy.

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

Completeness2/5

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

Given no annotations and no output schema, the description is incomplete. It doesn't explain what 'List' returns (e.g., note names, metadata, paths), handle edge cases, or provide usage context. For a tool with 2 parameters and no structured output documentation, more detail is needed to guide effective use.

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 the schema already documents both parameters ('vault_path' and 'folder_path') with clear descriptions. The description adds no additional parameter semantics beyond what the schema provides, such as path format examples or interaction between parameters. Baseline 3 is appropriate when schema does the heavy lifting.

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 the verb ('List') and resource ('notes'), specifying the scope ('in a vault or folder'). It distinguishes from siblings like 'read_note' (single note) and 'search_vault' (filtered search), but doesn't explicitly differentiate from 'list_vaults' (different resource). The purpose is specific and unambiguous.

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 is provided. It doesn't mention when to prefer 'search_vault' for filtered results, or clarify the relationship with 'list_vaults' (which lists vaults, not notes). The description implies usage context but offers no explicit alternatives or exclusions.

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

list_vaultsB

List available Obsidian vaults

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool lists vaults but doesn't describe return format (e.g., list of names, paths, metadata), pagination, error conditions, or any side effects. For a tool with zero annotation coverage, this is a significant gap in transparency.

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 a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence ('List available Obsidian vaults') directly contributes to understanding the tool's function, making it optimally concise and well-structured.

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

Completeness2/5

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

Given the tool's simplicity (0 parameters, no output schema), the description is minimal but adequate for basic understanding. However, with no annotations and no output schema, it lacks details on behavioral aspects like return format or error handling. For a list operation, this leaves gaps in contextual completeness.

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 0 parameters with 100% schema description coverage, so the schema fully documents the absence of inputs. The description doesn't add parameter details beyond this, which is appropriate. Baseline 4 is correct for zero-parameter tools, as there's no need to compensate for schema gaps.

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 the action ('List') and resource ('available Obsidian vaults'), making the purpose immediately understandable. It distinguishes from siblings like 'get_vault_info' (detailed info) and 'search_vault' (search within vaults), though it doesn't explicitly mention this differentiation. The description avoids tautology by not just restating the tool name.

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 explicit guidance is provided on when to use this tool versus alternatives like 'get_vault_info' or 'search_vault'. The description implies usage for listing vaults but doesn't specify scenarios, prerequisites, or exclusions. This leaves the agent to infer context from sibling tool names alone.

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

read_noteC

Read a note from the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYesPath to the Obsidian vault
note_pathYesPath to the note relative to vault root (with or without .md extension)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention error handling (e.g., if the note doesn't exist), permissions, rate limits, or what the output format might be (e.g., plain text, metadata). This leaves significant gaps for an agent to understand how the tool behaves beyond its name.

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 a single, efficient sentence that front-loads the core purpose without any wasted words. It's appropriately sized for a simple read operation, making it easy to parse and understand quickly.

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

Completeness2/5

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

Given the lack of annotations and output schema, the description is incomplete for a tool that reads notes. It doesn't explain what is returned (e.g., note content, formatting, errors), which is critical context for an agent to use this tool effectively alongside siblings like 'write_note'. The simplicity of the tool doesn't excuse this gap in behavioral disclosure.

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?

The description adds no parameter semantics beyond what the input schema provides, as schema description coverage is 100% with clear documentation for both parameters. The baseline score of 3 reflects adequate coverage by the schema alone, with the description not compensating or adding extra meaning.

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 the action ('Read') and resource ('a note from the vault'), making the tool's purpose immediately understandable. It doesn't explicitly differentiate from siblings like 'get_vault_info' or 'list_notes', but the verb 'Read' implies retrieving content of a specific note rather than metadata or listings.

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 is provided on when to use this tool versus alternatives like 'list_notes' or 'search_vault'. The description assumes the user already knows which note to read, but it doesn't explain prerequisites or contextual cues for selection among sibling tools.

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

search_vaultC

Search for text across all notes in vault

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYesPath to the Obsidian vault
queryYesSearch query
optionsNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action ('search') but lacks details on permissions, rate limits, output format, or whether it's read-only or has side effects. For a search tool with zero annotation coverage, this is a significant gap in transparency.

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 a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the tool's complexity (3 parameters, nested objects, no output schema) and lack of annotations, the description is incomplete. It doesn't address behavioral aspects, parameter usage, or output expectations, leaving gaps that could hinder correct tool invocation by an AI agent.

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 67%, with 'vault_path' and 'query' well-described in the schema, but 'options' object lacks descriptions for its properties. The description adds no parameter semantics beyond the schema, not explaining what 'vault_path' entails or how 'query' is interpreted. Baseline 3 is appropriate as the schema covers most parameters adequately.

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 the tool's purpose with a specific verb ('search') and resource ('text across all notes in vault'), making it easy to understand what it does. However, it doesn't explicitly distinguish itself from potential sibling tools like 'list_notes' or 'get_vault_info', which might also involve vault operations but with different functions.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention scenarios where this tool is preferred over siblings like 'list_notes' (which might list notes without searching) or 'read_note' (which reads specific notes), leaving the agent without context for tool selection.

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

write_noteC

Create or update a note in the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYesPath to the Obsidian vault
note_pathYesPath to the note relative to vault root
contentYesContent of the note
modeNoHow to handle existing contentoverwrite

TDQS

C2.9/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 of behavioral disclosure. While 'create or update' implies mutation, it lacks details on permissions, error handling (e.g., if vault_path is invalid), or side effects (e.g., overwriting existing notes). This is inadequate for a mutation tool with zero annotation coverage.

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 a single, efficient sentence with no wasted words, front-loading the core action ('create or update a note'). It's appropriately sized for the tool's complexity, earning full marks for conciseness.

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

Completeness2/5

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

Given the tool's mutation nature, lack of annotations, and absence of an output schema, the description is incomplete. It doesn't cover behavioral aspects like success/error responses or operational constraints, leaving gaps that could hinder an AI agent's effective use.

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 the schema fully documents all parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't clarify 'vault_path' format or 'content' expectations), resulting in the baseline score for high schema coverage.

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 the verb ('create or update') and resource ('a note in the vault'), making the purpose understandable. However, it doesn't explicitly distinguish this tool from sibling tools like 'read_note' or 'list_notes' beyond the obvious action difference, which prevents a perfect score.

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., vault must exist), exclusions, or compare it to siblings like 'read_note' for retrieval or 'list_notes' for browsing, leaving usage context unclear.

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.

  1. 6 tool updates
    • First observedget_vault_info
    • First observedlist_notes
    • First observedlist_vaults
    • First observedread_note
    • First observedsearch_vault
    • First observedwrite_note

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation5/5

Every tool has a clearly distinct purpose with no ambiguity. get_vault_info retrieves vault metadata, list_notes enumerates notes, list_vaults shows available vaults, read_note accesses note content, search_vault performs text searches, and write_note handles creation/updates. The boundaries are well-defined and non-overlapping.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern using snake_case. The verbs (get, list, read, search, write) are appropriately chosen for their actions, and the nouns (vault_info, notes, vaults, note, vault) clearly indicate the target resources. There are no deviations in naming conventions.

Tool Count5/5

With 6 tools, this server is well-scoped for managing Obsidian vaults and notes. Each tool earns its place by covering essential operations: discovery (list_vaults, list_notes), reading (read_note, get_vault_info), writing (write_note), and searching (search_vault). The count is neither too sparse nor bloated.

Completeness4/5

The tool surface provides strong coverage for core note-taking workflows, including CRUD operations (create/update via write_note, read via read_note, list via list_notes) and search functionality. A minor gap is the lack of a delete_note tool, which agents might need to work around, but the essentials are well-covered for the domain.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Obsidian vaults through direct filesystem access, supporting note management, lightning-fast search with SQLite indexing, image analysis, tag/link management, and bulk operations.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to interact with local Obsidian vaults through direct filesystem access for reading, creating, and managing notes. It features high-performance SQLite indexing for fast searches, regex support, and tools for organizing tags and links without requiring additional plugins.
    27
    1
    MIT
  • A
    license
    C
    quality
    D
    maintenance
    Enables AI assistants to search, read, create, and modify Markdown notes in local Obsidian vaults directly through filesystem operations. Supports tag-based discovery and frontmatter parsing without requiring Obsidian to be open, facilitating integration with VS Code Copilot via stdio transport.
    5
    10
    4
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides secure, direct file system access to Obsidian vault files, enabling search, read, write, and discovery of notes without requiring the Obsidian app.
    23
    -

Appeared in Searches