Skip to main content
Glama

get_today

Retrieve all to-dos in the Things 3 Today list, with optional tag filtering and limits to focus on what matters now.

Instructions

List all to-dos currently in the Things 3 "Today" list.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
tagNoOnly return to-dos carrying ANY of these tags (comma-separated, case-insensitive). Empty = no tag filter. Filter here rather than client-side: the tag, not the area, is what identifies e.g. a purchase decision, and a to-do filed in no area is the normal case.
limitNoReturn at most N to-dos (0 = all). Applied AFTER the tag filter.
include_notesNoFalse drops the `notes` field. Notes dominate the payload (72 % of a real 95-to-do list) — leave them out for overviews and fetch them per to-do with get_todo() when you actually need them.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.3.0
    • addedInput schema / additionalProperties
      Added value: +false
    • addedInput schema / properties / include_notes
      Added value: +{
      +  "default": true,
      +  "description": "False drops the `notes` field. Notes dominate the payload\n(72 % of a real 95-to-do list) — leave them out for overviews and\nfetch them per to-do with get_todo() when you actually need them.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / limit
      Added value: +{
      +  "default": 0,
      +  "description": "Return at most N to-dos (0 = all). Applied AFTER the tag filter.",
      +  "type": "integer"
      +}
    • addedInput schema / properties / tag
      Added value: +{
      +  "default": "",
      +  "description": "Only return to-dos carrying ANY of these tags (comma-separated,\ncase-insensitive). Empty = no tag filter. Filter here rather than\nclient-side: the tag, not the area, is what identifies e.g. a\npurchase decision, and a to-do filed in no area is the normal case.",
      +  "type": "string"
      +}
    • removedInput schema / title
      Removed value: -"get_todayArguments"
    • removedOutput schema / properties / result / title
      Removed value: -"Result"
    • removedOutput schema / title
      Removed value: -"get_todayOutput"
    • addedOutput schema / x-fastmcp-wrap-result
      Added value: +true
  2. First observedv0.2.1

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It clearly states that this is a read/list operation and that results are the currently-active Today list. It does not disclose ordering, pagination semantics, whether read-only guarantees exist, or how the Today list is defined beyond the name, so the transparency is only minimally adequate.

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 direct sentence that front-loads action, scope, and list. It contains no filler, repetition, or redundant restating of the tool name.

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 an uncomplicated read-only getter with zero required parameters, a high-coverage schema, and an output schema present, the description gives an agent enough to invoke it correctly. The minor gap is the lack of any sibling-comparison or ordering/behavior notes, which keeps it just shy of fully self-contained.

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 baseline is 3 even though the main description adds no parameter detail of its own. The schema entries themselves are notably rich (tag filtering semantics, filtering before limit, notes payload size), but that credit belongs to the schema coverage, not to the tool description.

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 uses a specific verb and resource: "List all to-dos currently in the Things 3 'Today' list." It clearly identifies what is returned and scopes it to a particular list, which visually distinguishes it from siblings like list_todos, get_inbox, and get_completed.

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 main description gives no guidance about when to use this tool versus alternatives such as list_todos, search_todos, get_inbox, or get_completed. The only hint in the schema, suggesting get_todo() when notes are needed, is paramter-level advice and does not help an agent choose get_today among its siblings.

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