Skip to main content
Glama

filter_tasks

Filter tasks within a single OmniFocus project by status, dates, tags, flags, notes, estimates, or search text to isolate matching work items. Use count-only mode for quick tallies.

Instructions

Advanced task filtering for ONE project. For filtering across 2+ projects, use batch_filter_tasks instead (single API call). Supports status, dates, tags, search, and more.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of tasks to return (default: 100)
tagIdNoFilter by tag ID(s) (alternative to tagFilter). Can be single ID or array of IDs
sortByNoSort results by field
flaggedNoFilter by flagged status
hasNoteNoFilter tasks that have notes
inInboxNoFilter tasks in inbox
overdueNoShow overdue tasks only
dueAfterNoShow tasks due after this date (ISO format: YYYY-MM-DD)
dueTodayNoShow tasks due today
untaggedNoFilter for tasks with NO tags assigned. Useful after bulk tag removal to find unorganized tasks.
countOnlyNoReturn only the count of matching tasks, not the task data. Much faster for health checks and dashboards.
dueBeforeNoShow tasks due before this date (ISO format: YYYY-MM-DD)
projectIdNoFilter by project ID (alternative to projectFilter)
sortOrderNoSort order (default: asc)
tagFilterNoFilter by tag name(s). Can be single tag or array of tags
deferAfterNoShow tasks with defer date after this date (ISO format: YYYY-MM-DD)
deferTodayNoShow tasks deferred to today
searchTextNoSearch in task names and notes
taskStatusNoFilter by task status. Can specify multiple statuses
deferBeforeNoShow tasks with defer date before this date (ISO format: YYYY-MM-DD)
dueThisWeekNoShow tasks due this week
estimateMaxNoMaximum estimated minutes
estimateMinNoMinimum estimated minutes
hasEstimateNoFilter tasks that have time estimates
perspectiveNoLimit search to specific perspective: inbox, flagged, all tasks
dueThisMonthNoShow tasks due this month
plannedAfterNoShow tasks with planned date after this date (ISO format: YYYY-MM-DD)
plannedTodayNoShow tasks planned for today
deferThisWeekNoShow tasks deferred to this week
exactTagMatchNoSet to true for exact tag name match, false for partial (default: false)
plannedBeforeNoShow tasks with planned date before this date (ISO format: YYYY-MM-DD)
projectFilterNoFilter by project name (partial match)
completedAfterNoShow tasks completed after this date (ISO format: YYYY-MM-DD)
completedTodayNoShow tasks completed today
deferAvailableNoShow tasks whose defer date has passed (now available)
completedBeforeNoShow tasks completed before this date (ISO format: YYYY-MM-DD)
plannedThisWeekNoShow tasks planned for this week
completedThisWeekNoShow tasks completed this week
completedThisMonthNoShow tasks completed this month

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.1.1

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full disclosure burden. It implies a read-only query, but says nothing about result volume, pagination/limit behavior, the default 100 cap, or the performance shortcut of countOnly — all left to the schema. It also doesn't clarify that omitting a project filter (or using perspective='all') can return tasks spanning projects despite the 'ONE project' framing.

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?

Three short sentences, front-loaded with the scope constraint and the routing rule. No filler; every clause carries decision-relevant 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 39-parameter tool with no annotations and no output schema, the description is thin: 'and more' hides the parameter surface, and neither the return shape nor the countOnly fast path is explained. Coverage is adequate to route between siblings but not to call confidently without reading the schema.

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

Parameters3/5

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

Schema coverage is 100% and every one of the 39 parameters is described in-schema, so baseline is 3. The description only adds a generic summary ('status, dates, tags, search, and more') without surfacing high-value parameters like countOnly, untagged, exactTagMatch, or the tagId/tagFilter and projectId/projectFilter alternatives.

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?

States a specific verb+resource ('Advanced task filtering') and immediately bounds scope to ONE project, then names the sibling for the multi-project case. An agent can distinguish it from batch_filter_tasks and search_tasks without opening a schema.

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?

Explicitly names the alternative ('use batch_filter_tasks instead') with the triggering condition ('2+ projects') and a rationale ('single API call'). The enumeration of supported filter families (status, dates, tags, search) also tells the agent what this tool is good for.

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