obsidian-mcp
Provides tools and prompts to interact with an Obsidian vault, including reading, writing, searching notes, managing properties and tasks, and running various CLI commands.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@obsidian-mcpfind all orphan notes in my vault"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian MCP
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-mcpTo make it available across all projects, add --scope user:
claude mcp add obsidian --scope user --env OBSIDIAN_VAULT="My Vault" -- npx -y @zethictech/obsidian-mcpThe -- separator is required so the command and its args aren't parsed as claude mcp add flags.
Environment Variables
Variable | Required | Description |
| Yes | Vault name or ID |
| No | Override path to |
| No | CLI timeout in milliseconds (default: |
Available Tools (34)
Read-only tools (20)
Tool | Description |
| Read the full content of a note |
| Get metadata about a file |
| List files in the vault |
| List folders in the vault |
| Search the vault for text |
| Search with surrounding line context |
| List incoming links to a note |
| List outgoing links from a note |
| Find broken/unresolved links |
| Find notes with no incoming links |
| Get heading structure of a note |
| List frontmatter properties |
| Read a specific property value |
| List tags in the vault or a note |
| List tasks (checkboxes) |
| Read today's daily note |
| Get the daily note file path |
| Get vault info (name, path, size) |
| Count words/characters in a note |
| Get CLI help for any command |
Write tools (9)
Tool | Description |
| Create a new note |
| Append content to a note |
| Prepend content to a note |
| Set a frontmatter property |
| Open/create today's daily note |
| Append to today's daily note |
| Prepend to today's daily note |
| Toggle or update a task's status |
| Add a bookmark |
Destructive tools (5)
Tool | Description |
| Move a note (updates all links) |
| Rename a note (updates all links) |
| Delete a note (trash or permanent) |
| Remove a frontmatter property |
| Run any CLI command directly |
run_commandis 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.). Useget_helpto 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 |
| — | Vault health overview: orphan notes, unresolved links, tags |
|
| Read and summarize a specific note |
|
| Find related notes via backlinks, links, and shared tags |
| — | Review today's daily note and suggest follow-up actions |
|
| Suggest wikilinks to add based on note content |
Troubleshooting
Server not starting?
Verify
OBSIDIAN_VAULTis set and matches your vault name exactlyEnsure Obsidian 1.12+ is installed with the CLI enabled
Run
npx @zethictech/obsidian-mcp --versionto 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-mcpLicense
MIT
Available Tools
34 toolsadd_bookmarkA
Add a bookmark to a file, folder, search, or URL.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| folder | No | Folder to bookmark | |
| search | No | Search query to bookmark | |
| url | No | URL to bookmark | |
| title | No | Bookmark title |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| content | Yes | Content to append (use \n for newlines) | |
| inline | No | Append inline (no newline before) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Note name | |
| path | No | Full path from vault root | |
| content | No | Initial content (use \n for newlines) | |
| template | No | Template name to use | |
| overwrite | No | Overwrite if file exists | |
| open | No | Open note after creation | |
| newtab | No | Open in a new tab |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Content to append (use \n for newlines) | |
| inline | No | Append inline (no newline before) | |
| paneType | No | How to open the note | |
| open | No | Open note after appending |
TDQS
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.
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.
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.
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.
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.
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_createAIdempotent
Open/create today's daily note in Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| paneType | No | How to open the note |
TDQS
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.
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.
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.
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.
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.
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_pathARead-onlyIdempotent
Get the expected file path for today's daily note.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Content to prepend (use \n for newlines) | |
| inline | No | Prepend inline (no newline after) | |
| paneType | No | How to open the note | |
| open | No | Open note after prepending |
TDQS
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.
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.
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.
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.
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.
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_readBRead-onlyIdempotent
Read today's daily note content.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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_noteADestructive
Delete a note. By default moves to trash; use permanent=true to skip trash.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| permanent | No | Permanently delete (skip trash) |
TDQS
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.
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.
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.
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.
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.
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_notesARead-onlyIdempotent
Find notes with no incoming links (orphans).
| Name | Required | Description | Default |
|---|---|---|---|
| total | No | Show only the total count |
TDQS
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.
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.
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.
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.
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.
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.
find_unresolved_linksARead-onlyIdempotent
Find all broken/unresolved links in the vault.
| Name | Required | Description | Default |
|---|---|---|---|
| total | No | Show only the total count | |
| counts | No | Show occurrence counts | |
| verbose | No | Show detailed info | |
| format | No | Output format |
TDQS
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 value by clarifying that the tool finds 'broken/unresolved' links, which goes beyond the annotations and explains the specific scope of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the core purpose without extraneous words. It is front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is sufficient for a simple query tool with optional parameters, but it does not mention the output format or any behavioral details like performance. Given the absence of an output schema, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add additional meaning to the parameters beyond what is already provided in the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'Find' and specifies the resource 'all broken/unresolved links in the vault.' It clearly distinguishes the tool from siblings like 'find_orphan_notes' and 'get_links' by focusing on unresolved/broken links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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_links' or 'search'. It only states what it does, leaving usage context implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backlinksARead-onlyIdempotent
List all notes that link to the specified note (incoming links).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| counts | No | Show occurrence counts | |
| total | No | Show only the total count | |
| format | No | Output format |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the description adds minimal behavioral context beyond clarifying 'incoming links'. It does not detail behavior for edge cases like no backlinks or parameter interaction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single 10-word sentence, efficiently front-loaded with key information. No redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 optional parameters, no output schema, and rich annotations, the description covers core purpose. Minor gaps remain: no guidance on parameter precedence (file vs path) or output format details, but overall adequate for a simple read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter already described. The tool description does not add new meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the verb 'list' and the resource 'all notes that link to the specified note (incoming links)', which clearly distinguishes it from sibling tools like get_links (outgoing links).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving incoming links but does not explicitly state when to use this tool versus alternatives like get_links or search. No exclusions or when-not-to-use guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_file_infoBRead-onlyIdempotent
Get metadata about a file (size, dates, type).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root |
TDQS
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.
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.
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.
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.
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.
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_helpARead-onlyIdempotent
Get help for Obsidian CLI commands. Omit command for the full command list.
| Name | Required | Description | Default |
|---|---|---|---|
| command | No | Command to get help for |
TDQS
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.
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.
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.
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.
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.
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_linksARead-onlyIdempotent
List all outgoing links from the specified note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| total | No | Show only the total count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds the specific behavior of listing outgoing links, which is consistent and sufficient for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no waste. It could include more structural separation (e.g., bullet points) but is very concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description could hint at the return format (e.g., list of link titles or paths). The current description is adequate but leaves some ambiguity about the output structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all parameters (file, path, total) clearly. The tool description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all outgoing links from the specified note' uses a specific verb (list) and resource (outgoing links) and clearly distinguishes from siblings like get_backlinks or find_unresolved_links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 get_backlinks or find_unresolved_links. There are no prerequisites or context for appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outlineARead-onlyIdempotent
Get the heading structure/outline of a note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| format | No | Output format | |
| total | No | Show only the total count |
TDQS
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.
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.
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.
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.
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.
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_propertiesARead-onlyIdempotent
List properties (frontmatter) of a note or across the vault.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| name | No | Filter by property name | |
| sort | No | Sort order | |
| format | No | Output format | |
| total | No | Show only the total count | |
| counts | No | Show occurrence counts | |
| active | No | Only active file |
TDQS
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.
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.
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.
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.
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.
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_infoARead-onlyIdempotent
Get information about the current vault (name, path, file count, size).
| Name | Required | Description | Default |
|---|---|---|---|
| info | No | Specific info to retrieve |
TDQS
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.
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.
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.
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.
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.
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_filesARead-onlyIdempotent
List files in the vault, optionally filtered by folder or extension.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Limit to folder | |
| ext | No | Filter by extension (e.g. 'md') | |
| total | No | Show only the total count |
TDQS
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.
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.
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.
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.
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.
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_foldersBRead-onlyIdempotent
List folders in the vault.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Limit to parent folder | |
| total | No | Show only the total count |
TDQS
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.
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.
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.
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.
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.
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_tagsBRead-onlyIdempotent
List tags used in the vault or a specific note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| sort | No | Sort by count | |
| total | No | Show only the total count | |
| counts | No | Show tag counts | |
| format | No | Output format | |
| active | No | Only active file |
TDQS
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.
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.
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.
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.
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.
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_tasksCRead-onlyIdempotent
List tasks (checkboxes) in the vault or a specific note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| daily | No | Search in daily note | |
| status | No | Filter by status character (e.g. 'x' for done, ' ' for open) | |
| total | No | Show only the total count | |
| done | No | Show only completed tasks | |
| todo | No | Show only incomplete tasks | |
| verbose | No | Show detailed info | |
| format | No | Output format | |
| active | No | Only active file |
TDQS
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.
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.
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.
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.
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.
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_noteBDestructive
Move or rename a note to a new path. Automatically updates all links.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| to | Yes | Destination path |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| content | Yes | Content to prepend (use \n for newlines) | |
| inline | No | Prepend inline (no newline after) |
TDQS
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.
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.
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.
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.
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.
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_noteARead-onlyIdempotent
Read the full content of a note. Provide either file (wikilink name) or path (exact vault path).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root |
TDQS
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.
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.
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.
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.
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.
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_propertyARead-onlyIdempotent
Read the value of a specific property from a note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| name | Yes | Property name to read |
TDQS
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.
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.
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.
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.
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.
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_propertyBDestructiveIdempotent
Remove a frontmatter property from a note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| name | Yes | Property name to remove |
TDQS
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.
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.
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.
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.
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.
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_noteADestructive
Rename a note (preserves extension). Updates all links.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| name | Yes | New name (without extension) |
TDQS
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.
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.
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.
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.
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.
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_commandADestructive
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.).
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | CLI command (e.g. 'sync:status', 'plugins', 'vault') | |
| args | No | Key-value parameters (e.g. {"id": "my-plugin", "name": "test"}) | |
| flags | No | Boolean flags (e.g. ["verbose", "total"]) |
TDQS
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.
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.
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.
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.
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.
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.
searchBRead-onlyIdempotent
Search the vault for text matching a query.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| path | No | Limit to path | |
| limit | No | Max results | |
| format | No | Output format | |
| case | No | Case-sensitive search | |
| total | No | Show only the total count |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds no additional behavioral context beyond 'text matching query', which is minimal. No details on performance, rate limits, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with key information. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not explain return format (e.g., list of note titles, snippets). For a search tool with 6 parameters, this is insufficient for an agent to understand expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already documents all parameters. Description does not add extra meaning beyond what's in the schema (e.g., query format, path semantics). Baseline 3 maintained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Search' and resource 'vault' for text matching query. It is specific enough but could define what is searched (e.g., note contents). Siblings like search_with_context are distinguished implicitly, but no explicit differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like search_with_context. No exclusions or prerequisites mentioned. The agent must infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_with_contextARead-onlyIdempotent
Search the vault with surrounding line context for each match.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| path | No | Limit to path | |
| limit | No | Max results | |
| format | No | Output format | |
| case | No | Case-sensitive search |
TDQS
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.
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.
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.
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.
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.
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_propertyBIdempotent
Set a frontmatter property on a note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| name | Yes | Property name | |
| value | Yes | Property value | |
| type | No | Property type |
TDQS
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.
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.
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.
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.
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.
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_taskBIdempotent
Update a task's status (toggle, mark done/todo, or set custom status).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| daily | No | Target the daily note | |
| ref | No | Task reference in 'path:line' format | |
| line | No | Line number of the task | |
| status | No | Set status character (e.g. 'x', ' ', '/') | |
| toggle | No | Toggle task status | |
| done | No | Mark task as done | |
| todo | No | Mark task as todo |
TDQS
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.
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.
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.
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.
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.
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.
wordcountBRead-onlyIdempotent
Count words and/or characters in a note.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Note name (wikilink-style resolution) | |
| path | No | Exact path from vault root | |
| words | No | Show word count only | |
| characters | No | Show character count only |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Shared long-term memory vault for AI agents with 20 MCP tools.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to search, create, and manage notes in an Obsidian vault via 40+ local tools.5227MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to manage Obsidian vaults programmatically with 28 tools for reading, writing, editing, and analyzing notes.MIT
- FlicenseNot gradedqualityCmaintenanceExposes 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
- FlicenseNot gradedqualityCmaintenanceEnables 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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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