Skip to main content
Glama

due__due

Deadline and date arithmetic for AI agents: business days, days between dates, timezone conversion, recurring schedules, deadline risk scoring. Deterministic, no LLM. GET query params or POST JSON. Price: $0.01 per call in USDC on Base (eip155:8453), paid with x402 in params._meta["x402/payment"]. HTTP: GET https://api.firstmention.uk/s/due/due

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "due__due"
  }
}

Input Schema

NameRequiredDescriptionDefault
opNo
toNo
fromNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changed
    • removedInput schema / properties / business
      Removed value: -{
      -  "description": "For recur: roll each occurrence forward to the next business day",
      -  "type": "boolean"
      -}
    • removedInput schema / properties / count
      Removed value: -{
      -  "description": "For recur: how many occurrences to generate (1-200, default 12)",
      -  "type": "integer"
      -}
    • removedInput schema / properties / country
      Removed value: -{
      -  "description": "Alias for region (US, GB)",
      -  "type": "string"
      -}
    • removedInput schema / properties / date
      Removed value: -{
      -  "description": "Alias for 'from'",
      -  "type": "string"
      -}
    • removedInput schema / properties / days
      Removed value: -{
      -  "description": "Number of days/business days to add",
      -  "type": "integer"
      -}
    • removedInput schema / properties / deadline
      Removed value: -{
      -  "description": "Alias for 'to'",
      -  "type": "string"
      -}
    • removedInput schema / properties / every
      Removed value: -{
      -  "description": "For recur: interval between occurrences (default 1)",
      -  "type": "integer"
      -}
    • removedInput schema / properties / from / description
      Removed value: -"Start date YYYY-MM-DD, ISO datetime, 'today', or +N days"
    • removedInput schema / properties / holidays
      Removed value: -{
      -  "description": "Extra holiday dates YYYY-MM-DD to skip",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / items
      Removed value: -{
      -  "description": "For op=batch: array of 1-50 request objects, each with its own op and fields. Results return in order with per-item errors.",
      -  "items": {
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedInput schema / properties / op / description
      Removed value: -"Operation. 'batch' runs many requests in one paid call; 'recur' generates a recurring schedule; 'addbiz' adds business days; 'due'/'until' gives time until a deadline; 'convert' converts timezones."
    • removedInput schema / properties / op / enum
      Removed value: -[
      -  "due",
      -  "add",
      -  "addbiz",
      -  "add_business_days",
      -  "business_days_between",
      -  "until",
      -  "status",
      -  "convert",
      -  "convert_tz",
      -  "recur",
      -  "recurring",
      -  "schedule",
      -  "series",
      -  "batch",
      -  "bulk",
      -  "multi"
      -]
    • removedInput schema / properties / region
      Removed value: -{
      -  "description": "Holiday calendar: none, us or uk",
      -  "enum": [
      -    "none",
      -    "us",
      -    "uk"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / properties / to / description
      Removed value: -"Deadline date for op=due/until/status"
    • removedInput schema / properties / to_tz
      Removed value: -{
      -  "description": "Target IANA timezone for op=convert",
      -  "type": "string"
      -}
    • removedInput schema / properties / tz
      Removed value: -{
      -  "description": "Source IANA timezone (default UTC)",
      -  "type": "string"
      -}
    • removedInput schema / properties / unit
      Removed value: -{
      -  "description": "For recur: unit of the interval",
      -  "enum": [
      -    "day",
      -    "week",
      -    "month",
      -    "year"
      -  ],
      -  "type": "string"
      -}
    • removedInput schema / required
      Removed value: -[
      -  "op"
      -]
  2. Changed17 schema fields changed
    • addedInput schema / properties / business
      Added value: +{
      +  "description": "For recur: roll each occurrence forward to the next business day",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / count
      Added value: +{
      +  "description": "For recur: how many occurrences to generate (1-200, default 12)",
      +  "type": "integer"
      +}
    • changedInput schema / properties / country / description
      Previous value: -"Holiday calendar country code, e.g. US, GB"New value: +"Alias for region (US, GB)"
    • changedInput schema / properties / date / description
      Previous value: -"ISO date YYYY-MM-DD"New value: +"Alias for 'from'"
    • changedInput schema / properties / days / description
      Previous value: -"Number of business days"New value: +"Number of days/business days to add"
    • addedInput schema / properties / deadline
      Added value: +{
      +  "description": "Alias for 'to'",
      +  "type": "string"
      +}
    • addedInput schema / properties / every
      Added value: +{
      +  "description": "For recur: interval between occurrences (default 1)",
      +  "type": "integer"
      +}
    • addedInput schema / properties / from
      Added value: +{
      +  "description": "Start date YYYY-MM-DD, ISO datetime, 'today', or +N days",
      +  "type": "string"
      +}
    • addedInput schema / properties / holidays
      Added value: +{
      +  "description": "Extra holiday dates YYYY-MM-DD to skip",
      +  "items": {
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / items
      Added value: +{
      +  "description": "For op=batch: array of 1-50 request objects, each with its own op and fields. Results return in order with per-item errors.",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • changedInput schema / properties / op / description
      Previous value: -"Operation to perform"New value: +"Operation. 'batch' runs many requests in one paid call; 'recur' generates a recurring schedule; 'addbiz' adds business days; 'due'/'until' gives time until a deadline; 'convert' converts timezones."
    • changedInput schema / properties / op / enum
      Previous value: -[
      -  "add_business_days",
      -  "business_days_between",
      -  "until",
      -  "convert_tz"
      -]New value: +[
      +  "due",
      +  "add",
      +  "addbiz",
      +  "add_business_days",
      +  "business_days_between",
      +  "until",
      +  "status",
      +  "convert",
      +  "convert_tz",
      +  "recur",
      +  "recurring",
      +  "schedule",
      +  "series",
      +  "batch",
      +  "bulk",
      +  "multi"
      +]
    • addedInput schema / properties / region
      Added value: +{
      +  "description": "Holiday calendar: none, us or uk",
      +  "enum": [
      +    "none",
      +    "us",
      +    "uk"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / to
      Added value: +{
      +  "description": "Deadline date for op=due/until/status",
      +  "type": "string"
      +}
    • changedInput schema / properties / to_tz / description
      Previous value: -"Target IANA timezone for convert_tz"New value: +"Target IANA timezone for op=convert"
    • addedInput schema / properties / tz
      Added value: +{
      +  "description": "Source IANA timezone (default UTC)",
      +  "type": "string"
      +}
    • addedInput schema / properties / unit
      Added value: +{
      +  "description": "For recur: unit of the interval",
      +  "enum": [
      +    "day",
      +    "week",
      +    "month",
      +    "year"
      +  ],
      +  "type": "string"
      +}
  3. Added

TDQS

C2.9/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full burden. It does disclose genuinely useful behavior: deterministic with no LLM, dual GET/POST transport, the paid x402 mechanism at $0.01 USDC on Base with the exact payment param path, and the endpoint URL — real context an agent needs before calling. It omits error behavior, rate limits, and what happens when an unsupported op is supplied, which are notable gaps for an unannotated tool.

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?

Compact and front-loaded: capability list first, then invocation mechanics, then pricing. The payment and HTTP details are long but are operationally necessary rather than decorative. Minor overlap between the pricing sentence and the endpoint field.

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

Completeness2/5

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

For a zero-annotation tool with three undocumented parameters and no output schema, the description should enumerate valid operations and return shape. It instead spends its budget on payment mechanics while leaving the actual calling contract (op vocabulary, date formats, output format) entirely unspecified, which makes correct invocation guesswork.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate and it does not. It never explains what values 'op' accepts, nor what 'to' and 'from' mean in each operation (dates? timezones? schedule specs?). Only the payment param gets any explanation, and that param is not even in the schema.

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?

The description names concrete capabilities (business-day math, date differences, timezone conversion, recurring schedules, deadline risk scoring) that clearly identify this as a date/deadline arithmetic service, distinguishing it from the chain/DNS/token siblings. It stops short of tying those capabilities to specific operations, so an agent knows the domain but not the exact unit of work.

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?

No guidance on when to pick this over the many plausible alternatives in the sibling list (agentkit__datetime, agentkit__deadlines, bizcal_api__between, due__batch). There are no exclusions, no prerequisites, and no statement about when a single call should become a batch call.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources