Skip to main content
Glama

Obsidian MCP Server

A Model Context Protocol (MCP) server that enables AI assistants to interact with your Obsidian vault.

Features

1. Note Reading & Summarization

  • Read any note in your vault

  • Generate quick summaries of notes

  • Extract metadata (tags, word count, dates)

2. Note Organization

  • Move notes between folders

  • Add tags to notes automatically

  • Search notes by title, content, or tags

3. Daily "Most Valuable Notes"

  • Automatically identifies your most important notes based on:

    • Recent modifications (last 7 days)

    • Note length and depth

    • Tag organization

  • Perfect for daily reviews and prioritization

Related MCP server: Obsidian MCP Server

Installation

1. Create Project Directory

mkdir obsidian-mcp-server
cd obsidian-mcp-server

2. Initialize Project

Copy the following files into your project:

  • src/index.ts (the main server code)

  • package.json

  • tsconfig.json

3. Install Dependencies

npm install

4. Build the Server

npm run build

Configuration

Environment Variables

Set the path to your Obsidian vault:

macOS/Linux:

export OBSIDIAN_VAULT_PATH="/path/to/your/obsidian/vault"

Windows (PowerShell):

$env:OBSIDIAN_VAULT_PATH="C:\path\to\your\obsidian\vault"

Windows (CMD):

set OBSIDIAN_VAULT_PATH=C:\path\to\your\obsidian\vault

Claude Desktop Configuration

Add this to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Roaming\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/absolute/path/to/obsidian-mcp-server/build/index.js"],
      "env": {
        "OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault"
      }
    }
  }
}

Available Tools

1. read_note

Read the content of a specific note.

{
  "path": "folder/note-name.md"
}

2. search_notes

Search for notes by title, content, or tags.

{
  "query": "machine learning",
  "searchInContent": true
}

3. create_note

Create a new note in your vault.

{
  "path": "folder/new-note.md",
  "content": "# New Note\n\nContent here..."
}

4. summarize_note

Generate a summary of a note.

{
  "path": "folder/long-note.md"
}

5. organize_note

Move a note to a different folder.

{
  "path": "old-folder/note.md",
  "targetFolder": "new-folder"
}

6. add_tags

Add tags to a note's frontmatter.

{
  "path": "folder/note.md",
  "tags": ["important", "project-x"]
}

7. get_most_valuable_notes

Get your top 10 most valuable notes for today.

{}

Usage Examples

Once configured, you can ask Claude in the desktop app:

  • "Show me my most valuable notes for today"

  • "Search my vault for notes about Python"

  • "Summarize my note called 'Project Ideas'"

  • "Move my note 'Draft.md' to the 'Archive' folder"

  • "Add tags 'urgent' and 'work' to my note 'Meeting Notes.md'"

  • "Create a new note in 'Daily Notes' called 'Today.md' with today's date"

Development

Watch Mode

For development, run TypeScript in watch mode:

npm run dev

Testing

Test the server directly:

export OBSIDIAN_VAULT_PATH="/path/to/vault"
npm start

Troubleshooting

Common Issues

"OBSIDIAN_VAULT_PATH environment variable not set"

  • Make sure you've set the environment variable correctly

  • Use absolute paths, not relative paths

  • Check for typos in the path

"Permission denied" errors

  • Ensure the build/index.js file is executable: chmod +x build/index.js

  • Check that Node.js has read/write permissions to your vault

Claude Desktop doesn't see the server

  • Restart Claude Desktop after editing the config file

  • Check the config file syntax (valid JSON)

  • Use absolute paths in the config file

  • Check Claude Desktop logs for errors

Future Enhancements

Potential features to add:

  • Link analysis and graph visualization

  • Automated note templates

  • Batch operations

  • Daily note automation

  • Integration with calendar and tasks

  • AI-powered note suggestions

Available Tools

7 tools
add_tagsA

Add tags to a note's frontmatter

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note
tagsYesArray of tags to add

TDQS

A3.5/5.0
Behavior2/5

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

There are no annotations, so the description must fully convey behavioral traits. It indicates that the operation modifies frontmatter but does not disclose whether tags are merged or replaced, whether frontmatter is created if absent, or any failure modes. This lack of detail leaves significant behavioral ambiguity.

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, compact sentence that states the purpose without any filler or redundancy. It is front-loaded and every word adds value.

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 is relatively simple with two parameters and full schema coverage. However, there is no output schema or annotations, and the description does not mention the response format or preconditions (e.g., note existence). This leaves some contextual gaps but is adequate for a basic mutation 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?

The input schema fully describes both parameters (path and tags) with clear descriptions. Since schema_description_coverage is 100%, the baseline is 3, and the description adds no additional meaning beyond the schema, so no higher score is warranted.

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 'Add tags to a note's frontmatter' clearly identifies the action (add) and the target (note's frontmatter). This distinguishes it from sibling tools like create_note, read_note, and search_notes, making the purpose explicit 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 Guidelines3/5

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

The description implies usage when tags need to be added to a note, but it does not explicitly state when to use this tool versus alternatives like organize_note. There is no mention of when not to use it or any prerequisite conditions, so guidance is only implicit.

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

create_noteB

Create a new note in the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path for the new note (include .md extension)
contentYesContent of the note

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states the basic action without mentioning side effects, such as behavior if the path already exists, permissions required, or whether the note is immediately saved. This lack of detail is a significant gap for a mutation tool.

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

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. It is efficient and front-loaded, though it could be slightly more informative without becoming verbose.

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 is simple and the schema fully documents parameters, but the description lacks any contextual edge cases (e.g., overwriting behavior, file paths, or interaction with siblings). Given the low complexity and complete schema, a score of 3 reflects that it is minimally adequate but leaves room for improvement.

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 schema already provides 100% coverage of the two parameters (path and content) with descriptions, so the baseline is 3. The tool description adds no additional parameter semantics, but no further clarification is strictly needed.

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 action ('Create') and the resource ('a new note in the vault'). It is specific and distinguishes from sibling tools like read_note or summarize_note, which have different purposes.

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. There is no mention of prerequisites, typical use cases, or situations to avoid, leaving the agent to infer context.

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

get_most_valuable_notesA

Get a list of the most valuable notes for today based on recency, length, and organization

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior3/5

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

There are no annotations, so the description bears the burden. It discloses useful behavioral traits: time scoping ('for today') and selection criteria ('recency, length, and organization'). However, it does not mention output format, limits, or whether the operation is read-only, leaving some gaps.

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 concise sentence that is front-loaded with the action and resource, then briefly clarifies the criteria. No wasteful words.

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-style tool with no parameters and no output schema, the description adequately conveys the core behavior and selection criteria. It falls slightly short of perfection by not describing the return shape or any edge-case behavior, but is sufficiently complete for an agent to decide when to invoke it.

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 schema coverage is trivially 100%. The description need not add parameter meaning. Baseline of 4 applies due to the absence of parameters.

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's function: 'Get a list of the most valuable notes for today' with explicit criteria (recency, length, organization). This specific verb+resource combination distinguishes it from sibling tools like search_notes or read_note.

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 such as search_notes or read_note. The description implies a use case (finding valuable notes for today) but offers no explicit exclusions or alternative references.

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

organize_noteA

Move a note to a different folder

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note to organize
targetFolderYesTarget folder path (relative to vault root)

TDQS

A3.5/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 full responsibility for behavioral disclosure. It does not mention potential side effects (e.g., broken links), required permissions, reversibility, or return behavior. For a mutation operation like moving a note, this is a significant gap.

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, concise sentence that conveys the essential purpose without any redundant or extraneous wording. It is appropriately sized for a simple operation.

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 is relatively simple with well-documented parameters, but the description lacks context about return values, side effects, or required conditions (e.g., note existence). Given no annotations and no output schema, the description is minimally adequate but leaves gaps that could affect correct invocation.

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 already provides clear descriptions for both parameters (path and targetFolder) with 100% coverage. The description adds no additional parameter-level semantics beyond what the schema states, so the baseline score 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's function with a specific verb ('Move') and resource ('a note') and destination ('a different folder'). This distinguishes it from sibling tools like create_note, summarize_note, and search_notes.

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 implies the tool is for reorganizing notes by moving them, but it provides no explicit guidance on when to use it over alternatives or any exclusions. The context is implicit from the stated purpose, so it's minimally adequate.

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

read_noteA

Read the content of a specific note

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note in the vault

TDQS

A4/5.0
Behavior4/5

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

With no annotations provided, the description carries the burden of indicating safety. 'Read' clearly implies a non-destructive operation, but it does not disclose behavior for missing notes or error handling. Still, the core behavior is transparent.

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 sentence with seven words, conveying all essential information without any filler. It is maximally concise and well-structured.

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 one-parameter read operation, the description is sufficient: it tells the agent what to provide (path) and what result to expect (content). It does not specify error handling, but that is a minor gap given the tool's simplicity.

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 schema provides 100% coverage for the single parameter 'path' with a clear description. The tool description adds no additional parameter meaning beyond mentioning 'specific note', so a baseline score of 3 applies.

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 verb 'Read' and the resource 'content of a specific note', making it distinct from sibling tools like create_note, summarize_note, and search_notes. It leaves no ambiguity about what the tool does.

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 implies usage when you already know the specific note's path, but it does not explicitly contrast with search_notes for finding notes or mention any prerequisites. The guidance is implicit rather than explicit.

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

search_notesC

Search for notes by title, content, or tags

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
searchInContentNoWhether to search in note content (default: true)

TDQS

C2.7/5.0
Behavior1/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states the search scope and does not mention case sensitivity, result ordering, pagination, or how tag matching works.

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, concise sentence that front-loads the action and object. There is no wasted text.

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 output schema and no annotations, the description should provide more context about return format and search behavior. It is minimal and leaves important details such as how results are returned unstated.

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 descriptions cover both parameters (query and searchInContent) fully. The description adds the notion of searching by tags, but this is not reflected in the parameter descriptions and no extra syntax or format details are provided.

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 uses the specific verb 'search' and identifies the resource 'notes', along with searchable attributes (title, content, tags). It clearly distinguishes from siblings like create_note or read_note, though it does not explicitly contrast them.

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 does not mention use cases, exclusions, or related tools, leaving the agent without context for selection.

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

summarize_noteB

Generate a summary of a note's content

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note to summarize

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It states the tool generates a summary but does not disclose whether the operation is read-only, whether it modifies the note, what processing occurs, or what the return format is.

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 concise sentence that is front-loaded with the action and resource. No filler or redundant information.

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 is simple (one param, no output schema), and the description explains the core purpose. However, it omits details about the return value (e.g., whether the summary is returned or saved) and any assumptions about content, making it minimally viable but not 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 coverage is 100% for the single 'path' parameter, which is clearly described as the relative path to the note. The tool description adds no extra meaning beyond the schema, but the schema is already sufficient.

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 uses a specific verb+resource construction: 'Generate a summary of a note's content'. This clearly distinguishes summarize_note from siblings like read_note (read content) and search_notes (find notes).

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 does not mention conditions, exclusions, or suggest using a different tool for raw content access or searching.

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

TDQS

A3.5/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: creating, reading, searching, summarizing, moving, tagging, and recommending notes. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case (e.g., create_note, read_note, add_tags). Even get_most_valuable_notes fits the verb-noun convention with a descriptive adjective.

Tool Count5/5

Seven tools is a well-scoped count for an Obsidian vault management server, covering common operations without redundancy or bloat. Each tool earns its place.

Completeness3/5

The toolset covers create, read, search, summarize, organize, and tag operations, but lacks the ability to edit note content or delete notes. These are notable gaps in the note lifecycle, though agents can work around some limitations by using organize_note and add_tags for metadata changes.

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

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with Obsidian vaults, providing tools for reading, creating, editing and managing notes and tags.
    4,785
    729
    MIT
  • A
    license
    B
    quality
    B
    maintenance
    Connects AI assistants directly to Obsidian vaults with intelligent note creation using templates, semantic search, smart tagging to avoid duplicates, and specialized agent roles (Guardian, Researcher, Connection Weaver) for managing knowledge bases.
    35
    9
    MIT

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

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