Skip to main content
Glama
gapmiss

live-mcp-for-obsidian

by gapmiss

live-mcp-for-obsidian

A live connection between AI assistants and your running Obsidian instance.

IMPORTANT

Disclaimer: This project is not created by, affiliated with, or endorsed by Obsidian or Dynalist Inc. "Obsidian" is a trademark of Dynalist Inc. This project uses Obsidian's native CLI interface for interoperability.

Most Obsidian MCP servers treat your vault as a folder of files — read, write, search. This one connects to the live application. It can read your notes, but it can also click buttons, manage plugins, take screenshots, execute JavaScript, inspect the DOM, emulate mobile, record video of the UI, and control the full Obsidian UI. 46 tools, zero plugins required.

Demo

https://github.com/user-attachments/assets/297fb0d5-f089-45b5-8038-5de2cbc0f4b7

More demos

Related MCP server: Obsidian MCP Tool Server

How is this different?

There are 20+ Obsidian MCP servers in the community. Nearly all of them do the same thing: expose vault files over HTTP or stdio so an AI can read and write markdown.

This server operates at a fundamentally different level:

File-based MCP servers

live-mcp-for-obsidian

Read/write notes

Yes

Yes

Search vault

Yes

Yes

Interact with plugins

No

Yes — enable, disable, reload, inspect

Click UI elements

No

Yes — any button, menu, or control

Take screenshots

No

Yes — full window or targeted element

Execute JavaScript

No

Yes — full app.* API access

Inspect DOM/CSS

No

Yes — like Chrome DevTools

Mobile emulation

No

Yes — test mobile layouts

Console/error capture

No

Yes — live debugging

Requires Obsidian plugins

Usually

No — uses native CLI

It's the difference between a file server and full app automation.

Remote access

With SSH access to the machine running Obsidian, you get full remote control — every tool works over an SSH session. No HTTP server, no OAuth, no Cloudflare Tunnel, no Tailscale. Just SSH in, run Claude Code, and you have a live connection to your Obsidian instance from anywhere.

Requirements

  • Obsidian 1.12.4+ (with CLI support)

  • Node.js 18+

  • macOS (Linux/Windows: adjust the Obsidian binary path)

  • ffmpeg — only for the three screen recording tools. Everything else works without it. Install with brew install ffmpeg.

Install

Claude Code

claude mcp add obsidian-live -- npx live-mcp-for-obsidian

With a specific vault:

claude mcp add obsidian-live -- npx live-mcp-for-obsidian --vault "My Vault"

This registers the server in your user-level config (~/.claude.json), making it available in every Claude Code session on your machine. To limit it to a single project, add --scope project which writes to .mcp.json in the current directory instead.

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "obsidian-live": {
      "command": "npx",
      "args": ["live-mcp-for-obsidian"]
    }
  }
}

With a specific vault:

{
  "mcpServers": {
    "obsidian-live": {
      "command": "npx",
      "args": ["live-mcp-for-obsidian", "--vault", "My Vault"]
    }
  }
}

From source

git clone https://github.com/gapmiss/live-mcp-for-obsidian.git
cd live-mcp-for-obsidian
npm install
npm run build
claude mcp add obsidian-live -- node ./build/cli.js

CLI Options

Flag

Default

Description

--obsidian-path

/Applications/Obsidian.app/Contents/MacOS/Obsidian

Path to Obsidian binary

--vault, -v

Active vault

Target a specific vault by name

What can it do?

Vault management

"What files are in my Projects folder?" "Create a new note called 'Meeting Notes' with a template" "Move all files from Inbox/ to Archive/" "Show me orphaned notes with no backlinks" "What are my incomplete tasks across the vault?"

Daily notes

"Read my daily note" "Append '- Called dentist to reschedule' to today's daily note" "What tasks are on today's daily note?"

Session briefing

"Give me a briefing"

One call to obsidian_briefing returns the active file, open tabs, daily note status, recent files, vault stats, and any persistent instructions from a CLAUDE.md file in your vault root. Instant situational awareness — no setup, no storage, ~300 tokens.

Live UI automation

"Click the p2p-share status bar item and select 'Pair with device'" "Toggle the theme mode button" "Open the command palette and run 'Graph view: Open local graph'"

The assistant can interact with any UI element via obsidian_eval — clicking buttons, opening menus, filling inputs, navigating the interface. Anything you can do with a mouse, the assistant can do programmatically.

Plugin development

"Reload my plugin so I can test the changes" "What commands does my plugin register?" "Take a screenshot of .my-plugin-settings so I can see how my settings tab looks" "Show me the console errors after I triggered that bug" "What CSS is applied to .my-plugin-container?" "Toggle mobile emulation so I can test the mobile layout"

Full Chrome DevTools capabilities — DOM inspection, CSS debugging, console/error capture, screenshots, and arbitrary JS evaluation — plus Obsidian-specific tools like plugin reload and command listing.

Screenshots

"Take a screenshot" "Screenshot just the .workspace-leaf.mod-active element" "Take a jpeg screenshot at 80% quality" "Screenshot the sidebar: .workspace-split.mod-left-split"

obsidian_screenshot uses Chrome DevTools Protocol for capture, supporting full-window or element-targeted screenshots via CSS selector. Choose between png, jpeg, or webp output, and control compression quality for jpeg/webp. Element targeting finds the first visible match — useful in Obsidian where multiple hidden duplicates of a selector may exist.

Theme development

"What CSS variables does the current theme define for text colors?" "Inspect the computed styles on the sidebar" "Screenshot the .workspace-leaf-content, then switch to dark mode and take another" "Show me the CSS source locations for .workspace-leaf"

Knowledge base queries

"List all tags sorted by frequency" "What properties does this note have?" "Show me the outline of my 'Architecture' note" "What notes link to 'Project Alpha'?" "Find all unresolved links in my vault"

Automation

"Execute the 'daily-notes:open' command" "Disable the 'calendar' plugin" "Set the 'status' property to 'done' on this note" "Enable the minimal theme"

The obsidian_command tool can trigger any registered command, and obsidian_eval can run arbitrary JavaScript for anything not covered by a dedicated tool.

Tools Reference

Status & Vaults

Tool

Description

obsidian_status

Get Obsidian version, vault name, path, file/folder counts, and size

obsidian_vaults

List all known vaults

Workspace

Tool

Description

obsidian_tabs

List all open tabs with their view type

obsidian_workspace

Show the workspace tree layout

obsidian_open

Open a file in Obsidian

Files & Vault

Tool

Description

obsidian_files

List files, optionally filtered by folder or extension

obsidian_read

Read the contents of a file

obsidian_create

Create a new file in the vault

obsidian_append

Append content to a file

obsidian_prepend

Prepend content to a file

obsidian_delete

Delete a file (moves to trash by default)

obsidian_move

Move or rename a file

obsidian_search

Search files, tags, properties, or links in the vault

Notes & Metadata

Tool

Description

obsidian_properties

List properties in the vault or for a specific file

obsidian_property_set

Set a property on a file

obsidian_tags

List tags in the vault or for a specific file

obsidian_links

List outgoing links from a file

obsidian_backlinks

List backlinks to a file

obsidian_outline

Show headings for a file

obsidian_tasks

List tasks in the vault or a specific file

obsidian_daily

Open or read the daily note

obsidian_daily_append

Append content to the daily note

Plugins & Commands

Tool

Description

obsidian_plugins

List installed plugins with enabled/disabled state

obsidian_plugin_info

Get detailed info about a specific plugin

obsidian_plugin_enable

Enable a plugin

obsidian_plugin_disable

Disable a plugin

obsidian_plugin_reload

Reload a plugin (useful during development)

obsidian_commands

List available commands, optionally filtered by prefix

obsidian_command

Execute an Obsidian command by ID

Themes & Appearance

Tool

Description

obsidian_theme

Show active theme info or get details about a specific theme

obsidian_themes

List installed themes

obsidian_snippets

List installed CSS snippets

Developer Tools

Tool

Description

obsidian_eval

Execute JavaScript in Obsidian and return the result

obsidian_dom

Query DOM elements by CSS selector

obsidian_console

Show captured console messages

obsidian_errors

Show captured errors

obsidian_screenshot

Take a screenshot of the full window or a specific element via CSS selector. Supports png/jpeg/webp output and quality control.

obsidian_css

Inspect CSS with source locations for a selector

obsidian_cdp

Run a Chrome DevTools Protocol command directly

obsidian_debug

Attach or detach the CDP debugger

obsidian_mobile

Toggle mobile emulation on or off

obsidian_devtools

Toggle Electron DevTools open/closed

Memory

Tool

Description

obsidian_briefing

Snapshot of current state: active file, tabs, daily note, recent files, vault stats, CLAUDE.md

Screen Recording

Records video of the Obsidian window by capturing frames over the Chrome DevTools Protocol, then encoding them with ffmpeg. Requires ffmpeg on your PATH.

Tool

Description

obsidian_record

Record for a fixed duration (1-120 seconds) and encode. One call, blocks until finished.

obsidian_start_recording

Begin an open-ended recording. Returns a session ID.

obsidian_stop_recording

Stop a session by ID and encode the captured frames. Returns the output file path.

Both paths accept fps (1-15, default 5) and format (mp4, webm, or gif, default mp4). Use obsidian_record when you know the length in advance; use the start/stop pair when the recording needs to span other tool calls, such as capturing a UI action while you drive it.

obsidian_record blocks for the full duration you request. If your MCP client has a request timeout shorter than that, a long recording will appear to fail even though it completes. Use obsidian_start_recording and obsidian_stop_recording instead for anything long.

Frames that fail to capture are skipped rather than aborting the recording, so a busy or unresponsive Obsidian window produces a shorter video rather than an error. Both stop paths return an error if zero frames were captured.

How It Works

This server is a thin MCP wrapper around Obsidian's native CLI. Each tool maps to one or more CLI commands:

obsidian_read { file: "My Note" }
  → obsidian read file="My Note"

obsidian_plugin_reload { id: "my-plugin" }
  → obsidian plugin:reload id=my-plugin

obsidian_dom { selector: ".workspace-leaf", text: true }
  → obsidian dev:dom selector=".workspace-leaf" text

obsidian_screenshot { selector: ".workspace-leaf", format: "jpeg", quality: 80 }
  → CDP Page.captureScreenshot with element clip region

No network servers, no ports, no plugins to install. The CLI communicates with the running Obsidian instance directly.

Token usage

Every MCP tool call consumes tokens — the tool description, the input parameters, and the response all count. This server is designed to be lightweight: most responses are raw CLI output with no wrapper text, and write operations return single-word confirmations like "Created" or "Deleted" (1-4 tokens).

What a typical session looks like

Action

Tool calls

Typical tokens

Session briefing

1 (obsidian_briefing)

100-400

Read a note

1 (obsidian_read)

50-2,000+ (depends on note length)

Append to daily note

1 (obsidian_daily_append)

~30 (input + "Appended to daily note")

Take a screenshot

1 (obsidian_screenshot)

~30 (returns only a file path)

Enable a plugin

1 (obsidian_plugin_enable)

~20 (returns "Enabled")

List vault files

1 (obsidian_files)

50-5,000+ (depends on vault size)

Most interactions are small. A "read my daily note and append a task" flow is ~3 tool calls and a few hundred tokens total. The expensive operations are the ones that return large, unbounded content.

Tools with large outputs

These tools can return substantial output depending on your vault size and content:

Tool

What drives size

How to reduce it

obsidian_files

Number of files in vault

Use folder, ext filters, or total: true for count only

obsidian_read

Length of the note

No built-in limit — large notes return in full

obsidian_tasks

Number of tasks vault-wide

Use file, path, active, daily, or done/todo filters

obsidian_commands

Number of installed plugins

Use filter to match by command ID prefix

obsidian_dom

DOM complexity

Avoid all: true on broad selectors; use text: true for text-only

obsidian_eval / obsidian_cdp

Whatever your code returns

Design your code to return only what you need

obsidian_briefing

CLAUDE.md file size

Keep your vault's CLAUDE.md concise

Built-in efficiency features

Several tools include parameters specifically for reducing output:

  • total: true on obsidian_files, obsidian_links, obsidian_backlinks — returns only a count instead of the full list

  • format on obsidian_tags, obsidian_tasks, obsidian_properties, obsidian_plugins, obsidian_backlinks — choose tsv or csv for compact tabular output, json for structured data

  • filter on obsidian_plugins (by type), obsidian_commands (by ID prefix) — narrow results before they're returned

  • done / todo on obsidian_tasks — get only completed or incomplete tasks

  • active / daily on obsidian_tasks, obsidian_tags, obsidian_properties — scope to current file or daily note instead of full vault

  • text: true on obsidian_dom — return text content instead of raw HTML

  • limit on obsidian_console — cap the number of console messages returned

Tips for keeping token usage low

  1. Start with obsidian_briefing — one call gives you active file, open tabs, daily note status, recent files, and vault stats. Much cheaper than calling each tool separately.

  2. Use filters on list toolsobsidian_files with ext=md and folder=Projects is dramatically cheaper than listing the entire vault.

  3. Prefer total: true when you only need a count — "how many markdown files?" costs ~20 tokens instead of listing thousands of paths.

  4. Scope tasks and tags to a file — vault-wide obsidian_tasks on a large vault can be expensive; obsidian_tasks with active: true is not.

  5. Use text: true with obsidian_dom — raw HTML is verbose; text content is usually what you need.

  6. Keep your vault's CLAUDE.md shortobsidian_briefing includes it in full. A few focused lines is better than a wall of text.

FAQ

Is this safe? This server runs locally and communicates only via stdio — there's no network exposure. Destructive tools like obsidian_delete require confirmation from your MCP client before executing. See SECURITY.md for the full trust model.

Why does it need obsidian_eval? Obsidian has 800+ API methods. 42 tools cover the common operations. Eval is the escape hatch for everything else — and it's what makes use cases like "click that button" or "check the graph view" possible.

What if I don't want the powerful tools? Your MCP client controls which tool calls are approved. Claude Code and Claude Desktop both show you the tool call and its arguments before executing. You can deny any call you're not comfortable with.

Security

This server executes commands against a running Obsidian instance. Tools like obsidian_eval and obsidian_cdp are powerful by design — they provide full JavaScript execution and DevTools access for app automation.

See SECURITY.md for the full trust model, input handling details, and security considerations.

Disclaimer

This project is not created by, affiliated with, or endorsed by Obsidian or Dynalist Inc. "Obsidian" is a trademark of Dynalist Inc. This project uses Obsidian's native CLI interface for interoperability purposes only.

License

MIT

Available Tools

43 tools
obsidian_appendB

Append content to a file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
pathNoFile path
inlineNoAppend without newline
contentYesContent to append

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits such as whether the file is created if missing, error handling, or any side effects. The minimal description fails to inform the agent of these critical aspects.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no wasted words. It is efficiently written, though it lacks important behavioral context.

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

Completeness2/5

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

Given the low complexity (append operation) and lack of output schema, the description is too sparse. It fails to provide essential context like behavior when file doesn't exist, what happens on append without newline, or error scenarios. More detail is needed to be fully useful.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds no additional meaning beyond the schema's parameter descriptions, which are already adequate.

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

Purpose5/5

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

The description 'Append content to a file' clearly states the verb (Append) and resource (content to a file), distinguishing it from siblings like obsidian_prepend (prepend) or obsidian_create (create new file).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as obsidian_prepend, obsidian_create, or obsidian_write. The description lacks explicit context or exclusions.

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

obsidian_briefingA
Read-only

Get a snapshot of the current Obsidian state: active file, open tabs, daily note, recent files, vault stats, and CLAUDE.md instructions if present. Call this at the start of a session for instant context.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, and description adds valuable detail about the specific data returned (active file, tabs, etc.), confirming safe read-only behavior without contradictions.

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

Conciseness5/5

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

Two sentences efficiently convey purpose, contents, and usage. Front-loaded with key verb 'Get a snapshot', followed by a list of elements, then usage recommendation. No fluff.

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

Completeness5/5

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

Despite no output schema, description sufficiently enumerates all returned data categories (active file, tabs, daily note, recent files, vault stats, CLAUDE.md). Also provides usage context, making it complete for the tool's complexity.

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

Parameters4/5

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

Tool has zero parameters; schema coverage is 100%. Baseline score of 4 applies as description need not add parameter details. No additional parameter information required.

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

Purpose5/5

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

Description clearly states the tool retrieves a snapshot of Obsidian state including active file, open tabs, daily note, recent files, vault stats, and CLAUDE.md. This distinguishes it from sibling tools that focus on specific aspects like reading files or managing plugins.

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

Usage Guidelines4/5

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

Explicitly advises calling at the start of a session for instant context. Provides clear when-to-use guidance, though no explicit when-not-to or alternatives are mentioned.

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

obsidian_cdpC

Run a Chrome DevTools Protocol command directly

ParametersJSON Schema
NameRequiredDescriptionDefault
methodYesCDP method to call (e.g. 'Page.reload')
paramsNoMethod parameters as JSON

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must carry full burden. It only states the action without disclosing side effects (e.g., ability to modify browser state), permissions needed, or error behavior. This is inadequate for a potentially powerful tool.

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

Conciseness4/5

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

The description is a single, clear sentence with no wasted words. It is front-loaded. However, it could benefit from more detail to aid comprehension without sacrificing conciseness.

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

Completeness2/5

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

Given the tool's complexity (executing arbitrary CDP commands) and lack of output schema, the description fails to explain return values, error handling, or the scope of commands that can be run. The description is incomplete for safe and effective use.

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

Parameters3/5

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

Schema coverage is 100% with descriptions for both parameters. The description adds no additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Run') and the resource ('Chrome DevTools Protocol command') with a specific verb and resource. However, it does not differentiate from sibling tools like 'obsidian_eval' or 'obsidian_console' that might have overlapping functionality, so it loses a point.

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

Usage Guidelines2/5

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

No indication of when to use this tool versus alternatives, no prerequisites, error scenarios, or when-not-to-use guidance. The description is too brief to provide any usage context.

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

obsidian_commandB

Execute an Obsidian command by ID

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesCommand ID to execute

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'execute' without indicating whether the command is read-only, modifies state, requires permissions, or has side effects. Minimal disclosure.

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

Conciseness5/5

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

The description is extremely concise: 6 words in one sentence, front-loaded with the action and object. No wasted words.

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

Completeness3/5

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

For a simple tool with one parameter and no output schema, the description is minimally adequate but lacks context about how to obtain command IDs or any effects of execution. Could be improved with additional context.

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

Parameters3/5

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

The input schema has 100% coverage, with the 'id' parameter described as 'Command ID to execute'. The description adds no extra meaning beyond what the schema already provides, meeting the baseline.

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

Purpose4/5

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

The description clearly states 'Execute an Obsidian command by ID', using a specific verb and resource. It is unambiguous but does not explicitly differentiate from sibling tools like obsidian_commands (which likely lists commands), though the verb 'execute' implies action.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. The description lacks any context about prerequisites, when not to use, or how it fits into a workflow.

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

obsidian_commandsA
Read-only

List available Obsidian commands, optionally filtered by prefix

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter commands by ID prefix

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the safe reading behavior is covered. The description adds the filtering behavior but does not disclose details like pagination or return format beyond what is implied.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words. It includes the core operation and optional parameter succinctly.

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

Completeness4/5

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

For a simple listing tool with no output schema and good annotations, the description is sufficient. It covers the main purpose and parameter. However, it could optionally hint at the format of the list (e.g., command IDs).

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

Parameters3/5

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

Schema coverage is 100% and the parameter description in the schema already explains the filter. The tool description restates this without adding new semantic value beyond the schema.

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

Purpose5/5

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

The description clearly specifies the verb 'List', the resource 'available Obsidian commands', and the optional filtering capability. It distinguishes the tool from siblings like 'obsidian_command' which likely executes commands.

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

Usage Guidelines3/5

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

The description implies usage for discovering commands before using obsidian_command, but it does not explicitly state when to use this tool versus alternatives or provide any exclusion context.

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

obsidian_consoleB
Read-only

Show captured console messages from Obsidian

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear the console buffer
levelNoFilter by log level
limitNoMax messages (default: 50)

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to repeat that. The description adds no additional behavioral context beyond the annotations, such as whether the console buffer persists or is cleared automatically.

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

Conciseness4/5

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

The description is a single short sentence that is concise and front-loaded. It could be slightly more informative but is not verbose or wasteful.

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

Completeness3/5

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

For a tool with 3 parameters, no output schema, and existing annotations, the description is minimal but covers the basic purpose. It lacks context about what 'captured' means (e.g., from which console) or how to interpret results.

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

Parameters3/5

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

Schema coverage is 100%, so the input schema already describes all parameters (clear, level, limit). The description does not add any extra meaning or usage hints beyond what the schema provides.

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

Purpose4/5

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

The description clearly states the tool shows captured console messages from Obsidian. While it is specific, it does not explicitly differentiate from sibling tools such as obsidian_debug or obsidian_errors, but the purpose is clear.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like obsidian_errors or obsidian_debug. There is no mention of when not to use it or contextual recommendations.

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

obsidian_createB

Create a new file in the vault

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoFile name
openNoOpen after creating
pathNoFile path
contentNoInitial content
templateNoTemplate to use
overwriteNoOverwrite if exists

TDQS

B3.2/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as file overwrite behavior (though overwrite parameter exists), default file extension, or required permissions. Users must infer from schema.

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

Conciseness4/5

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

Extremely concise single sentence with no wasted words. However, it could include a brief note about key parameters without sacrificing conciseness.

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

Completeness3/5

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

With 6 parameters and no output schema, the description is minimal. While schema descriptions provide parameter details, the description lacks context on usage patterns, defaults, or how template/content interact. Adequate but not comprehensive.

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

Parameters3/5

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

Schema coverage is 100% with all 6 parameters described. The tool description adds no additional meaning beyond the schema, but baseline 3 is appropriate since the schema already documents parameters clearly.

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

Purpose5/5

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

The description 'Create a new file in the vault' clearly states the action (create), resource (file), and location (vault). It distinguishes the tool from siblings like obsidian_append (append to existing) and obsidian_delete (remove).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like obsidian_append, obsidian_read, or obsidian_move. No conditions or exclusions mentioned.

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

obsidian_cssB
Read-only

Inspect CSS with source locations for a selector

ParametersJSON Schema
NameRequiredDescriptionDefault
propNoFilter by property name
selectorYesCSS selector

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint: true, so the description doesn't need to mention safety. It adds that source locations are returned, but does not elaborate on other behavioral aspects like error handling or performance characteristics.

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

Conciseness4/5

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

The description is concise, using a single sentence to convey the core function without extraneous information. It is front-loaded and easy to parse.

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

Completeness3/5

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

Given the tool has two parameters and no output schema, the description is somewhat incomplete. It does not explain what 'source locations' entails, nor does it describe the return format. However, the tool's complexity is low, so the description is minimally adequate.

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

Parameters3/5

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

Schema coverage is 100%, with both parameters described adequately in the schema. The description does not add 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.

Purpose4/5

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

The description clearly states the tool inspects CSS with source locations for a selector, using a specific verb and resource. However, it does not explicitly differentiate from sibling tools like obsidian_dom or obsidian_debug, which might have overlapping functionality.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description only states what it does, without context for appropriate usage scenarios or preconditions.

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

obsidian_dailyC

Open or read the daily note

ParametersJSON Schema
NameRequiredDescriptionDefault
readNoRead contents instead of opening

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description must fully disclose behavioral traits. It only states 'Open or read the daily note' but does not explain what opening entails (e.g., UI focus) or what reading returns (e.g., plain text). Side effects and permissions are not mentioned.

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

Conciseness4/5

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

The description is a single, succinct sentence that front-loads the purpose. It is efficient but could be slightly more informative without becoming verbose.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description should provide more context about the tool's behavior, such as what actions 'open' and 'read' perform and what the user can expect as output. It currently leaves these details ambiguous.

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

Parameters3/5

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

Schema coverage is 100% and the parameter 'read' is described in the schema. The tool description merely echoes the schema's purpose without adding additional meaning, thus meeting the baseline for high coverage.

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

Purpose4/5

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

The description specifies the verb ('open or read') and the resource ('the daily note'), which clearly identifies the tool's purpose. However, it does not differentiate from sibling tools like obsidian_open or obsidian_read, which likely operate on any note, not just the daily note.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives like obsidian_open or obsidian_read. There is no explicit context about prerequisites or exclusions.

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

obsidian_daily_appendB

Append content to the daily note

ParametersJSON Schema
NameRequiredDescriptionDefault
inlineNoAppend without newline
contentYesContent to append

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only says 'append content' without explaining side effects (e.g., does it create the note if missing?), behavior of the 'inline' parameter beyond schema, or any permissions needed. The description is too terse for a mutation tool.

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

Conciseness3/5

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

The description is very short (6 words) but misses opportunity to add crucial context without much text. It is concise but at the expense of completeness; a slightly longer description with key usage hints would improve structure.

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

Completeness2/5

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

The tool is simple (2 params, no output schema), but the description fails to clarify what constitutes 'the daily note' (e.g., date-based, configurable) or how it differs from 'obsidian_append'. Contextual information is minimal, leaving the agent to infer behavior.

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

Parameters3/5

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

Schema coverage is 100%, so the parameters are already documented. The description does not add meaning beyond the schema (e.g., what 'content' format is expected, or when 'inline' is appropriate). Baseline 3 is appropriate given full schema coverage.

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

Purpose5/5

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

The description clearly states the action ('append content') and the target resource ('the daily note'), distinguishing it from siblings like 'obsidian_append' which appends to the current note. The verb-noun pair is specific and unambiguous.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'obsidian_append' or 'obsidian_prepend'. It does not mention prerequisites, context (e.g., whether the daily note must exist), or when not to use it.

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

obsidian_debugC

Attach or detach the Chrome DevTools Protocol debugger

ParametersJSON Schema
NameRequiredDescriptionDefault
onNoAttach debugger
offNoDetach debugger

TDQS

C2.6/5.0
Behavior2/5

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

No annotations exist, so the description must carry the behavioral transparency burden. It only states 'attach or detach' without disclosing side effects, state persistence, or required permissions. This is insufficient for a tool that modifies debugger state.

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

Conciseness3/5

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

A single sentence, concise and front-loaded. However, it lacks detail, making it borderline under-specified rather than efficiently concise.

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

Completeness2/5

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

With no output schema, no annotations, and two optional booleans, the description omits critical context about mutual exclusivity, default behavior, and return values. It is incomplete for safe and correct usage.

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

Parameters2/5

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

Schema coverage is 100% with each parameter having a description ('Attach debugger' and 'Detach debugger'), but these merely echo the tool description. The description does not clarify mutual exclusivity of 'on' and 'off' or behavior when both are set, missing an opportunity to add meaning beyond the schema.

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

Purpose4/5

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

The description uses a specific verb ('attach or detach') and specifies the resource ('Chrome DevTools Protocol debugger'), clearly indicating the tool's function. It distinguishes itself from related siblings like obsidian_cdp and obsidian_devtools by being debugger-specific.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like obsidian_cdp or obsidian_devtools. There is no mention of prerequisites, context, or exclusions.

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

obsidian_deleteA
Destructive

Delete a file (moves to trash by default)

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
pathNoFile path
permanentNoSkip trash, delete permanently

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true. The description adds value by noting the default 'moves to trash' behavior, which is not in annotations, providing important context for safe invocation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the core purpose and key behavior.

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

Completeness5/5

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

Given 3 parameters, no output schema, and destructiveHint annotation, the description is sufficient. It explains the critical behavior (trash vs permanent) and allows correct invocation.

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

Parameters3/5

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

Schema coverage is 100% with adequate parameter descriptions. The tool description adds minimal extra meaning beyond the schema, but the mention of 'trash' connects to the 'permanent' parameter. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action 'delete' and the resource 'file', and adds a key detail about default behavior (moves to trash). This distinguishes it from siblings like obsidian_move or obsidian_create.

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

Usage Guidelines3/5

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

While the description mentions trash behavior and the permanent parameter, it does not explicitly guide when to use this tool versus alternatives (e.g., no mention of when not to use or alternatives like obsidian_move).

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

obsidian_devtoolsA

Toggle Electron DevTools open/closed

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It only states the toggle action but omits details like side effects, idempotency, or requirements (e.g., focused window). This is insufficient for a toggle operation.

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

Conciseness5/5

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

The description is a single sentence of 4 words, all essential. It is front-loaded and contains no filler.

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

Completeness4/5

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

For a simple toggle tool with no parameters and no output schema, the description covers the core action. However, it lacks contextual cues like when to use it (e.g., debugging sessions) which would improve completeness.

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

Parameters4/5

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

There are no parameters, so schema coverage is 100%. The description adds no extra parameter semantics, but the baseline for 0 parameters is 4.

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

Purpose5/5

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

The description uses the verb 'Toggle' and specifies the resource 'Electron DevTools' with the state change 'open/closed'. It clearly distinguishes from sibling tools which perform other actions like reading, writing, or searching.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or exclusions. The agent is left without context for decision-making.

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

obsidian_domA
Read-only

Query DOM elements by CSS selector

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoReturn all matches instead of first
cssNoGet a CSS property value
attrNoGet a specific attribute value
textNoReturn text content instead of HTML
selectorYesCSS selector

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description does not need to restate safety. It adds no additional behavioral context (e.g., whether the query is synchronous, if there are permission requirements). 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.

Conciseness5/5

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

The description is a single succinct sentence with no redundant words. Every word is necessary to convey the core purpose.

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

Completeness4/5

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

For a simple read-only DOM query tool with full schema coverage and clear annotations, the description is nearly complete. However, it does not specify the return format (e.g., HTML string or text), which could be useful context.

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

Parameters3/5

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

Schema coverage is 100%, so the individual parameter descriptions carry the semantic load. The tool description does not add meaning beyond what the schema provides, resulting in a baseline score.

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

Purpose5/5

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

Description clearly states the action ('Query'), the resource ('DOM elements'), and the method ('by CSS selector'). It is specific and distinguishes from many sibling tools that handle files, commands, or other Obsidian features.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like obsidian_console or obsidian_css. No conditions, exclusions, or best practices are mentioned.

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

obsidian_errorsC
Read-only

Show captured errors from Obsidian

ParametersJSON Schema
NameRequiredDescriptionDefault
clearNoClear the error buffer

TDQS

C2.9/5.0
Behavior2/5

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

The description aligns with the readOnlyHint by saying 'show', but the input schema includes a 'clear' parameter (described as 'Clear the error buffer') which contradicts the readOnlyHint. The description fails to disclose this mutating capability, leading to inconsistency.

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

Conciseness5/5

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

Extremely concise single sentence, front-loaded with the action and resource. No unnecessary words.

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

Completeness2/5

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

The tool is simple with one optional parameter and no output schema, but the description omits important behavioral context (clearing capability), fails to mention what happens when buffer is cleared, and provides no return value info. Incomplete for a tool with a behavioral contradiction.

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

Parameters3/5

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

Schema has 100% description coverage for the single parameter, so the description adds no additional meaning beyond what the schema provides. Baseline of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the verb 'show' and resource 'errors', differentiating from sibling tools like obsidian_console or obsidian_debug. It is specific enough for an agent to identify the tool's purpose.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as obsidian_console or obsidian_debug. No exclusions or context provided.

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

obsidian_evalC

Execute JavaScript in Obsidian and return the result

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesJavaScript code to execute

TDQS

C2.9/5.0
Behavior2/5

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

The description lacks details on behavioral traits such as sandboxing, security implications, side effects, or permission requirements. Since no annotations are provided, the description fails to disclose critical information for a code execution tool.

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

Conciseness5/5

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

The description is extremely concise, using a single sentence to convey the core function. It is front-loaded and contains no superfluous information.

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

Completeness2/5

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

For a potentially dangerous operation like JavaScript execution, the description should include context about security, scope, and error handling. The current description is minimal and insufficient for an agent to use safely.

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

Parameters3/5

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

The input schema covers the parameter 'code' with a description, achieving 100% coverage. The tool description adds no additional meaning beyond the schema, meeting the baseline expectation.

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

Purpose4/5

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

The description clearly states the verb 'Execute JavaScript' and the resource 'Obsidian', and mentions returning the result. However, it does not differentiate from sibling tools like obsidian_command or obsidian_console, which may have overlapping functionality.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or exclusions, leaving the agent without direction.

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

obsidian_filesA
Read-only

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

ParametersJSON Schema
NameRequiredDescriptionDefault
extNoFilter by extension (e.g. 'md')
totalNoReturn only the file count
folderNoFilter by folder path

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description is consistent (list files). No added behavioral context beyond the schema, such as return format or pagination.

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

Conciseness5/5

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

Single sentence of 10 words, no wasted text. Front-loads the primary action (list) and constraints (in vault, optionally filtered).

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

Completeness3/5

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

For a simple listing tool with optional parameters, the description covers the core purpose. However, lacking output format details (e.g., list of paths or names) reduces completeness, especially given no output schema.

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

Parameters3/5

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

Schema coverage is 100% with clear parameter descriptions. The description reiterates the optional filtering but does not add semantic value beyond what the schema provides.

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

Purpose5/5

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

The description clearly states the tool lists files in the vault, with optional filters by folder or extension. It distinguishes itself from sibling tools like obsidian_read or obsidian_search by focusing on listing, not content reading or searching.

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

Usage Guidelines3/5

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

The description implies use for listing files with optional filters but does not explicitly compare to siblings or state when not to use. Lacks guidance on alternatives like obsidian_search for content searching.

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

obsidian_mobileC

Toggle mobile emulation on or off

ParametersJSON Schema
NameRequiredDescriptionDefault
onNoEnable mobile emulation
offNoDisable mobile emulation

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description must convey behavioral traits. It states the toggle action but lacks details on side effects, scope, or what exactly 'mobile emulation' changes. This is insufficient for a tool with no behavioral metadata.

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

Conciseness4/5

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

The description is a single sentence with no wasted words. It is appropriately concise for a simple toggle tool, though missing some context. It could be slightly improved but is well-structured.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is too minimal. It doesn't explain what mobile emulation entails, return behavior, or constraints. For a simple tool, a bit more context (e.g., 'toggles responsive design mode for testing mobile layouts') would improve completeness.

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

Parameters3/5

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

The input schema has 100% description coverage with clear parameter descriptions ('Enable mobile emulation', 'Disable mobile emulation'). The tool description adds little beyond summarizing that it toggles, so baseline 3 is appropriate. It doesn't introduce new semantics.

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

Purpose4/5

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

The description 'Toggle mobile emulation on or off' clearly states the action (toggle) and resource (mobile emulation). However, it doesn't specify the context (e.g., browser, Obsidian itself) or differentiate from sibling tools, but the resource is distinct enough among the sibling list.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or contexts where mobile emulation is applicable. It only states the function.

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

obsidian_moveB
Destructive

Move or rename a file

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesDestination folder or path
fileNoFile name
pathNoFile path

TDQS

B3.3/5.0
Behavior3/5

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

The annotations already declare destructiveHint=true, so the description does not need to emphasize destructiveness. The description states the action (move/rename) but adds no behavioral context beyond what is implied by the name and annotation.

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

Conciseness5/5

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

The description is a single, concise sentence with no superfluous words. Every part earns its place, efficiently conveying the tool's purpose.

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

Completeness3/5

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

For a simple file operation tool with full schema coverage and destructiveHint annotation, the description is adequate but lacks details on side effects (e.g., overwrite behavior), error conditions, or return values. It could be more informative.

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

Parameters3/5

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

Schema coverage is 100%, with descriptions for all parameters ('Destination folder or path', 'File name', 'File path'). 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.

Purpose4/5

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

The description clearly states the action as 'Move or rename a file', identifying the operation and resource. However, it does not explicitly distinguish from sibling tools like 'obsidian_delete' or 'obsidian_create', though the action is distinct.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. No exclusions, prerequisites, or context for appropriate usage are given.

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

obsidian_openC

Open a file in Obsidian

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name (resolved like wikilinks)
pathNoExact file path
newtabNoOpen in new tab

TDQS

C2.8/5.0
Behavior2/5

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

The description does not disclose behavioral traits beyond the basic action. There are no annotations, so the description carries the full burden. It does not mention error handling (e.g., file not found), resolution priority between 'file' and 'path', or the effect of 'newtab' on the workspace. This lack of transparency could lead to incorrect invocations.

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

Conciseness3/5

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

The description is very concise at one sentence, but it is overly minimal. Conciseness should not sacrifice necessary detail. It is front-loaded with the key information, but lacks structure or additional context that would fit in one or two more sentences.

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

Completeness2/5

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

Given no output schema and 3 optional parameters, the description is incomplete. It does not explain return values (e.g., success/failure) or behavior in edge cases (e.g., conflicting file and path). Sibling tools like obsidian_create have more detailed descriptions, indicating this is insufficient for the complexity.

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

Parameters3/5

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

Schema description coverage is 100%, with each parameter having a brief description. The tool description adds no additional meaning beyond what the schema provides, but the schema itself is adequate. Baseline is 3 for high coverage.

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

Purpose4/5

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

The description 'Open a file in Obsidian' clearly states the action (open) and the resource (file in Obsidian). It is specific enough to distinguish from siblings like obsidian_read or obsidian_create, though it could clarify that it opens the file in the editor.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, there is no indication of prerequisites (e.g., file must exist) or comparison with obsidian_read (which returns content) or obsidian_command (which can open files via commands).

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

obsidian_outlineA
Read-only

Show headings for a file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
pathNoFile path
formatNoOutput format

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, and the description is consistent. However, it adds no additional behavioral context, such as what happens when a file has no headings or how errors are handled.

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

Conciseness5/5

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

The single-sentence description is perfectly concise and front-loaded, earning its place with no extraneous information.

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

Completeness3/5

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

Given the tool's simplicity and the schema covering parameters, the description is adequate but lacks context on output format meanings and typical use cases.

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

Parameters3/5

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

The input schema has 100% description coverage, so the description adds no extra meaning beyond what is already provided for the three parameters.

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

Purpose5/5

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

The description 'Show headings for a file' clearly states the tool's action (show) and resource (headings of a file), distinguishing it from siblings like obsidian_read which shows full content.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives such as obsidian_read or obsidian_backlinks; usage is implied by the tool's name and description.

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

obsidian_plugin_disableB

Disable a plugin

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPlugin ID

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral details such as what happens if the plugin is already disabled, required permissions, or side effects.

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

Conciseness5/5

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

The description is a single sentence with no waste, highly front-loaded and efficient for a simple tool.

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

Completeness3/5

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

Given the tool's simplicity (one required parameter, no output schema), the description is adequate but could be improved by stating success/failure behavior.

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

Parameters3/5

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

Schema description coverage is 100%, with parameter 'id' described as 'Plugin ID'. The description adds no further meaning, meeting the baseline for high coverage.

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

Purpose4/5

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

The description 'Disable a plugin' clearly states the action and resource. It effectively communicates the tool's function, but lacks differentiation from siblings like obsidian_plugin_enable.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like obsidian_plugin_enable or obsidian_plugin_reload. No context about prerequisites or use cases.

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

obsidian_plugin_enableC

Enable a plugin

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPlugin ID

TDQS

C2.2/5.0
Behavior1/5

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

No annotations exist, so the description must carry the full burden. It only says 'Enable a plugin' with no details on side effects, required permissions, state changes, or output. This is severely insufficient.

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

Conciseness2/5

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

Extremely short but under-specified. The description fails to provide necessary context, making it not truly concise but rather insufficient.

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

Completeness2/5

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

Given the simple action and single parameter, the description is too minimal. It omits return behavior, effect on plugin state, and integration with sibling tools, leaving the agent underinformed.

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

Parameters3/5

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

Schema coverage is 100% with one parameter 'id' described as 'Plugin ID'. The description adds no additional meaning beyond the schema, so baseline 3 applies.

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

Purpose3/5

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

The description 'Enable a plugin' is clear but vague. It states the verb and resource but adds no scope or differentiation from sibling tools like disable or info. It is slightly more than a tautology but lacks specificity.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like disable or info. No prerequisites, context, or exclusions are provided.

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

obsidian_plugin_infoA
Read-only

Get detailed info about a specific plugin

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPlugin ID

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, indicating a safe read operation. The description adds minimal behavioral context beyond that, not specifying what 'detailed info' includes or any other traits.

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

Conciseness5/5

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

The description is a single, front-loaded sentence of 7 words with no redundancy or extraneous information. Every word contributes to clarity.

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

Completeness3/5

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

Given the low complexity (single parameter, read-only), the description is adequate but lacks specifics about the return content. A more complete description would mention what fields are returned (e.g., name, version, author).

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

Parameters3/5

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

Schema coverage is 100%, with parameter 'id' described as 'Plugin ID'. The description does not add any additional 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.

Purpose5/5

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

The description 'Get detailed info about a specific plugin' clearly states the action (get), resource (plugin), and scope (specific), distinguishing it from sibling tools like obsidian_plugins (list all) or obsidian_plugin_disable (disable).

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

Usage Guidelines4/5

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

The description implicitly indicates when to use the tool (for a single plugin's details), but does not explicitly mention alternatives or when not to use it. Sibling names provide context, but explicit guidance would improve clarity.

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

obsidian_plugin_reloadA

Reload a plugin (useful during development)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPlugin ID

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It only says 'Reload a plugin', omitting details like side effects, dependencies, or confirmation requirements.

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

Conciseness5/5

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

Extremely concise single sentence, no wasted words. Front-loaded with verb and object.

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

Completeness3/5

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

Given simplicity (1 param, no output schema), the description is minimally adequate but lacks behavioral details that would help an agent understand implications of reloading.

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

Parameters3/5

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

Schema coverage is 100% with the 'id' parameter having a description 'Plugin ID'. The description adds no extra meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action ('Reload') and the resource ('plugin'), and adds context ('useful during development'). It distinguishes from sibling tools like enable/disable.

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

Usage Guidelines3/5

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

The phrase 'useful during development' gives some usage context but lacks explicit when-to-use or when-not-to-use guidance. No alternatives mentioned.

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

obsidian_pluginsA
Read-only

List installed plugins with enabled/disabled state

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilter by plugin type
formatNoOutput format
versionsNoInclude version numbers

TDQS

A3.7/5.0
Behavior3/5

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

The description declares the tool lists plugins with their enabled/disabled state, which is a behavioral trait. Annotations already provide readOnlyHint=true, so the safety profile is clear. However, it does not disclose output format, sorting, or potential limitations like pagination.

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

Conciseness5/5

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

The description is a single sentence that is concise and front-loaded. Every word adds value with no redundancy.

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

Completeness3/5

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

The description provides the core purpose but lacks details about output structure or behavior given the lack of an output schema. It is adequate for a simple listing tool but could be more complete.

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

Parameters3/5

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

Schema description coverage is 100% with each parameter having a clear description (filter by type, format as enum, versions boolean). The tool description adds no extra meaning beyond the schema; baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the verb 'List' and the resource 'installed plugins' with the added detail of 'enabled/disabled state'. It distinguishes the tool from sibling tools like obsidian_plugin_disable or obsidian_plugin_info, which are for different actions.

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

Usage Guidelines3/5

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

The description implies its use for listing plugins but does not explicitly provide context on when to use this tool versus alternatives (e.g., obsidian_plugin_info for details on a single plugin). There is no mention of prerequisites or exclusions.

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

obsidian_prependC

Prepend content to a file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
pathNoFile path
inlineNoPrepend without newline
contentYesContent to prepend

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It does not explain whether prepending is destructive, whether the file must exist, or how the 'inline' parameter affects formatting. The description is minimal and adds little beyond the name.

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

Conciseness5/5

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

The description is a single sentence with no extraneous words. It is front-loaded and efficient, earning top marks for conciseness.

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

Completeness2/5

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

Despite the tool's simplicity, the description is incomplete. It does not specify how to target the file (file vs path), what the inline flag does, or what the return value is. With no output schema or annotations, more context is needed for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema clearly documents each parameter. The description adds no extra semantic meaning beyond what is already in the schema, resulting in a baseline score of 3.

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

Purpose4/5

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

The description 'Prepend content to a file' clearly states the verb (prepend) and resource (file), distinguishing it from the sibling tool 'obsidian_append' which appends. However, it does not explicitly name the alternative, so it scores 4 rather than 5.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like obsidian_append or obsidian_create. The context of file existence, overwrite behavior, or prerequisites is absent, leaving the agent to infer usage.

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

obsidian_propertiesB
Read-only

List properties in the vault or for a specific file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
nameNoGet count for a specific property
pathNoFile path
totalNoReturn property count only
activeNoShow properties for active file
countsNoInclude occurrence counts
formatNoOutput format

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so agent knows it is safe. Description adds no additional behavioral context beyond what annotations provide, but does not contradict them.

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

Conciseness5/5

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

Single sentence with essential information, no waste. Appropriate length for the tool's simplicity.

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

Completeness3/5

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

No output schema, but the tool is simple. Description is brief and does not explain what 'properties' means or what the return format is, leaving some ambiguity for an agent.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning or context for the parameters.

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

Purpose4/5

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

Description clearly states the action (list) and resource (properties) with scope (vault or specific file). It is specific but does not explicitly differentiate from sibling tools like obsidian_tags, which also list something in the vault.

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

Usage Guidelines2/5

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

No guidance on when to use vs alternative tools, no exclusions or prerequisites. Simply states what it does without context.

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

obsidian_property_setC

Set a property on a file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
nameYesProperty name
pathNoFile path
typeNoProperty type
valueYesProperty value

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for transparency. It only states 'Set' without clarifying behavioral implications like whether the property is created if nonexistent, whether existing values are overwritten, or whether the file must have frontmatter. The agent cannot anticipate 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.

Conciseness3/5

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

The description is extremely concise at one sentence, but it omits critical context. It strikes a poor balance between brevity and informativeness.

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

Completeness2/5

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

Given 5 parameters and no output schema, the description is not complete. It does not explain whether file or path is required, how the property type affects behavior, or what happens on success/failure. The agent is left with significant unknowns.

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

Parameters3/5

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

Schema coverage is 100% with reasonable descriptions, so the baseline is 3. The description adds no extra meaning beyond what the schema provides, but also does not need to compensate.

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

Purpose4/5

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

The description clearly states the action ('Set') and the resource ('a property on a file'), differentiating it from read-oriented siblings like obsidian_properties. However, it does not specify which property system (e.g., frontmatter, metadata), which reduces specificity slightly.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as obsidian_properties (likely for reading) or obsidian_append (for modifying content). The agent receives no context for decision-making.

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

obsidian_readB
Read-only

Read the contents of a file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name (resolved like wikilinks)
pathNoExact file path

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true; the description adds no further behavioral details (e.g., return type, error handling, or side effects). Minimal value beyond annotations.

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

Conciseness4/5

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

Single sentence is concise and front-loaded; could be slightly more informative without losing conciseness.

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

Completeness2/5

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

No output schema, and the description does not clarify that one of the two optional parameters is likely required, nor does it explain the output format. Incomplete for effective use.

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

Parameters3/5

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

Schema already describes both parameters fully (100% coverage), so the baseline is 3. The tool description adds no additional meaning beyond the schema.

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

Purpose5/5

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

The description 'Read the contents of a file' uses a specific verb ('Read') and resource ('file'), clearly distinguishing it from sibling tools like obsidian_create or obsidian_delete.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives, no mention of prerequisites or context for choosing between the two parameters.

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

obsidian_screenshotA
Read-only

Take a screenshot of Obsidian. Uses Chrome DevTools Protocol for full-window or element-targeted captures.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOutput file path (default: auto-generated in temp dir)
formatNoImage format (default: png)
qualityNoCompression quality for jpeg/webp (1-100)
selectorNoCSS selector to screenshot a specific element instead of the full window

TDQS

A3.8/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, which aligns with the description. The description adds that it uses Chrome DevTools Protocol and can target elements, but does not disclose prerequisites (e.g., Obsidian must be open) or limitations. Some behavioral context is added beyond annotations, but not comprehensive.

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

Conciseness5/5

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

Two concise sentences front-loaded with purpose; no unnecessary words. Every sentence adds value.

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

Completeness4/5

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

For a simple screenshot tool with no output schema, the description covers the main behaviors. Could mention that the output is saved to the specified path, but the path parameter description covers that. Minor gap but overall complete.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all parameters. The description mentions 'element-targeted captures' which corresponds to the selector parameter, but adds little 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.

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb 'Take a screenshot of Obsidian.' It also distinguishes between full-window and element-targeted captures, setting it apart from sibling tools like obsidian_cdp or obsidian_dom.

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

Usage Guidelines3/5

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

The description implies usage for screenshots but provides no explicit guidance on when to use this tool versus alternatives like obsidian_eval or obsidian_dom. No when-not-to-use context is given.

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

obsidian_snippetsA
Read-only

List installed CSS snippets

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates safe reading, so the description adds only the specific resource (CSS snippets). It does not disclose additional behaviors like response format or whether it returns paths or names, but given the annotation coverage, a score of 3 is appropriate.

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

Conciseness5/5

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

The description is a single sentence of 4 words, perfectly concise with no unnecessary information. Every word is meaningful and contributes to understanding.

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

Completeness5/5

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

For a simple listing tool with no parameters and no output schema, the description is complete. It fully conveys the action and resource without needing additional detail.

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

Parameters4/5

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

There are no parameters, so the schema coverage is 100% and the description does not need to add meaning. With 0 parameters, the baseline is 4, and the description is sufficient.

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

Purpose5/5

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

The description 'List installed CSS snippets' uses a specific verb 'List' and clearly identifies the resource 'installed CSS snippets', distinguishing it from sibling tools like 'obsidian_css' and 'obsidian_theme' which deal with CSS content or theming.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives or under what circumstances it is appropriate. The description only states what it does without any context on prerequisites or exclusions.

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

obsidian_statusA
Read-only

Get Obsidian version, vault name, path, file/folder counts, and size

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, and the description adds what data is returned (version, vault info, counts). This combination fully informs the agent of the tool's non-destructive nature and output content.

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

Conciseness5/5

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

Single sentence, no wasted words, front-loaded with the action 'Get' and key resources.

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

Completeness4/5

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

For a simple status tool with no parameters, the description covers the main return values. However, it could mention if it requires an open vault or any preconditions for completeness.

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

Parameters4/5

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

No parameters exist, so schema coverage is 100%. The description adds no parameter info, which is appropriate. Baseline for 0 parameters is 4.

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

Purpose5/5

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

The description clearly states it returns Obsidian version, vault name, path, file/folder counts, and size. This distinguishes it from sibling tools like obsidian_read, obsidian_search, etc., which have different purposes.

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

Usage Guidelines3/5

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

The description implies use for getting overall status info but lacks explicit guidance on when to use this vs alternatives or when not to use it. With many siblings, such guidance would improve selection accuracy.

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

obsidian_tabsA
Read-only

List open tabs in the main editor area. Use 'all' to include sidebar panels.

ParametersJSON Schema
NameRequiredDescriptionDefault
allNoInclude sidebar panels (default: main editor only)
idsNoInclude tab IDs

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and the description adds context about listing tabs and the sidebar option, which is 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.

Conciseness5/5

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

The description is two sentences, front-loaded with the core action, and contains no extraneous words.

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

Completeness5/5

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

For a tool with two optional boolean parameters and no output schema, the description fully covers what the tool does and how to use it, leaving no gaps.

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

Parameters4/5

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

Despite 100% schema coverage, the description adds meaning by specifying the main editor area and how to use 'all' to include sidebar panels, going beyond the schema's parameter descriptions.

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

Purpose5/5

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

The description clearly states the tool lists open tabs, specifying the main editor area vs sidebar, which distinguishes it from sibling tools like obsidian_open or obsidian_read.

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

Usage Guidelines3/5

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

The description gives guidance on using the 'all' parameter to include sidebar panels, but does not explicitly state when to use this tool versus alternatives or when not to use it.

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

obsidian_tagsA
Read-only

List tags in the vault or for a specific file

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNoFile name
pathNoFile path
sortNoSort by count
activeNoShow tags for active file
countsNoInclude tag counts
formatNoOutput format

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, indicating a safe read operation. The description does not add further behavioral traits (e.g., no details on default behavior when no parameters are given). It is consistent but does not enhance transparency beyond the annotation.

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

Conciseness4/5

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

The description is a single efficient sentence that conveys the core purpose. It is front-loaded and avoids redundancy. However, it could be slightly improved by front-loading the scope distinction even more clearly or adding a brief usage hint.

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

Completeness2/5

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

With six parameters, no output schema, and no explanation of default behavior (e.g., output format default, what happens without parameters), the description is incomplete. It does not address parameter interactions or return value format, leaving the agent to infer from the schema alone.

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

Parameters3/5

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

Schema coverage is 100%, so all six parameters have descriptions in the schema. The tool description adds no extra meaning beyond the schema, which is adequate given the high coverage. The description's brevity is offset by the schema doing the work.

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

Purpose5/5

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

The description clearly states the tool lists tags, either for the entire vault or scoped to a specific file. The verb 'List' and resource 'tags' are specific, and the scope distinction helps differentiate from sibling tools like obsidian_search or obsidian_properties.

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

Usage Guidelines3/5

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

The description gives the basic context of when to use (list tags globally or per file) but does not explicitly state when not to use or provide alternatives. Among many siblings, this is sufficient for a read-only listing tool but lacks exclusionary guidance.

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

obsidian_tasksB
Read-only

List tasks in the vault or a specific file

ParametersJSON Schema
NameRequiredDescriptionDefault
doneNoShow completed tasks
fileNoFilter by file name
pathNoFilter by file path
todoNoShow incomplete tasks
dailyNoShow tasks from daily note
activeNoShow tasks for active file
formatNoOutput format
verboseNoGroup by file with line numbers

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description, 'list tasks', aligns with that. However, it adds no additional behavioral context (e.g., pagination, sorting, or that it reads from the current vault). Since the annotation covers the main behavioral aspect, the description is adequate but not enhanced.

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

Conciseness5/5

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

The description is a single, clear sentence with no unnecessary words. It is front-loaded with the core action and resource. Every word is meaningful.

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

Completeness2/5

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

Given the tool has 8 parameters, no required parameters, and no output schema, the description is too minimal. It does not explain how parameters combine (e.g., can 'file' and 'path' be used together?), default behavior if no filters are set, or what the output looks like. For a moderately complex tool, more context is needed.

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

Parameters3/5

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

The input schema has 100% coverage, with all 8 parameters documented. The description adds no parameter-specific information (e.g., how filters interact, what 'format' means for output). With high schema coverage, baseline is 3, and the description does not improve it.

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

Purpose4/5

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

The description clearly states the verb 'list' and the resource 'tasks', and specifies scope ('in the vault or a specific file'). While it distinguishes from many siblings like 'obsidian_search' or 'obsidian_read', it could be more precise about what constitutes a 'task' (e.g., markdown checkboxes). Thus, it's clear but not maximally specific.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'obsidian_search' or 'obsidian_outline'. It does not mention prerequisites, filters, or when not to use it. Users must infer from the name and parameter names.

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

obsidian_themeA
Read-only

Show active theme info or get details about a specific theme

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoTheme name for details

TDQS

A4.2/5.0
Behavior4/5

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

The description adds value beyond the readOnlyHint annotation by explaining the two distinct behaviors (active vs. specific theme) and how the optional parameter controls them. No behavioral contradictions exist.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that efficiently conveys the tool's dual purpose with zero wasted words. It is optimally concise.

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

Completeness4/5

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

For a simple read-only tool with one optional parameter and no output schema, the description adequately covers the main use cases. It lacks details on the output format but is still complete enough for effective tool selection.

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

Parameters4/5

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

With 100% schema coverage, the description enhances understanding by clarifying the optional nature of the 'name' parameter and its effect (getting details on a specific theme vs. active theme). This goes beyond the schema's brief description.

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

Purpose5/5

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

The description clearly states the tool's two main actions: showing active theme info and getting details about a specific theme. It distinguishes itself from the sibling tool 'obsidian_themes' (likely for listing all themes) by focusing on singular theme information.

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

Usage Guidelines3/5

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

The description implies when to use (get active theme info or specific theme details) but does not explicitly state when not to use or mention alternative tools like 'obsidian_themes'. No usage context or exclusions are provided.

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

obsidian_themesC
Read-only

List installed themes

ParametersJSON Schema
NameRequiredDescriptionDefault
versionsNoInclude version numbers

TDQS

C2.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, so the safety profile is known. However, the description adds no behavioral details beyond 'list', such as whether it returns all themes or only community themes, or what the output format is.

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

Conciseness3/5

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

The description is very concise with three words, but lacks structure or any additional context. It is not overly verbose, but also does not fully capitalize on the opportunity to provide useful information.

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

Completeness2/5

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

For a simple list tool with no output schema, the description should at least hint at the output format (e.g., names of themes). It does not, leaving agents to guess the return value. Given the tool's low complexity, this is a noticeable gap.

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

Parameters3/5

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

Schema coverage is 100% with one boolean parameter fully described. The description adds no additional meaning beyond the schema, so baseline score of 3 is appropriate.

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

Purpose4/5

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

The description 'List installed themes' clearly identifies the verb (list) and resource (installed themes). It distinguishes from siblings like 'obsidian_theme' (likely singular) by using plural, but does not explicitly differentiate from other listing tools like 'obsidian_plugins'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'obsidian_theme' or 'obsidian_css'. The description provides no context for when this listing is appropriate or limitations.

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

obsidian_vaultsA
Read-only

List all known vaults

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true; the description adds no extra behavioral context beyond confirming a 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.

Conciseness5/5

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

Single sentence, no wasted words, front-loaded with purpose.

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

Completeness5/5

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

For a zero-parameter, read-only list tool with no output schema, the description is fully sufficient.

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

Parameters4/5

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

No parameters exist, so baseline 4 applies; description correctly adds no parameter info.

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

Purpose5/5

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

Describes the tool as listing vaults with a specific verb and resource, and distinguishes it from sibling tools like obsidian_files or obsidian_open.

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

Usage Guidelines3/5

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

No explicit when-to-use or alternatives mentioned, but the simple list nature makes usage implied.

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

obsidian_workspaceB
Read-only

Show the workspace tree layout

ParametersJSON Schema
NameRequiredDescriptionDefault
idsNoInclude workspace item IDs

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true, and description 'show' aligns. Description adds 'tree layout' but no further behavioral details like return format or scope. With annotations already covering safety, 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.

Conciseness5/5

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

Single sentence, no fluff, front-loaded with verb and resource. Efficient and clear.

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

Completeness3/5

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

No output schema exists, but description does not explain what the returned tree layout contains (e.g., files, folders, hierarchy). For a simple read tool with one optional param, it is minimally adequate but leaves room for ambiguity.

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

Parameters3/5

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

Schema coverage is 100% with description for 'ids' parameter. Description adds no extra meaning beyond what schema provides, meeting the baseline.

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

Purpose4/5

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

Description states 'Show the workspace tree layout', which clearly identifies the verb and resource. However, it does not explicitly distinguish from sibling tools like obsidian_outline or obsidian_open that might show different views.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like obsidian_outline or obsidian_files. Missing context about prerequisites or typical use cases.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 43 tool updatesv0.2.2
    • First observedobsidian_append
    • First observedobsidian_backlinks
    • First observedobsidian_briefing
    • First observedobsidian_cdp
    • First observedobsidian_command
    • First observedobsidian_commands
    • First observedobsidian_console
    • First observedobsidian_create
    • First observedobsidian_css
    • First observedobsidian_daily
    • First observedobsidian_daily_append
    • First observedobsidian_debug
    • First observedobsidian_delete
    • First observedobsidian_devtools
    • First observedobsidian_dom
    • First observedobsidian_errors
    • First observedobsidian_eval
    • First observedobsidian_files
    • First observedobsidian_links
    • First observedobsidian_mobile
    • First observedobsidian_move
    • First observedobsidian_open
    • First observedobsidian_outline
    • First observedobsidian_plugin_disable
    • First observedobsidian_plugin_enable
    • First observedobsidian_plugin_info
    • First observedobsidian_plugin_reload
    • First observedobsidian_plugins
    • First observedobsidian_prepend
    • First observedobsidian_properties
    • First observedobsidian_property_set
    • First observedobsidian_read
    • First observedobsidian_screenshot
    • First observedobsidian_search
    • First observedobsidian_snippets
    • First observedobsidian_status
    • First observedobsidian_tabs
    • First observedobsidian_tags
    • First observedobsidian_tasks
    • First observedobsidian_theme
    • First observedobsidian_themes
    • First observedobsidian_vaults
    • First observedobsidian_workspace

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is potential confusion among similar-sounding ones like obsidian_links vs obsidian_backlinks vs obsidian_outline vs obsidian_properties. However, descriptions are clear enough to distinguish them.

Naming Consistency5/5

All tools follow the 'obsidian_' prefix consistently, and the naming pattern (verb or noun) is uniform, with no mixing of conventions.

Tool Count2/5

With 43 tools, the set is significantly larger than the typical 3-15 range considered appropriate. Many tools are for debugging and development, which expands the scope beyond core note-taking functionality.

Completeness5/5

The tool set covers nearly all aspects of Obsidian interaction: file operations, metadata, plugins, themes, search, daily notes, vault management, and developer tools. There are no obvious gaps for common use cases.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides an MCP server that allows AI assistants to interact with Obsidian vaults, enabling reading/writing notes, managing metadata, searching content, and working with daily notes.
    37
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A local MCP server that wraps the Obsidian CLI to give AI assistants direct access to read, edit, and manage notes within an Obsidian vault. It enables advanced operations such as frontmatter property management, context-aware searching, and the execution of internal Obsidian commands.
    2
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    An Obsidian plugin that runs an MCP server, enabling AI agents to read, edit, search notes, and run Dataview queries in your vault.
    3
    BSD Zero Clause

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gapmiss/live-mcp-for-obsidian'

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