Skip to main content
Glama
obsidian-mcp

obsidian-mcp

by yuchi-chang

obsidian-mcp

공식 Obsidian CLI를 래핑하는 MCP 서버로, LLM 에이전트가 실행 중인 Obsidian 인스턴스를 제어할 수 있게 합니다. 노트 읽기/쓰기, 검색, 프런트매터 관리, 링크 탐색, 플러그인 실행 등을 수행할 수 있습니다.

이 서버는 가볍고 포괄적인 래퍼입니다. 모든 도구는 obsidian CLI 명령과 1:1로 매핑됩니다.

사전 요구 사항

  1. Obsidian이 실행 중이어야 합니다. CLI는 IPC를 통해 실행 중인 앱과 통신하며, 디스크의 볼트를 직접 읽지 않습니다.

  2. CLI 바이너리 등록. Obsidian에서: 설정 → 일반 → 명령줄 인터페이스 → CLI 등록. Obsidian이 PATH에 obsidian을 추가합니다.

  3. 확인: obsidian version 명령으로 CLI 버전을 출력합니다.

Related MCP server: Vault Cortex Obsidian MCP Server

설치

직접 빌드할지, npm에서 미리 게시된 버전을 가져올지에 따라 두 가지 경로가 있습니다.

옵션 A — 복제 및 빌드 (현재 사용 가능)

저장소를 복제하고 로컬에서 빌드한 다음, Claude Code가 빌드된 파일을 가리키도록 합니다:

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

Claude Code에 등록합니다 (명령어 하나로):

# Add (user scope — available across all projects)
claude mcp add -s user obsidian -- node /absolute/path/to/obsidian-mcp/dist/index.js

# Remove
claude mcp remove obsidian

# List configured servers
claude mcp list

-s user는 전체 사용자 계정에 등록합니다. 대신 저장소의 .mcp.json에 커밋하려면 -s project를 사용하거나, 현재 프로젝트에만 적용하려면 -s local (기본값)을 사용하세요.

또는 .mcp.json에 수동으로 작성하세요:

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

옵션 B — npm에서 설치 (빌드 불필요)

사전 요구 사항: 패키지가 이미 npm에 게시되어 있어야 합니다. 관리자가 npm publish를 통해 한 번 게시하면, 이후 모든 사용자는 npx를 통해 자동으로 가져올 수 있습니다. 이 저장소를 포크하고 자신의 스코프에서 이 흐름을 사용하려면 package.json의 name을 @<your-npm-username>/obsidian-mcp로 변경한 후 npm publish를 수행하세요.

게시된 후에는 복제나 빌드가 필요 없습니다:

claude mcp add -s user obsidian -- npx -y @yuchichang/obsidian-mcp

또는 .mcp.json / Claude Desktop의 claude_desktop_config.json에 추가하세요:

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["-y", "@yuchichang/obsidian-mcp"]
    }
  }
}

CLI 경로 재정의

obsidian이 PATH에 없는 경우 OBSIDIAN_CLI 환경 변수를 설정하세요. 두 설치 경로 모두에서 작동합니다:

{
  "mcpServers": {
    "obsidian": {
      "command": "node",
      "args": ["/absolute/path/to/obsidian-mcp/dist/index.js"],
      "env": {
        "OBSIDIAN_CLI": "C:/Users/you/AppData/Local/Obsidian/obsidian.cmd"
      }
    }
  }
}

도구

볼트 및 파일

도구

래핑 대상

obsidian_list_files

obsidian files

obsidian_list_folders

obsidian folders

obsidian_read_note

obsidian read

obsidian_get_metadata

obsidian file

obsidian_create_note

obsidian create

obsidian_append_note

obsidian append

obsidian_prepend_note

obsidian prepend

obsidian_move_note

obsidian move

obsidian_delete_note

obsidian delete (permanent 플래그 지원)

프런트매터 속성

도구

래핑 대상

obsidian_get_properties

obsidian properties

obsidian_set_property

obsidian property:set

obsidian_remove_property

obsidian property:remove

검색

도구

래핑 대상

obsidian_search

obsidian search

obsidian_search_context

obsidian search:context

태그 및 링크

도구

래핑 대상

obsidian_list_tags

obsidian tags

obsidian_files_with_tag

obsidian tag

obsidian_rename_tag

obsidian tags:rename

obsidian_get_links

obsidian links

obsidian_get_backlinks

obsidian backlinks

obsidian_list_unresolved

obsidian unresolved

obsidian_list_orphans

obsidian orphans

데일리 노트

도구

래핑 대상

obsidian_daily_read

obsidian daily:read

obsidian_daily_append

obsidian daily:append

obsidian_daily_path

obsidian daily:path

플러그인

도구

래핑 대상

obsidian_list_plugins

obsidian plugins

obsidian_enable_plugin

obsidian plugin:enable

obsidian_disable_plugin

obsidian plugin:disable

obsidian_reload_plugin

obsidian plugin:reload

개발자 / 고급

도구

래핑 대상

참고

obsidian_eval

obsidian eval

⚠️ Obsidian 내에서 임의의 JS를 실행합니다. 파괴적인 작업으로 간주하세요.

obsidian_dev_screenshot

obsidian dev:screenshot

base64 PNG를 반환합니다.

obsidian_dev_errors

obsidian dev:errors

obsidian_dev_console

obsidian dev:console

메타

도구

래핑 대상

obsidian_version

obsidian version

obsidian_help

obsidian help

규칙

  • 노트 대상 지정 — 파일 대상 도구는 다음 중 하나를 허용합니다:

    • file — 위키링크 스타일의 노트 이름 (예: "My Note"), 또는

    • path — 볼트 상대 파일 경로 (예: "Folder/My Note.md").

  • 다중 볼트 설정 — 모든 도구는 선택적 vault 매개변수를 허용합니다. 생략하면 가장 최근에 포커스된 볼트가 사용됩니다.

  • 출력 형식 — 목록/검색/메타데이터 도구는 기계 파싱이 쉽도록 기본적으로 JSON을 사용합니다.

민감한 작업 및 사용자 확인

다음 도구는 사용자 확인 단계를 거쳐야 합니다:

도구

이유

obsidian_delete_note

데이터를 삭제합니다 (permanent: true인 경우 특히 주의).

obsidian_move_note

볼트 전체의 위키링크를 이름 변경 + 재작성합니다.

obsidian_remove_property

프런트매터 데이터를 삭제합니다.

obsidian_rename_tag

모든 노트의 태그를 일괄 재작성합니다.

obsidian_enable_plugin

커뮤니티 플러그인에 코드 실행 권한을 부여합니다.

obsidian_eval

Obsidian 내에서 임의의 JavaScript를 실행합니다.

확인 절차 작동 방식:

  1. MCP 유도 (권장). 연결된 클라이언트가 elicitation 기능을 지원하는 경우(Claude Code 지원), 서버는 elicitation/create 요청을 보내고 클라이언트는 사용자에게 작업과 대상이 명시된 진행하시겠습니까? 프롬프트를 표시합니다. accept + confirm: true인 경우에만 진행됩니다.

  2. 명시적 confirm: true 매개변수. 모든 민감한 도구의 입력 스키마에는 선택적 confirm: boolean이 포함되어 있습니다. confirm: true를 전달하면 유도 프롬프트를 건너뜁니다. 호출자가 이미 사용자 승인을 받은 경우에만 사용하세요.

  3. 거부 폴백. 클라이언트가 유도를 지원하지 않고 confirm: true가 제공되지 않은 경우, 도구는 작업을 명시하고 confirm: true와 함께 재시도하도록 지시하는 isError 결과를 반환합니다.

배치 / 자동화를 위한 우회

OBSIDIAN_MCP_AUTO_CONFIRM=1

모든 확인 프롬프트를 건너뛰려면 이 환경 변수를 (MCP 클라이언트의 env 블록에) 설정하세요. 완전히 신뢰할 수 있는 자동화 컨텍스트에서만 사용하세요.

긴 콘텐츠 및 argv 제한

Obsidian CLI는 아직 stdin이나 파일에서 매개변수 값을 읽는 것을 지원하지 않습니다. 모든 값은 명령줄을 통해 전달됩니다. 이는 플랫폼 제한과 충돌합니다:

플랫폼

실제 명령줄 제한

Windows (cmd.exe)

총 약 8,191자

macOS / Linux

ARG_MAX (일반적으로 128 KB – 2 MB)

안전을 위해 서버는 긴 쓰기 작업을 자동으로 청크(chunk) 처리합니다:

도구

청크 전략

obsidian_create_note

첫 번째 청크는 create, 나머지 청크는 append 사용.

obsidian_append_note

순차적인 append 호출.

obsidian_prepend_note

최종 순서가 유지되도록 역순으로 prepend 호출.

obsidian_daily_append

데일리 노트 경로를 확인한 후 청크 단위로 append.

obsidian_eval

청크 처리 안 됨 — JS는 분할할 수 없습니다. 노트 경유 스크립트 방식을 제안하는 오류를 반환합니다.

가능한 경우 줄 경계에서 분할이 발생하며, 너무 긴 단일 줄은 UTF-8 안전 문자 경계로 폴백됩니다. 재조립된 콘텐츠는 원본과 바이트 단위로 동일합니다.

호출당 바이트 임계값을 구성하세요 (기본값: Windows 6,000, 기타 100,000):

OBSIDIAN_MCP_MAX_ARG_BYTES=4000

다중 청크 쓰기 중간에 청크가 실패하면, 서버는 어떤 청크가 디스크에 기록되었는지 명확한 메시지와 함께 isError를 반환하여 호출자가 복구할 수 있도록 합니다.

개발

npm run dev      # tsc --watch
npm run inspect  # launch MCP Inspector against the built server
node scripts/smoke-test.mjs   # initialize + tools/list smoke test

작동 원리

runObsidian() (src/exec.ts)은 인수를 셸 인용하고, child_process.exec를 통해 obsidian 바이너리를 호출하며, stdout을 파싱합니다. 대부분의 읽기 도구는 format=json을 요청하며, 결과는 구조화된 도구 출력을 소비하는 클라이언트를 위해 structuredContent로 파싱되지만, content에는 여전히 텍스트 표현이 반환됩니다.

도구 레지스트리는 src/tools.ts에 있으며, 새로운 래핑 명령을 추가하는 것은 해당 파일에 항목을 하나 추가하는 것만큼 간단합니다.

참조

Available Tools

34 tools
obsidian_append_noteAppend to a noteA

Appends markdown content to the end of an existing note.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.
contentYesMarkdown content to append.

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already indicate mutability (readOnlyHint=false) and non-destructiveness (destructiveHint=false). The description adds basic behavioral context (appends to end) but does not disclose edge cases or return behavior beyond what annotations provide.

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

Conciseness5/5

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

Single sentence, no redundancy, front-loaded with purpose. Efficient and clear.

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

Completeness4/5

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

Given the tool's simplicity, the description covers the core action. However, it omits any mention of return values or behavior when the note does not exist, which could be helpful 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?

Input schema covers 100% of parameters with clear descriptions. The description adds no additional parameter 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 uses a specific verb ('appends') and resource ('existing note'), clearly distinguishing it from siblings like obsidian_create_note and obsidian_prepend_note.

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

Usage Guidelines3/5

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

No explicit guidance on when to use vs alternatives. The purpose implies appending to existing notes, but no when-not-to-use or comparison to other tools is provided.

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

obsidian_create_noteCreate a new noteB

Creates a new note. name is the path (relative to the vault root), with or without the .md extension.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
nameYesNote path/name relative to the vault root.
contentNoInitial markdown content to write into the note.
templateNoTemplate name to apply (mutually exclusive with content).

TDQS

B3.4/5.0
Behavior2/5

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

The description does not disclose important behavioral traits such as whether creating a note with an existing name overwrites or errors. Annotations indicate it is not destructive, but the description fails to elaborate on actual behavior, which is crucial for a modification 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 two short sentences, front-loaded with the core purpose, and contains no superfluous information. Every word earns its place.

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 description lacks critical context such as what happens if a note with the same path already exists, and does not mention the mutual exclusivity of content and template. Given no output schema, more completeness is needed.

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

Parameters4/5

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

The description adds value beyond the input schema by clarifying that the name parameter can be with or without the .md extension. Since schema coverage is 100%, baseline is 3, and this additional detail for a key parameter justifies a 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 the verb 'creates' and the resource 'new note', and the tool name itself is descriptive. Among siblings like obsidian_append_note and obsidian_read_note, this tool's purpose to create a new note 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 such as obsidian_append_note or obsidian_prepend_note. It only states what it does, leaving the agent to infer usage context.

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

obsidian_daily_appendAppend to today's daily noteA

Appends content to today's daily note (creates it if missing).

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
contentYesMarkdown content to append.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations are all false, so the description carries the burden. It discloses the creation behavior and implies mutation (append), adding value beyond annotations. No further details on response or error handling, but adequate for the tool's simplicity.

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 12 words, front-loaded with the action and resource. No unnecessary information.

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

Completeness4/5

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

Given the tool's simplicity, no output schema, and sibling tools, the description adequately covers the core functionality. It could briefly mention the vault parameter's optionality, but the schema already handles that.

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 baseline 3 applies. The description does not add extra meaning beyond the schema; it mentions 'content' but not 'vault', which is already documented in the schema.

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

Purpose5/5

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

The description clearly states the action ('Appends content'), the specific resource ('today's daily note'), and a key behavior ('creates it if missing'). This distinguishes it from siblings like obsidian_append_note, which appends to a specified note.

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

Usage Guidelines4/5

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

The description implies use for daily notes and notes creation, but does not explicitly contrast with siblings like obsidian_append_note or obsidian_create_note. However, the context is clear enough for an agent familiar with the domain.

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

obsidian_daily_pathGet today's daily note pathA
Read-only

Returns the file path of today's daily note.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A3.8/5.0
Behavior3/5

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

The annotations already declare readOnlyHint=true, confirming it is a safe read operation. The description adds no further behavioral context (e.g., what happens if the note does not exist, whether it creates the note or returns an error). With annotations covering the safety profile, 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, clear sentence with no unnecessary words. It is front-loaded with the core purpose. Every word earns its place.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, read-only), the description is mostly complete. However, it could mention whether the note must exist or if it creates one if missing, but this is a minor gap. No output schema exists, but the return value is implied to be a string path.

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 schema already fully describes the single optional parameter 'vault'. The description does not add any extra meaning about the parameter; it relies entirely on the schema. Baseline 3 is correct.

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 that the tool returns the file path of today's daily note. It uses a specific verb ('returns') and a clear resource (today's daily note path), and it is distinct from sibling tools like obsidian_daily_append or obsidian_daily_read which perform different operations.

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

Usage Guidelines3/5

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

No explicit guidance on when to use this tool versus alternatives. The description implies usage for obtaining the path of today's daily note, but it does not mention when it should be preferred over other tools or what prerequisites exist (e.g., note must exist).

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

obsidian_daily_readRead today's daily noteA
Read-only

Returns the content of today's daily note.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A3.5/5.0
Behavior3/5

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

The readOnlyHint annotation already informs the agent that this operation is safe. The description adds no additional behavioral context beyond what the annotation provides, such as what happens if the daily note does not exist or if there are multiple daily notes.

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

Conciseness5/5

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

The description is a single, concise sentence that directly states the tool's function. There is no unnecessary information, and it is appropriately sized 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?

The tool is simple, but the description does not cover edge cases or behavior details beyond the basic function. For example, it doesn't explain what happens if today's note doesn't exist or how the content is formatted. Given the readOnlyHint and no output schema, a bit more context would be beneficial.

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

Parameters3/5

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

The input schema already fully describes the single optional parameter 'vault' with its purpose and default behavior. The description does not add any extra meaning beyond the schema. With 100% schema coverage, baseline is 3.

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

Purpose5/5

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

The description clearly states that the tool returns the content of today's daily note. It uses a specific verb ('Returns') and resource ('content of today's daily note'). This distinguishes it from siblings like obsidian_read_note (reads any note) or obsidian_daily_append (appends to daily note).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that this is a convenience for accessing the daily note without needing its path, nor does it exclude it for other cases. No explicit or implicit usage context.

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

obsidian_delete_noteDelete a noteA
Destructive

Moves a note to the system trash. Set permanent: true to bypass trash and delete immediately (irreversible).

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.
permanentNoWhen true, deletes immediately instead of moving to trash.
confirmNoSet to true to skip the interactive confirmation prompt. Use only when the caller has already confirmed with the user.

TDQS

A4.6/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it explains the trash behavior, the irreversibility of permanent deletion, and the confirm parameter to skip confirmation. Annotations only indicate destructiveness; description fills in the details.

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, front-loaded with the primary action, then optional detail. No superfluous text. Every sentence earns its place.

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

Completeness4/5

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

No output schema, but descriptions of behavior and confirm parameter are adequate. Could mention error handling (e.g., note not found), but for a delete tool this is sufficient. Context signals show moderate complexity (5 params), and description covers key behavioral aspects.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. Description adds value by explaining the effect of 'permanent' (irreversible) and 'confirm' (skip confirmation). This goes beyond schema descriptions.

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

Purpose5/5

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

The description clearly states that the tool moves a note to trash or permanently deletes it. The verb 'delete' and resource 'note' are specific, and it distinguishes from siblings like obsidian_create_note or obsidian_append_note.

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

Usage Guidelines4/5

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

The description implies when to use the tool (to delete notes) and provides options (permanent vs trash). It does not explicitly exclude scenarios or mention alternatives, but the context is clear enough given sibling tools are mostly different operations.

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

obsidian_dev_consoleGet console outputA
Read-only

Returns recent console messages from Obsidian DevTools.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

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, indicating a read operation. The description adds 'recent console messages' but does not define what 'recent' means or describe any side effects (e.g., does it clear the console?). The behavioral context is adequate but not detailed 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.

Conciseness5/5

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

The description is a single sentence that is direct and front-loaded. Every word contributes to the purpose. No redundancy or 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?

Given the tool's low complexity (1 optional parameter, no output schema, read-only annotation), the description provides sufficient context. A minor improvement would be to hint at the output format, but it is not severely lacking.

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% as the only parameter (vault) has a clear description. The tool description does not add further semantic context for the parameter beyond what the schema already provides. Per guidelines, baseline is 3 when coverage is high.

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 ('Returns') and the resource ('recent console messages from Obsidian DevTools'). It specifies the output type and scope, distinguishing it from siblings like obsidian_dev_errors which focus on errors, and obsidian_dev_screenshot which captures visuals.

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 retrieving console output but does not explicitly state when to use this tool over others, nor does it mention when not to use it. No alternatives are named, so the agent must infer context from the tool name alone.

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

obsidian_dev_errorsGet JavaScript errorsA
Read-only

Returns recent JS errors from the Obsidian DevTools console.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the description accurately reflects read-only behavior. However, it adds little context beyond stating 'recent' without specifying how recent or any limits. No contradiction.

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

Conciseness5/5

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

The description is a single concise sentence with no wasted words. It is front-loaded and directly states 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?

The tool is simple with no output schema, but the description could be more complete by hinting at the format of the returned errors or mentioning any filtering (e.g., limit). It meets the minimum for a straightforward read operation.

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 one parameter 'vault' is fully documented in the input schema with description coverage at 100%. The tool description does not add any additional meaning or context beyond what is already in the schema.

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

Purpose5/5

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

The description clearly states the tool returns recent JS errors from the Obsidian DevTools console, specifying the verb 'Returns' and the resource. It distinguishes from siblings like obsidian_dev_console which likely returns all console output.

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_dev_console for general logs or obsidian_dev_screenshot for visual debugging. The description does not mention exclusions or prerequisites.

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

obsidian_dev_screenshotCapture Obsidian screenshotA
Read-only

Returns a base64-encoded PNG screenshot of the running Obsidian window.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and openWorldHint. Description adds no new behavioral context beyond what annotations provide, aligning with 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, 10 words, front-loaded with primary action. No redundant information.

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 low complexity (1 optional param, no output schema), description completely covers what the tool does and returns. No missing details evident.

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

Parameters3/5

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

Schema covers 100% of parameter descriptions. The only parameter 'vault' is fully described in schema; description adds no extra semantics beyond that.

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 returns a base64-encoded PNG screenshot, specifying verb and resource. It distinguishes from sibling tools such as obsidian_dev_console and obsidian_dev_errors.

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. Description is self-explanatory but lacks explicit context for selection.

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

obsidian_disable_pluginDisable a pluginB
Idempotent

Disables a community plugin by id.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
idYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and readOnlyHint=false, so the description's simple 'Disables' is consistent but adds no extra behavioral context beyond the schema and annotations.

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

Conciseness5/5

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

Single sentence, 5 words, no redundancy. Every word serves a 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 tool with one required parameter and no output schema, the description is functionally adequate but omits details like error handling or id format. Could be more helpful.

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 50%: 'vault' has a description, but 'id' lacks schema description. The description mentions 'by id' but doesn't clarify what constitutes a valid id or where to find it, providing only minimal compensation.

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

Purpose5/5

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

The description uses a specific verb ('Disables') and resource ('community plugin by id'), clearly distinguishing it from siblings like obsidian_enable_plugin and obsidian_list_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 (e.g., obsidian_uninstall_plugin is not present, but no context about prerequisites or when not to disable given).

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

obsidian_enable_pluginEnable a pluginA
Idempotent

Enables a community plugin by id.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
idYesPlugin id (e.g. 'dataview').
confirmNoSet to true to skip the interactive confirmation prompt. Use only when the caller has already confirmed with the user.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and idempotentHint=true. The description adds no behavioral context beyond what annotations provide, missing details like potential side effects or confirmation behavior (though the schema covers the confirm parameter).

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

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words, directly communicating the tool's function.

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 mutation tool with no output schema, the description combined with full schema coverage provides sufficient information for an AI agent to understand and use the tool correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so each parameter is already documented. The description only mentions 'by id', which adds no extra meaning. Baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states the action ('Enables'), the target ('community plugin'), and the method ('by id'), making it easy to understand what the tool does and distinguishing it from siblings like 'disable_plugin' or 'list_plugins'.

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

Usage Guidelines3/5

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

The description provides no guidance on when to use this tool versus alternatives, such as when to use 'reload_plugin' or prerequisites like needing the plugin to be installed. The use case is implied but not explicitly stated.

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

obsidian_evalEvaluate JavaScript in ObsidianA
Destructive

Runs arbitrary JavaScript inside the running Obsidian instance with access to the app object. DANGEROUS: can read/modify any vault data and execute side effects. Use only when no narrower tool fits.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
codeYesJavaScript code to evaluate.
confirmNoSet to true to skip the interactive confirmation prompt. Use only when the caller has already confirmed with the user.

TDQS

A4.2/5.0
Behavior4/5

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

The description warns that the tool 'can read/modify any vault data and execute side effects,' which aligns with annotations (destructiveHint=true, openWorldHint=true). It adds context about the `app` object 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.

Conciseness5/5

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

The description is extremely concise with two sentences: one for purpose and one for usage guidance. It is front-loaded with the core action and achieves maximal information density.

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

Completeness4/5

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

Given the tool's complexity and lack of output schema, the description covers purpose, danger, and usage guideline. It could mention return value format, but it remains fairly complete for a powerful tool.

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

Parameters3/5

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

The input schema has 100% coverage for all three parameters. The description does not add significant detail beyond what the schema provides, so a baseline score of 3 is appropriate.

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

Purpose5/5

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

The description clearly states the tool evaluates arbitrary JavaScript in Obsidian with access to the `app` object. It distinguishes itself from siblings by the verb 'runs' and the unique capability of code execution.

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 explicitly says 'Use only when no narrower tool fits,' providing clear guidance on when to use this tool versus alternatives. It does not list specific sibling tools, but the context implies caution.

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

obsidian_files_with_tagList files with a tagA
Read-only

Lists every note tagged with the given tag.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
tagYesTag name. Include the leading '#' (e.g. '#project').

TDQS

A4.1/5.0
Behavior4/5

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

Discloses it lists every note with the tag, consistent with readOnlyHint. Adds context that it returns all matching notes, though lacks detail on scope (e.g., subfolder depth) or performance implications.

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, zero wasted words. Front-loaded with the core action and filtering condition.

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

Completeness3/5

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

Adequate for a simple list tool, but missing description of return format (e.g., list of file paths) especially since no output schema exists. Would benefit from specifying output structure.

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

Parameters4/5

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

Schema covers 100% of parameters; description adds formatting guidance for tag parameter (include '#'), which helps agents. Vault default behavior is documented in schema but not repeated.

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 it lists notes filtered by tag, distinguishing it from sibling tools like obsidian_list_files and obsidian_search. Verb and resource are 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 Guidelines3/5

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

No explicit when-to-use or alternatives are provided. While the purpose is clear, there is no guidance on when not to use this tool or mention of alternatives like obsidian_search for more complex queries.

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

obsidian_get_metadataGet note metadataA
Read-only

Returns metadata for a note (frontmatter, tags, links, file stats) as JSON.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already provide readOnlyHint: true. The description confirms a read operation without adding extra behavioral context such as side effects, auth needs, or rate limits. The description does not contradict annotations.

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

Conciseness5/5

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

The description is a single clear sentence, front-loaded with the core purpose, and contains no unnecessary 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?

Given the tool's low complexity, full schema coverage, and no output schema, the description sufficiently covers what the tool does and what it returns (metadata as JSON including specific fields).

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?

Input schema has 100% description coverage for its 3 parameters (vault, file, path). The description adds no further 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.

Purpose5/5

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

The description clearly states the verb 'Returns', the resource 'metadata for a note', and specifics: 'frontmatter, tags, links, file stats' and format 'as JSON'. It distinguishes itself from siblings like obsidian_read_note (content) and obsidian_get_properties (only properties) by listing the full metadata scope.

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 lacks explicit guidance on when to use this tool versus alternatives like obsidian_get_properties or obsidian_get_links. It implies usage by listing what it returns, but does not state exclusions or provide context for selection.

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

obsidian_get_propertiesGet note frontmatter propertiesA
Read-only

Returns the YAML frontmatter properties of a note as JSON.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.

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 safe read. The description adds that it returns JSON, but does not mention edge cases like missing frontmatter. With good annotations, the description adds minimal extra behavioral context.

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, front-loaded with key information, and contains no unnecessary words.

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

Completeness4/5

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

For a simple read-only tool, the description is adequate. It specifies the return format (JSON). However, it does not address edge cases or behavior when frontmatter is absent, which would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100% with clear descriptions for each parameter. The description does not add any additional meaning beyond what the schema already provides, 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 'Returns', the resource 'YAML frontmatter properties of a note', and the format 'as JSON'. It distinguishes from siblings like obsidian_read_note and obsidian_get_metadata by specifying frontmatter specifically.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. It implies usage for getting frontmatter, but no when-not or selection criteria between file and path parameters.

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

obsidian_helpShow CLI helpA
Read-only

Shows the underlying obsidian help output — useful when a command behaves unexpectedly.

NameRequiredDescriptionDefault
allNoPass --all to include hidden commands.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's behavioral contribution is minimal. It adds that output is from 'obsidian help', which is expected. No contradiction.

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

Conciseness5/5

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

Single sentence, front-loads purpose and usage context. No extraneous information.

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 help tool with one optional parameter and no output schema, the description is complete enough to inform agent 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?

Only one parameter ('all') with full schema coverage. Description does not add meaning beyond the schema's boolean description. 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 explicitly states it shows 'obsidian help' output, with a clear verb ('shows') and resource. It distinguishes from sibling tools which are all about notes, plugins, etc.

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?

Says 'useful when a command behaves unexpectedly', providing clear context for use. No explicit exclusions or alternatives, but siblings don't offer help, so it's sufficient.

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

obsidian_list_filesList notes in vaultA
Read-only

Lists every note in the vault. Returns JSON by default. Useful as a first step to discover what exists.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
formatNoOutput format. Defaults to JSON.json

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the description carries a lower burden. It adds that results return JSON by default, which is behavioral context, but does not detail other traits like pagination or performance.

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

Conciseness5/5

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

The description is extremely concise with two sentences, no filler, and front-loaded with the core action. Every sentence adds value.

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

Completeness3/5

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

For a simple listing tool with annotations and well-described schema, the description covers the basic purpose and default output format. However, it lacks details on the structure of returned data (e.g., whether it returns paths or titles) and does not clarify if the listing is recursive.

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

Parameters3/5

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

The schema has 100% description coverage for both parameters, so the baseline is 3. The description adds no additional parameter meaning beyond what the schema provides, only reiterating the default format.

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

Purpose4/5

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

The description clearly states it lists every note in the vault, with a specific verb and resource. However, it does not explicitly differentiate from sibling listing tools like obsidian_files_with_tag or obsidian_search, which may also list notes under certain criteria.

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?

It mentions being useful as a first step for discovery, implying a use case, but does not specify when not to use it or name alternative tools for filtered or targeted listing.

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

obsidian_list_foldersList folder treeA
Read-only

Displays the vault folder structure as a tree.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
formatNotree

TDQS

A3.5/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 adds no new behavioral context beyond stating the basic output, which is sufficient and consistent.

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?

A single sentence efficiently conveys the core purpose, but could include a brief note about format options 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?

The description does not mention the format parameter's options (tree, paths, json) or the vault default behavior, leaving the agent unaware of alternative output formats.

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

Parameters3/5

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

Schema coverage is 50%, with descriptions for both parameters provided in the schema. The description adds no additional meaning beyond what the schema already offers.

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 displays the vault folder structure as a tree, which distinguishes it from siblings like obsidian_list_files (files) and obsidian_list_tags (tags).

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

Usage Guidelines3/5

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

No explicit usage guidance is provided; it's implied to use when you need to see folder structure, but no mention of when to prefer it over alternative formats or sibling tools.

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

obsidian_list_orphansList orphan notesA
Read-only

Finds notes that have no incoming wikilinks.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, so the agent knows it's a safe read operation. The description adds that it finds notes without incoming links, which specifies the exact behavior beyond the annotation. No contradictions or missing behavioral 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, clear sentence that directly states the tool's purpose with no extraneous information. Every word earns its place.

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

Completeness4/5

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

Given the simplicity of the tool (no output schema, one optional parameter), the description is largely complete. However, it could briefly mention the return format (e.g., a list of note names) to improve completeness.

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

Parameters3/5

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

Schema coverage is 100% for the single optional parameter 'vault,' and its description in the schema is sufficient. The tool description does not add any additional semantic meaning beyond what the schema already provides.

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

Purpose5/5

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

The description uses a specific verb 'Finds' and a clear resource 'notes that have no incoming wikilinks.' It distinguishes itself from siblings like 'obsidian_get_backlinks' (returns backlinks for a specific note) and 'obsidian_list_unresolved' (lists broken links).

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

Usage Guidelines3/5

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

The description implies the tool is for identifying orphan notes but does not explicitly state when to use it over alternatives. No guidance on when not to use or context for choosing between this and 'obsidian_get_backlinks' or 'obsidian_search.'

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

obsidian_list_pluginsList installed pluginsA
Read-only

Lists installed community + core plugins with enabled state.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already mark it as read-only. The description adds that it lists both community and core plugins with enabled state, which is useful behavioral context beyond what annotations provide. No contradictions.

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

Conciseness5/5

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

The description is a single, concise sentence that is front-loaded with the action and resources. No wasted 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 simple list tool with one optional parameter, the description is complete. It covers what is listed and the included state information. No output schema is needed given the straightforward nature of the tool.

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

Parameters3/5

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

The input schema has 100% description coverage for its single optional parameter. The description adds no additional parameter semantics beyond what the schema already provides.

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

Purpose5/5

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

The description states exactly what the tool does: lists both core and community plugins along with their enabled state. This clearly distinguishes it from sibling tools like obsidian_disable_plugin or obsidian_enable_plugin, which are for managing plugins, not just listing.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives (e.g., before enabling/disabling a plugin). The context is clear, but no when-not-to-use or alternative suggestions are given.

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

obsidian_list_tagsList all tagsA
Read-only

Lists every tag used in the vault, with usage counts.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already mark the tool as read-only (readOnlyHint: true). The description adds value by disclosing that it returns usage counts, providing more behavioral context. It does not contradict annotations or introduce missing warnings.

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, front-loaded with the verb and resource, and contains no wasted words. It efficiently conveys the core functionality.

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

Completeness4/5

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

Given the tool's simplicity (one optional parameter, no output schema), the description sufficiently explains the return value ('with usage counts'). It could be more explicit about output format (e.g., list of tag-count pairs), but is adequate for a read-only list tool.

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

Parameters3/5

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

Schema description coverage is 100%, with the vault parameter already well-documented (optional, defaults to most recent vault). The tool description adds no further parameter semantics, so baseline score of 3 applies.

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

Purpose5/5

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

The description clearly states the action: 'Lists every tag used in the vault, with usage counts.' It specifies the resource ('tags'), scope ('vault'), and additional detail ('usage counts'), distinguishing it from siblings like obsidian_files_with_tag which lists files for a specific tag.

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 (e.g., obsidian_files_with_tag, obsidian_search). It lacks explicit when-to-use, when-not-to-use, or mentions of sibling tools.

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

obsidian_list_unresolvedList unresolved linksA
Read-only

Finds wikilinks that point to non-existent notes.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the description adds behavioral context by specifying what the tool finds (unresolved wikilinks). It does not contradict annotations.

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

Conciseness5/5

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

The description is a single, front-loaded sentence with no unnecessary words, earning its place efficiently.

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

Completeness4/5

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

For a simple read-only list tool with one optional parameter and no output schema, the description adequately conveys the tool's purpose without missing critical details.

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

Parameters3/5

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

The input schema already describes the single 'vault' parameter with high coverage (100%). The tool description adds no further parameter details, so the baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'Finds' and clearly defines the resource 'wikilinks that point to non-existent notes.' This distinguishes it from siblings like obsidian_list_orphans or obsidian_get_links.

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 identifying broken wikilinks but provides no explicit guidance on when to use versus alternatives like obsidian_get_links or obsidian_list_orphans.

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

obsidian_move_noteMove or rename a noteA
Destructive

Moves or renames a note. Wikilinks across the vault are updated automatically.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.
toYesDestination path (vault-relative). Include filename.
confirmNoSet to true to skip the interactive confirmation prompt. Use only when the caller has already confirmed with the user.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate destructiveHint=true and readOnlyHint=false. The description adds value by noting automatic wikilink updates, providing useful behavioral context 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.

Conciseness5/5

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

Two concise sentences that front-load the primary action. No unnecessary words; every sentence is essential.

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?

Covers the core behavior well. Lacks mention of return value or confirmation prompt behavior, but schema covers the confirm parameter. Adequate for a state-modifying tool with 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 description coverage is 100%, so each parameter is already documented. The description adds no additional parameter-level details 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?

Clearly states the tool moves or renames a note and automatically updates wikilinks. Distinguishes from sibling tools like obsidian_create_note and obsidian_delete_note.

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

Usage Guidelines3/5

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

Implied usage for moving/renaming notes, but no explicit guidance on when to use vs alternatives like obsidian_create_note or obsidian_delete_note. No when-not scenarios mentioned.

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

obsidian_prepend_notePrepend to a noteA

Inserts content near the top of a note (after frontmatter, if present).

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.
contentYesMarkdown content to prepend.

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate mutation (readOnlyHint=false). The description adds the specific behavioral detail of inserting after frontmatter. While not exhaustive, it provides useful context 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.

Conciseness5/5

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

A single, front-loaded sentence that is concise and devoid of filler. Every word serves a 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 mutation tool with no output schema, the description covers the core behavior. However, it does not address what happens if the note does not exist, which could be important given siblings like obsidian_create_note.

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 schema already documents each parameter. The description does not add additional meaning to parameters beyond the schema baseline.

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

Purpose5/5

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

The description clearly states the verb 'inserts' and the resource 'note', with positional detail 'after frontmatter'. This distinguishes it from sibling tools like obsidian_append_note and obsidian_create_note.

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

Usage Guidelines3/5

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

The description implies use for adding content near the top of a note, but does not explicitly contrast with siblings or mention prerequisites/exclusions. Usage guidance is minimal.

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

obsidian_read_noteRead note contentA
Read-only

Returns the full markdown content of a note.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds that it returns 'full markdown content,' which clarifies the output format beyond just 'content.' No other behavioral traits are disclosed, but the annotations lower the burden.

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

Conciseness5/5

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

A single, front-loaded sentence that conveys the essential purpose without any wasted words. Every word earns its place.

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 the low complexity, good schema descriptions, and annotations, the description is sufficiently complete. It explains the return value (full markdown content) without needing an output schema. No additional context is necessary.

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

Parameters3/5

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

Schema coverage is 100%, so baseline is 3. The description does not add any extra meaning beyond the schema's explanations for `vault`, `file`, and `path` parameters. No clarification on how wikilink resolution works or the default for vault.

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 ('Returns') and resource ('full markdown content of a note'). It effectively distinguishes itself from siblings like obsidian_append_note and obsidian_delete_note, which modify or delete 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?

The description implies the tool is for retrieving full note content but provides no explicit guidance on when to use it versus alternatives like obsidian_get_properties or obsidian_search. No exclusion criteria or use-case examples are given.

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

obsidian_reload_pluginHot-reload a pluginA
Idempotent

Reloads a plugin's code (useful during plugin development).

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
idYes

TDQS

A4/5.0
Behavior4/5

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

Annotations indicate the tool is not read-only and is idempotent. The description adds the development context, implying that reloading refreshes code changes without persisting data. It discloses the intended use without contradicting annotations.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the action and context. Every word adds value, with no unnecessary 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 is a straightforward reload action with no output schema and two parameters, the description is minimal yet functional. However, it omits details like prerequisites (e.g., plugin must be enabled) or side effects (e.g., disrupts current behavior), which a developer might find useful.

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?

The input schema has two parameters: 'vault' (documented) and 'id' (only minLength, no description). The description does not mention either parameter, so it fails to compensate for the 50% schema coverage. The agent gets no additional guidance on parameter meaning beyond the schema's sparse documentation.

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 ('reloads') and the resource ('a plugin's code'), and adds context ('useful during plugin development'). It distinguishes well from sibling tools like obsidian_enable_plugin and obsidian_disable_plugin, which are about toggling plugin state rather than code reloading.

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 explicitly mentions 'useful during plugin development,' giving clear context for when to use the tool. However, it does not provide explicit guidance on when not to use it or suggest alternatives, leaving room for slight ambiguity.

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

obsidian_remove_propertyRemove a frontmatter propertyC
DestructiveIdempotent

Removes a frontmatter property from a note.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.
nameYesProperty name to remove.
confirmNoSet to true to skip the interactive confirmation prompt. Use only when the caller has already confirmed with the user.

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already indicate destructiveHint=true and idempotentHint=true. The description adds no further behavioral context (e.g., that the change is permanent, or what happens if the property doesn't exist). It simply restates the action.

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, making it very concise. However, it could benefit from a brief note about idempotency or the confirm parameter without adding much length.

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 annotations and rich schema, the description provides minimal context. It does not explain return values (none) or the effect of the confirm parameter, but the essential operation is clear.

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 does not add meaning beyond what the schema provides for parameters like 'vault', 'file', 'path', 'name', and 'confirm'.

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 'removes' and the resource 'frontmatter property from a note', making the action unambiguous. However, it does not differentiate from sibling tools like obsidian_set_property, though the name itself distinguishes.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives (e.g., obsidian_set_property for setting/updating). The description lacks context about prerequisites 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_rename_tagBulk rename a tagB
Destructive

Renames a tag across every note in the vault.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
oldYesExisting tag name (e.g. '#old').
newYesNew tag name (e.g. '#new').
confirmNoSet to true to skip the interactive confirmation prompt. Use only when the caller has already confirmed with the user.

TDQS

B3.4/5.0
Behavior3/5

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

The description adds no behavioral context beyond what annotations already provide (destructiveHint=true, readOnlyHint=false). It does not mention the confirmation prompt or potential merging behavior. With annotations covering the safety profile, 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, front-loaded sentence with no wasted words. It conveys the essential purpose efficiently.

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 having 4 parameters and being a destructive tool, the description is minimal and lacks details on the confirm parameter behavior, tag formatting, or side effects. Given no output schema, the description should provide more context.

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

Parameters3/5

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

Schema coverage is 100%, with all four parameters having descriptions. The description does not add additional meaning beyond the schema, meeting the baseline score of 3.

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

Purpose5/5

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

The description clearly states that the tool renames a tag across every note in the vault, specifying the action (rename) and the resource (tag) with a clear scope (across every note). This distinguishes it from sibling tools like obsidian_files_with_tag or obsidian_list_tags.

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

Usage 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 checking existing tags with obsidian_list_tags or previewing changes with obsidian_files_with_tag. No prerequisites, exclusions, or recommendations are mentioned.

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

obsidian_search_contextSearch with surrounding contextA
Read-only

Full-text search that returns surrounding lines of context for each hit.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
queryYes
limitNo

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already mark it as read-only; description adds context about returning lines, but lacks details on what is not done (e.g., formatting, sorting).

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 wasted 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 description is minimal; it does not explain what 'surrounding lines' means, how many lines, or the result format, leaving significant gaps.

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 low (33%), and the description does not clarify the 'query' format or 'limit' meaning, providing minimal added value.

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

Purpose5/5

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

The description clearly states it performs full-text search and returns surrounding lines of context, distinguishing it from sibling tools like obsidian_search.

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, but the name and description imply it's for searches needing context.

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

obsidian_set_propertySet a frontmatter propertyB
Idempotent

Sets a frontmatter property on a note. Creates the frontmatter block if missing.

NameRequiredDescriptionDefault
vaultNoVault name to target. Optional — defaults to the most recently focused vault.
fileNoNote name resolved as a wikilink (e.g. 'My Note'). Provide either `file` or `path`.
pathNoVault-root-relative path to the note (e.g. 'Folder/My Note.md'). Provide either `file` or `path`.
nameYesProperty name (key).
valueYesProperty value (string).

TDQS

B3.3/5.0
Behavior3/5

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

Annotations indicate idempotentHint=true, so description's note about creating frontmatter block if missing adds value. However, it doesn't clarify behavior when property already exists (overwrite?) or other 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.

Conciseness4/5

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

Single sentence, very concise. Could be slightly more structured with a brief usage context, but no wasted 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?

No output schema, and description fails to mention return value. With 5 parameters and no behavioral details on property updates, the description is insufficiently 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?

Input schema has 100% coverage with descriptions. Description adds no additional parameter-specific semantics beyond what schema provides, so 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?

Description clearly states the tool 'Sets a frontmatter property on a note' with a specific verb and resource, and distinguishes from siblings like 'obsidian_remove_property'.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives (e.g., obsidian_append_note or obsidian_create_note). Does not mention when not to use it or any prerequisites.

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

obsidian_versionGet Obsidian CLI versionA
Read-only

Returns the version of the Obsidian CLI binary in use.

NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, fully covering the behavioral safety. The description adds that it returns a version string but provides no further behavioral context (e.g., format, potential errors). With annotations handling safety, this is acceptable.

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

Conciseness5/5

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

The description is a single concise sentence that conveys the exact purpose with no unnecessary words. Every word earns its place.

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 the tool's trivial complexity (no parameters, no output schema, simple read operation), the description is complete enough. It fully addresses what the tool does.

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

Parameters4/5

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

The tool has zero parameters, and schema coverage is 100% (empty object). The description adds meaning by specifying the return value (version). With no parameters to document, this 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 clearly states the tool returns the Obsidian CLI version, with a specific verb ('Returns') and resource ('version'). It distinguishes from siblings that perform diverse operations on notes, files, plugins, etc.

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

Usage Guidelines4/5

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

The description implies usage when the version is needed, and there are no alternative tools for this purpose. However, it does not explicitly state when not to use it, but given the simple nature, this is adequate.

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.

  1. 34 tool updatesv1.0.0
    • First observedobsidian_append_note
    • First observedobsidian_create_note
    • First observedobsidian_daily_append
    • First observedobsidian_daily_path
    • First observedobsidian_daily_read
    • First observedobsidian_delete_note
    • First observedobsidian_dev_console
    • First observedobsidian_dev_errors
    • First observedobsidian_dev_screenshot
    • First observedobsidian_disable_plugin
    • First observedobsidian_enable_plugin
    • First observedobsidian_eval
    • First observedobsidian_files_with_tag
    • First observedobsidian_get_backlinks
    • First observedobsidian_get_links
    • First observedobsidian_get_metadata
    • First observedobsidian_get_properties
    • First observedobsidian_help
    • First observedobsidian_list_files
    • First observedobsidian_list_folders
    • First observedobsidian_list_orphans
    • First observedobsidian_list_plugins
    • First observedobsidian_list_tags
    • First observedobsidian_list_unresolved
    • First observedobsidian_move_note
    • First observedobsidian_prepend_note
    • First observedobsidian_read_note
    • First observedobsidian_reload_plugin
    • First observedobsidian_remove_property
    • First observedobsidian_rename_tag
    • First observedobsidian_search
    • First observedobsidian_search_context
    • First observedobsidian_set_property
    • First observedobsidian_version

TDQS

B3.4/5.0

Scored across 34 tools

Disambiguation4/5

Most tools have distinct purposes, but there is some potential confusion between obsidian_search and obsidian_search_context, and between obsidian_get_backlinks and obsidian_get_links. Overall, descriptions are clear enough for an agent to differentiate.

Naming Consistency5/5

All tools follow a consistent 'obsidian_verb_noun' snake_case pattern, making it predictable and easy to infer function from name.

Tool Count2/5

With 34 tools, the server is over-scoped for typical MCP usage. While it covers many aspects of Obsidian, the high number suggests potential for splitting into specialized servers, and many tools (e.g., development utilities) may be unnecessary for most agents.

Completeness3/5

The tool set covers core note operations, search, tags, links, and daily notes well, but lacks explicit tools for creating folders, deleting tags, or handling attachments, leaving notable gaps in domain coverage.

Maintenance

ActivityInactive
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • F
    license
    C
    quality
    F
    maintenance
    Provides LLM agents with comprehensive access to Obsidian vaults via the official Obsidian CLI bridge. It enables users to read, search, and modify notes, tasks, properties, and plugins while the Obsidian desktop app is running.
    54
    16
    -
  • A
    license
    A
    quality
    A
    maintenance
    Standalone MCP server for Obsidian vaults - hybrid search (FTS5 + vector + cross-encoder reranking), images and PDFs in agent-readable form, Kanban-aware tasks (Tasks-plugin + Dataview formats), structured memory with topic recall, fine-grained read/write tools for optimal token efficiency, and link graph support. Run locally, self-host, or one-click deploy for remote access. OAuth 2.1.
    16
    33
    116 npm
    34
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables interaction with Obsidian vaults through the official Obsidian CLI, allowing note management, search, and vault operations without plugins or API keys.
    21
    MIT