Skip to main content
Glama

list_notes

Find notes by folder, tag, or date ranges, sorted by creation or last edit time. Use created_after to see what is new or updated_after to see what changed since your last visit.

Instructions

List notes, sorted by recency (newest first). Optional filters: folder_id, tag, created_after/created_before, updated_after/updated_before, limit (max 200). created_after answers "what is new" — a note's creation date never changes after it is made. updated_after answers "what changed since I was last here" — it moves only when this note's own title/content/folder/tags were actually edited, NOT when renaming some other note rewrote a [[link]] to it in passing (that still touches updated_at, returned separately, but not this filter/sort). They are NOT interchangeable: a note edited today but created months ago matches updated_after, not created_after. sort picks which of the two dates drives the ordering (default "updated"). Each note carries content_length (characters in the full note) so you can tell a long note from a short one before spending a get_note call on it. Pass trashed:true to see soft-deleted notes instead (recoverable with restore_note until they age out of the trash) — other filters are ignored in that mode.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag
sortNoWhich date drives the orderingupdated
limitNo
trashedNoList soft-deleted notes instead of live ones
folder_idNoFilter by folder UUID
created_afterNoISO timestamp — only notes created at or after this
updated_afterNoISO timestamp — only notes whose own content actually changed at or after this
created_beforeNoISO timestamp — only notes created at or before this
updated_beforeNoISO timestamp — only notes whose own content actually changed at or before this

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.3.0

TDQS

A4.6/5.0
Behavior5/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 delivers richly. It discloses subtle behavior around updated_after (only own edits count, not link rewrites from other notes), the trashed-mode filter override, soft-delete recoverability, and that content_length is included so long notes can be distinguished without a fetch.

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 front-loaded with the core purpose and every sentence carries useful information, with no filler. It is, however, a long single paragraph packing multiple nested caveats, which makes it denser than necessary; splitting the timestamp guidance and trashed-mode guidance would improve scannability.

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 complex 9-parameter tool with no output schema, the description covers the tricky filter semantics, sorting, and trashed behavior well enough to invoke correctly. It does not describe the full response shape or pagination beyond limit, so an agent is left to infer what fields besides updated_at and content_length are returned.

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?

Despite 89% schema coverage, the description adds significant semantic value beyond the schema. It explains the meaning of created_after vs updated_after, the sort default and its effect, the max limit of 200, and the fact that trashed:true ignores other filters. These are distinctions an agent cannot reliably infer from parameter names alone.

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 opens with a specific verb and resource ('List notes') and immediately adds the ordering rule ('sorted by recency'). It also differentiates from siblings by noting content_length can avoid a get_note call and by tying trashed mode to restore_note, so an agent can tell this endpoint apart from adjacent 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 gives strong situational guidance: created_after is for 'what is new', updated_after is for 'what changed since I was last here', and it explicitly warns they are not interchangeable. It also explains trashed mode and that other filters are ignored there. However, it never explicitly names alternatives like search_notes for cases where list_notes would be the wrong tool.

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