obsidian-connector
A local MCP connector that lets you read, write, and search an Obsidian vault directly on disk — no plugins or running Obsidian instance required.
Read & Browse
List notes and folders (recursively or not); read full notes, a specific heading's section, or a line range
Get note metadata (created/modified dates, size, tags, frontmatter keys, link & task counts)
Search notes by text or regex, with optional tag, folder, and path-glob filters
List all tags with usage counts; get backlinks to a note; list outgoing links (flagging unresolved ones)
List tasks (
- [ ]/- [x]) across the vault or a single note, filterable by statusRead daily, weekly, or monthly periodic notes for today or a specific date
Write & Modify
Create notes with optional YAML frontmatter; append text to notes (optionally under a heading)
Edit notes via find/replace or by rewriting an entire heading section
Update or remove YAML frontmatter fields without touching the body
Toggle task checkboxes by line number
Move/rename notes with automatic
[[wikilink]]rewriting across the vaultDelete notes (moved to
.trash— recoverable)Append to or create daily, weekly, or monthly periodic notes
Create notes from templates with
{{title}},{{date}},{{time}}, and custom variable substitution
Safety
All file access is sandboxed to the configured vault folder; path-traversal is blocked
Deletions move files to
.trashrather than permanently removing them
Provides tools for reading, writing, searching, and managing Markdown notes in an Obsidian vault, including listing notes and folders, reading note content, full-text and tag search, getting backlinks, creating and appending notes, managing daily notes, and updating YAML frontmatter.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@obsidian-connectorsearch notes tagged #meetings"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vault Connector for Obsidian
A local MCP connector that lets Claude read, write and search any Obsidian vault. It works directly with the Markdown files on disk — no community plugins, and Obsidian does not need to be running.
Independent project, not affiliated with or endorsed by Obsidian. "Obsidian" is a trademark of Dynalist Inc.
All access is sandboxed to the single vault folder you configure; the server refuses any path that would escape it.
Tools
Tool | Access | Description |
| read | List Markdown notes, optionally within a folder |
| read | List sub-folders of the vault or a folder |
| read | Read a note — or just one heading's section / a line range |
| read | Note metadata: dates, size, tags, link & task counts |
| read | Text or regex search, with |
| read | List every tag in the vault with usage counts |
| read | Find notes linking to a target via |
| read | List links a note points to, flagging unresolved ones |
| read | List task checkboxes ( |
| write | Create a note with optional YAML frontmatter |
| write | Append text to a note, optionally under a heading |
| write | Find/replace text, or rewrite a heading's section |
| write | Set or remove YAML frontmatter fields |
| write | Toggle a task checkbox on a given line |
| write | Move/rename a note and rewrite |
| write (destructive) | Move a note to the vault's |
| write | Append an entry to today's (or a given date's) daily note |
| write | Append to a daily, weekly or monthly note |
| read | Read a daily, weekly or monthly note |
| write | Create a note from a template with |
Also exposes MCP prompts (summarize_note, daily_review) and a resource
(obsidian://vault/structure) describing the vault layout.
Related MCP server: @kazuph/mcp-obsidian
Configuration
The server is configured through environment variables (set automatically from the connector settings when installed as a Desktop Extension):
Variable | Required | Default | Purpose |
| yes | — | Absolute path to the vault folder |
| no | `` (root) | Vault-relative folder for daily notes |
| no |
| Daily-note filename format |
| no | daily folder | Folder for weekly notes |
| no |
| Weekly-note format ( |
| no | daily folder | Folder for monthly notes |
| no |
| Monthly-note filename format |
| no | `` (root) | Folder holding note templates |
Development
npm install
npm run build # compile TypeScript to dist/
npm run inspect # open the MCP Inspector against the serverTry it locally in Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"OBSIDIAN_VAULT_PATH": "/absolute/path/to/your/Vault",
"OBSIDIAN_DAILY_FOLDER": "Log"
}
}
}
}Package as a Desktop Extension (.mcpb)
npm run pack # builds and produces obsidian-connector.mcpbThe resulting .mcpb can be installed in Claude Desktop with one click, or submitted to the
Claude connector directory via the
Desktop Extension submission form.
License
MIT
Available Tools
20 toolsappend_to_daily_noteAppend to daily noteA
Append an entry to today's (or a given date's) daily note, creating it with a heading if missing. Folder/format come from settings.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date 'YYYY-MM-DD' (default: today) | |
| content | Yes | Text to add to the daily note | |
| heading | No | Append under this heading |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint false, and the description adds key behavioral details: it creates the note if missing and appends under a heading. This goes beyond annotations to clarify creation and formatting behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that covers the core function without extraneous words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 simple parameters and no output schema, the description covers the main use case (append to daily note, create if missing, heading support) and mentions settings. It is complete for typical use, though it omits error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with clear parameter descriptions. The tool description restates the date default and heading creation logic, but adds minimal new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'append' and the resource 'daily note', specifying that it works for today or a given date. It distinguishes from siblings by specifying 'daily note' versus general 'append_to_note' or 'append_to_periodic_note'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for daily notes and mentions date defaulting to today, but does not explicitly state when not to use it or recommend alternatives. Guidance is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_to_noteAppend to noteA
Append text to a note, optionally under a specific heading. Creates the note if missing.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path to the note | |
| content | Yes | Text to append | |
| heading | No | Append under this heading (created at end if missing) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false). The description adds the critical behavior of auto-creating the note if missing, which annotations do not cover. Contradictions are absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no unnecessary words. It conveys the core functionality efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple append tool with good annotations and full schema, the description covers key behavior (append, heading, auto-create). No return type needed. Minor gap: does not explain behavior if heading exists explicitly, but schema hints at appending under it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema documents parameters. The description adds context for optional heading and auto-creation, but does not significantly enhance parameter meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('append') and resource ('note'), and clarifies optional heading use. It distinguishes from siblings like 'append_to_daily_note' and 'create_note' by targeting any note and auto-creating if missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states append behavior and auto-creation, providing context for when to use. However, it does not explicitly exclude alternatives or mention when not to use, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
append_to_periodic_noteAppend to periodic noteA
Append an entry to a daily, weekly or monthly note (created with a heading if missing). Folder/format per period come from settings.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date 'YYYY-MM-DD' within the target period (default: today) | |
| period | Yes | Which periodic note | |
| content | Yes | Text to add | |
| heading | No | Append under this heading |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so description carries burden. It discloses heading creation behavior and settings dependency. However, it does not specify idempotency, order, or error cases, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences convey all essential info without fluff. Front-loaded with the action, then context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema, the description covers key aspects: action, resource, parameter behavior, and settings dependency. Minor gaps (e.g., no mention of return value) but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters, but description adds value: explains that folder/format come from settings (not parameters) and elaborates on heading behavior (created if missing).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('append an entry') and the resource ('daily, weekly or monthly note'), and distinguishes from siblings like 'append_to_daily_note' by covering all periods. It also notes heading creation if missing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly guide when to use this tool versus alternatives like 'append_to_daily_note'. It implies broader applicability but lacks direct comparison or exclusionary context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteCreate noteA
Create a new note with optional YAML frontmatter. Fails if it exists unless 'overwrite' is true.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path, e.g. 'Inbox/Idea.md' | |
| content | Yes | Markdown body of the note | |
| overwrite | No | Replace an existing note (default: false) | |
| frontmatter | No | Optional YAML frontmatter as key/value pairs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral details beyond annotations: failure on existing note without overwrite, and the overwrite option. Annotations are sparse (no destructive hint) but the description clarifies the mutation semantics. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose, then constraint. No redundant information. Perfectly concise for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not mention return values or success indicators. For a creation tool, knowing the output shape (e.g., created note object) would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, baseline is 3. The description adds value by explaining the overwrite behavior and optional frontmatter, which complements the schema definitions. However, it doesn't elaborate on path or content beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a new note with optional frontmatter and specifies the failure behavior. This distinguishes it from sibling tools like append_to_note or create_note_from_template by focusing on bare creation with optional metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives conditional guidance on overwrite behavior but does not explicitly contrast with alternatives like create_note_from_template. It implies when to use (creating a note from scratch) but lacks explicit when-not scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_note_from_templateCreate note from templateA
Create a note from a template file, substituting {{title}}, {{date}}, {{time}} and any custom {{variables}}.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path for the new note | |
| title | No | Value for {{title}} (default: new note's file name) | |
| template | Yes | Vault-relative path to the template (or its name if a templates folder is set) | |
| overwrite | No | Replace an existing note (default: false) | |
| variables | No | Custom {{key}} → value substitutions |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) are present, so the bar is lower. The description adds value by explaining variable substitution, but it does not disclose the side effect of overwriting an existing note when overwrite=true, which contradicts destructiveHint=false. However, this contradiction is between annotation and parameter, not the description. The description itself is accurate but incomplete regarding error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the core functionality. Every word is meaningful with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, nested objects, and no output schema, the description is too brief. It omits critical context such as what happens if the template does not exist, whether errors are returned, or what the outcome of a successful call is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by explaining that {{title}}, {{date}}, {{time}} are substituted and that custom variables are supported. This provides useful context about how parameters are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Create a note from a template) and the specific behavior of substituting {{title}}, {{date}}, {{time}} and custom variables. This distinguishes it from sibling tools like create_note, which creates a blank note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., create_note for blank notes). There is no mention of prerequisites, such as the template needing to exist or be correctly specified.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_noteDelete noteADestructive
Move a note to the vault's .trash folder (recoverable; not a permanent delete).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path to the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by clarifying that deletion is recoverable (moves to .trash), not permanent. This is valuable since annotations only indicate destructiveness (destructiveHint: true). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-formed sentence that conveys purpose and key behavior. No wasted words; front-loaded with action and outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description adequately explains the action and its effect. It does not cover return value, but that is acceptable given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not add meaning beyond the input schema for the single parameter 'path', which is already described as 'Vault-relative path to the note'. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (move to trash) and distinguishes it from permanent deletion, specifying the recoverable nature. This provides a precise verb+resource with key behavioral detail.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While it implies usage for deletion, it lacks comparison to sibling tools like permanent deletion (if any) or other note operations. No exclusions or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
edit_noteEdit noteA
Edit an existing note: either find/replace text, or replace the entire body under a heading. Use 'find'+'replace' for text edits, or 'section'+'replace' to rewrite a heading's content.
| Name | Required | Description | Default |
|---|---|---|---|
| find | No | Exact text to replace (omit when using 'section') | |
| path | Yes | Vault-relative path to the note | |
| replace | Yes | Replacement text (or the new body when 'section' is set) | |
| section | No | Heading whose body should be replaced with 'replace' | |
| replace_all | No | Replace every occurrence of 'find' (default: first only) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description clearly explains the tool's two behavioral modes and what they achieve, going beyond the annotations which only indicate non-read-only and non-idempotent behavior. It does not mention edge cases like replace_all default or behavior when find is not found, but the main behavior is well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with action, no redundancy. Every word contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's five parameters and no output schema, the description explains the two use modes but omits details like what happens when find doesn't match, the non-idempotent nature, or that it modifies the file on disk. It is adequate but leaves gaps for error handling and idempotency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description still adds value by clarifying the relationship between parameters: pairing 'find' with 'replace' and 'section' with 'replace'. This semantic grouping is not present in the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'edit' and the resource 'existing note', and distinguishes two specific modes (find/replace and section replace). It is precise and sets the tool apart from siblings like create_note or delete_note.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use each mode: 'find'+'replace' for text edits, or 'section'+'replace' for rewriting heading content. However, it does not explicitly mention when not to use it (e.g., for frontmatter updates) nor provide direct comparison to sibling tools like update_frontmatter or toggle_task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backlinksGet backlinksARead-only
Find notes that link to the target note via [[wikilinks]] (matched on file name).
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path of the target note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint true and openWorldHint false. The description adds specific behavioral context: matching via [[wikilinks]] and file name, which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence of 13 words with no redundancy. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one required parameter, full schema coverage, annotations, and no output schema, the description is sufficient. It explains the matching mechanism and purpose clearly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the 'path' parameter described. The description does not add additional meaning beyond the schema's 'Vault-relative path of the target note.' Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Find notes that link to the target note via [[wikilinks]] (matched on file name).' This specifies the verb and resource, and distinguishes from sibling tools like 'get_outgoing_links'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides the matching mechanism (wikilinks matched on file name) but does not give explicit guidance on when to use this tool versus alternatives like 'get_outgoing_links' or 'search_notes'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_note_infoGet note infoARead-only
Return metadata for a note (created/modified time, size, tags, frontmatter keys, outgoing link and task counts) without its full body.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path to the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds specifics about returned metadata fields, going beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence with all necessary information, front-loaded with key result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter, the description lists return fields sufficiently, compensating for lack of output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers parameter fully (100% coverage). Description does not add further meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns metadata without the full body, distinguishing it from sibling 'read_note'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for metadata retrieval but does not explicitly say when to use vs alternatives like 'read_note' or search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_outgoing_linksGet outgoing linksARead-only
List the [[wikilinks]] and ![[embeds]] a note points to, marking which targets exist in the vault.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path to the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, so agent knows it's safe. Description adds detail about marking existence, which is beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, front-loaded with action and key behavioral info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with one parameter, description sufficiently covers behavior and return value hint without needing output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameter description. Tool description does not add additional meaning beyond what schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists wikilinks and embeds a note points to, marking existence. Distinguishes from sibling get_backlinks which handles incoming links.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. Sibling get_backlinks exists but not mentioned as alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_foldersList foldersARead-only
List immediate sub-folders of the vault or a given folder.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Vault-relative parent folder (default: vault root) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint true; description adds that it returns only immediate children (one level deep). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Efficiently communicates purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with good annotations and one optional parameter, the description is nearly complete. It lacks explicit mention of return format but that is minimal impact.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter description. Description adds no extra value beyond what's already in the schema, but the schema itself is sufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists immediate sub-folders, specifying the scope (vault root or a given folder). It distinctly differentiates from sibling 'list_notes' which lists notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for listing sub-folders but does not provide explicit when-to-use or when-to-avoid guidance, nor alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notesList notesARead-only
List Markdown notes in the vault, optionally limited to a sub-folder.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Vault-relative folder to list (default: whole vault) | |
| recursive | No | Recurse into sub-folders (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds no further behavioral traits (e.g., permissions, return format). Acceptable but does not enhance transparency beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the verb, no waste. Highly concise and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Sufficient for a simple 2-parameter tool with no output schema. Lacks details on output format, but acceptable given the standard nature of listing tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description paraphrases schema for 'folder' but adds no substantial new meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'List', resource 'Markdown notes', and scope 'vault, optionally limited to a sub-folder', distinguishing from siblings like search_notes and list_folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when a user wants a list of all notes or notes in a specific folder, but lacks explicit guidance on when not to use or alternatives. Still clear enough for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsList tagsARead-only
List every tag used in the vault with the number of notes using each.
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No | Restrict to this folder |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true. The description adds that the tool returns counts per tag, which is behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no fluff, front-loaded with the action and resource. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description covers the core functionality and return value (tags with counts). It doesn't mention ordering or error handling, but those are not critical for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameter 'folder' is fully described in the schema. The description adds no further meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List'), resource ('every tag'), and the information returned ('with the number of notes using each'). It distinguishes from siblings like list_notes and list_folders.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool. The purpose is clear, and siblings are distinct, but no comparative context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksList tasksARead-only
List Markdown task checkboxes (- [ ] / - [x]) across the vault or a note, with file and line.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | A single note (default: scan the whole vault / folder) | |
| folder | No | Restrict scan to this folder | |
| status | No | Filter by completion (default: open) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the tool is known to be non-destructive. The description adds that it returns file and line information, providing useful behavioral context beyond annotations. It does not need to repeat the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is front-loaded with the key action and context, effectively conveying the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return includes file and line. It covers scope (vault or note) and filter possibilities (via schema parameters). While it could be more explicit about the return format (e.g., list of tasks), it is largely complete 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all 3 parameters. The description does not add new parameter details beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists Markdown task checkboxes, specifies the format (- [ ] / - [x]), and mentions scope (across vault or a note) and output details (file and line). This distinguishes it from siblings like toggle_task and search_notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing tasks across vault or note but lacks explicit guidance on when to use this tool versus alternatives. No exclusions or prerequisites are mentioned, though the context of sibling tools provides some implicit differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
move_noteMove or rename noteA
Move or rename a note and rewrite [[wikilinks]] in other notes that point to it. Refuses to overwrite an existing file unless 'overwrite' is true.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | New vault-relative path | |
| from | Yes | Current vault-relative path | |
| overwrite | No | Allow replacing an existing file at the destination (default: false) | |
| update_links | No | Rewrite backlinks in other notes (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the key side effect of rewriting wikilinks and the refusal behavior for overwriting. Annotations already indicate readOnlyHint=false and destructiveHint=false, but the description adds context beyond those flags. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, using two sentences to convey the core action and a key constraint. No unnecessary words, front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the absence of an output schema, the description covers essential behavior: move/rename, link rewriting, and overwrite refusal. It is complete enough for an agent to understand the tool's effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all 4 parameters with descriptions, achieving 100% coverage. The description adds little extra parameter-level meaning beyond restating the overwrite behavior. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb (move/rename) and resource (note), and uniquely highlights the rewriting of [[wikilinks]] in other notes. This distinguishes it from sibling tools like delete_note or edit_note, which have different functions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool (to move or rename a note) and provides a critical behavioral condition (refusing to overwrite unless 'overwrite' is true). However, it does not explicitly name alternatives or state when not to use it, which would strengthen guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_noteRead noteARead-only
Read a note. Optionally return only a single heading's section, or a line range, to save tokens on large notes.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Vault-relative path to the note, e.g. 'Projects/Plan.md' | |
| heading | No | Return only the section under this heading | |
| to_line | No | Last line to return (1-based, inclusive) | |
| from_line | No | First line to return (1-based, inclusive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only behavior. Description adds value by disclosing optional partial returns (heading or line range) to save tokens, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. Front-loaded with clear purpose, then optional behavior. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with full schema coverage and read-only annotations, description adequately covers purpose and optional parameters. Could mention edge cases (e.g., missing heading) but not strictly necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. Description adds meaning by explaining that optional heading and line range parameters are for saving tokens on large notes, enhancing understanding beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Read a note' with specific verb and resource, and distinguishes from siblings like 'read_periodic_note' by mentioning optional filtering for large notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage context is clear: use to read notes when you need full content or partial sections/line ranges to save tokens. However, no explicit exclusions or comparisons to other sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_periodic_noteRead periodic noteARead-only
Read the daily, weekly or monthly note for today or a given date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ISO date 'YYYY-MM-DD' within the target period (default: today) | |
| period | Yes | Which periodic note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description does not contradict. However, the description does not disclose what the tool returns (e.g., full note content, metadata). Beyond the read-only nature, there is no additional behavioral context like output format or error handling. With no output schema, this is a gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 12 words, front-loading the action and resource. 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.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with annotations, the description adequately covers purpose and parameters. However, it lacks details on return value, which is important since there is no output schema. It could also mention that it works with daily, weekly, monthly notes and that the date should be within that period. Overall, functional but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with two well-described parameters. The description adds value by clarifying that the date defaults to 'today' and that the period can be daily, weekly, or monthly. This goes beyond the schema's enum description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'read' and resource 'periodic note', and distinguishes from siblings like 'read_note' by specifying 'daily, weekly or monthly note'. This makes the purpose clear and unique.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates usage for periodic notes, but does not explicitly state when to use this tool versus sibling tools like 'read_note' or 'append_to_periodic_note'. The context is clear, but lacks explicit alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_notesSearch notesARead-only
Search the vault by text or regular expression, optionally filtered by tag and path glob. Returns matching notes with snippets.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Only notes carrying this tag (without '#') | |
| limit | No | Max results (default: 20) | |
| query | No | Text or regular expression to search for | |
| regex | No | Treat query as a regular expression (default: false) | |
| folder | No | Restrict search to this folder | |
| offset | No | Skip this many matches (pagination) | |
| path_glob | No | Only paths matching this glob, e.g. 'Projects/**/*.md' | |
| line_numbers | No | Include line numbers of matches (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description aligns with annotations (readOnlyHint: true) and adds behavioral detail: returns snippets. It does not describe case sensitivity, pagination defaults, or result structure beyond snippets, but is consistent and non-contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, highly front-loaded. No filler words. Every part adds information: action, parameters, output. Ideal length for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters with full schema coverage and no output schema, the description adequately covers core functionality. It could mention default limit or result fields, but it is sufficient for correct invocation in most cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by grouping parameters (query+regex, tag+path_glob+folder) and explaining the overall search mechanism, which provides context beyond individual schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'search' and resource 'vault' with explicit methods (text/regex, filters, tag, path glob). It distinguishes from siblings like 'list_notes' and 'get_note_info' by focusing on search with optional filters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description specifies when to use: for searching by text or regex with optional filters. It implies usage for retrieval rather than listing or editing, but does not explicitly contrast with siblings or mention exclusions like performance considerations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_taskToggle taskA
Toggle a Markdown task checkbox on a given line (use list_tasks to find the line number).
| Name | Required | Description | Default |
|---|---|---|---|
| line | Yes | 1-based line number of the task | |
| path | Yes | Vault-relative path to the note |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds minimal behavioral context beyond stating the toggle action, so it does not significantly enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured sentence that is front-loaded with the core purpose and includes a helpful cross-reference. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple toggle tool with two parameters and no output schema, the description is complete: it explains what the tool does and how to prepare input, with no missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameter descriptions (line and path). The description reinforces the line parameter's purpose but adds no new semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (toggle), resource (Markdown task checkbox on a given line), and references list_tasks to find the line number, distinguishing from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance to use list_tasks first, but lacks explicit when-to-use or when-not-to-use instructions. However, the context is clear for its intended use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_frontmatterUpdate frontmatterAIdempotent
Set or remove YAML frontmatter fields on an existing note without touching its body.
| Name | Required | Description | Default |
|---|---|---|---|
| set | No | Fields to add or overwrite | |
| path | Yes | Vault-relative path to the note | |
| unset | No | Field names to remove |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context beyond annotations by stating that the body is untouched, but it does not disclose potential behaviors like concurrent modification handling, YAML validation, or effects of providing both 'set' and 'unset'. The annotations already indicate idempotency, non-destructive, and non-read-only nature, so the description's additional value is limited.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy. It is front-loaded with the core action and effectively communicates the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could be more complete by mentioning what happens when both 'set' and 'unset' are provided, error handling for missing paths, or YAML format constraints. However, for a simple modification tool, it is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value beyond what the schema already provides. It confirms that fields are YAML frontmatter, but this is largely implied. The description does not clarify valid values for 'set' or behavior of 'unset' with non-existent keys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets or removes YAML frontmatter fields on a note without affecting its body. It uses specific verbs ('Set or remove') and a specific resource ('YAML frontmatter fields on an existing note'), distinguishing it from sibling tools that modify the note body.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates when to use this tool (for frontmatter editing) vs. siblings like 'append_to_note' (body editing). However, it does not explicitly state when not to use it or provide alternatives, leaving some room for ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a distinct purpose. While there are several 'append' and 'list' tools, they target different entities (daily note, periodic note, tasks, tags, etc.) and are clearly differentiated by name and description.
All tool names use consistent verb_noun snake_case pattern (e.g., append_to_note, create_note, list_tasks, read_note). The verb choice is appropriate and uniform across the set.
20 tools is on the higher side but each tool addresses a specific need in Obsidian interaction (CRUD notes, tasks, tags, links, folders, search, frontmatter). The set is comprehensive without being bloated.
Covers all core operations: creating, reading, editing, deleting, moving notes; managing tasks; searching; frontmatter; backlinks/outgoing links; periodic notes; tags; folders. Only minor attachments or graph operations are missing, which are niche.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceThis is a connector to allow Claude Desktop (or any MCP client) to read and search any directory containing Markdown notes (such as an Obsidian vault).1,4441,352AGPL 3.0
- AlicenseNot gradedqualityNot gradedmaintenanceObsidian vault connector for Claude Desktop - enables reading and writing Markdown notes using Model Context Protocol (MCP)175
- AlicenseNot gradedqualityDmaintenanceProvides Claude with read, search, and write access to an Obsidian vault through MCP tools.5,784Apache 2.0
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server enabling Claude to read, write, search, and analyse your Obsidian vault with advanced research capabilities.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/noragami90/obsidian-connector'
If you have feedback or need assistance with the MCP directory API, please join our Discord server