Skip to main content
Glama
disnet
by disnet

Flint Note MCP

Note: This repo is unmaintained. This project was an interesting experiment that led me to work on a full UI at https://www.flintnote.com

Flint note is a Model Context Protocol (MCP) server that provides an agent-first note-taking system designed from the ground up for AI collaboration. Instead of adding AI features to traditional notes, Flint treats AI agents as your primary interface for creating, organizing, and connecting your knowledge.

Key features

  • Agent-first design - AI agents understand your note types and guide you through creating structured content

  • Local markdown storage - Your notes are plain markdown files you own and control forever

  • MCP server architecture - Connects to any AI client that supports the Model Context Protocol

  • Intelligent note types - Each note type has its own agent instructions and metadata schema

  • Customizable AI behavior - Tell agents how to behave for each note type using natural language

  • Performance optimized - Field filtering support reduces data transfer by up to 90% for large note collections

  • Batch operations - Fetch multiple notes in a single call with get_notes for efficient bulk operations

Related MCP server: big-brain

Pre-requisites

How It Works

  1. flint-note server runs locally on your machine, managing your markdown files

  2. AI clients (like Claude Desktop) connect to the server via MCP

  3. AI agents can read your note types, understand their schemas, and help create content

Getting Started

Add flint-note to your client's MCP config:

{
  "mcpServers": {
    "flint-note": {
      "command": "npx",
      "args": ["@flint-note/server@latest"]
    }
  }
}

Adding Custom Prompts for Better AI Behavior

For the best experience, add a custom prompt that makes your AI assistant understand flint-note's agent-first design. The prompts/ directory contains optimized prompts for different AI models and platforms. If you want to get started quickly, just start your conversation by pasting in the following prompt:

You have access to flint-note, an intelligent note-taking system with multi-vault support and cross-vault operations designed for natural conversation-based knowledge management.

## COMMUNICATION STYLE:
- **Be direct and substantive**: Focus on ideas and connections rather than praising user thinking
- **Make genuine connections**: Link to related concepts without overstating their significance
- **Avoid sycophantic language**: Replace "That's brilliant!" with "This connects to [concept]"
- **Use connection-focused phrases**: "This relates to...", "Building on this idea...", "A related consideration is..."
- **Acknowledge substance**: Focus on the intellectual merit of ideas rather than praising the person
- **Maintain helpfulness**: Remain constructive and engaging without artificial enthusiasm

## CORE BEHAVIORS:
- Be conversational: "I've added that to your work vault meeting notes" vs "Note created successfully"
- Be proactive: extract action items, suggest links to other notes, improve organization
- Be vault-aware: understand current vault context and adapt behavior accordingly
- Follow agent instructions: adapt behavior based on note type-specific agent instructions
- Use metadata intelligently: validate and populate metadata schemas automatically
- Use content hashes safely: always include content_hash when updating notes to prevent conflicts
- Evolve continuously: suggest agent instruction improvements based on usage patterns

## ESSENTIAL WORKFLOW:
1. Check current vault context using get_current_vault when needed
2. Determine appropriate note type based on content and vault context
3. **Use vault_id parameter when working across vaults** - no need to switch active vault
4. **ALWAYS use get_note_type_info to check agent instructions BEFORE creating notes**
5. Structure information meaningfully using note type guidelines and agent instructions
6. Extract actionable items: `- [ ] Task (Owner: Name, Due: Date)`
7. Follow agent_instructions returned from create_note for contextual follow-up
8. Use batch operations efficiently for creating or updating multiple related notes
9. **ALWAYS include content_hash when updating notes** - get current version first with get_note or get_notes
10. **Use get_notes for fetching multiple notes** - more efficient than multiple get_note calls
11. **Use field filtering to optimize performance** - specify only needed fields to reduce data transfer
12. Use search tools and link management system for discovery and connections
13. Use update_note_type to refine agent instructions based on user feedback
14. Populate metadata schemas automatically when possible
15. Use rename_note for title changes - preserves links and file stability while updating display names
16. Use link management tools - get_note_links, get_backlinks, find_broken_links for relationship analysis
17. **Leverage vault_id for cross-vault search and discovery** - find related content across all vaults

**CRITICAL**: NEVER create notes without first checking agent instructions with get_note_type_info

## VAULT MANAGEMENT:
- Always understand which vault is currently active
- Help users create and switch between vaults for different contexts (work, personal, research)
- **Use vault_id parameter for cross-vault operations** - work on any vault without switching active vault
- Provide vault-aware suggestions and organization
- Use list_vaults, create_vault, switch_vault, get_current_vault as needed
- Adapt behavior based on vault purpose and context

## CROSS-VAULT OPERATIONS:
- **Use vault_id parameter** to operate on specific vaults without changing active vault
- Available on ALL tools: create_note, get_note, get_notes, update_note, search_notes, etc.
- Example: `create_note(..., vault_id: "work")` creates note in work vault regardless of active vault
- Example: `get_notes(identifiers: ["note1.md", "note2.md"], vault_id: "personal")` fetches multiple notes from personal vault
- Maintains vault isolation while enabling seamless cross-vault workflows
- No need to switch vaults for one-off operations in different contexts

## PERFORMANCE OPTIMIZATION:
- **Use get_notes instead of multiple get_note calls** - fetch multiple notes in a single operation
- **Use field filtering** - specify `fields: ["id", "title", "metadata.tags"]` to reduce data transfer by up to 90%
- **Batch operations** - use batch create_note and update_note for multiple notes at once
- **Examples**:
  - `get_notes(identifiers: [...], fields: ["id", "title", "content_hash"])` - just get identifiers and hashes
  - `search_notes(query: "...", fields: ["title", "metadata.tags"])` - search without heavy content
  - `get_note(identifier: "...", fields: ["content", "content_hash"])` - get just content for editing

## AGENT INSTRUCTIONS SYSTEM:
- **MANDATORY**: Check agent instructions with get_note_type_info before creating ANY note
- Agent instructions define note type-specific behaviors
- Follow them religiously for contextual assistance
- Suggest improvements when you notice gaps or patterns
- Use them to provide increasingly personalized experiences
- Never create notes without understanding their behavioral requirements

## CONTENT HASH SAFETY:
- **ALWAYS include content_hash when updating notes** - prevents conflicts and data loss
- Get current note version with get_note before making updates
- Handle CONTENT_HASH_MISMATCH errors by explaining conflicts and offering resolution
- Include content_hash for each update in batch operations
- Explain to users when conflicts occur: "The note was modified by another process"

## BATCH OPERATIONS:
- Use batch create_note for 3+ related notes (project planning, imports, etc.)
- Use batch update_note for bulk status changes or metadata updates
- **Include content_hash for each update in batch operations** for safety
- Handle partial failures gracefully - report success/failure counts with specific errors
- Group related operations for efficiency
- Provide clear feedback on batch results to users

## SEARCH SYSTEM:
- **search_notes**: Fast full-text search with content ranking and type filtering
- **search_notes_advanced**: Structured search with metadata filters, date ranges, and sorting
- **search_notes_sql**: Direct SQL queries for complex analytical searches
- **Cross-vault search**: Use vault_id parameter to search specific vaults or omit for active vault
- Always use search and link tools to find related notes and suggest connections
- Leverage metadata filters for precise discovery
- Use FTS ranking to surface most relevant content
- **Example**: `search_notes(query="design", vault_id="personal")` searches only personal vault

## NOTE RENAMING:
- **rename_note**: Safely update note display titles while preserving file stability
- **Always get content_hash first**: Call get_note before renaming to get current hash
- **Filename preservation**: Original filename and ID remain unchanged to maintain links
- **Wikilink updates**: Optional parameter to update display text in referring notes
- **Link stability**: All existing references continue to work after renaming

## RESPONSE PATTERNS:

**Instead of excessive praise:**
- "This connects to your existing work on [topic]..."
- "This approach relates to [framework/concept]..."
- "Building on this idea, you might consider..."
- "This intersects with [related area]..."

**Avoid phrases like:**
- "That's such a powerful insight!"
- "Brilliant observation!"
- "You've identified something crucial!"
- "What a thoughtful question!"

**Focus on substance:**
- Acknowledge the content of ideas without inflating their importance
- Extend thoughts by connecting to relevant frameworks or examples
- Suggest related areas worth exploring
- Question constructively when appropriate
- Clarify concepts that might deepen understanding

Focus on making note-taking effortless while building a valuable, adaptive knowledge base across multiple organized vaults. Maintain genuine helpfulness while emphasizing the intellectual merit of ideas and their connections rather than praising the user's thinking.

Example Agent Conversations

Agent-Guided Note Creation

You: I just finished reading "The Psychology of Money" - add it to my personal vault

Agent: I'll create a reading note in your personal vault. Based on your reading note schema, I need:

  • Your rating (1-5 stars)

  • Key insights that stuck with you

  • The author's name

What would you rate this book?

You: I'd give it a 4/5. Main insight was how behavior matters more than knowledge in investing.

Agent: Perfect! I'm creating your reading note with Morgan Housel as author, 4/5 rating, and that key insight. Using vault_id="personal" to save it as reading/psychology-of-money.md in your personal vault without switching your active work vault.

Efficient Multi-Note Operations

You: Show me the status of my three main projects

Agent: I'll fetch your main project notes efficiently in a single call...

[Uses get_notes with identifiers array and fields=["title", "metadata.status", "content_hash"]]

Here are your three main projects with current status:

  • Web Application Redesign: In Progress (due next month)

  • Mobile App Development: Planning (team assigned)

  • API Redesign: Blocked (waiting for architecture approval)

This targeted field filtering reduced data transfer by 85% while getting exactly what you need. Which project needs attention?

You: Update the API project to "In Progress" - architecture was approved

Agent: I'll update the API project status safely using the content hash I already have...

[Uses update_note with content_hash for conflict-free update]

Updated! Your API Redesign project is now "In Progress". Should I add a note about the architecture approval to track this decision?

Cross-Vault Operations

You: Create a project note for our website redesign in the work vault, but also check if there are any related design ideas in my personal vault

Agent: I'll set up a project note in your work vault and search across vaults for related content. Based on your project schema, I should include:

  • Project goals and success criteria

  • Key milestones and deadlines

  • Team members and stakeholders

  • Risk assessment

What's the main goal for this redesign?

You: Improve user engagement and reduce support tickets by 30%

Agent: Excellent! I'll create projects/website-redesign.md in your work vault with that goal. I found 2 related design notes in your personal vault through cross-vault search that might inform this project - should I reference them in the project note?

Smart Metadata and Organization

You: Add a meeting note for today's standup to my work vault

Agent: Creating your meeting note in the work vault. I see you have a standup template that includes:

  • Attendees

  • What did we accomplish yesterday?

  • What are we working on today?

  • Any blockers?

Who attended today's standup?

You: The whole team - Sarah, Mike, Alex, and me

Agent: Got it! I'll create meetings/standup-2024-01-15.md in your work vault with those attendees and the standup template. Using vault_id="work" to ensure it goes to the right context. The metadata will automatically tag this as a "standup" meeting for easy filtering later.

Safe Concurrent Updates

You: Update my project status to completed

Agent: I'll update your project note safely. Let me get the current version with its content hash first... Now updating with hash verification to prevent conflicts. ✅ Project status updated to completed with content hash protection.

You: What if someone else was editing it?

Agent: The content hash system would detect that conflict and alert me to get the latest version first. This prevents accidentally overwriting changes made by other agents or processes.

You: Rename my project note in the work vault to "Website Redesign v2.0" and check if there are any links to it from other vaults

Agent: I'll rename your project note safely in the work vault. Let me get the current version with its content hash first... ✅ Project note renamed to "Website Redesign v2.0" using vault_id="work". The filename and ID remain unchanged so all your existing links still work perfectly.

I also searched across all vaults and found 2 references to this project in your personal vault's journal notes. All links remain intact.

You: Will this break any cross-vault links?

Agent: No! The rename_note tool only updates the display title. The underlying filename and identifier stay the same, so all wikilinks and references continue working across all vaults. The vault_id parameter lets me verify links without switching contexts - all 3 incoming links (1 from work vault, 2 from personal vault) remain intact.

How Note Types Work

flint-note organizes your knowledge using note types - each with its own purpose, agent instructions, and metadata schema. Your workspace looks like this:

my-notes/
├── .flint-note/
│   └── config.yml
├── reading/
│   ├── _description.md          # Defines how agents help with reading notes
│   ├── the-unaccountability-machine.md
├── projects/
│   ├── _description.md          # Defines how agents help with projects
│   ├── website-redesign.md
│   └── mobile-app.md
├── meetings/
│   ├── _description.md          # Defines how agents handle meeting notes
│   └── team-standup-2024-01-15.md
└── daily/
    ├── _description.md          # Defines daily note format and prompts
    └── 2024-01-15.md

Each _description.md file tells agents how to behave for that note type:

# Reading Notes

## Purpose
Track books, articles, and papers with structured insights and ratings.

## Agent Instructions
- Always ask for the author's background and credentials
- Extract key insights and actionable takeaways
- Request a personal rating (1-5 stars) and what made it memorable
- Suggest connections to other readings in the vault
- Encourage specific quotes with page references

## Metadata Schema
- title: Book/article title (required, string)
- author: Author name (required, string)
- rating: Personal rating (required, number, min: 1, max: 5)
- status: Reading progress (required, select: to_read|reading|completed)
- tags: Topic categories (optional, array)
- isbn: ISBN for books (optional, string)

Customizing Agent Behavior

You can modify how agents work with any note type just by talking to them:

You: Update my reading notes so agents always ask about the book's publication year

Agent: I'll update your reading note instructions to include asking about publication year.

[Updates reading/_description.md with the new instruction]

You: Make project notes more focused on deadlines and blockers

Agent: I'll modify your project note instructions to emphasize deadline tracking and proactive blocker identification.

[Updates projects/_description.md accordingly]

Direct API Access

In addition to the MCP server interface, FlintNote provides a direct API for programmatic access without requiring the MCP protocol. This is ideal for integrating FlintNote into other applications or building custom tools.

Quick Start

import { FlintNoteApi } from '@flint-note/server/api';

const api = new FlintNoteApi({
  workspacePath: './my-notes'
});

await api.initialize();

// Create a note
await api.createSimpleNote('general', 'my-note', 'Hello, world!');

// Get the note
const note = await api.getNote('my-note');
console.log(note);

Common Operations

// Initialize the API
const api = new FlintNoteApi({ workspacePath: './notes' });
await api.initialize();

// Create notes
await api.createNote({
  type: 'meeting',
  notes: [{
    type: 'meeting',
    title: 'team-standup',
    content: '# Team Standup\n\nDiscussion points...',
    metadata: { attendees: ['Alice', 'Bob'], date: '2024-01-15' }
  }]
});

// Search and retrieve
const results = await api.searchNotesByText('important');
const note = await api.getNote('team-standup');

// Update content
await api.updateNoteContent('team-standup', 'Updated content');

// Work with vaults
const vaults = await api.listVaults();
await api.switchVault({ vault_id: 'work' });

// Get statistics
const stats = await api.getStatsResource();

Available Methods

The API provides methods for all core operations:

  • Notes: createNote, getNote, updateNote, deleteNote, searchNotes

  • Note Types: createNoteType, listNoteTypes, updateNoteType

  • Vaults: listVaults, createVault, switchVault, getCurrentVault

  • Search: searchNotes, searchNotesAdvanced, searchNotesSQL

  • Links: getNoteLinks, getBacklinks, findBrokenLinks

  • Convenience: createSimpleNote, updateNoteContent, searchNotesByText

Documentation

Migration from MCP

If you're using the MCP interface, the API provides equivalent functionality:

// MCP (old way)
const response = await client.callTool('get_note', { identifier: 'my-note' });

// Direct API (new way)
const note = await api.getNote('my-note');

Configuration

Flint Note automatically manages its configuration and will upgrade older vaults seamlessly. The configuration is stored in .flint-note/config.yml in each vault.

Configuration Settings

Key configuration sections include:

  • deletion: Controls note and note type deletion behavior

    • require_confirmation: Requires explicit confirmation for deletions (default: true)

    • create_backups: Creates backups before deletion (default: true)

    • backup_path: Where to store backups (default: .flint-note/backups)

    • allow_note_type_deletion: Allows deletion of entire note types (default: true)

    • max_bulk_delete: Maximum notes that can be deleted in one operation (default: 10)

Tutorial

Check out our tutorial for a more detailed guide on how to use Flint Note.

Design

See design.md for design and architecture of the system.

Available Tools

28 tools
bulk_delete_notesC

Delete multiple notes matching criteria

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by note type
tagsNoFilter by tags (all tags must match)
patternNoRegex pattern to match note content or title
confirmNoExplicit confirmation required for bulk deletion

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states the action without behavioral details. It doesn't disclose critical traits like whether deletions are permanent/irreversible, require specific permissions, have rate limits, or provide confirmation feedback. For a destructive bulk operation, this lack of transparency is a significant gap.

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 zero wasted words. It front-loads the core action ('Delete multiple notes') and immediately clarifies the scope ('matching criteria'), making it easy 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?

For a destructive bulk operation with no annotations and no output schema, the description is inadequate. It lacks context on safety (e.g., confirmation workflow), side effects, error handling, or return values. Given the complexity and risk, more completeness is needed to guide safe 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?

Schema description coverage is 100%, so parameters are fully documented in the schema. The description adds no additional meaning about parameters beyond implying they define 'criteria' for filtering. This meets the baseline for high schema coverage but doesn't enhance understanding (e.g., explaining how criteria combine).

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 ('Delete multiple notes') and the scope ('matching criteria'), which distinguishes it from the sibling 'delete_note' that likely handles single deletions. However, it doesn't specify what constitutes 'multiple' (e.g., all matching vs. batch limits) or mention the resource type (e.g., Obsidian notes), making it slightly less specific than ideal.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'delete_note' for single deletions or 'search_notes' for previewing matches. The description implies it's for bulk operations but doesn't clarify prerequisites (e.g., needing to confirm matches first) or exclusions (e.g., not for archived notes).

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

create_noteC

Create one or more notes of the specified type(s)

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoNote type (must exist) - only used for single note creation
titleNoTitle of the note - only used for single note creation
contentNoContent of the note in markdown format - only used for single note creation
metadataNoAdditional metadata fields for the note (validated against note type schema) - only used for single note creation
notesNoArray of notes to create - used for batch creation
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full burden but provides minimal behavioral context. It doesn't disclose permission requirements, whether creation is idempotent, what happens with invalid types/metadata, or how errors are handled. 'Create' implies mutation but lacks safety/constraint details needed for a tool with 6 parameters.

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

Conciseness4/5

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

Single sentence is appropriately concise for a creation tool. However, it's not optimally front-loaded - it could immediately distinguish single vs batch creation patterns. No wasted words, but could be more structured.

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

Completeness2/5

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

For a mutation tool with 6 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain the single vs batch creation dichotomy evident in the schema, doesn't clarify what 'note types' are or how to discover them, and provides no information about return values or error conditions.

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 6 parameters. The description adds no parameter-specific information beyond implying 'type' matters and batch creation is possible. Baseline 3 is appropriate when schema does all parameter documentation.

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

Purpose3/5

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

The description states the action ('create') and resource ('notes') but is vague about scope - 'one or more notes of the specified type(s)' doesn't clarify whether this handles single vs batch creation or what 'type' means. It distinguishes from deletion/search siblings but not clearly from other creation tools like create_note_type.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like create_note_type or update_note. The description mentions 'specified type(s)' but doesn't explain what types are or when batch vs single creation is appropriate. No prerequisites or exclusions are stated.

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

create_note_typeC

Create a new note type with description, agent instructions, and metadata schema

ParametersJSON Schema
NameRequiredDescriptionDefault
type_nameYesName of the note type (filesystem-safe)
descriptionYesDescription of the note type purpose and usage
agent_instructionsNoOptional custom agent instructions for this note type
metadata_schemaNoOptional metadata schema definition for this note type
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 for behavioral disclosure. It states it 'creates' a new note type, implying a write/mutation operation, but doesn't disclose permissions required, whether the operation is idempotent, what happens on conflicts (e.g., duplicate type_name), or the response format. For a creation 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 action ('Create a new note type') and lists key components. Every word earns its place with zero waste or redundancy, making it easy 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 tool's complexity (creation operation with nested objects, 5 parameters) and lack of both annotations and output schema, the description is incomplete. It doesn't cover behavioral aspects like permissions, idempotency, or response format, nor does it provide usage guidance. For a tool that creates structured data types, more context is needed for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description mentions 'description, agent instructions, and metadata schema', which aligns with parameters but adds no additional meaning beyond what the schema provides (e.g., no examples, format details, or constraints). Baseline 3 is appropriate when 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 verb 'Create' and resource 'note type', specifying it creates a new note type with description, agent instructions, and metadata schema. It distinguishes from siblings like 'create_note' (creates notes, not note types) and 'update_note_type' (updates existing note types). However, it doesn't explicitly differentiate from all siblings like 'list_note_types' or 'delete_note_type' in the description text itself.

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 a vault), when not to use it (e.g., for updating existing note types), or direct alternatives like 'update_note_type' for modifications. The agent must infer usage from the tool name and sibling list alone.

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

create_vaultB

Create a new vault and add it to the vault registry

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUnique identifier for the vault (filesystem-safe)
nameYesHuman-readable name for the vault
pathYesDirectory path where the vault should be created
descriptionNoOptional description of the vault purpose
initializeNoWhether to initialize with default note types
switch_toNoWhether to switch to the new vault after creation

TDQS

B3.3/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. While 'Create' implies a write operation, it doesn't specify permissions needed, whether the operation is idempotent, what happens if the vault already exists, or error conditions. It mentions adding to a registry but doesn't explain what that entails or the response format.

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 zero wasted words. It's front-loaded with the core action and outcome, making it easy to parse quickly. Every part of the sentence contributes essential information.

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

Completeness3/5

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

For a creation tool with no annotations and no output schema, the description is minimally adequate but lacks completeness. It doesn't address behavioral aspects like error handling, side effects, or what 'add it to the vault registry' means in practice. Given the complexity of creating a vault with 6 parameters, more context would be helpful.

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 6 parameters. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't clarify relationships between parameters like 'id' and 'path'). Baseline 3 is appropriate as the schema handles parameter documentation adequately.

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 specific action ('Create a new vault') and the outcome ('add it to the vault registry'), distinguishing it from sibling tools like 'list_vaults', 'remove_vault', or 'update_vault'. It uses precise verbs and identifies the resource being created.

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., whether a vault registry must exist), when not to use it, or how it relates to sibling tools like 'switch_vault' or 'remove_vault'. Usage is implied but not explicitly defined.

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

delete_noteC

Delete an existing note permanently

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesNote identifier (type/filename format)
confirmNoExplicit confirmation required for deletion
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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. It states the deletion is 'permanent', which is crucial behavioral context. However, it doesn't mention permissions required, error conditions, what happens to linked data, or confirmation workflow details beyond the schema's 'confirm' parameter.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and includes the critical 'permanently' qualifier. Every word earns its place.

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

Completeness2/5

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

For a destructive mutation tool with no annotations and no output schema, the description is inadequate. It should explain more about the confirmation workflow, what 'permanently' entails, potential side effects on linked notes, and error scenarios. The current description leaves too many behavioral questions unanswered.

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 parameter semantics beyond what's in the schema descriptions. Baseline 3 is appropriate when schema does all the parameter documentation work.

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 ('Delete') and resource ('an existing note'), specifying it's a permanent deletion. It distinguishes from 'bulk_delete_notes' by being singular, but doesn't explicitly differentiate from other deletion tools like 'delete_note_type' or 'remove_vault'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'bulk_delete_notes' for multiple deletions or 'rename_note' for non-destructive changes. It mentions 'permanently' which hints at irreversibility, but offers no explicit usage context or prerequisites.

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

delete_note_typeC

Delete a note type and optionally handle existing notes

ParametersJSON Schema
NameRequiredDescriptionDefault
type_nameYesName of the note type to delete
actionYesAction to take with existing notes: error (prevent deletion), migrate (move to target type), delete (remove all notes)
target_typeNoTarget note type for migration (required when action is migrate)
confirmNoExplicit confirmation required for deletion

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 that deletion can optionally handle existing notes, hinting at destructive behavior, but fails to specify critical details like permissions required, whether the action is reversible, error handling for invalid inputs, or what happens to associated data beyond notes. This is inadequate for a mutation tool with potential data loss.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core action ('Delete a note type') and adds a useful qualifier ('and optionally handle existing notes'). There's no wasted verbiage, though it could be slightly more structured by separating key points.

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 destructive mutation with 4 parameters and no output schema) and lack of annotations, the description is insufficient. It doesn't cover behavioral nuances like confirmation requirements, migration specifics, or error scenarios, leaving significant gaps for an agent to operate safely and 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 fully documents all parameters. The description adds minimal value by implying the 'action' parameter relates to handling existing notes, but it doesn't explain the semantics or consequences of choices like 'migrate' versus 'delete' beyond what's in the schema. Baseline 3 is appropriate as 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 action ('Delete a note type') and resource ('note type'), which is specific and unambiguous. However, it doesn't explicitly distinguish this tool from sibling tools like 'delete_note' or 'bulk_delete_notes' beyond mentioning 'note type' versus 'note'.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as 'delete_note' or 'bulk_delete_notes'. It mentions handling existing notes but doesn't clarify prerequisites, dependencies, or typical use cases, leaving the agent to infer usage from context alone.

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

get_current_vaultB

Get information about the currently active vault

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 states the tool retrieves information, implying a read-only operation, but doesn't specify what information is returned (e.g., vault name, path, settings), whether it requires authentication, or if there are rate limits. The description is minimal and lacks behavioral details beyond the basic action.

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 is front-loaded with the tool's purpose. It wastes no words and efficiently communicates the core function without unnecessary elaboration, 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 simplicity (0 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what 'information' includes (e.g., metadata, status), how it relates to siblings like 'list_vaults', or any behavioral traits. For a tool in a context with many sibling tools, more context is needed to ensure proper usage.

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

Parameters4/5

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

The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, so it naturally compensates by focusing on the tool's purpose. With no parameters, the baseline is high as there's nothing to document beyond the schema.

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

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('information about the currently active vault'), making the purpose understandable. However, it doesn't distinguish this tool from sibling tools like 'list_vaults' or 'get_note_info', which reduces specificity. The description avoids tautology by not merely restating the tool name.

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 siblings like 'list_vaults' (which lists all vaults) or 'get_vault' (if it existed), nor does it specify prerequisites such as needing an active vault. Usage is implied by the phrase 'currently active vault,' but no explicit when/when-not instructions are given.

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

get_noteC

Retrieve a specific note by identifier

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesNote identifier in format "type/filename" or full path
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.
fieldsNoOptional array of field names to include in response. Supports dot notation for nested fields (e.g. "metadata.tags") and wildcard patterns (e.g. "metadata.*"). If not specified, all fields are returned.

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 retrieves a note but does not describe what 'retrieve' includes (e.g., content, metadata, formatting), potential errors (e.g., if the note doesn't exist), authentication needs, rate limits, or response format. For a read operation 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 ('Retrieve a specific note by identifier') with zero wasted words. It directly communicates the essential action without redundancy or unnecessary elaboration, 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 retrieval tool with 3 parameters, no annotations, and no output schema, the description is incomplete. It does not explain what is retrieved (e.g., note content, metadata, or both), handle error cases, or provide context on sibling tools. This leaves significant gaps for an agent to understand the tool's full behavior and usage context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all three parameters (identifier, vault_id, fields) with clear descriptions. The description adds no additional parameter semantics beyond what the schema provides, such as examples of identifier formats or field usage. However, it implies retrieval by identifier, which aligns with the schema, earning the baseline score 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 verb ('Retrieve') and resource ('a specific note'), making the purpose unambiguous. It distinguishes from siblings like 'get_notes' (plural retrieval) and 'get_note_info' (metadata retrieval) by specifying retrieval by identifier. However, it doesn't explicitly mention what 'retrieve' entails (e.g., content, metadata, or both), which prevents 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 many sibling tools like 'get_note_info', 'get_note_links', 'search_notes', and 'list_notes_by_type', there is no indication of which tool is appropriate for different scenarios (e.g., retrieving full content vs. metadata vs. links). This lack of differentiation leaves the agent to guess based on tool names alone.

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

get_note_infoB

Get detailed information about a note including filename for link creation

ParametersJSON Schema
NameRequiredDescriptionDefault
title_or_filenameYesNote title or filename to look up
typeNoOptional: note type to narrow search
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 full burden. It mentions 'detailed information' and 'filename for link creation', but doesn't disclose behavioral traits like whether it's read-only (implied by 'get'), error handling, performance, or output format. For a tool with no 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?

Single sentence, front-loaded with core purpose, and efficiently includes key detail about filename. No wasted words; every part earns its place. Structure is clear and appropriately sized for the tool's complexity.

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 no annotations, no output schema, and 3 parameters with full schema coverage, the description is minimally adequate. It states the purpose and a key output aspect (filename), but lacks details on behavior, error cases, or when to use vs. siblings. For a read operation in a complex sibling set, it should provide more context to be fully helpful.

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 parameters are fully documented in the schema. The description adds no specific parameter semantics beyond implying 'title_or_filename' is used for lookup and 'filename' is included in output. It doesn't explain parameter interactions or provide extra context, 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 ('Get detailed information') and resource ('about a note'), specifying it includes 'filename for link creation'. It distinguishes from siblings like 'get_note' (likely simpler) and 'get_notes' (list vs. detail), but doesn't explicitly name alternatives. Purpose is specific but could better differentiate from similar tools.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs. alternatives like 'get_note' or 'search_notes'. The description implies it's for detailed info including filenames, but doesn't state prerequisites, exclusions, or compare to siblings. Usage is implied from purpose alone, lacking explicit context.

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

get_notesC

Retrieve multiple notes by their identifiers

ParametersJSON Schema
NameRequiredDescriptionDefault
identifiersYesArray of note identifiers in format "type/filename" or full path
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.
fieldsNoOptional array of field names to include in response. Supports dot notation for nested fields (e.g. "metadata.tags") and wildcard patterns (e.g. "metadata.*"). If not specified, all fields are returned.

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 but only states the basic action. It doesn't mention whether this is a read-only operation, what happens with invalid identifiers, whether there are rate limits, authentication requirements, or what format the response takes. For a tool with 3 parameters and no output schema, 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, efficient sentence that states the core functionality without any wasted words. It's appropriately sized for a straightforward retrieval tool and front-loads the essential information.

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

Completeness2/5

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

Given the tool has 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what 'retrieve' actually returns (full note content? metadata only?), how errors are handled, or provide context about the note system. For a batch operation tool in a complex ecosystem with many siblings, more guidance 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 all parameters are documented in the schema itself. The description adds no additional parameter semantics beyond what's already in the schema descriptions (format details for identifiers, optional vault_id behavior, fields wildcard patterns). This meets the baseline expectation when 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 verb 'retrieve' and resource 'multiple notes by their identifiers', making the purpose specific and understandable. However, it doesn't differentiate from sibling tools like 'get_note' (singular) or 'list_notes_by_type', leaving room for potential confusion about when to use this batch retrieval versus other listing/searching tools.

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 many sibling tools available (get_note, list_notes_by_type, search_notes, etc.), there's no indication whether this is for batch retrieval of known identifiers versus searching for unknown notes or listing by criteria. The agent must 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.

get_note_type_infoB

Get comprehensive information about a note type including instructions and description

ParametersJSON Schema
NameRequiredDescriptionDefault
type_nameYesName of the note type to get information for
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 states it 'gets' information, implying a read-only operation, but doesn't specify permissions required, rate limits, error conditions, or what 'comprehensive information' entails beyond 'instructions and description'. For a tool with no annotation coverage, this leaves significant behavioral gaps unaddressed.

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 action ('Get comprehensive information') and specifies key details ('including instructions and description'). There is no wasted verbiage or redundancy, making it appropriately sized and easy to parse quickly.

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 (2 parameters, no output schema, no annotations), the description is minimally adequate. It covers the basic purpose but lacks details on behavioral traits, usage context, and output specifics. With no output schema, it should ideally hint at return values, but it doesn't. It meets a bare minimum but has clear gaps in completeness.

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

Parameters3/5

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

The description adds no parameter semantics beyond what the input schema provides. The schema has 100% description coverage, clearly documenting both parameters ('type_name' and optional 'vault_id'). The description doesn't elaborate on parameter usage, constraints, or examples. With high schema coverage, the baseline is 3, 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 verb 'Get' and the resource 'comprehensive information about a note type', specifying it includes 'instructions and description'. It distinguishes from siblings like 'get_note' (which retrieves note content) and 'list_note_types' (which lists types without details), though it doesn't explicitly name these alternatives. The purpose is specific but could be more precise about 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. It doesn't mention scenarios like needing metadata versus content, or compare to siblings such as 'get_note_info' (which might provide different note details) or 'list_note_types' (which lists types without comprehensive info). Usage is implied only by the tool name, with no explicit context or exclusions provided.

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

list_notes_by_typeC

List all notes of a specific type with filename information

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYesNote type to list
limitNoOptional: maximum number of results (default: 50)
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 mentions 'List all notes' but doesn't disclose behavioral traits like pagination (implied by 'limit' parameter), whether results are sorted, if it's read-only (implied but not stated), performance characteristics, or error handling. The description adds minimal context beyond the basic action.

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

Conciseness4/5

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

The description is a single, efficient sentence that front-loads the core purpose. It avoids redundancy and wastes no words. However, it could be slightly more structured by explicitly separating purpose from output details (e.g., 'Lists all notes filtered by type. Returns results with filename information.').

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

Completeness3/5

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

Given no annotations, no output schema, and 3 parameters with full schema coverage, the description is minimally adequate. It covers the basic action and output scope ('filename information'), but lacks details on return format, error cases, or performance. For a list tool with siblings offering similar filtering, more context on differentiation would improve completeness.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents parameters ('type', 'limit', 'vault_id'). The description adds no additional meaning about parameters beyond implying type filtering and filename inclusion. It doesn't explain what 'filename information' entails or provide examples of valid note types. Baseline 3 is appropriate when 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 verb ('List') and resource ('notes of a specific type'), and specifies the inclusion of 'filename information'. It distinguishes from generic listing tools like 'get_notes' by focusing on type filtering. However, it doesn't explicitly differentiate from 'search_notes' or 'search_notes_advanced' which might also filter by type.

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_notes', 'search_notes', or 'search_notes_advanced'. It mentions 'type' filtering but doesn't clarify if this is the primary method for type-based queries or if other tools offer overlapping functionality. No prerequisites or exclusions are stated.

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

list_note_typesA

List all available note types with their purposes and agent instructions

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 full burden. It mentions what data is returned (purposes and agent instructions) but doesn't disclose behavioral aspects like whether this is a read-only operation, if it requires specific permissions, how results are formatted, or if there are rate limits. For a tool with no annotation coverage, this leaves significant 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, efficient sentence that directly states the tool's function and output. It's front-loaded with the core purpose and wastes no words.

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

Completeness3/5

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

Given no annotations and no output schema, the description provides basic purpose but lacks details on behavior, return format, or error handling. For a simple list tool with one optional parameter, it's minimally adequate but could be more complete by explaining the structure of the returned note types.

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 the single optional parameter 'vault_id' with its description. The description adds no additional parameter information beyond what the schema provides, 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.

Purpose5/5

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

The description clearly states the action ('List all available note types') and specifies what information is returned ('with their purposes and agent instructions'). It distinguishes this tool from siblings like 'get_note_type_info' (which gets info about a specific type) and 'list_notes_by_type' (which lists notes of a type).

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 when needing to see all note types with their metadata, but doesn't explicitly state when to use this vs alternatives like 'get_note_type_info' for a specific type. No guidance on prerequisites or exclusions is provided.

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

list_vaultsB

List all configured vaults with their status and information

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 full burden. It states the tool lists vaults with status and information, which implies a read-only operation, but doesn't disclose behavioral traits such as permissions required, rate limits, pagination, or format of returned data. 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 key action ('List all configured vaults') and adds necessary detail ('with their status and information'). There is no wasted verbiage, and every word contributes to understanding the tool's purpose.

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

Completeness3/5

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

Given the tool has 0 parameters, no annotations, and no output schema, the description is minimally adequate. It specifies what the tool does but lacks details on return values, error handling, or operational context. For a simple list tool, it meets basic needs but could be more complete by describing the output structure or usage scenarios.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so there are no parameters to document. The description doesn't need to add parameter semantics, and it appropriately doesn't mention any. Baseline for 0 parameters is 4, as it avoids unnecessary details.

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 resource ('all configured vaults'), specifying what information is included ('status and information'). It distinguishes from sibling tools like 'get_current_vault' or 'create_vault' by indicating it returns all vaults rather than a single one or performing a mutation. However, it doesn't explicitly differentiate from potential similar tools like 'get_vaults' if they existed.

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 configured vaults), exclusions, or comparisons to siblings like 'get_current_vault' for active vault or 'remove_vault' for deletion. Usage is implied by the action but not explicitly defined.

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

remove_vaultB

Remove a vault from the registry (does not delete files)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the vault to remove

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses that removal is from the registry and does not delete files, which is useful behavioral context. However, it lacks details on permissions needed, whether the action is reversible, error conditions, or what happens to associated notes/vault data.

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 action and clarifies a key behavioral point (no file deletion). There is no wasted text, making it appropriately concise for a simple tool.

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

Completeness3/5

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

Given no annotations and no output schema, the description is minimally complete for a destructive operation—it states the action and a critical constraint (files not deleted). However, it lacks details on side effects, success indicators, or error handling, which are important for a mutation tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the 'id' parameter fully. The description adds no additional meaning about the parameter, such as format examples or where to find the ID, but doesn't need to compensate for gaps.

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 ('Remove') and resource ('a vault from the registry'), distinguishing it from siblings like 'delete_note' or 'delete_note_type' which handle different resources. However, it doesn't specify what 'registry' refers to or differentiate from 'bulk_delete_notes' in scope.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like 'delete_vault' (if existed) or 'bulk_delete_notes', nor prerequisites such as needing the vault to be empty or inactive. The description implies it's for removal from a registry, but doesn't clarify context or exclusions.

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

rename_noteA

Rename a note by updating its title field (display name). The filename and ID remain unchanged to preserve links. Automatically updates wikilinks in other notes that reference the old title.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesNote identifier in format "type/filename" or full path
new_titleYesNew display title for the note
content_hashYesContent hash of the current note for optimistic locking
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full burden and does well by disclosing key behavioral traits: it's a mutation operation (rename), it preserves filename/ID to maintain links, and it automatically updates wikilinks in other notes. However, it doesn't mention potential side effects like permission requirements, error conditions, or whether the operation is reversible.

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 perfectly concise with just two sentences that each earn their place. The first sentence states the core functionality, and the second adds important behavioral context about link preservation and automatic updates. No wasted words, well-structured.

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

Completeness4/5

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

For a mutation tool with no annotations and no output schema, the description does well by explaining the core behavior and side effects. However, it doesn't describe what the tool returns or potential error cases. Given the complexity of a rename operation with link updates, some additional context about return values would be helpful.

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?

With 100% schema description coverage, the baseline is 3. The description adds some context about what 'identifier' represents and implies the purpose of 'new_title', but doesn't provide additional semantic meaning beyond what's already documented in the schema descriptions for each parameter.

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 specific action ('rename a note by updating its title field') and distinguishes it from siblings like 'update_note' by specifying it only changes the display name while preserving filename/ID. It also mentions the automatic wikilink update feature, which is unique among sibling tools.

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

Usage Guidelines4/5

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

The description provides clear context about when to use this tool (to rename a note's display title while preserving links), but doesn't explicitly state when NOT to use it or mention specific alternatives like 'update_note' for other modifications. It implies usage through the specific functionality described.

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

search_notesB

Search notes by content and/or type. Empty queries return all notes sorted by last updated.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query or regex pattern. Empty string or omitted returns all notes.
type_filterNoOptional filter by note type
limitNoMaximum number of results to return
use_regexNoEnable regex pattern matching
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.
fieldsNoOptional array of field names to include in response. Supports dot notation for nested fields (e.g. "metadata.tags") and wildcard patterns (e.g. "metadata.*"). If not specified, all fields are returned.

TDQS

B3.3/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 that empty queries return all notes sorted by last updated, which is useful context. However, it doesn't cover critical aspects like pagination behavior (beyond the 'limit' parameter), error handling, rate limits, or authentication needs, leaving significant gaps for a search tool.

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

Conciseness5/5

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

The description is extremely concise with two sentences that directly convey key information: the tool's purpose and a behavioral note about empty queries. Every word earns its place, and it's front-loaded with the core functionality.

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 (6 parameters, no output schema, no annotations), the description is adequate but incomplete. It covers the basic purpose and one behavioral trait, but lacks details on output format, error cases, or performance characteristics. Without annotations or an output schema, more context would be helpful 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 all 6 parameters thoroughly. The description adds minimal value beyond the schema: it implies that 'query' and 'type_filter' are the primary search criteria, but doesn't provide additional syntax, format details, or examples. 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: 'Search notes by content and/or type.' It specifies the verb ('search') and resource ('notes'), and mentions the search criteria. However, it doesn't explicitly differentiate from siblings like 'search_notes_advanced' or 'search_notes_sql', which would be needed for 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 Guidelines3/5

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

The description provides some implied usage guidance: 'Empty queries return all notes sorted by last updated.' This suggests when to use it for unfiltered retrieval. However, it lacks explicit guidance on when to choose this tool over alternatives like 'search_notes_advanced' or 'search_notes_sql', and doesn't mention prerequisites or exclusions.

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

search_notes_advancedC

Advanced search with structured filters for metadata, dates, and content

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by note type
metadata_filtersNoArray of metadata filters
updated_withinNoFind notes updated within time period (e.g., "7d", "1w", "2m")
updated_beforeNoFind notes updated before time period (e.g., "7d", "1w", "2m")
created_withinNoFind notes created within time period
created_beforeNoFind notes created before time period
content_containsNoSearch within note content
sortNoSort order for results
limitNoMaximum number of results
offsetNoNumber of results to skip
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.
fieldsNoOptional array of field names to include in response. Supports dot notation for nested fields (e.g. "metadata.tags") and wildcard patterns (e.g. "metadata.*"). If not specified, all fields are returned.

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 'advanced search' but fails to describe critical behaviors such as pagination (implied by limit/offset parameters but not explained), rate limits, authentication needs, error handling, or what the search returns (e.g., result format, default fields). This leaves significant gaps for a tool with 12 parameters and no output schema.

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 key information ('Advanced search with structured filters') without unnecessary words. Every part of the sentence earns its place by specifying the tool's core functionality, making it easy to scan 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 (12 parameters, no annotations, no output schema), the description is insufficient. It lacks details on behavioral traits (e.g., search performance, result limits), usage context (e.g., when to choose over siblings), and output expectations. For a search tool with many options, this leaves the agent under-informed about how to effectively invoke it.

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 12 parameters thoroughly. The description adds minimal value by hinting at filter types ('metadata, dates, and content'), but it doesn't provide additional context like parameter interactions, default behaviors, or examples 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 as 'Advanced search with structured filters for metadata, dates, and content,' which specifies the verb (search), resource (notes), and scope (advanced with structured filters). It distinguishes itself from simpler search tools like 'search_notes' but doesn't explicitly differentiate from 'search_notes_sql' or 'search_by_links' among siblings.

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 'search_notes' (simpler search), 'search_notes_sql' (SQL-based), or 'search_by_links' (link-focused). It mentions 'advanced search' but doesn't clarify specific use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.

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

search_notes_sqlA

Direct SQL search against notes database for maximum flexibility. Only SELECT queries allowed.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSQL SELECT query. Tables: notes (id, title, content, type, filename, path, created, updated, size), note_metadata (note_id, key, value, value_type)
paramsNoOptional parameters for parameterized queries
limitNoMaximum number of results
timeoutNoQuery timeout in milliseconds
vault_idNoOptional vault ID to operate on. If not provided, uses the current active vault.
fieldsNoOptional array of field names to include in response. Supports dot notation for nested fields (e.g. "metadata.tags") and wildcard patterns (e.g. "metadata.*"). If not specified, all fields are returned.

TDQS

A4.3/5.0
Behavior4/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 effectively describes key behavioral traits: it's a read-only operation ('Only SELECT queries allowed'), operates on a notes database, and offers maximum flexibility. However, it doesn't mention potential risks like SQL injection, performance impacts, or error handling, which could be useful context for an AI agent.

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

Conciseness5/5

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

The description is extremely concise and front-loaded, consisting of just two sentences that efficiently convey the tool's purpose and key constraint. Every word earns its place, with no wasted text or redundancy, making it easy for an AI agent to parse quickly.

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 (SQL-based search with 6 parameters) and no annotations or output schema, the description is somewhat complete but has gaps. It covers the purpose and constraint well, but lacks details on return format, error cases, or performance considerations. For a flexible SQL tool, more context on results structure or limitations would be helpful.

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 6 parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema (e.g., it doesn't explain SQL syntax or table relationships further). This meets the baseline of 3 when the schema does the heavy lifting, but doesn't compensate with extra insights.

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 specific verb ('Direct SQL search') and resource ('against notes database'), distinguishing it from sibling tools like 'search_notes' or 'search_notes_advanced' by emphasizing maximum flexibility through SQL. It explicitly mentions 'Only SELECT queries allowed', which further clarifies its scope compared to other note manipulation tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidelines by stating 'Only SELECT queries allowed', which tells the agent when to use this tool (for flexible SQL queries) and when not to (for non-SELECT operations). It implies alternatives like 'search_notes' or 'search_notes_advanced' for simpler searches, as this tool is for maximum flexibility with SQL.

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

switch_vaultC

Switch to a different vault

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the vault to switch to

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. 'Switch to' implies a state change operation, but the description doesn't reveal whether this affects subsequent operations, requires specific permissions, or has any side effects. It's minimal for a mutation tool.

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

Conciseness5/5

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

The description is a single, efficient sentence with zero wasted words. It's appropriately sized for a simple operation and front-loads the core purpose immediately.

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

Completeness2/5

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

For a state-changing tool with no annotations and no output schema, the description is insufficient. It doesn't explain what 'switching' entails operationally, what happens after switching, or how this interacts with other tools in the vault management context.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents the single 'id' parameter fully. The description adds no additional parameter context beyond what's in the schema, 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 ('switch to') and resource ('vault'), making the purpose immediately understandable. It doesn't differentiate from siblings like 'get_current_vault' or 'list_vaults', but the verb 'switch' implies changing state rather than retrieving information.

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_current_vault' or 'list_vaults'. There's no mention of prerequisites (e.g., needing to know vault IDs from 'list_vaults') or consequences of switching vaults.

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

update_noteC

Update one or more existing notes

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierNoNote identifier in format "type/filename" or full path - only used for single note update
contentNoNew content for the note - only used for single note update
content_hashNoContent hash of the current note for optimistic locking - required for single note update
metadataNoMetadata fields to update - only used for single note update
updatesNoArray of note updates (must specify content, metadata, or both) - used for batch updates
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 but only states the basic action ('update') without disclosing critical behavioral traits. It doesn't mention that this is a mutation operation, potential side effects (e.g., overwriting content), authentication needs, error handling, or that it supports optimistic locking via content_hash—leaving significant gaps for an agent to understand tool 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 zero wasted words—'Update one or more existing notes'—making it front-loaded and easy to parse. Every word earns its place by conveying the core action and scope.

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 (mutation with 6 parameters, nested objects, no output schema, and no annotations), the description is inadequate. It lacks details on return values, error conditions, batch processing implications, or how it interacts with sibling tools, leaving the agent under-informed for safe and effective use.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents all 6 parameters and their purposes (e.g., identifier format, content_hash for optimistic locking, batch vs. single updates). The description adds no additional parameter semantics beyond what's in the schema, meeting the baseline score of 3 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 ('update') and resource ('existing notes'), and specifies it can handle 'one or more' notes, which distinguishes it from single-note operations. However, it doesn't explicitly differentiate from sibling tools like 'rename_note' or 'update_note_type' that might also modify notes.

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 'rename_note' or 'update_note_type', nor does it mention prerequisites such as needing note identifiers or content hashes. It lacks context about batch vs. single updates, leaving the agent to infer usage from the schema alone.

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

update_note_typeC

Update one or more fields of an existing note type

ParametersJSON Schema
NameRequiredDescriptionDefault
type_nameYesName of the note type to update
instructionsNoNew agent instructions for the note type
descriptionNoNew description for the note type
metadata_schemaNoArray of metadata field definitions
content_hashYesContent hash of the current note type definition to prevent conflicts
vault_idNoOptional vault ID to operate on. If not provided, uses the current active 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 implies a mutation ('update') but lacks critical behavioral details: it doesn't specify if changes are reversible, what permissions are required, whether it's idempotent, or how conflicts are handled (though 'content_hash' in schema hints at conflict prevention). The description adds minimal value beyond the basic action, leaving significant gaps for a mutation tool.

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

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 action ('update') and resource ('note type'), with no wasted words. It clearly communicates the scope ('one or more fields') and target ('existing'), making it easy 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?

For a mutation tool with 6 parameters, no annotations, and no output schema, the description is insufficient. It lacks behavioral context (e.g., side effects, error handling), usage prerequisites, and output expectations. While the schema covers parameters well, the description doesn't compensate for missing annotations or output details, leaving the agent under-informed for safe invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so parameters are well-documented in the schema. The description adds no specific parameter semantics beyond implying fields can be updated partially ('one or more fields'), which is already suggested by the schema's optional properties. It doesn't explain parameter interactions or usage nuances, 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 ('update') and resource ('existing note type'), specifying it can modify 'one or more fields'. It distinguishes from sibling tools like 'create_note_type' (creation vs. update) and 'update_note' (note vs. note type). However, it doesn't explicitly differentiate from 'update_vault' or other update operations beyond the resource name.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., note type must exist), exclusions (e.g., cannot update certain fields), or comparisons with siblings like 'create_note_type' for new types or 'update_note' for note content. The description only states what it does, not when to apply it.

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

update_vaultC

Update vault information (name or description)

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesID of the vault to update
nameNoNew name for the vault
descriptionNoNew description for the 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. It states this is an update operation, implying mutation, but doesn't disclose behavioral traits such as required permissions, whether changes are reversible, error conditions (e.g., invalid ID), or side effects. 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 zero waste. It's front-loaded with the core action and directly specifies the modifiable fields, making it easy 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?

For a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral aspects (e.g., permissions, errors), usage context, and expected outcomes, leaving significant gaps for an AI agent to understand how to invoke it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, with clear descriptions for all three parameters (id, name, description). The description adds minimal value by listing updatable fields ('name or description'), but doesn't provide additional context like format constraints or examples beyond what the schema already documents.

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 ('Update') and resource ('vault information'), specifying what fields can be modified ('name or description'). It distinguishes from siblings like 'create_vault' (creation) and 'remove_vault' (deletion), but doesn't explicitly differentiate from other update tools like 'update_note' or 'update_note_type'.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing vault ID), exclusions (e.g., what happens if only one field is provided), or comparisons to similar tools like 'update_note' for different resources.

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. 28 tool updates
    • First observedbulk_delete_notes
    • First observedcreate_note
    • First observedcreate_note_type
    • First observedcreate_vault
    • First observeddelete_note
    • First observeddelete_note_type
    • First observedfind_broken_links
    • First observedget_backlinks
    • First observedget_current_vault
    • First observedget_note
    • First observedget_note_info
    • First observedget_note_links
    • First observedget_note_type_info
    • First observedget_notes
    • First observedlist_note_types
    • First observedlist_notes_by_type
    • First observedlist_vaults
    • First observedmigrate_links
    • First observedremove_vault
    • First observedrename_note
    • First observedsearch_by_links
    • First observedsearch_notes
    • First observedsearch_notes_advanced
    • First observedsearch_notes_sql
    • First observedswitch_vault
    • First observedupdate_note
    • First observedupdate_note_type
    • First observedupdate_vault

TDQS

B3.3/5.0
Disambiguation4/5

Most tools have distinct purposes, but there is some overlap between search_notes, search_notes_advanced, and search_notes_sql, which could cause confusion about which to use for different search scenarios. The descriptions help clarify, but the boundaries are not perfectly clear.

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern throughout, with clear and predictable naming (e.g., create_note, delete_note, get_note, update_note). There are no deviations in style or convention, making it easy to understand the action and target.

Tool Count3/5

With 28 tools, the count feels heavy for a note-taking domain, bordering on excessive. While the tools cover many aspects, it may overwhelm agents and could likely be consolidated without losing functionality.

Completeness5/5

The tool set provides comprehensive coverage for note management, including CRUD operations for notes, note types, and vaults, as well as advanced features like linking, search, and migration. There are no obvious gaps, and agents can handle full lifecycles 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

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/disnet/flint-note-mcp'

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