Skip to main content
Glama
aumsuthar
by aumsuthar

obsidian-mcp-server

An MCP server that gives Claude direct access to your Obsidian vault — read, write, search, daily notes, tags, backlinks, frontmatter, and automatic git sync so your vault stays up to date across every device.

Tools

Tool

Description

obsidian_read

Read a note by path

obsidian_write

Create or overwrite a note (auto git push)

obsidian_append

Append to a note (auto git push)

obsidian_delete

Delete a note (auto git push)

obsidian_move

Move or rename a note (auto git push)

obsidian_list

List all notes or a subdirectory

obsidian_search

Full-text search with context

obsidian_find

Fuzzy search notes by title

obsidian_tags

Tag index — all tags and the notes that use them

obsidian_query

Find notes by frontmatter field (e.g. status: in-progress)

obsidian_today

Get or create today's daily note

obsidian_template

Create a note from a template

obsidian_frontmatter

Read or update YAML frontmatter

obsidian_links

Outgoing wikilinks + incoming backlinks

obsidian_pull

Pull latest from git

obsidian_push

Manually commit and push all changes


Related MCP server: obsidian-mcp

Setup

Prerequisites

  • Node.js 18+

  • A GitHub account

  • Your Obsidian vault on your local machine

0. Set up your vault as a git repo

If your vault isn't already on GitHub, do this once:

cd "/path/to/your/Obsidian Vault"
git init
git branch -m main
git add -A
git commit -m "initial commit"

Then create a repo on GitHub (private recommended) and link it:

gh repo create my-obsidian-vault --private --source=. --remote=origin --push
# or without the GitHub CLI:
git remote add origin https://github.com/yourusername/my-obsidian-vault.git
git push -u origin main

On any other device, just clone it:

git clone https://github.com/yourusername/my-obsidian-vault.git "/path/to/vault"

1. Clone and install

git clone https://github.com/aumsuthar/obsidian-mcp-server.git
cd obsidian-mcp-server
npm install
npm run build

2. Configure environment

cp .env.example .env

Edit .env and set OBSIDIAN_VAULT_PATH to the absolute path of your vault on this device:

OBSIDIAN_VAULT_PATH="/Users/you/Documents/My Vault"

That's the only required variable. See .env.example for optional settings (daily notes format, auto-sync intervals, etc.).

3. Register with Claude

Add to ~/.mcp.json:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": [
        "--env-file=/path/to/obsidian-mcp-server/.env",
        "/path/to/obsidian-mcp-server/dist/index.js"
      ]
    }
  }
}

Restart Claude Code or Claude Desktop to pick it up.


Cross-device sync

Your vault path is set per-device in .env — so on each machine you just clone the vault repo, clone this repo, set OBSIDIAN_VAULT_PATH in .env, and you're done. The vault content stays in sync via git.

Workflow:

  1. On device A: Claude writes a note → auto-commits and pushes to GitHub

  2. On device B: call obsidian_pull (or set OBSIDIAN_AUTO_PULL_MINUTES) before reading


Auto-sync

Set these in .env to sync automatically in the background:

OBSIDIAN_AUTO_PUSH_MINUTES=5   # commit and push every 5 minutes if there are changes
OBSIDIAN_AUTO_PULL_MINUTES=5   # pull every 5 minutes

Daily notes

obsidian_today creates a daily note in the Daily/ folder using the YYYY-MM-DD format by default.

To customize:

OBSIDIAN_DAILY_DIR="Journal"
OBSIDIAN_DAILY_FORMAT="YYYY/MM/YYYY-MM-DD"

If a Templates/Daily.md exists in your vault, it will be used as the template. Supported variables: {{date}}, {{title}}.


Templates

Put .md files in your vault's Templates/ folder (configurable via OBSIDIAN_TEMPLATES_DIR). Call obsidian_template with the template name and any variables to substitute.

Example template Templates/Meeting.md:

---
date: {{date}}
type: meeting
---
# {{title}}

## Attendees

## Notes

## Action items

Development

npm run dev     # run with tsx (no build needed, loads .env)
npm run build   # compile to dist/

Available Tools

16 tools
obsidian_appendA

Append content to an existing note. Creates the note if it doesn't exist. Auto-commits and pushes to git.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note
contentYesMarkdown content to append

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 full burden — and it delivers: it discloses the upsert behavior (creates if missing) and, more importantly, the significant side effect that it 'auto-commits and pushes to git.' This is exactly the kind of non-obvious behavior an agent needs to know before invoking. It stops short of a 5 by not addressing failure modes or reversibility.

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?

Three short sentences, zero waste. Each sentence adds a distinct fact: the core action, the edge-case behavior, and the side effect. The most important information is front-loaded first.

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 2-parameter tool with no output schema and no annotations, the description covers the essential ground: what it does, its create-if-missing behavior, and its git side effects. The only notable gap is return-value behavior, but for an append operation this is a minor omission 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?

Schema description coverage is 100%, so the schema already documents both 'path' and 'content.' The description adds only modest context — that content is markdown and that path is relative to the vault — but does not introduce format, encoding, or constraint details beyond the schema. 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?

States a specific verb ('Append') and resource ('note'), and adds a key scoping detail: 'Creates the note if it doesn't exist.' This cleanly distinguishes it from obsidian_write (overwrite), obsidian_read, and the other siblings without needing to open their schemas.

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 append-vs-create behavior implies when to use the tool, but the description never explicitly names obsidian_write as the alternative for replacing content, nor states any when-not-to-use conditions. An agent must infer the choice from the verb alone, which is adequate but not explicit.

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

obsidian_deleteA

Delete a note from the vault. Auto-commits and pushes to git.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note to delete

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden. It explicitly reveals a critical side effect—auto-committing and pushing to git—that is not inferable from the tool name. It does not state whether deletion is permanent or moves to trash, but the main behavioral trait is surfaced.

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 short sentences: the primary action is front-loaded, followed by the important side effect. There is no filler or redundant content.

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 one-parameter destructive operation with no output schema and no annotations, the description covers the core action and the critical git side effect. It could clarify trash-vs-permanent deletion, but the overall context is sufficient for an agent to use it correctly.

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 only parameter, path, is already fully described in the schema as 'Relative path to the note to delete' (100% coverage). The description adds no additional parameter meaning beyond what the schema provides, so the 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 uses the specific verb 'Delete' with the resource 'note from the vault', making the action unmistakable. It clearly differentiates from sibling tools like obsidian_write, obsidian_append, and obsidian_move even without naming them.

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 alternatives are mentioned, but the verb 'Delete' implies the intended use case. It does not provide exclusions or condition-based routing, so guidance is present only by implication.

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

obsidian_findA

Fuzzy search for a note by title. Returns the best matching note paths. More natural than knowing exact paths.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax results to return
queryYesNote title or partial name to search for

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 behavioral burden. It clearly discloses that the tool performs fuzzy matching on titles and returns paths, which is important for an agent to understand the result semantics. It does not explicitly state that it is read-only, but the verb 'search' strongly implies non-destructive behavior.

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 with no filler. The action and return type are front-loaded, and the usage rationale is a single short phrase. Every sentence contributes useful information.

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?

Despite no output schema, the description states the return value is note paths, which is the key information an agent needs. The tool is simple with only two parameters and no nested objects, so the description is fairly complete. Minor missing details include path format (e.g., absolute vs vault-relative) and behavior when no matches are found.

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% for both parameters, with query described as 'Note title or partial name to search for' and limit as 'Max results to return'. The description adds 'fuzzy' and 'best matching' semantics, which slightly infers ranking, but it does not meaningfully expand on the schema's parameter explanations.

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 ('Fuzzy search'), a clear resource ('note by title'), and states the output ('Returns the best matching note paths'). It distinguishes itself from path-based access and full-text search by emphasizing that it works by title and does not require knowing exact paths.

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 phrase 'More natural than knowing exact paths' implies when to use this tool, but the description does not provide explicit when-not-to-use guidance or name alternatives such as obsidian_search for content searches. Usage context is implied rather than instructed.

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

obsidian_frontmatterA

Read or update the YAML frontmatter of a note (tags, status, date, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note
updatesNoKey-value pairs to set. Omit to just read.

TDQS

A3.9/5.0
Behavior3/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 does reveal the dual read/update nature of the tool and clearly signals that update mode is a mutation. However, it does not disclose whether updates merge or replace existing frontmatter keys, whether frontmatter is created if absent, or what happens on error, leaving meaningful side-effect uncertainty.

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 with no filler. The core action and resource are front-loaded, and every word earns its place.

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?

For a simple two-parameter tool, this is adequate but not complete. There is no output schema, yet the description does not state what a read operation returns, nor does it explain update merge/replace behavior or the case where a note has no frontmatter. An agent can call the tool correctly, but would have to assume several edge-case behaviors.

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 baseline is 3. The description adds mild semantic color with examples like tags, status, and date, but it does not clarify how the schema's string-only values map onto potentially structured frontmatter fields such as tags. The schema itself carries the real parameter documentation burden.

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 pair ('Read or update') tied to a concrete resource ('YAML frontmatter of a note'), and even gives example fields. This clearly distinguishes it from generic siblings like obsidian_read and obsidian_write, which operate on full notes rather than frontmatter specifically.

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 makes the intended context clear: working with YAML frontmatter metadata such as tags, status, and date. It does not explicitly name alternatives or say when not to use this tool, but the specialization is strong enough that an agent can infer when to reach for it over the broader note-reading and note-writing siblings.

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

obsidian_listA

List all notes in the vault or a specific subdirectory.

ParametersJSON Schema
NameRequiredDescriptionDefault
dirNoSubdirectory to list (empty = entire vault)

TDQS

A3.7/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 the burden of disclosing behavior. 'List' implies a non-mutating read operation, which is transparent enough at a basic level, but it does not specify what the returned list contains (e.g., paths, titles), whether subdirectories are recursive, or how output is structured.

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 one concise, front-loaded sentence with no redundant phrasing. It efficiently communicates both the default behavior and the optional subdirectory behavior.

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, with one optional parameter and no output schema. The description is adequate for basic invocation, but it omits return-format details and recursion behavior, which an agent might need to confidently use the result.

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 provides complete coverage of the single 'dir' parameter, including its default and meaning. The description does not add extra parameter guidance, but with 100% schema coverage this is acceptable and meets the baseline.

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 the resource ('all notes in the vault or a specific subdirectory'). It is specific enough to distinguish from read, search, and write operations, though it does not explicitly name sibling tools.

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 communicates a clear use case: enumerate notes in the vault or a chosen subdirectory. It does not explicitly discuss when to prefer search, find, or query, but the context is sufficiently clear for a list/inventory operation.

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

obsidian_moveA

Move or rename a note within the vault. Auto-commits and pushes to git.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesNew relative path for the note
fromYesCurrent relative path of the note

TDQS

A3.7/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 the full burden of behavioral disclosure. It does usefully surface the non-obvious side effect 'Auto-commits and pushes to git,' which is important for an agent to anticipate. However, it omits other relevant behavioral details such as whether an existing note at the destination is overwritten, whether backlinks are updated, and what happens on failure or when the git push is not possible.

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 exactly two short sentences with no filler. The primary action is front-loaded first, and the important git side effect is communicated in the second sentence. Every word earns its place.

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?

For a two-parameter tool, the description plus schema covers the minimum needed to call it: what to move, where to move it, and the git side effect. However, without annotations or an output schema, the description could usefully state whether the destination must not already exist, whether overwriting is allowed, how the move affects vault links, and what return value to expect. These gaps are moderate but not disqualifying for such a simple interface.

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 describes both parameters ('Current relative path of the note' and 'New relative path for the note') with 100% coverage, so the baseline is 3. The description adds no parameter-specific information beyond confirming that the move happens within the vault, which is already implied by the relative-path wording. It does not clarify path normalization, directory creation, or overwrite behavior.

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 states a specific verb ('Move or rename') applied to a clear resource ('a note') and scope ('within the vault'), making the tool's function immediately obvious. The action is distinct from sibling tools like obsidian_read, obsidian_write, and obsidian_delete, so an agent can tell this tool apart without inspecting the schema.

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 intended use is inferable from the verb 'Move or rename,' and there is no other sibling that clearly performs the same action. However, the description gives no explicit guidance about when to prefer this tool over alternatives, when not to use it, or whether it should be used instead of obsidian_write for path changes. This leaves usage routing mostly implicit.

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

obsidian_pullA

Pull the latest changes from git. Run this when switching devices or after editing notes elsewhere.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.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 disclosing behavior. It says 'pull' but does not explain that this modifies the local workspace, may overwrite local changes, or could fail on conflicts. For a potentially mutating operation with no safety hints, more transparency is needed.

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 short sentences, front-loaded with the core operation and followed by the key usage trigger. Every word earns its place; there is no redundancy or filler.

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 description covers the basic action and when to use it, which is adequate for a zero-argument tool. However, with no output schema and no annotations, it does not mention outcomes such as local file changes, conflict behavior, or failure modes, leaving some important context to inference.

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 there are no parameter semantics to document. The baseline for zero-parameter tools is 4, and the description correctly avoids inventing parameter details.

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 and resource: 'Pull the latest changes from git.' This distinguishes it from siblings like obsidian_push (push) and obsidian_read (read local content), making the tool's purpose unmistakable.

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 gives explicit guidance on when to run the tool: 'when switching devices or after editing notes elsewhere.' It does not explicitly name alternatives or exclusions, but the context is clear enough for an agent to know this is the appropriate action after external edits.

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

obsidian_pushA

Manually commit and push all vault changes to git.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageNoCommit messagemanual sync

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It clearly signals a side-effecting operation on git state, which is useful, but it does not mention potential impacts like failed pushes, auth requirements, or whether changes are reversible.

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 one short sentence with no wasted words. The action, scope, and target are all front-loaded, 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.

Completeness3/5

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

For a tool with one optional parameter and no output schema, the description is minimally adequate: an agent knows what the tool does and can invoke it. But it does not explain success/failure behavior or side effects beyond the bare action, and it gives no guidance relative to the sibling pull 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% and the only parameter already has a clear description and default value. The tool description adds no parameter-level detail beyond what the schema provides, earning the baseline score of 3.

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 states a specific operation ('commit and push'), a clear scope ('all vault changes'), and a destination ('git'), which distinguishes it from sibling tools like obsidian_pull or vault editing tools. It is not tautological or vague.

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 phrasing 'manually commit and push' implies when to use it: when the user wants to sync vault changes to git. However, it does not explicitly name alternatives or state when not to use it, such as when pulling changes is more appropriate.

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

obsidian_queryC

Find notes by frontmatter field values. E.g. find all notes where status = 'in-progress'.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesFrontmatter field name to filter by (e.g. 'status', 'type', 'project')
valueYesValue to match (case-insensitive)

TDQS

C2.9/5.0
Behavior2/5

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

With zero annotations, the description carries the full burden of behavioral disclosure. 'Find' implies a read operation and the matching mechanism is stated, but the description does not disclose whether matching is exact or partial, whether note contents or only metadata are returned, or what happens when no notes match. These behavioral traits are left unspecified.

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?

One sentence plus an example carries the full message with zero waste. The core action and mechanism are front-loaded ('Find notes by frontmatter field values') and the example immediately clarifies the intended query pattern.

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?

There is no output schema and no annotations, so the description is the sole source of context, yet it never states what the tool returns. It also fails to address how it relates to the overlapping sibling tools. For a low-complexity 2-parameter tool the core invocation is covered, but the missing return-value disclosure and the unaddressed sibling ambiguity leave it incomplete.

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 the baseline is 3. The schema already documents both parameters with example values ('status', 'type', 'project') and the case-insensitivity of 'value'. The description's example illustrates how field and value combine, which adds marginal illustrative value, but it does not meaningfully extend what the schema already provides.

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 states a specific verb ('Find'), resource ('notes'), and mechanism ('by frontmatter field values'), with a concrete example ('status = 'in-progress''). This clearly communicates what the tool does. However, with 15 siblings including obsidian_find and obsidian_search, the description does not explicitly differentiate itself, so an agent cannot rule out overlap with similarly named search-like tools.

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 given on when to use obsidian_query versus alternatives like obsidian_search, obsidian_find, or obsidian_list. The example implies a use case (filtering notes by frontmatter status) but no exclusion or alternative is named. An agent must infer the selection criteria entirely from the tool name and mechanism.

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

obsidian_readA

Read a note from the Obsidian vault by path (e.g. 'School/Notes' or 'School/Notes.md').

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note within the vault

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. The verb 'Read' conveys a non-mutating operation, but the description does not state what happens when the path does not exist, whether the .md extension is required, or what form the returned note content takes.

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 front-loads the action and resource, with two compact examples that disambiguate path format. No unnecessary 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 one-parameter read tool, the description covers what the tool does and how to specify the path. It does not document error behavior or return format, but these are largely inferable from 'Read a note' and no output schema exists.

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 coverage is 100%, so the baseline is 3. The description adds value by showing that 'School/Notes' and 'School/Notes.md' are both acceptable, clarifying that the extension is optional and the path is relative.

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 names a specific action ('Read a note') and a precise resource ('from the Obsidian vault by path'), and the by-path mechanism distinguishes it from sibling search/list/find tools that locate notes differently. This is immediately actionable for an agent.

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 when the agent already knows the path, and gives path examples. It does not explicitly say when to prefer a sibling tool (e.g. obsidian_search or obsidian_find) when the path is unknown, so usage guidance is only implied.

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

obsidian_tagsA

List all tags in the vault and the notes that use them. Scans frontmatter 'tags:' fields and inline #hashtags.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter to a specific tag (empty = all tags)

TDQS

A4/5.0
Behavior4/5

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

No annotations exist, so the description carries full responsibility. It discloses that it scans both frontmatter 'tags:' fields and inline #hashtags, which is key behavioral context for an Obsidian domain where tags can be encoded in multiple ways. It also indicates the relationship (notes that use the tags), though it omits details like sort order or duplicate handling, which are minor for a read-only listing.

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: the first states the main action and output, the second details the tag sources. No filler, no repetition of schema content, and the most important information is front-loaded.

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 listing tool with one optional parameter and no output schema, the description covers the essential behavior: what is listed (tags and using notes) and how tags are discovered. It lacks guidance on result formatting or usage edge cases, but these are minor given the low complexity and presence of a schema-documented filter.

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% for the single optional 'tag' parameter, so the schema already documents the filter. The main description adds no additional parameter semantics beyond what the schema provides; hence 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?

States a specific verb (List), resource (all tags in the vault), and the associated notes that use them. Also clarifies scope by naming the two sources (frontmatter 'tags:' and inline #hashtags), which helps distinguish this from broader sibling tools like obsidian_search or obsidian_query.

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 purpose implies when to use it: when you need a tag inventory with linked notes. However, there is no explicit guidance on when not to use it or which sibling alternatives (e.g., obsidian_search for tag-like queries, obsidian_find for locating notes) might be more appropriate. The context is clear but exclusions are absent.

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

obsidian_templateC

Create a new note from a template in the Templates folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path for the new note
varsNoVariables to substitute in the template (e.g. {title: 'My Note'})
templateYesTemplate name (e.g. 'Meeting', 'Project')

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. It confirms this is a creation operation but does not disclose whether existing notes get overwritten, what happens if the template or path is invalid, or how variable substitution behaves. For a mutating tool without annotation coverage, this is a meaningful 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, front-loaded sentence with no filler or redundant wording. Every word adds meaning, and the core action and resource are stated immediately.

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?

The tool has three parameters, variable substitution behavior, a relative path requirement, no annotations, and no output schema, yet the description covers only the core purpose. It does not explain what the tool returns, how vars interact with the template, or what happens on missing/invalid inputs. An agent would need to inspect external documentation or experiment to invoke it reliably.

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 baseline is 3. The description adds modest value by clarifying that the template is a named file in the Templates folder and that the path is relative, but it does not expand on the vars substitution mechanics or path constraints beyond what the schema already states.

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 states a specific action ('Create a new note') and a specific mechanism/resource ('from a template in the Templates folder'), making the tool's purpose immediately understandable. It is clearly distinguished from generic write/append tools by the template-focused behavior, though it does not explicitly name sibling alternatives.

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 gives no guidance on when to use this tool versus obsidian_write, obsidian_append, or other siblings. There are no stated conditions, prerequisites, or exclusions, leaving the agent to infer usage solely from the tool name and description. The only usage signal is implicit in the template-based creation wording.

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

obsidian_todayA

Get or create today's daily note. Creates it from a template if one exists in the Templates folder.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDate in YYYY-MM-DD format (empty = today)

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the full disclosure burden, and it delivers: it reveals the get-or-create (upsert) behavior, the conditional template application, and the Templates folder lookup. It stops short of a 5 because it doesn't state that an existing note is returned unmodified or what the return value 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?

Two sentences with zero waste. The core purpose is front-loaded in the first sentence, and the second sentence provides the conditional template behavior that directly affects what the agent should expect. Every word earns its place.

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 tool with one optional parameter, full schema coverage, and a clear upsert semantic, the description covers the essentials: operation type, conditional creation behavior, and template source. The only notable gap is the absence of an output schema or description of what the tool returns, but 'get or create' strongly implies the note itself is returned.

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% — the schema already documents the date format (YYYY-MM-DD) and the empty-defaults-to-today behavior. The description adds no parameter-level detail beyond the schema, so the baseline 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 states a specific verb pair ('Get or create') and a specific resource ('today's daily note'), making the upsert semantic unambiguous. The template detail further distinguishes it from siblings like obsidian_read (pure read), obsidian_write (arbitrary write), and obsidian_template (template management) without needing to inspect any schema.

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 usage context is clearly implied — an agent needing a daily note for a date should pick this tool. However, the description never explicitly states when NOT to use it or names alternatives (e.g., 'for arbitrary file content use obsidian_write'), leaving the routing decision to inference.

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 vault. Auto-commits and pushes to git.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesRelative path to the note
contentYesFull markdown content

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 full burden of behavioral disclosure. It clearly reveals the important side effect of auto-committing and pushing to git, which is non-obvious and critical for an agent to know. It also explicitly states 'overwrite', signaling destructive behavior, though it doesn't elaborate on failure or conflict handling.

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 only two sentences, with the primary action stated first and the important git side effect stated second. Every word earns its place, and there is no redundant or vague filler.

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 tool with two simple parameters and no output schema, the description adequately explains what the tool does and the key behavioral consequence (git auto-commit and push). It could mention details like whether directories are created or what happens on failure, but these are not essential for correctly invoking the 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 already provides 100% coverage of both parameters: path is a relative path and content is full markdown content. The description adds little parameter-specific meaning beyond indicating the note is written to the vault, so a 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 states a specific verb ('Create or overwrite') and resource ('a note in the vault'), making the tool's core function immediately clear. It also differentiates from siblings like obsidian_read and obsidian_append by explicitly covering both creation and full overwrite semantics.

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 when to use this tool: when a note should be created or completely replaced, rather than appended or modified. However, it does not explicitly name alternatives or state when not to use it, leaving some routing decisions to inference.

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. 16 tool updatesv1.0.0
    • First observedobsidian_append
    • First observedobsidian_delete
    • First observedobsidian_find
    • First observedobsidian_frontmatter
    • First observedobsidian_links
    • First observedobsidian_list
    • First observedobsidian_move
    • First observedobsidian_pull
    • First observedobsidian_push
    • First observedobsidian_query
    • First observedobsidian_read
    • First observedobsidian_search
    • First observedobsidian_tags
    • First observedobsidian_template
    • First observedobsidian_today
    • First observedobsidian_write

TDQS

A3.7/5.0
Disambiguation4/5

Most tools target clearly distinct operations such as read, write, delete, move, append, and link analysis. Some confusion is possible among the retrieval tools (list, search, find, query) and note-creation tools (write, template, today), but the descriptions clarify their different purposes.

Naming Consistency5/5

All tools follow the same obsidian_verb naming pattern with snake_case verbs. This makes the toolset predictable and easy to navigate.

Tool Count4/5

16 tools is slightly above the ideal range, but each tool maps to a meaningful Obsidian workflow: editing, searching, linking, templates, frontmatter, and git sync. A couple of tools like pull and push are peripheral, but the count is still reasonable.

Completeness5/5

The toolset provides thorough coverage for Obsidian note management: read, write, append, delete, move, list, search, frontmatter editing, backlinks, tags, templates, daily notes, and git synchronization. There are no major dead ends for common note-taking workflows.

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
    A
    quality
    C
    maintenance
    Enables Claude Code read/write access to an Obsidian vault, including creating, editing, searching, and browsing notes.
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude Desktop to directly access and manage Obsidian vault files, supporting reading, writing, patching, searching, and file operations without requiring Obsidian to be open.
    4,785
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects Claude to a local Obsidian vault, enabling listing, reading, searching, and optionally editing notes via natural language, with all operations running locally.
    4,785
    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/aumsuthar/obsidian-mcp-server'

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