Skip to main content
Glama
dbmcco

Obsidian MCP Server

by dbmcco

Obsidian MCP Server

A powerful Model Context Protocol (MCP) server for natural language interaction with your Obsidian vault. Built with TypeScript and designed for seamless integration with Claude Code and other MCP clients.

Features

Core Capabilities

  • Natural Language Queries: Ask questions about your vault in plain English

  • Advanced Search: Intelligent search with link analysis, tag hierarchies, and structural context

  • Backlink Analysis: Find and analyze connections between notes

  • Vault Navigation: Browse directory structure and discover notes

  • Full CRUD Operations: Read, write, create, append, and update notes

Advanced Intelligence Tools

  • Guided Story Path: Generate narrative tours through linked notes

  • Note Auditing: Find recently modified notes missing frontmatter or structure

  • Contextual Companions: Discover related notes based on links, keywords, and recency

  • Fresh Energy: Identify recently updated notes needing integration

  • Initiative Bridge: Track project-specific notes with outstanding tasks

  • Pattern Echo: Find notes that reuse specific phrasings or patterns

  • Synthesis Ready: Detect note clusters that need summary notes

Related MCP server: Obsidian MCP Server

Installation

From Source

  1. Clone the repository:

    git clone https://github.com/dbmcco/obsidian-mcp.git
    cd obsidian-mcp
  2. Install dependencies:

    npm install
  3. Build the project:

    npm run build

Configuration

Claude Code Setup

Add to your Claude Code MCP configuration:

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

Claude Desktop Setup

Add to your claude_desktop_config.json:

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

Environment Variables

  • OBSIDIAN_VAULT_PATH: Required. Absolute path to your Obsidian vault

Available Tools

Basic Operations

query_vault

Process natural language queries about your vault content.

Example: "What are the main themes in my project notes?"

{
  query: string,
  vaultPath?: string  // Optional override
}

search_notes

Search for notes by filename or content using exact text matching.

{
  searchTerm: string,
  searchType: 'filename' | 'content' | 'both',  // Default: 'both'
  vaultPath?: string
}

Advanced search with link graph analysis, tag hierarchies, and structural context weighting.

{
  query: string,
  vaultPath?: string
}

list_directories

Browse vault directory structure with note counts.

{
  directoryPath?: string,  // Empty string for vault root
  vaultPath?: string
}

get_note

Retrieve the full content of a specific note.

{
  notePath: string,  // Relative to vault root
  vaultPath?: string
}

Find all notes that link to a specific note with context.

{
  notePath: string,
  vaultPath?: string
}

Write Operations

write_note

Write or completely overwrite a note.

{
  notePath: string,
  content: string,
  vaultPath?: string
}

create_note

Create a new note with frontmatter and content.

{
  notePath: string,
  title: string,
  content?: string,
  tags?: string[],
  vaultPath?: string
}

append_to_note

Append content to an existing note.

{
  notePath: string,
  content: string,
  vaultPath?: string
}

update_note_section

Update a specific section identified by heading.

{
  notePath: string,
  sectionHeading: string,
  newContent: string,
  vaultPath?: string
}

Advanced Intelligence

guided_path

Generate a narrative tour through linked notes starting from a seed note.

{
  notePath: string,
  supportingLimit?: number,      // Default: 3
  counterpointLimit?: number,    // Default: 3
  includeActionItems?: boolean,  // Default: true
  vaultPath?: string
}

Output: Markdown narrative with introduction, supporting threads, counterpoints, and action items.

audit_recent_notes

Find recently modified notes missing frontmatter or structure.

{
  hoursBack?: number,           // Default: 72
  limit?: number,               // Default: 25
  requiredFields?: string[],    // Default: ['title', 'created']
  requireHeadings?: boolean,    // Default: false
  vaultPath?: string
}

contextual_companions

Discover notes related to a topic or seed note based on links, keywords, and recency.

{
  notePath?: string,    // Optional seed note
  topic?: string,       // Optional topic query
  limit?: number,       // Default: 5
  vaultPath?: string
}

Note: Must provide either notePath or topic.

fresh_energy

Find recently updated notes lacking backlinks or outgoing links (needing integration).

{
  hoursBack?: number,   // Default: 48
  limit?: number,       // Default: 10
  minWords?: number,    // Default: 80
  vaultPath?: string
}

initiative_bridge

Track project/initiative-tagged notes with outstanding tasks.

{
  initiative: string,           // Required: project identifier
  frontmatterField?: string,    // Default: 'project'
  limit?: number,               // Default: 10
  vaultPath?: string
}

pattern_echo

Find notes that reuse specific phrasings, bullet patterns, or framework fragments.

{
  snippet: string,      // Required: text pattern to find
  limit?: number,       // Default: 5
  vaultPath?: string
}

synthesis_ready

Detect clusters of interlinked notes that lack a summary/synthesis note.

{
  minClusterSize?: number,  // Default: 3
  vaultPath?: string
}

Example Use Cases

Knowledge Discovery

// Find all notes about a topic with intelligent expansion
await intelligentSearch({ query: "machine learning" });

// Discover related notes for further reading
await contextualCompanions({
  topic: "neural networks",
  limit: 10
});

Vault Maintenance

// Audit recent work for missing metadata
await auditRecentNotes({
  hoursBack: 168,  // Last week
  requiredFields: ['title', 'created', 'tags']
});

// Find orphaned notes needing links
await freshEnergy({ hoursBack: 72 });

// Identify note clusters needing synthesis
await synthesisReady({ minClusterSize: 4 });

Project Management

// Track all tasks for a specific project
await initiativeBridge({
  initiative: "Project Alpha",
  frontmatterField: "project"
});

// Generate a narrative overview of a topic
await guidedPath({
  notePath: "Projects/Project Alpha.md",
  supportingLimit: 5,
  includeActionItems: true
});

Pattern Analysis

// Find notes using a specific framework
await patternEcho({
  snippet: "SWOT Analysis:",
  limit: 10
});

Development

Scripts

  • npm run dev: Watch mode for development

  • npm run build: Build TypeScript to JavaScript

  • npm run start: Start the MCP server

Project Structure

obsidian-mcp/
├── src/
│   ├── index.ts           # MCP server and tool definitions
│   ├── vault-manager.ts   # Vault operations and intelligence
│   └── query-processor.ts # Natural language query processing
├── dist/                  # Compiled JavaScript (generated)
├── package.json
├── tsconfig.json
└── README.md

Technical Details

Architecture

  • TypeScript with strict mode enabled

  • ES Modules (NodeNext)

  • Zod for runtime type validation

  • gray-matter for frontmatter parsing

  • glob for file pattern matching

Search Methods

The intelligent_search tool combines four search strategies:

  1. Direct matching: Exact keyword matches in content/filenames

  2. Link proximity: Notes connected via wiki-links

  3. Tag expansion: Related notes via tag hierarchies

  4. Structural context: Section-aware searching with relevance scoring

Results are merged, deduplicated, and ranked by relevance score.

Performance

  • No caching - all searches are real-time to avoid staleness

  • Lazy loading of note content for large vaults

  • Efficient glob patterns for file discovery

Credits

Built by Braydon with Claude (Anthropic). This MCP server was developed using test-driven development principles and extensive collaboration with Claude Code.

License

MIT License - feel free to use and modify as needed.

Contributing

Contributions welcome! Please:

  1. Fork the repository

  2. Create a feature branch

  3. Make your changes with tests

  4. Submit a pull request

Troubleshooting

"No vault path provided" error

Ensure OBSIDIAN_VAULT_PATH is set in your MCP configuration or environment variables.

MCP server not connecting

  • Verify the path to dist/index.js is absolute, not relative

  • Ensure the server is built (npm run build)

  • Check that Node.js can execute the script

Search returns no results

  • Verify vault path is correct

  • Check that .md files exist in the vault

  • Try using list_directories to explore the vault structure

Available Tools

17 tools
append_to_noteC

Append content to an existing note

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathYesPath to the note relative to vault root
contentYesContent to append to the note
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool appends content, implying mutation, but doesn't mention permissions, side effects (e.g., file modification), error handling, or response format. This is inadequate for a mutation tool with zero annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words, clearly front-loading the core action. It's appropriately sized for the tool's complexity, earning full marks for conciseness.

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

Completeness2/5

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

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't address behavioral aspects like error cases (e.g., if the note doesn't exist) or what happens on success, leaving significant gaps for the agent to handle.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all three parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain parameter interactions or constraints), meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the action ('Append content') and target resource ('to an existing note'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_note_section' or 'write_note', which might have overlapping functionality, so it doesn't reach the highest score.

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 'update_note_section' or 'create_note'. It lacks context about prerequisites (e.g., note must exist) or exclusions, leaving the agent to infer usage from the name alone.

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

audit_recent_notesA

Highlight recently modified notes that are missing required frontmatter or structure

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursBackNoExamine notes touched within this many hours (default 72)
limitNoReturn at most this many findings (default 25)
requiredFieldsNoFrontmatter fields that should be present
requireHeadingsNoFlag notes lacking headings
vaultPathNoPath to Obsidian vault

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'highlights' findings, implying a read-only operation that returns results, but doesn't specify output format, error handling, or performance aspects like rate limits. For an audit tool with zero annotation coverage, this leaves significant behavioral gaps.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose without unnecessary words. It efficiently communicates the tool's function, making every word count and avoiding redundancy or fluff.

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

Completeness3/5

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

Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the purpose well but lacks details on behavioral traits and output expectations. Without annotations or an output schema, the description should do more to explain what the tool returns and how it behaves.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all five parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema, such as explaining interactions between parameters or usage examples. Baseline 3 is appropriate when the schema handles parameter documentation effectively.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('highlight') and resource ('recently modified notes'), and distinguishes it from siblings by focusing on auditing for missing frontmatter/structure rather than creation, retrieval, or modification operations. It precisely conveys the tool's unique function within the note management system.

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 context by mentioning 'recently modified notes' and 'missing required frontmatter or structure,' suggesting it's for quality checks. However, it doesn't explicitly state when to use this tool versus alternatives like 'search_notes' or 'query_vault,' nor does it provide exclusions or prerequisites. The guidance is present but not comprehensive.

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

contextual_companionsC

Suggest adjacent notes related to a topic or seed note based on links, keywords, and recency

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathNoSeed note to anchor the search (optional)
topicNoFreeform topic or question to match (optional)
limitNoMaximum companion notes to return (default 5)
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the search criteria ('links, keywords, and recency') but omits critical details like whether this is a read-only operation, how results are ranked, if there are rate limits, or what the output format looks like. For a tool with 4 parameters and no output schema, this is insufficient.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core functionality without unnecessary words. It directly states what the tool does and the criteria used, making it easy to parse and understand quickly.

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

Completeness2/5

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

Given the tool's complexity (4 parameters, no annotations, no output schema), the description is incomplete. It lacks details on behavioral traits, output format, and usage context, which are essential for an AI agent to invoke it correctly. The high schema coverage helps with parameters, but overall guidance is inadequate.

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 input schema already documents all parameters thoroughly. The description adds minimal value by implying that 'notePath' and 'topic' are optional anchors for the search, but it does not provide additional semantics beyond what the schema specifies. This meets the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Suggest adjacent notes related to a topic or seed note based on links, keywords, and recency.' It specifies the verb ('Suggest'), resource ('adjacent notes'), and criteria ('links, keywords, and recency'), making the function understandable. However, it does not explicitly differentiate from sibling tools like 'search_notes' or 'get_backlinks', which prevents a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It mentions parameters like 'notePath' and 'topic' but does not specify scenarios or exclusions, such as when to prefer 'search_notes' for broader queries or 'get_backlinks' for link-based retrieval. This lack of contextual direction limits its utility for an AI agent.

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

create_noteC

Create a new note with frontmatter and content

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathYesPath for the new note relative to vault root
titleYesTitle of the note
contentNoInitial content of the note
tagsNoTags to add to the note
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool creates a new note, implying a write operation, but doesn't cover critical aspects like whether it overwrites existing files, requires specific permissions, handles errors (e.g., invalid paths), or returns any confirmation. For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose ('Create a new note') and adds a key detail ('with frontmatter and content'). There is no wasted verbiage or redundancy, making it highly concise and well-structured for quick comprehension.

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

Completeness2/5

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

Given the tool's complexity (a write operation with 5 parameters) and lack of annotations or output schema, the description is insufficiently complete. It doesn't explain what 'frontmatter' entails (e.g., metadata like tags or title), how the note is saved, or what happens on success/failure. For a creation tool in a note-taking context, more behavioral and output context is needed.

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

Parameters3/5

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

The description mentions 'frontmatter and content', which loosely relates to parameters like 'title' and 'content', but doesn't add meaningful details beyond the schema. With 100% schema description coverage, the schema already documents all 5 parameters thoroughly (e.g., 'notePath' as path relative to vault root). The description provides minimal extra value, meeting the baseline for high schema coverage.

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

Purpose4/5

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

The description clearly states the action ('Create') and resource ('a new note'), specifying it includes 'frontmatter and content'. It distinguishes from siblings like 'append_to_note' (which modifies existing notes) and 'update_note_section' (which updates parts of notes). However, it doesn't explicitly differentiate from 'write_note' (which might be similar), keeping it from a perfect score.

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 doesn't mention when to choose 'create_note' over 'write_note' or 'append_to_note', nor does it specify prerequisites like needing an existing vault. This lack of contextual direction leaves the agent to infer usage from the tool name alone.

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

fresh_energyB

Find recently updated notes that lack backlinks or link coverage so you can integrate them

ParametersJSON Schema
NameRequiredDescriptionDefault
hoursBackNoLook back window in hours (default 48)
limitNoMaximum notes to surface (default 10)
minWordsNoIgnore notes below this word count (default 80)
vaultPathNoPath to Obsidian vault

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the tool's function but lacks details on behavioral traits such as whether it's read-only or destructive, performance characteristics, error handling, or output format. This is a significant gap for a tool with no annotation coverage, limiting an agent's ability to predict its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core action and criteria, making it easy to parse quickly. Every part of the sentence contributes essential information, earning a high score for conciseness and structure.

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

Completeness2/5

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

Given the tool's complexity (4 parameters, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns (e.g., list of notes, metadata), how results are formatted, or any behavioral nuances. Without annotations or output schema, the description should provide more context to help an agent use the tool effectively, but it falls short.

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 all parameters well-documented in the input schema (e.g., 'hoursBack' as 'Look back window in hours'). The description adds no additional parameter semantics beyond what the schema provides, such as explaining how parameters interact or their impact on results. Baseline score of 3 is appropriate since the schema handles parameter documentation adequately.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Find recently updated notes that lack backlinks or link coverage so you can integrate them.' It specifies the verb ('Find'), resource ('recently updated notes'), and criteria ('lack backlinks or link coverage'). However, it doesn't explicitly distinguish this from sibling tools like 'audit_recent_notes' or 'synthesis_ready', which might have overlapping functions, preventing a score of 5.

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 context by mentioning 'recently updated notes' and 'lack backlinks or link coverage,' suggesting it's for identifying notes needing integration. However, it doesn't provide explicit guidance on when to use this tool versus alternatives like 'audit_recent_notes' or 'get_backlinks,' nor does it specify exclusions or prerequisites, leaving usage somewhat ambiguous.

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

get_noteC

Get the full content of a specific note

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathYesPath to the note relative to vault root
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states it 'gets' content, implying a read operation, but doesn't disclose behavioral traits like whether it requires specific permissions, handles missing notes gracefully, returns structured data or raw text, or has rate limits. For a tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every word earns its place, making it easy to parse quickly. There's no redundancy or structural issues.

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

Completeness2/5

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

Given the tool's moderate complexity (2 parameters, no output schema) and lack of annotations, the description is incomplete. It doesn't explain what 'full content' includes (e.g., metadata, formatting), how errors are handled, or what the return value looks like. For a read operation in a system with many sibling tools, more context is needed to use it effectively.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('notePath' and 'vaultPath') with clear descriptions. The description adds no additional meaning about parameters beyond implying a note is retrieved by path. Baseline 3 is appropriate when the schema does the heavy lifting, though no extra context is provided.

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 ('Get') and resource ('full content of a specific note'), making the purpose immediately understandable. It distinguishes from siblings like 'list_directories' or 'search_notes' by focusing on retrieving a single note's content. However, it doesn't explicitly differentiate from similar read operations like 'query_vault' or 'get_backlinks', preventing a perfect score.

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. With siblings like 'search_notes', 'query_vault', and 'get_backlinks' available, there's no indication of whether this is for retrieving known notes by path versus searching content. No prerequisites or exclusions are mentioned, 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.

guided_pathC

Generate a narrative tour through linked notes starting from a seed note

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathYesSeed note to begin the story path (relative path within the vault)
supportingLimitNoCap the number of supporting notes (default 3)
counterpointLimitNoCap the number of counterpoints (default 3)
includeActionItemsNoInclude action items discovered along the path (default true)
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions generating a 'narrative tour' but doesn't explain what that output looks like, whether it's read-only or modifies notes, potential rate limits, or error conditions. For a tool with 5 parameters and no output schema, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the core purpose ('Generate a narrative tour') and efficiently specifies the scope ('through linked notes starting from a seed note'). There's no wasted language, and every word contributes directly to understanding the tool's function.

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

Completeness2/5

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

Given the complexity of generating a narrative tour with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what a 'narrative tour' entails, how linked notes are selected or ordered, what 'supporting' and 'counterpoint' notes mean in context, or what the output format will be. This leaves too many open questions for effective tool use.

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

Parameters3/5

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

The input schema has 100% description coverage, so all parameters are documented in the schema itself. The description doesn't add any additional meaning about parameters beyond implying a 'seed note' starting point. This meets the baseline of 3 since the schema does the heavy lifting, but the description doesn't compensate with extra context about how parameters interact.

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 ('Generate a narrative tour') and resource ('through linked notes starting from a seed note'), making the purpose immediately understandable. However, it doesn't explicitly differentiate this from sibling tools like 'contextual_companions' or 'initiative_bridge' which might also involve note relationships, leaving room for ambiguity about when to choose this specific tool.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'get_backlinks', 'search_notes', or 'query_vault'. It doesn't mention prerequisites, ideal scenarios, or exclusions, leaving the agent to infer usage from the purpose alone without explicit context.

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

initiative_bridgeC

Identify initiative-tagged notes with outstanding tasks so nothing slips between systems

ParametersJSON Schema
NameRequiredDescriptionDefault
initiativeYesProject/initiative identifier to match
frontmatterFieldNoFrontmatter field to inspect (default project)
limitNoMaximum notes to return (default 10)
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes what the tool does (identify notes with tasks) but lacks details on behavioral traits such as permissions needed, whether it modifies data, rate limits, or what the output looks like (e.g., format, error handling). For a tool with no annotations, this is a significant gap in transparency.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It clearly communicates the tool's intent in a concise manner, making it easy to understand at a glance. Every part of the sentence earns its place by specifying key elements like 'initiative-tagged notes' and 'outstanding tasks.'

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

Completeness2/5

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

Given the tool's complexity (4 parameters, no annotations, no output schema), the description is incomplete. It lacks information on behavioral aspects, output format, and usage context relative to siblings. While concise, it doesn't provide enough detail for an agent to fully understand how to invoke and interpret results, especially without annotations or 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 the input schema fully documents all parameters. The description adds no additional meaning beyond the schema—it doesn't explain parameter interactions, defaults, or usage examples. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description clearly states the tool's purpose: to identify initiative-tagged notes with outstanding tasks. It specifies the resource (notes) and the filtering criteria (initiative-tagged, with outstanding tasks). However, it doesn't explicitly differentiate from siblings like 'search_notes' or 'query_vault' that might also find notes, though the focus on tasks and system gaps provides some implicit distinction.

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 explicit guidance on when to use this tool versus alternatives. It mentions 'so nothing slips between systems,' which implies a use case for cross-system tracking, but doesn't name specific sibling tools or scenarios where other tools might be more appropriate. Without clear when/when-not instructions, usage is ambiguous.

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

list_directoriesC

List directories and files in vault or specific directory

ParametersJSON Schema
NameRequiredDescriptionDefault
directoryPathNoPath to directory relative to vault root (empty for vault root)
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It states the action 'List' but doesn't disclose behavioral traits such as whether this is a read-only operation, potential performance impacts, error handling, or output format details. The description is minimal and misses key operational 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, efficient sentence that front-loads the core purpose without unnecessary details. It uses minimal words to convey the essential action and scope, making it highly concise and well-structured for quick understanding.

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

Completeness2/5

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

Given the complexity of a directory listing tool with no annotations and no output schema, the description is incomplete. It lacks details on return values, error conditions, or behavioral nuances, leaving gaps that could hinder an AI agent's ability to use the tool effectively in varied contexts.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters fully. The description adds no additional meaning beyond what the schema provides, such as examples or edge cases. With high schema coverage, the baseline score of 3 is appropriate as the description doesn't compensate but doesn't detract either.

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

Purpose4/5

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

The description clearly states the verb 'List' and the resources 'directories and files', specifying the scope as 'in vault or specific directory'. It distinguishes from siblings like 'search_notes' or 'query_vault' by focusing on directory listing rather than content-based operations, though it doesn't explicitly name alternatives.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like 'search_notes' or 'query_vault' is provided. The description implies usage for browsing directory structures but lacks context on prerequisites, exclusions, or specific scenarios where this tool is preferred over others.

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

pattern_echoB

Search for notes that reuse a phrasing, bullet pattern, or framework fragment

ParametersJSON Schema
NameRequiredDescriptionDefault
snippetYesSentence, bullet, or pattern to echo across the vault
limitNoMaximum matches to surface (default 5)
vaultPathNoPath to Obsidian vault

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It describes the search function but lacks details on behavioral traits such as permissions needed, rate limits, whether it's read-only or destructive, or how results are returned (e.g., format, ordering). This is a significant gap for a tool with no annotation coverage, making it minimally transparent.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, with every part contributing to understanding the tool's function, earning a high score for conciseness.

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

Completeness3/5

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

Given the tool's complexity (a search function with 3 parameters), no annotations, and no output schema, the description is adequate but incomplete. It explains what the tool does but lacks behavioral context and output details. It meets a minimum viable standard but has clear gaps in providing a full understanding for an AI 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?

The input schema has 100% description coverage, so parameters are well-documented in the schema. The description adds no additional meaning beyond the schema, such as examples or usage tips for parameters. With high schema coverage, the baseline is 3, as the description doesn't compensate but also doesn't detract from the schema's clarity.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Search for notes that reuse a phrasing, bullet pattern, or framework fragment.' It specifies the verb 'Search' and the resource 'notes,' with a clear scope of finding pattern matches. However, it doesn't explicitly differentiate from sibling tools like 'search_notes' or 'intelligent_search,' which likely have overlapping search functions, preventing a score of 5.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'search_notes' or 'intelligent_search,' nor does it specify contexts or exclusions for its use. The purpose is clear, but usage context is implied at best, lacking explicit when/when-not instructions.

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

query_vaultC

Process natural language queries about your Obsidian vault

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesNatural language query about the vault contents
vaultPathNoPath to Obsidian vault (defaults to environment variable)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool processes queries but doesn't explain how it behaves—e.g., whether it returns structured data, handles errors, or has rate limits. This leaves significant gaps for a query 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 a single, efficient sentence that directly states the tool's purpose without any wasted words. It is appropriately sized and front-loaded, making it easy to understand quickly.

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

Completeness2/5

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

Given the complexity of a query tool with no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns, how queries are processed, or any behavioral traits, leaving the agent with insufficient context for effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'vaultPath') adequately. The description adds no additional meaning beyond what the schema provides, such as query examples or vaultPath usage details, meeting the baseline for high coverage.

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

Purpose4/5

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

The description clearly states the tool's purpose as processing natural language queries about an Obsidian vault, which is specific (verb+resource). However, it doesn't distinguish itself from sibling tools like 'search_notes' or 'intelligent_search', which might offer similar functionality, so it misses full differentiation.

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 'search_notes' or 'intelligent_search' from the sibling list. It lacks explicit context, exclusions, or prerequisites, leaving usage unclear.

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

search_notesC

Search for notes by filename or content

ParametersJSON Schema
NameRequiredDescriptionDefault
searchTermYesTerm to search for in notes
searchTypeNoWhere to searchboth
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions searching by 'filename or content' but doesn't specify if this is a read-only operation, how results are returned (e.g., format, pagination), or any constraints like rate limits or authentication needs. This leaves significant gaps for a tool with no annotation coverage.

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

Conciseness5/5

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

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy for an agent to parse quickly.

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

Completeness2/5

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

Given the complexity of a search tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain the return format, error handling, or how results are structured, which are critical for an agent to use the tool effectively. The high schema coverage helps, but behavioral aspects are 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%, so the schema already documents all parameters thoroughly. The description adds minimal value by implying the search scope ('by filename or content'), but this is largely redundant with the schema's enum for 'searchType'. Baseline 3 is appropriate as the schema handles most of the parameter semantics.

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

Purpose4/5

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

The description clearly states the verb ('search') and resource ('notes'), specifying what the tool does. However, it doesn't distinguish this tool from sibling tools like 'intelligent_search' or 'query_vault', which likely have overlapping functionality, so it doesn't achieve full differentiation.

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 'intelligent_search' or 'query_vault'. It lacks context about prerequisites, exclusions, or specific scenarios where this search method is preferred, leaving the agent with minimal usage direction.

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

synthesis_readyC

Flag clusters of notes that reference each other but lack a synthesis/summary note

ParametersJSON Schema
NameRequiredDescriptionDefault
minClusterSizeNoMinimum related notes required to trigger (default 3)
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'flag clusters' but doesn't explain what 'flag' means operationally (e.g., does it create markers, return a list, trigger notifications?), nor does it cover permissions, side effects, or error handling. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence earns its place by specifying the action, target, and condition concisely, making it easy to grasp quickly.

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

Completeness2/5

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

Given the tool's complexity (involving note clustering and synthesis detection) and the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., a list of clusters, a summary report), how it identifies references, or any limitations (e.g., performance with large vaults). For a tool with no structured data beyond the input schema, more context is needed.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents both parameters ('minClusterSize' and 'vaultPath') with descriptions. The tool description adds no additional meaning about parameters beyond what the schema provides, such as explaining how 'minClusterSize' affects clustering logic or what format 'vaultPath' expects. Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Flag clusters of notes that reference each other but lack a synthesis/summary note.' It specifies the action (flag), the target (clusters of notes with mutual references), and the condition (lack of synthesis). However, it doesn't explicitly differentiate from siblings like 'pattern_echo' or 'contextual_companions' which might have overlapping functionality with note relationships.

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 doesn't mention prerequisites (e.g., needing an existing vault with linked notes), exclusions, or comparisons to sibling tools like 'search_notes' or 'get_backlinks' that might help identify note relationships. Usage is implied from the purpose 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.

update_note_sectionC

Update a specific section of a note by heading

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathYesPath to the note relative to vault root
sectionHeadingYesHeading of the section to update
newContentYesNew content for the section
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool updates content but doesn't mention permissions required, whether changes are reversible, error handling (e.g., if the section doesn't exist), or side effects. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding how it behaves.

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 efficiently conveys the core functionality without unnecessary words. It's front-loaded with the main action and target, making it easy to parse. Every word earns its place, achieving optimal conciseness for this level of detail.

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

Completeness2/5

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

Given that this is a mutation tool with no annotations, no output schema, and multiple parameters, the description is incomplete. It lacks information on behavioral traits, error conditions, and what the tool returns. While the schema covers parameters well, the overall context for safe and effective use is insufficient, especially compared to siblings that might offer similar functionality.

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 all parameters well-documented in the schema. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain parameter relationships or provide examples). Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description clearly states the action ('Update') and target ('a specific section of a note by heading'), making the purpose understandable. However, it doesn't differentiate this tool from sibling tools like 'append_to_note' or 'write_note', which likely also modify note content. The specificity about updating by section heading is helpful but not sufficient for full sibling differentiation.

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. With siblings like 'append_to_note', 'write_note', and 'create_note' available, there's no indication of whether this tool is for partial updates, full replacements, or specific use cases. Usage is implied by the name 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.

write_noteC

Write or overwrite a note with new content

ParametersJSON Schema
NameRequiredDescriptionDefault
notePathYesPath to the note relative to vault root
contentYesFull content to write to the note
vaultPathNoPath to Obsidian vault

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'write or overwrite', implying mutation, but doesn't specify permissions needed, whether overwriting is destructive, error handling, or response format. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding behavior.

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

Conciseness5/5

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

The description is a single, efficient sentence with no wasted words, clearly stating the action and resource. It is appropriately sized and front-loaded, making it easy to understand at a glance.

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

Completeness2/5

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

Given this is a mutation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what happens on success or failure, nor does it cover behavioral aspects like permissions or side effects. For a tool that modifies data, more context is needed to ensure safe and correct usage.

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 description coverage is 100%, so the schema already documents all three parameters. The description adds no additional meaning beyond what the schema provides, such as examples or constraints. Baseline 3 is appropriate when the schema handles parameter documentation adequately.

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 ('write or overwrite') and resource ('a note with new content'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'create_note' or 'append_to_note', which would require more specificity about when to use each.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'create_note' or 'append_to_note', nor does it mention prerequisites such as vault existence or note path validity. It lacks explicit when-to-use or when-not-to-use instructions.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv1.0.0
    • First observedappend_to_note
    • First observedaudit_recent_notes
    • First observedcontextual_companions
    • First observedcreate_note
    • First observedfresh_energy
    • First observedget_backlinks
    • First observedget_note
    • First observedguided_path
    • First observedinitiative_bridge
    • First observedintelligent_search
    • First observedlist_directories
    • First observedpattern_echo
    • First observedquery_vault
    • First observedsearch_notes
    • First observedsynthesis_ready
    • First observedupdate_note_section
    • First observedwrite_note

TDQS

B3.2/5.0
Disambiguation4/5

Most tools have distinct purposes, such as 'create_note' for creation, 'get_note' for retrieval, and 'append_to_note' for updates, with clear boundaries. However, some overlap exists between 'search_notes' and 'intelligent_search', where the latter's advanced features might cause confusion if an agent needs basic search functionality, but descriptions help differentiate them.

Naming Consistency3/5

The naming is mixed, with some tools using verb_noun patterns like 'create_note' and 'update_note_section', while others use more descriptive phrases like 'contextual_companions' and 'synthesis_ready'. This inconsistency makes the set less predictable, but the names remain readable and convey intent, avoiding chaotic styles.

Tool Count4/5

With 17 tools, the count is slightly high but reasonable for managing an Obsidian vault, covering operations from basic CRUD to advanced analytics and workflow management. It feels comprehensive without being overwhelming, though it borders on heavy for a note-taking domain, with some tools possibly overlapping in functionality.

Completeness5/5

The tool set provides complete coverage for note management, including creation, retrieval, updating, and deletion (implied via overwrite), along with advanced features like search, linking analysis, and workflow integration. There are no obvious gaps; agents can perform full lifecycle operations and complex queries without dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with Obsidian vaults, providing tools for reading, creating, editing and managing notes and tags.
    4,785
    733
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants to interact with Obsidian vaults through direct filesystem access, supporting note management, lightning-fast search with SQLite indexing, image analysis, tag/link management, and bulk operations.
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to read, write, search, and navigate Obsidian vault notes with support for CRUD operations, full-text search, graph navigation, daily notes, and frontmatter management.
    4,785
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/dbmcco/obsidian-mcp'

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