Skip to main content
Glama

find_nodes

Search vault nodes by combining filters such as type, tag, status, subtype, due date, relation, language, or asset presence to locate matching notes and tasks.

Instructions

Find vault nodes matching any combination of filters. At least one should be provided. Each entry: {uid, title, type, subtype, path, state, status, due_date, language}.

Args: type: Node type (task, document, project, article, asset, …) tag: Tag value — node must include this tag status: Exact status match (todo, done, active, …) subtype: Exact subtype match — task: bug|feature|question|chore; document: meeting-notes|report|spec|plan|transcript|essay|journal|note; article: the medium (book, paper, …); entity: person|organization|place; asset: book|video|music|podcast|presentation|visual|physical state: Lifecycle state filter — "active" (default) excludes archived nodes; pass "archived" to see only archived nodes, or None to see all. due_before: ISO date (YYYY-MM-DD) — nodes whose due_date <= this value due_after: ISO date (YYYY-MM-DD) — nodes whose due_date >= this value created_after: ISO date — nodes created on or after this date updated_after: ISO date — nodes updated on or after this date related_to: UID — only return nodes connected to this node by any edge language: Language code (en, ru, de, …) has_asset: True to return only nodes with an asset; False for nodes without has_asset_scheme: scheme name (e.g. "google-drive") — return only nodes with a has_asset location using that scheme (case-insensitive)

Input Schema

NameRequiredDescriptionDefault
tagNo
typeNo
stateNoactive
statusNo
subtypeNo
languageNo
due_afterNo
has_assetNo
due_beforeNo
related_toNo
created_afterNo
updated_afterNo
has_asset_schemeNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.7.0

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full behavioral burden and does disclose meaningful traits: the default state='active' excludes archived nodes, state=None returns all, has_asset_scheme matching is case-insensitive, and dates are ISO YYYY-MM-DD. It omits result limits/pagination, ordering, and whether there is a cap on matches, so an agent cannot predict behavior on large result sets.

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?

Well front-loaded: a summary sentence, the returned entry shape, then an Args block ordered by parameter. The subtype line is long and multi-line, but its enumeration is genuinely informative rather than filler, so little needs trimming.

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 13-parameter filter tool, all parameters are explained, defaults are clarified, and the default archived-exclusion behavior — the most likely source of wrong results — is called out. Remaining gaps are ordering/limit behavior and how it differs from sibling query tools; the return-value explanation is a bonus given an output schema already exists.

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

Parameters5/5

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

Schema description coverage is 0% across 13 parameters, so the description does all the work — and it documents every parameter with real semantics: comparison directions (due_before means due_date <=, due_after means >=), enum-ish subtype vocabularies per node type, and the has_asset vs has_asset_scheme distinction. This is exactly the compensation a low-coverage schema requires.

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?

States a specific verb+resource: 'Find vault nodes matching any combination of filters,' plus a concrete result shape ({uid, title, type, subtype, path, state, status, due_date, language}). It does not name or contrast itself with likely siblings such as search_vault, query_recent, list_vault, or query_neighbors, so the agent must infer the boundary between structured filtering and text search.

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

Usage Guidelines3/5

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

Usage is only implied: 'matching any combination of filters. At least one should be provided' sets a precondition that at least one filter is needed, which is useful. But there is no guidance on when to prefer this over search_vault (free text), query_recent (recency), or query_neighbors (graph traversal), and no statement about what happens if no filter is supplied.

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