Skip to main content
Glama

list_deadlines

List all known South African tax deadlines, optionally filtered by category, for non-time-bound SARS queries. Includes past dates; use upcoming deadlines for future-only.

Instructions

List every known South African tax deadline, optionally by category.

Use this when the question is not time-bounded - for example "what are the provisional tax dates for this cycle?" or "show me all SARS deadlines you know about". Results include dates that have already passed; use get_upcoming_deadlines instead when only future dates matter.

Args: category: Optional filter. Must be one of: - provisional_tax: IRP6 provisional payments, provisional taxpayer and trust income tax returns - filing_season: annual individual filing season milestones (auto-assessments, opening dates, ITR12 deadlines) - vat: VAT201 return and payment deadlines - paye: EMP201 monthly PAYE/UIF/SDL declarations - emp501: employer annual and interim PAYE reconciliations Omit it to list every category.

Returns: One line per deadline, sorted earliest first, in the form "YYYY-MM-DD - Title (sars.gov.za, verified YYYY-MM-DD)", each followed by an indented "Note:" line covering edge cases such as weekend or public-holiday shifts. Recurring obligations (VAT201, EMP201) appear as a single concrete upcoming example whose note explains the recurrence rule. Returns an error message listing the valid categories if the category argument is not recognised.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
categoryNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does well: it discloses that past dates are included, that output is one line per deadline sorted earliest first, how recurrence is represented, and error behavior for an unrecognised category. It omits only non-behavioral operational details such as auth or rate limits.

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?

Front-loads purpose and routing decision before the Args/Returns blocks, and every sentence earns its place - the category list and the returns/note format are all actionable. No filler or repetition of the tool name.

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

Completeness5/5

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

For a single-optional-param read tool with no annotations, the description covers use case, alternatives, all parameter values, output shape, edge cases (weekend/holiday shifts, recurrence), and error handling. Nothing an agent needs to call it correctly is missing.

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% and the enum values carry no schema descriptions, so the description compensates fully by enumerating all five categories with concrete semantics (e.g. 'provisional_tax: IRP6 provisional payments...', 'emp501: employer annual and interim PAYE reconciliations') and stating the omit-to-list-all behaviour. This is meaning well beyond the bare enum.

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 ('List every known South African tax deadline') with an explicit scope qualifier (optionally by category), and names the sibling get_upcoming_deadlines as the contrasting tool. An agent can distinguish it from the sibling without opening either 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?

Explicit when-to-use ('when the question is not time-bounded') with two concrete example queries, plus an explicit when-not ('use get_upcoming_deadlines instead when only future dates matter') and reinforces it by noting results include past dates. Nothing is left to inference.

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

Deploy Server

Other Tools