Skip to main content
Glama
ZethicTech

obsidian-mcp

by ZethicTech

Obsidian MCP

npm License: MIT Node.js CodeQL CI Conventional Commits CodeRabbit

Access your Obsidian vault from Claude Desktop, Claude Code, and other AI tools that support the Model Context Protocol.

Obsidian 1.12 introduced a powerful CLI, but it isn't directly accessible from GUI-based AI tools like Claude Desktop. This MCP server bridges that gap — giving any MCP-compatible client full access to your vault through 34 tools and prompt templates.

Features: read/write/search notes, manage properties and tasks, run pre-built prompt workflows — all validated with Zod schemas and powered by the official Obsidian CLI.

Prerequisites

  • Obsidian 1.12+ (tested through 1.12.7) with the CLI enabled: Settings → General → Advanced → Command Line Interface → Enable

  • Obsidian app must be running (the CLI communicates with the app)


Related MCP server: Obsidian MCP Server

Setup

Install the package from npm and configure your MCP client to use it. The server runs locally on your machine and communicates with the Obsidian app via its CLI.

How it works

Your machine
┌─────────────────────────────┐
│ Claude Desktop / Claude Code│
│   ↕ stdio (stdin/stdout)    │
│ obsidian-mcp (Node.js)      │ ──CLI──→  Obsidian App (running)
└─────────────────────────────┘

Each user runs the server locally via npx. The server receives tool calls from Claude over stdio and executes Obsidian CLI commands against the running app.

Claude Desktop

Add to your claude_desktop_config.json:

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

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["-y", "@zethictech/obsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT": "MyVault"
      }
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

claude mcp add obsidian --env OBSIDIAN_VAULT="My Vault" -- npx -y @zethictech/obsidian-mcp

To make it available across all projects, add --scope user:

claude mcp add obsidian --scope user --env OBSIDIAN_VAULT="My Vault" -- npx -y @zethictech/obsidian-mcp

The -- separator is required so the command and its args aren't parsed as claude mcp add flags.

Environment Variables

Variable

Required

Description

OBSIDIAN_VAULT

Yes

Vault name or ID

OBSIDIAN_CLI_PATH

No

Override path to obsidian binary (auto-detected by default)

OBSIDIAN_TIMEOUT

No

CLI timeout in milliseconds (default: 30000)


Available Tools (34)

Read-only tools (20)

Tool

Description

read_note

Read the full content of a note

get_file_info

Get metadata about a file

list_files

List files in the vault

list_folders

List folders in the vault

search

Search the vault for text

search_with_context

Search with surrounding line context

get_backlinks

List incoming links to a note

get_links

List outgoing links from a note

find_unresolved_links

Find broken/unresolved links

find_orphan_notes

Find notes with no incoming links

get_outline

Get heading structure of a note

get_properties

List frontmatter properties

read_property

Read a specific property value

list_tags

List tags in the vault or a note

list_tasks

List tasks (checkboxes)

daily_read

Read today's daily note

daily_path

Get the daily note file path

get_vault_info

Get vault info (name, path, size)

wordcount

Count words/characters in a note

get_help

Get CLI help for any command

Write tools (9)

Tool

Description

create_note

Create a new note

append_note

Append content to a note

prepend_note

Prepend content to a note

set_property

Set a frontmatter property

daily_create

Open/create today's daily note

daily_append

Append to today's daily note

daily_prepend

Prepend to today's daily note

update_task

Toggle or update a task's status

add_bookmark

Add a bookmark

Destructive tools (5)

Tool

Description

move_note

Move a note (updates all links)

rename_note

Rename a note (updates all links)

delete_note

Delete a note (trash or permanent)

remove_property

Remove a frontmatter property

run_command

Run any CLI command directly

run_command is an escape hatch that gives you access to all ~100 CLI commands not covered by the structured tools above (sync, plugins, themes, templates, workspaces, publish, dev tools, etc.). Use get_help to discover available commands.

All tool inputs are validated at runtime using Zod schemas. Invalid inputs return clear error messages before any CLI command is executed.


Prompts

Five pre-built MCP Prompts provide templated workflows. These gather vault data via CLI calls and return structured messages for the LLM.

Prompt

Arguments

Description

analyze_vault

Vault health overview: orphan notes, unresolved links, tags

summarize_note

file required

Read and summarize a specific note

find_related

file required

Find related notes via backlinks, links, and shared tags

daily_review

Review today's daily note and suggest follow-up actions

suggest_links

file required

Suggest wikilinks to add based on note content


Troubleshooting

Server not starting?

  • Verify OBSIDIAN_VAULT is set and matches your vault name exactly

  • Ensure Obsidian 1.12+ is installed with the CLI enabled

  • Run npx @zethictech/obsidian-mcp --version to verify the package loads

Obsidian app not detected?

  • The CLI requires Obsidian to be running — start the app and try again

  • If Obsidian just launched, wait a few seconds for it to fully initialize

Stale npx cache?

npx --yes @zethictech/obsidian-mcp

License

MIT

Available Tools

34 tools
add_bookmarkA

Add a bookmark to a file, folder, search, or URL.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
folderNoFolder to bookmark
searchNoSearch query to bookmark
urlNoURL to bookmark
titleNoBookmark title

TDQS

A3.5/5.0
Behavior2/5

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

Annotations declare readOnlyHint=false and destructiveHint=false, so the tool modifies state. The description adds 'Add a bookmark', implying creation, but no detail on what happens if bookmark exists, permissions needed, or side effects.

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

Conciseness5/5

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

Single sentence, front-loaded with the action, no unnecessary words. Highly efficient.

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 tool with 6 optional parameters and no output schema, the description is minimal. It covers the what but not the how or when for parameter usage. Adequate but not rich.

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 all parameters. The description does not add extra meaning or explain relationships (e.g., mutual exclusivity of parameters). 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 clearly states the action (Add a bookmark) and the resources (file, folder, search, or URL). It distinguishes from sibling tools, which are all note operations, making this the unique bookmark creation tool.

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 guidelines on when to use this tool versus alternatives or when not to use it. However, siblings are distinct, so ambiguity is low. Still, lacks context like prerequisite or fallback options.

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

append_noteA

Append content to the end of a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
contentYesContent to append (use \n for newlines)
inlineNoAppend inline (no newline before)

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate readOnlyHint=false and destructiveHint=false, matching the append behavior. The description adds that content is appended (not overwritten), which is clear. However, it does not disclose edge cases like note non-existence.

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?

Single, front-loaded sentence with no wasted words. Highly efficient.

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

Completeness4/5

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

For a simple append tool with rich schema and annotations, the description is nearly complete. It lacks explicit statement about note existence handling, but overall adequate.

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?

100% schema description coverage provides clear param meanings. The tool description adds no extra value beyond what the schema already states, earning a baseline score.

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 'Append' and the resource 'content to the end of a note,' distinguishing it from siblings like prepend_note (prepend) and create_note (create new note). No ambiguity.

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 does not explicitly state when to use this tool over alternatives (e.g., prepend_note, read_note). Usage context is implied by the name, but no direct guidance is provided.

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

create_noteA

Create a new note. Can optionally use a template and set initial content.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoNote name
pathNoFull path from vault root
contentNoInitial content (use \n for newlines)
templateNoTemplate name to use
overwriteNoOverwrite if file exists
openNoOpen note after creation
newtabNoOpen in a new tab

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate write operation (readOnlyHint: false) and non-destructive (destructiveHint: false). Description adds optional template/initial content but no additional behavioral traits beyond what params cover.

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

Conciseness5/5

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

Two sentences, no redundancy, efficient communication of core functionality.

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 creation tool with full schema coverage, description is adequate. It covers main features but omits return value or success indicators; however, given no output schema, it's sufficient for an agent.

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 baseline 3. Description adds value by explaining tool's purpose and optional use of template/initial content, aiding parameter understanding beyond schema descriptions.

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 purpose: 'Create a new note.' It specifies optional features (template, initial content), distinguishing it from siblings like read_note or delete_note.

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 for note creation but provides no explicit guidance on when to use vs alternatives (e.g., when to use template, when to set overwrite). No when-not or exclusions.

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

daily_appendB

Append content to today's daily note.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to append (use \n for newlines)
inlineNoAppend inline (no newline before)
paneTypeNoHow to open the note
openNoOpen note after appending

TDQS

B3.4/5.0
Behavior3/5

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

Annotations indicate it's a write operation (readOnlyHint=false) and not destructive. The description adds little beyond stating it appends, which is consistent. However, it does not disclose what happens if the daily note does not exist (e.g., does it create it?) or mention any side effects. Given annotations provide baseline, this is adequate but not rich.

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 concise sentence that clearly states the purpose. It could be slightly more informative about behavior, but there is no wasted text.

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 append operation, the description covers the basic use case. However, it lacks details about the return value (no output schema) and does not address edge cases like missing daily notes, which impacts completeness given the tool's context.

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

Parameters3/5

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

Schema coverage is 100% with all four parameters described. The description does not add any additional meaning beyond the schema, so it meets the baseline of 3 with no extra value.

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 'Append content to today's daily note', which specifies the verb (append) and resource (today's daily note). This distinguishes it from siblings like 'append_note' (append to any note) and 'daily_prepend' (prepend to daily 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?

The description provides no guidance on when to use this tool versus alternatives such as 'daily_prepend' or 'append_note'. No usage context or exclusions are mentioned.

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

daily_createA
Idempotent

Open/create today's daily note in Obsidian.

ParametersJSON Schema
NameRequiredDescriptionDefault
paneTypeNoHow to open the note

TDQS

A4/5.0
Behavior4/5

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

Annotations already provide idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds that it both opens and creates the note, which is useful behavioral context beyond annotations. It does not detail what happens if the note already exists or the return value, but annotations cover safety aspects sufficiently.

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, well-structured sentence that is front-loaded with the core action. Every word serves a purpose, and there is no unnecessary 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?

Given the tool's simplicity (one optional parameter, no output schema, annotations present), the description is nearly complete. It could mention that the note is opened in Obsidian and possibly the return behavior, but the current text is sufficient for an agent to select and invoke the tool 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?

Schema description coverage is 100% for the single optional parameter paneType, which is fully defined in the schema. The description adds no additional meaning beyond what the schema provides, meeting the baseline expectation but not exceeding it.

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 'Open/create' and the resource 'today's daily note', which distinguishes it from siblings like daily_read (read-only) and create_note (generic note creation). It precisely communicates 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 that the tool is for daily notes specifically, but it does not explicitly guide when to use it versus alternatives like daily_append or create_note. No exclusions or prerequisites are mentioned, which is a gap given the number of sibling tools.

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

daily_pathA
Read-onlyIdempotent

Get the expected file path for today's daily note.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: true, destructiveHint: false, idempotentHint: true. The description adds that the path is for 'today's daily note', providing mild additional context about the specific date used.

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 concise sentence that is front-loaded with the action and resource. No extraneous words.

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

Completeness5/5

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

For a 0-parameter, read-only tool with comprehensive annotations, the description fully covers what the tool does without needing output schema details.

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

Parameters4/5

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

The input schema has 0 parameters (100% coverage), so baseline is 4. Description adds no parameter information, which is appropriate given there are none.

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 'Get the expected file path for today's daily note' uses a clear verb ('get') and specific resource ('file path for today's daily note'), distinguishing it from sibling tools like daily_read or daily_create.

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?

Usage context is implied by the tool name and description, but no explicit when-to-use or when-not-to-use guidance is provided. Sibling tools exist for reading, creating, or appending to daily notes, but the description does not reference them.

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

daily_prependA

Prepend content to today's daily note (after frontmatter).

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesContent to prepend (use \n for newlines)
inlineNoPrepend inline (no newline after)
paneTypeNoHow to open the note
openNoOpen note after prepending

TDQS

A3.6/5.0
Behavior3/5

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

Annotations provide minimal hints (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds the important detail that content is prepended after frontmatter, but does not disclose other behaviors such as whether the note is created if it doesn't exist or what happens to existing content beyond prepending.

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, concise and front-loaded with the key action. Every word serves a purpose with no redundancy.

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

Completeness4/5

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

The tool has no output schema, so return value explanation is unnecessary. The description covers the core action and a key detail (after frontmatter), but could be more explicit about prerequisites (e.g., whether the daily note must exist or is created) given sibling tools like 'daily_create' exist.

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 all parameters. The description does not add extra meaning beyond what the schema provides, meeting the baseline for high coverage.

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 (prepend), resource (today's daily note), and a specific qualifier (after frontmatter). It effectively distinguishes from sibling tools like 'daily_append' (which appends) and 'prepend_note' (which prepends to any 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 explicit guidance on when to use this tool versus alternatives like 'daily_append' or 'prepend_note'. The description implies a specific use case (prepending to today's daily note) but does not provide context for when to choose this over siblings.

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

daily_readB
Read-onlyIdempotent

Read today's daily note content.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, which the description does not contradict. However, the description adds no behavioral context beyond the literal 'Read', such as what occurs if no daily note exists (error vs. creation), so it barely adds value beyond the annotations.

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 short sentence that clearly states the action and object. It is appropriately concise and front-loaded, though it could be slightly expanded (e.g., on date determination) without losing conciseness.

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 read tool with no parameters, the description covers the basic purpose. However, it does not address what happens if today's daily note does not exist, which is a key edge case. Given that siblings include daily_create, an agent might need to know whether daily_read will create the note or error.

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 input schema has no parameters, so the description needs to add no parameter semantics. Baseline is 4 since schema coverage is 100% and no parameters exist.

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 specifies the verb 'Read' and the resource 'today's daily note content', clearly indicating what the tool does and distinguishing it from sibling tools like daily_append and create_note. However, it lacks explicit distinction from read_note, which could read the same content if the filename is known.

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 read_note or daily_create. There is no mention of prerequisites or when not to use it, leaving the agent to infer usage from the tool name alone.

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

delete_noteA
Destructive

Delete a note. By default moves to trash; use permanent=true to skip trash.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
permanentNoPermanently delete (skip trash)

TDQS

A4.2/5.0
Behavior4/5

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

The description adds key behavioral context beyond the destructiveHint annotation by explaining the trash vs. permanent delete behavior. There is no contradiction with annotations.

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 the action front-loaded. Every sentence earns its place without redundancy.

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

Completeness4/5

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

For a simple deletion tool, the description covers the main behavior and parameters. It lacks explicit return value info, but given no output schema, this is acceptable and leaves minimal gaps.

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?

With 100% schema description coverage, the schema already explains each parameter. The description only reiterates the 'permanent' parameter, adding no new meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Delete a note' with a specific verb and resource. It distinguishes from sibling tools like rename_note or move_note by explicitly focusing on deletion.

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 explains the default behavior (move to trash) and the alternative (permanent=true to skip trash), providing clear usage guidance. It does not explicitly state when not to use, but the context is sufficient.

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

find_orphan_notesA
Read-onlyIdempotent

Find notes with no incoming links (orphans).

ParametersJSON Schema
NameRequiredDescriptionDefault
totalNoShow only the total count

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds the concept of 'orphans' but offers no additional behavioral details (e.g., output format, performance). No contradiction.

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?

Single sentence of 6 words clearly conveys the purpose with zero redundancy. Efficient and 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?

Given the simple tool (1 optional param, no output schema), the description sufficiently captures the function. Could mention output type but not essential.

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 has one parameter 'total' with description, achieving 100% coverage. Description does not elaborate on parameter behavior, so baseline of 3 is appropriate.

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

Purpose5/5

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

Description clearly states verb 'Find' and resource 'notes with no incoming links (orphans)'. It distinguishes from sibling tools like 'get_backlinks' and 'find_unresolved_links' by focusing on notes that lack any backlinks.

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 when-to-use or when-not-to-use guidance. Does not mention scenarios like cleanup or contrast with tools like 'get_backlinks' for finding backlinks of a specific note.

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

get_file_infoB
Read-onlyIdempotent

Get metadata about a file (size, dates, type).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root

TDQS

B3.4/5.0
Behavior3/5

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

Annotations (readOnlyHint=true, idempotentHint=true) already declare the tool is safe and idempotent. The description adds the types of metadata returned but does not disclose other behaviors such as error handling or requirements for the 'file' vs 'path' parameter.

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 includes examples of metadata. It is well-structured with no redundancy or unnecessary words.

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?

Despite the tool having no output schema, the description only mentions three metadata types (size, dates, type) without specifying the exact return format. For a tool with two parameters and no output schema, this lacks sufficient detail for the agent to fully understand the response.

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% because both parameters ('file' and 'path') have descriptions. The tool description adds no additional information about parameters, maintaining the baseline 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 'Get metadata about a file (size, dates, type)' clearly states the action (get metadata) and the resource (file), and lists specific attributes. This differentiates it from siblings like 'read_note' (content) and 'get_backlinks' (links).

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 offers no guidance on when to use this tool versus alternatives like 'read_note' or 'get_properties'. There is no mention of context, prerequisites, or exclusions.

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

get_helpA
Read-onlyIdempotent

Get help for Obsidian CLI commands. Omit command for the full command list.

ParametersJSON Schema
NameRequiredDescriptionDefault
commandNoCommand to get help for

TDQS

A3.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds no additional behavioral context such as side effects or permissions, so it does not contribute beyond structured fields.

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 no wasted words. The main purpose is front-loaded, making it highly efficient for quick comprehension.

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

Completeness5/5

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

For a simple tool with one optional parameter, no output schema, and no nested objects, the description fully covers what an agent needs: purpose, optional behavior, and default functionality.

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% for the single parameter 'command'. The description adds the valuable nuance that omitting it returns the full command list, which surpasses the schema's description.

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 'Get help for Obsidian CLI commands' which identifies the tool's purpose as a help resource. It distinguishes from siblings like 'run_command' and 'search' by focusing on help retrieval.

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 provides a specific usage hint: 'Omit command for the full command list.' However, it does not explicitly state when to use this tool over alternatives or provide exclusions, only implying usage context.

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

get_outlineA
Read-onlyIdempotent

Get the heading structure/outline of a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
formatNoOutput format
totalNoShow only the total count

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and idempotentHint, so the description adds minimal behavioral context beyond 'heading structure.' No contradictions, but no extra details like output size or performance hints.

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?

Single sentence, no redundant words. Efficiently conveys the core function.

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?

With 4 optional parameters and no output schema, the description is adequate but incomplete: it doesn't clarify the output structure or how parameters interplay (e.g., 'total' vs 'format'). Still sufficient for a simple tool.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for all 4 parameters. The description adds no additional meaning beyond the schema, meeting the baseline.

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 'Get' targeting the 'heading structure/outline' resource. It clearly distinguishes this tool from siblings like 'read_note' or 'get_links' by focusing on headings.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., 'read_note' for full content, 'search' for specific headings). The description lacks when-not and context for selection.

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

get_propertiesA
Read-onlyIdempotent

List properties (frontmatter) of a note or across the vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
nameNoFilter by property name
sortNoSort order
formatNoOutput format
totalNoShow only the total count
countsNoShow occurrence counts
activeNoOnly active file

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no additional safety context. The description mentions 'across the vault' but doesn't detail aggregation behavior, rate limits, or other traits beyond annotations.

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?

Single sentence is concise and front-loaded with action and resource. No unnecessary words, but could benefit from a second sentence for context without harming conciseness.

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

Completeness3/5

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

Given 8 parameters and no output schema, the description lacks guidance on how to use parameters (e.g., file vs path) and what the return format looks like. It is functional but incomplete for an agent to infer correct usage without schema details.

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 description adds no new meaning beyond what parameters already provide. It hints at file/path/name usage but does not elaborate on syntax or behavior beyond schema.

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

Purpose5/5

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

The description clearly states the action 'list' and resource 'properties (frontmatter)' and indicates scope 'of a note or across the vault', distinguishing it from sibling tools like read_property which reads a single property.

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 (listing properties) but does not explicitly state when to use this tool over others like read_property or when not to use it (e.g., for modifying properties, use set_property/remove_property). No alternatives mentioned.

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

get_vault_infoA
Read-onlyIdempotent

Get information about the current vault (name, path, file count, size).

ParametersJSON Schema
NameRequiredDescriptionDefault
infoNoSpecific info to retrieve

TDQS

A4.1/5.0
Behavior4/5

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

Annotations declare readOnlyHint, destructiveHint false, idempotentHint true. Description adds that it returns name, path, file count, size, which is useful behavioral context. However, it doesn't clarify whether it returns all fields or a selected one (via the info parameter), causing slight 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?

Single sentence, front-loaded with purpose, no wasted words. Highly concise and efficient.

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?

No output schema, so description should explain return format. It does not specify the shape of the output (e.g., JSON object with fields). Given sibling tools and complexity, the description is slightly incomplete but sufficient for a simple info retrieval.

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% with an enum parameter. Description adds human-readable labels like 'file count' and 'size', though there is a minor mismatch: description says 'file count' but enum uses 'files', and description omits 'folders'. Still adds meaning beyond raw schema.

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

Purpose5/5

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

Description clearly states what the tool does: get vault information (name, path, file count, size). It distinguishes from siblings like get_file_info (specific file) and list_files (file listing), so purpose is specific and clear.

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 guidance on when to use this tool versus alternatives. The description implies it's for vault-level metadata, but does not mention exclusions or when not to use it. Given many sibling tools, more guidance would help.

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

list_filesA
Read-onlyIdempotent

List files in the vault, optionally filtered by folder or extension.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoLimit to folder
extNoFilter by extension (e.g. 'md')
totalNoShow only the total count

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. The description adds no behavioral context beyond the obvious listing action. No mention of pagination, limits, or output format.

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 concise sentence, front-loaded with the action and resource. No unnecessary words or repetition.

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-only list tool with annotations, the description is adequate. However, it lacks details on the output format (e.g., list of paths or names), which would improve completeness.

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

Parameters3/5

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

Schema coverage is 100% with clear descriptions for each parameter. The description only reiterates filtering by folder/extension, adding no extra meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the verb 'List' and resource 'files' with optional filters by folder or extension. It distinguishes from siblings like list_folders and list_tags.

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

Usage Guidelines3/5

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

No explicit when-to-use or when-not-to-use guidance compared to siblings like search or list_folders. The description implies its use for simple filtered listing but lacks 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_foldersB
Read-onlyIdempotent

List folders in the vault.

ParametersJSON Schema
NameRequiredDescriptionDefault
folderNoLimit to parent folder
totalNoShow only the total count

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety. The description adds no additional behavioral context (e.g., recursion, depth, return format), so it provides minimal extra value beyond the annotations.

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 short sentence that efficiently conveys the basic purpose. However, it does not earn its place fully by including optional scope or filtering hints, but it is not 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?

Given the simple nature of the tool (list folders with optional filters), the description provides adequate high-level purpose. However, it lacks usage guidelines and behavioral details, making it just minimally viable for an agent to use 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?

Schema description coverage is 100%, with both parameters ('folder' and 'total') having descriptions. The description does not add any meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description states 'List folders in the vault', which clearly specifies the action (list) and the resource (folders). It is distinct from sibling tools like list_files, list_tags, and list_tasks by resource name, though it does not explicitly differentiate 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context, or when not to use it, leaving the agent without decision-support information.

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

list_tagsB
Read-onlyIdempotent

List tags used in the vault or a specific note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
sortNoSort by count
totalNoShow only the total count
countsNoShow tag counts
formatNoOutput format
activeNoOnly active file

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true, so the agent knows it's a safe read. The description adds minimal behavioral context (e.g., scope of vault or note), but doesn't detail results, limits, or performance.

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. No unnecessary words. However, it could be slightly more structured to separate scope options.

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

Completeness3/5

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

Given the simplicity of the tool and full schema coverage, the description is adequate but lacks details about return format or output structure (no output schema). It could briefly mention that tags are listed with optional counts or formats.

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?

All 7 parameters have descriptions in the input schema (100% coverage), so the description does not need to add parameter details. It adds no extra meaning beyond what the schema 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 'List tags used in the vault or a specific note' clearly states the action and the resource (tags). It distinguishes from sibling tools like list_files or list_folders by focusing on tags, but lacks explicit differentiation from other tag-related tools like list_tasks.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., search or get_links). Does not specify prerequisites or when not to use it. The description only states basic functionality.

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

list_tasksC
Read-onlyIdempotent

List tasks (checkboxes) in the vault or a specific note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
dailyNoSearch in daily note
statusNoFilter by status character (e.g. 'x' for done, ' ' for open)
totalNoShow only the total count
doneNoShow only completed tasks
todoNoShow only incomplete tasks
verboseNoShow detailed info
formatNoOutput format
activeNoOnly active file

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already supply readOnlyHint (true), destructiveHint (false), and idempotentHint (true). The description adds minimal behavioral context beyond clarifying that tasks are checkboxes and that scope can be vault-wide or note-specific. It does not detail return behavior, pagination, or how parameters like status/done/todo affect scope. With annotations providing the safety profile, the description's contribution is limited.

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 sentence of 9 words, which is efficient and front-loaded. It clearly states the core functionality without extraneous detail. However, it could be slightly expanded to improve clarity without becoming verbose, e.g., mentioning that tasks are sourced from markdown files.

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 has 10 parameters and no output schema, the description is too brief to be complete. It does not explain how parameters like file/path/daily combine for scoping, the effect of status/done/todo flags, or the return format. An agent would need to infer this from parameter descriptions alone, which may be insufficient for correct 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?

All 10 parameters have descriptions in the input schema (100% coverage), so the baseline is 3. The tool's description adds no additional parameter information beyond what the schema already provides, meeting the expectation but not exceeding it.

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 lists tasks (checkboxes) in the vault or a specific note. It distinguishes from sibling tools like list_files or list_folders by specifying the resource type (tasks), but does not explicitly differentiate from search_with_context which might also return tasks. The verb+resource combination is clear and specific.

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. For example, it does not explain when to use list_tasks vs search or search_with_context for finding specific tasks. No when-not-to-use criteria or prerequisite information is given.

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

move_noteB
Destructive

Move or rename a note to a new path. Automatically updates all links.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
toYesDestination path

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already indicate destructive behavior (destructiveHint=true). The description adds the automatic link-updating behavior, but does not explain other effects like overwriting or error conditions.

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

Conciseness5/5

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

Two concise sentences front-load the core action and key side-effect, with no extraneous information.

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?

For a destructive operation with no output schema, the description omits important details (e.g., conflict resolution, behavior when destination exists, relationship between 'file' and 'path' parameters).

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?

All parameters have schema descriptions (100% coverage), but the description does not add further context or example values beyond 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 clearly states it moves or renames a note and updates links, but does not distinguish from the sibling tool 'rename_note', which may cause confusion.

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 'rename_note', leaving the agent to infer usage context.

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

prepend_noteB

Prepend content to a note (after frontmatter).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
contentYesContent to prepend (use \n for newlines)
inlineNoPrepend inline (no newline after)

TDQS

B3.4/5.0
Behavior3/5

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

Annotations are minimal (readOnlyHint false, destructiveHint false). The description adds one behavioral detail (after frontmatter) but does not disclose error handling, permissions, or side effects beyond mutation.

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. It is appropriately front-loaded and concise.

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?

With 4 parameters and no output schema, the description is too minimal. It does not explain behavior when file/path are both provided, resolution logic, or return value, leaving gaps for a non-read 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?

All parameters have descriptions in the schema (100% coverage), so the description adds marginal value. The 'after frontmatter' detail provides context not in schema, but does not significantly enhance parameter understanding.

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 (prepend), the resource (note), and a key detail (after frontmatter), distinguishing it from siblings like append_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 like append_note, or when not to use it. The description lacks 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.

read_noteA
Read-onlyIdempotent

Read the full content of a note. Provide either file (wikilink name) or path (exact vault path).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, informing safety. The description adds that it returns 'full content' and clarifies parameter alternatives, which are not in annotations. No contradictions.

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

Conciseness5/5

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

Two sentences, 18 words, front-loaded with purpose. No unnecessary 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?

For a simple read tool with rich annotations, the description is mostly complete. Missing details on output format and error handling, but likely sufficient for agent usage.

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% with descriptions. The description adds value by clarifying that parameters are alternatives ('Provide either... or...'), which is not explicit in schema.

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

Purpose5/5

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

The description explicitly states 'Read the full content of a note' with a clear verb and resource. It distinguishes between two input methods (file and path), providing specificity.

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 guides parameter choice ('Provide either file... or path...'), but lacks broader usage context such as when to use this tool over siblings like search or get_file_info. No exclusions or prerequisites are mentioned.

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

read_propertyA
Read-onlyIdempotent

Read the value of a specific property from a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
nameYesProperty name to read

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, so the safety profile is clear. The description adds no additional behavioral details beyond the obvious.

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 concise sentence, front-loaded and efficient. It could be slightly more structured but is appropriately brief.

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 good schema and annotations, but the description lacks details on return values or behavior when property is missing. It provides minimal context beyond the name.

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 parameters are already well-documented. The description adds no extra meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the tool reads a specific property from a note, using a specific verb and resource. It distinguishes from sibling tools like set_property and remove_property.

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 does not provide explicit guidance on when to use this tool versus alternatives like get_properties. Usage context is implied but not stated.

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

remove_propertyB
DestructiveIdempotent

Remove a frontmatter property from a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
nameYesProperty name to remove

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate destructive and idempotent behavior, but the description adds no additional behavioral context (e.g., what happens if the note or property doesn't exist, or if the property is not frontmatter). The description relies entirely on annotations and schema.

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

Conciseness5/5

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

The description is a single focused sentence with no extraneous words. It is perfectly concise and front-loaded with the key action and resource.

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

Completeness3/5

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

Given the tool simplicity and good schema/annotation coverage, the description is adequate but lacks some context like return value or error handling. It does not explain the outcome of removing a non-existent property or the need for frontmatter.

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

Parameters3/5

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

Schema coverage is 100% with parameter descriptions already provided. The tool description adds no further meaning beyond the schema, so it meets the baseline but does not enhance understanding.

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 ('Remove') and the resource ('frontmatter property from a note'), making the tool's purpose unambiguous. It distinguishes itself from siblings like set_property and read_property.

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 (e.g., setting a property to empty). There are no prerequisites, exclusions, or context about note existence or property presence.

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

rename_noteA
Destructive

Rename a note (preserves extension). Updates all links.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
nameYesNew name (without extension)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations indicate destructive action, and the description adds key behavioral context: 'Updates all links', which goes beyond what annotations provide.

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?

Very concise at 8 words in two sentences, with no unnecessary 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?

The description covers the essential behavior for a rename operation, and schema fully documents parameters. No output schema exists, but return value is likely straightforward.

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 covers all parameters with descriptions; the description does not add new meaning beyond what is already in the input schema.

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

Purpose5/5

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

The description clearly states the specific verb 'rename' and resource 'note', and distinguishes itself from sibling tools like move_note by mentioning extension preservation and link updating.

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 implies usage for renaming with link updates, but lacks explicit mention of when not to use (e.g., for moving) or reference to sibling tools.

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

run_commandA
Destructive

Run any Obsidian CLI command directly. Use get_help to discover available commands. This is an escape hatch for the ~80 CLI commands not exposed as dedicated tools (sync, plugins, themes, templates, workspaces, publish, dev tools, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesCLI command (e.g. 'sync:status', 'plugins', 'vault')
argsNoKey-value parameters (e.g. {"id": "my-plugin", "name": "test"})
flagsNoBoolean flags (e.g. ["verbose", "total"])

TDQS

A4/5.0
Behavior3/5

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

Annotations already set destructiveHint: true, and the description adds that it runs commands directly, which is consistent. No additional behavioral details like output handling or error behavior are provided, so it meets but does not exceed the baseline.

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 wasted words: the first states the purpose, the second provides context and differentiation from siblings.

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

Completeness4/5

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

Given the tool is an escape hatch with no output schema, the description covers purpose, discovery, and scope. It could mention output format or error handling but is sufficient for a generic CLI runner.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for all parameters, so the description adds little beyond listing example commands. 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 it runs any Obsidian CLI command directly, and distinguishes itself from siblings by being an escape hatch for ~80 commands not exposed as dedicated 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?

It suggests using get_help to discover commands and implies use for commands without dedicated tools, but does not explicitly state when not to use or name specific alternatives beyond the sibling list.

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

search_with_contextA
Read-onlyIdempotent

Search the vault with surrounding line context for each match.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
pathNoLimit to path
limitNoMax results
formatNoOutput format
caseNoCase-sensitive search

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate readOnly and idempotent. The description adds the behavioral trait of returning surrounding context, but lacks details on context size or performance impact.

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 concise sentence that front-loads the key purpose. However, it could be slightly more structured to include context on usage.

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?

With 5 parameters and no output schema, the description is too brief. It does not explain the format of surrounding context, how many lines are returned, or how output varies by parameters.

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 covers all 5 parameters with descriptions. The tool description adds no additional semantic meaning beyond what the schema already provides.

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 performs a search with surrounding line context, distinguishing it from plain search and other siblings.

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 use for contextual search but does not explicitly specify when to use this tool vs alternative search tools or provide exclusions.

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

set_propertyB
Idempotent

Set a frontmatter property on a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
nameYesProperty name
valueYesProperty value
typeNoProperty type

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate idempotent and non-destructive behavior. The description adds the 'frontmatter' scope, which is useful, but does not elaborate on override behavior or error cases.

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?

Single, well-formed sentence with zero fluff. All information is front-loaded and necessary.

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?

Adequate for a simple setter with good annotations, but lacks details on idempotency implications (e.g., replacing vs. merging values) and return behavior. Could be more complete.

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

Parameters3/5

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

Schema descriptions cover all 5 parameters with 100% coverage. The tool description adds no additional parameter context, so baseline score of 3 applies.

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?

Description clearly states the action (set) and resource (frontmatter property on a note). It is specific and distinguishable from siblings like read_property and remove_property, though it does not explicitly differentiate.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., update_task for tasks, or inline property editing). No mention of prerequisites or context.

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

update_taskB
Idempotent

Update a task's status (toggle, mark done/todo, or set custom status).

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
dailyNoTarget the daily note
refNoTask reference in 'path:line' format
lineNoLine number of the task
statusNoSet status character (e.g. 'x', ' ', '/')
toggleNoToggle task status
doneNoMark task as done
todoNoMark task as todo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate it's a write operation (readOnlyHint false) and idempotent (idempotentHint true). The description adds context about status modes but no additional behavior like side effects, authentication, or error 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?

Single sentence, front-loaded with action, no wasted words. Efficient and clear.

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?

Despite 9 optional parameters and no output schema, the description is too brief. It does not explain how to identify the task (file/path/daily/ref/line) or what happens on success/failure, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add meaningful insights beyond the schema, such as parameter interactions or which combination to use for typical cases.

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 it updates a task's status, listing specific modes (toggle, done, custom). It distinguishes from siblings like set_property or list_tasks by focusing on status changes.

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 vs alternatives. Does not mention when not to use it, such as for non-status updates or prerequisite steps like locating the task.

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

wordcountB
Read-onlyIdempotent

Count words and/or characters in a note.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoNote name (wikilink-style resolution)
pathNoExact path from vault root
wordsNoShow word count only
charactersNoShow character count only

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds that it counts words/characters, but does not detail behavior like whether it returns a formatted result or handles empty notes. This is adequate but minimal.

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, front-loaded sentence that conveys the core purpose without redundancy. It is concise and to the point.

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

Completeness3/5

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

Given the simplicity of the tool and no output schema, the description covers the main functionality. However, it could be improved by mentioning the return value format (e.g., returns counts) and handling of multiple parameters.

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 all parameters. The description does not add any additional semantic meaning beyond what is in the schema.

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

Purpose5/5

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

The description clearly states the verb 'Count' and the resource 'words and/or characters in a note'. It is specific and distinguishes itself from sibling tools, none of which duplicate this functionality.

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 read_note or search. There is no mention of when not to use it or any prerequisites.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, such as create_note vs append_note vs prepend_note. However, a few pairs like get_properties (retrieve all properties) and read_property (single property value) could cause minor confusion, but descriptions clarify the difference.

Naming Consistency5/5

The naming follows a highly consistent verb_noun pattern (e.g., create_note, delete_note, list_files, search_with_context). The only minor outlier is 'wordcount', but it is still descriptive and does not break the overall pattern.

Tool Count2/5

With 34 tools, the server exceeds the typical well-scoped range (3-15) and enters the 'too many' category. While the domain is rich, the large number may overwhelm agents and suggests some tools could be consolidated.

Completeness4/5

The tool set covers most CRUD operations for notes, properties, daily notes, links, tasks, and tags. Notable gaps include no explicit folder creation/deletion tools, but the run_command escape hatch provides flexibility, and core workflows are well supported.

Maintenance

ActivitySlowing
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

  • F
    license
    Not graded
    quality
    C
    maintenance
    Exposes Obsidian vault tools via Model Context Protocol (MCP) server over stdio, HTTP, or SSE transports, enabling AI assistants to read, write, search, and manage vault notes with 28+ built-in tools and CLI bridge integration.
    1
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables reading, writing, searching, and managing Obsidian vault notes through MCP tools and prompts, allowing AI agents to interact with local knowledge bases.

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

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