OperatorNest tools

Calculate API and subscription costs, meeting time zones, recurring schedules and cron matches.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
100%
Naming quality
80%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin ai_api_cost

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~7,243Tokens (tool definitions)
~16.6 KBTypical response size
Significant attention impact (5.66% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "tools": {
      "url": "https://operatornest.com/mcp"
    }
  }
}

Remote endpoints

https://operatornest.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢ai_api_cost(inputTokens, cachedInputTokens, outputTokens, requestsPerDay, requestsPerMonth, ...)

Estimate API workload costs in USD per request, day and month, with rates and dated snapshot provenance. Use for token budgets; use ai_subscription_stack_cost for chat or coding subscriptions. Model IDs use providerId/id from https://operatornest.com/api/models?subset=pricing, filtered to the MCP catalog; the OSS bundle lists accepted IDs in src/data/pricing-snapshot.json. Rates stay offline until the catalog is updated; missing rates return null. Cached tokens are part of total input; published batch and long-context rates apply only when eligible. Non-token charges are excluded.

Input Schema

{
  "type": "object",
  "properties": {
    "inputTokens": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Total input tokens per request, including cached input tokens.",
      "examples": [
        10000
      ]
    },
    "cachedInputTokens": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Cached portion of inputTokens per request; must not exceed inputTokens. Use 0 without caching.",
      "examples": [
        5000
      ]
    },
    "outputTokens": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Generated output tokens per request.",
      "examples": [
        2000
      ]
    },
    "requestsPerDay": {
      "type": "integer",
      "minimum": 0,
      "maximum": 10000000,
      "description": "Requests used to scale the daily estimate, independent of requestsPerMonth.",
      "examples": [
        100
      ]
    },
    "requestsPerMonth": {
      "type": "integer",
      "minimum": 0,
      "maximum": 100000000,
      "description": "Requests used to scale the monthly estimate; not inferred from the daily count.",
      "examples": [
        3000
      ]
    },
    "modelIds": {
      "type": "array",
      "minItems": 1,
      "maxItems": 20,
      "uniqueItems": true,
      "description": "Unique providerId/id values from the MCP pricing catalog. Unknown or unavailable IDs fail validation.",
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200,
        "pattern": "\\S",
        "description": "Model ID accepted by the MCP pricing catalog."
      }
    },
    "batchModelIds": {
      "type": "array",
      "minItems": 0,
      "maxItems": 20,
      "uniqueItems": true,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200,
        "pattern": "\\S",
        "description": "Selected model ID with a published batch discount."
      },
      "description": "Optional subset of modelIds to price with published batch discounts. Omission or [] uses standard rates; IDs without a published discount are rejected.",
      "examples": [
        []
      ]
    }
  },
  "required": [
    "inputTokens",
    "cachedInputTokens",
    "outputTokens",
    "requestsPerDay",
    "requestsPerMonth",
    "modelIds"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "const": "ai-api-cost-calculator",
      "description": "Calculator identifier for this result."
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "inputTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000000,
          "description": "Total input tokens per request, including cached input tokens.",
          "examples": [
            10000
          ]
        },
        "cachedInputTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000000,
          "description": "Cached portion of inputTokens per request; must not exceed inputTokens. Use 0 without caching.",
          "examples": [
            5000
          ]
        },
        "outputTokens": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000000,
          "description": "Generated output tokens per request.",
          "examples": [
            2000
          ]
        },
        "requestsPerDay": {
          "type": "integer",
          "minimum": 0,
          "maximum": 10000000,
          "description": "Requests used to scale the daily estimate, independent of requestsPerMonth.",
          "examples": [
            100
          ]
        },
        "requestsPerMonth": {
          "type": "integer",
          "minimum": 0,
          "maximum": 100000000,
          "description": "Requests used to scale the monthly estimate; not inferred from the daily count.",
          "examples": [
            3000
          ]
        },
        "modelIds": {
          "type": "array",
          "minItems": 1,
          "maxItems": 20,
          "uniqueItems": true,
          "description": "Unique providerId/id values from the MCP pricing catalog. Unknown or unavailable IDs fail validation.",
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "\\S",
            "description": "Model ID accepted by the MCP pricing catalog."
          }
        },
        "batchModelIds": {
          "type": "array",
          "minItems": 0,
          "maxItems": 20,
          "uniqueItems": true,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200,
            "pattern": "\\S",
            "description": "Selected model ID with a published batch discount."
          },
          "description": "Optional subset of modelIds to price with published batch discounts. Omission or [] uses standard rates; IDs without a published discount are rejected.",
          "examples": [
            []
          ]
        }
      },
      "required": [
        "inputTokens",
        "cachedInputTokens",
        "outputTokens",
        "requestsPerDay",
        "requestsPerMonth",
        "modelIds"
      ],
      "description": "Normalized inputs used for this calculation."
    },
    "units": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Unit or source detail for the named field."
      },
      "description": "Units for the numeric and time fields in this result."
    },
    "method": {
      "type": "string",
      "description": "Calculation or ranking method applied to the inputs."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Limits and assumptions to retain when presenting the result."
    },
    "provenance": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Unit or source detail for the named field."
      },
      "description": "Dated data sources or runtime time-zone information used for this result."
    },
    "estimates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "modelId": {
            "type": "string",
            "description": "Selected providerId/id from the pricing catalog."
          },
          "name": {
            "type": "string",
            "description": "Display name of the selected model or plan."
          },
          "perRequest": {
            "type": [
              "number",
              "null"
            ],
            "description": "Estimated USD per request; null when any required rate is unlisted."
          },
          "perDay": {
            "type": [
              "number",
              "null"
            ],
            "description": "Estimated USD per day at requestsPerDay; null when rates are unlisted."
          },
          "perMonth": {
            "type": [
              "number",
              "null"
            ],
            "description": "Estimated USD per month at requestsPerMonth; null when rates are unlisted."
          },
          "longContext": {
            "type": "boolean",
            "description": "Whether published long-context rate multipliers apply."
          },
          "batch": {
            "type": "boolean",
            "description": "Whether a requested published batch discount was applied."
          },
          "ratesPerMillion": {
            "type": "object",
            "properties": {
              "input": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Uncached-input USD rate per million tokens; null means unlisted."
              },
              "cachedInput": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Cached-input USD rate per million tokens; falls back to the input rate when absent."
              },
              "output": {
                "type": [
                  "number",
                  "null"
                ],
                "description": "Output USD rate per million tokens; null means unlisted."
              }
            },
            "required": [
              "input",
              "cachedInput",
              "output"
            ],
            "additionalProperties": false,
            "description": "USD rates per million tokens after long-context multipliers, before batch discounts; null means unlisted."
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri",
            "description": "Official rate or scheduler syntax reference URL."
          },
          "note": {
            "type": "string",
            "description": "Catalog note about pricing limitations."
          }
        },
        "required": [
          "modelId",
          "name",
          "perRequest",
          "perDay",
          "perMonth",
          "longContext",
          "batch",
          "ratesPerMillion",
          "sourceUrl",
          "note"
        ],
        "additionalProperties": false
      },
      "description": "Cost estimates in selected-model order."
    }
  },
  "required": [
    "tool",
    "input",
    "units",
    "method",
    "assumptions",
    "provenance",
    "estimates"
  ],
  "additionalProperties": false,
  "description": "API token cost estimates with normalized inputs, USD units, rate assumptions and catalog snapshot provenance."
}
🟢meeting_time_zones(date, people)

Find shared 30-minute meeting slots inside 09:00–17:00 for 2–8 participants. Use to compare workday overlap; use recurring_schedule for repeating task calendars or cron_next_runs for scheduler previews. Returns all candidates, overlap count and up to three best slots ranked nearest to each person’s 13:00, with UTC starts and local labels. The date belongs to the first participant’s zone; daylight saving uses runtime IANA data. No calendar availability or holiday lookup, invitations or calendar writes.

Input Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "format": "date",
      "minLength": 10,
      "maxLength": 10,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Meeting date in the first person’s local time zone, from 2000-01-01 to 2100-12-31.",
      "examples": [
        "2026-10-05"
      ]
    },
    "people": {
      "type": "array",
      "minItems": 2,
      "maxItems": 8,
      "description": "Participants in display order. The first person determines the local date; all must fit a full half-hour inside 09:00–17:00.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "pattern": "\\S",
            "description": "Participant label used in the returned local-time display.",
            "examples": [
              "Sam"
            ]
          },
          "zone": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100,
            "pattern": "\\S",
            "description": "IANA time zone supported by Intl.DateTimeFormat.",
            "examples": [
              "America/New_York",
              "Asia/Kolkata"
            ]
          }
        },
        "required": [
          "name",
          "zone"
        ]
      }
    }
  },
  "required": [
    "date",
    "people"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "const": "meeting-time-zone-planner",
      "description": "Calculator identifier for this result."
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "date": {
          "type": "string",
          "format": "date",
          "minLength": 10,
          "maxLength": 10,
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "description": "Meeting date in the first person’s local time zone, from 2000-01-01 to 2100-12-31.",
          "examples": [
            "2026-10-05"
          ]
        },
        "people": {
          "type": "array",
          "minItems": 2,
          "maxItems": 8,
          "description": "Participants in display order. The first person determines the local date; all must fit a full half-hour inside 09:00–17:00.",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "pattern": "\\S",
                "description": "Participant label used in the returned local-time display.",
                "examples": [
                  "Sam"
                ]
              },
              "zone": {
                "type": "string",
                "minLength": 1,
                "maxLength": 100,
                "pattern": "\\S",
                "description": "IANA time zone supported by Intl.DateTimeFormat.",
                "examples": [
                  "America/New_York",
                  "Asia/Kolkata"
                ]
              }
            },
            "required": [
              "name",
              "zone"
            ]
          }
        }
      },
      "required": [
        "date",
        "people"
      ],
      "description": "Normalized inputs used for this calculation."
    },
    "units": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Unit or source detail for the named field."
      },
      "description": "Units for the numeric and time fields in this result."
    },
    "method": {
      "type": "string",
      "description": "Calculation or ranking method applied to the inputs."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Limits and assumptions to retain when presenting the result."
    },
    "provenance": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Unit or source detail for the named field."
      },
      "description": "Dated data sources or runtime time-zone information used for this result."
    },
    "rows": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "start": {
            "type": "integer",
            "description": "Unix epoch milliseconds."
          },
          "startUtc": {
            "type": "string",
            "format": "date-time",
            "description": "Start instant in ISO 8601 UTC."
          },
          "inside": {
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Whether each participant’s full half-hour fits their 09:00–17:00 workday, in input order."
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Local start labels for participants in input order."
          },
          "score": {
            "type": "number",
            "description": "Sum of absolute hours from 13:00 at each participant’s slot midpoint; lower ranks first."
          }
        },
        "required": [
          "start",
          "startUtc",
          "inside",
          "labels",
          "score"
        ],
        "additionalProperties": false
      },
      "description": "All candidate half-hour starts on the first participant’s local date, in chronological order."
    },
    "overlapCount": {
      "type": "integer",
      "minimum": 0,
      "description": "Number of candidate slots inside every participant’s workday."
    },
    "bestSlots": {
      "type": "array",
      "maxItems": 3,
      "items": {
        "type": "object",
        "properties": {
          "start": {
            "type": "integer",
            "description": "Unix epoch milliseconds."
          },
          "startUtc": {
            "type": "string",
            "format": "date-time",
            "description": "Start instant in ISO 8601 UTC."
          },
          "inside": {
            "type": "array",
            "items": {
              "type": "boolean"
            },
            "description": "Whether each participant’s full half-hour fits their 09:00–17:00 workday, in input order."
          },
          "labels": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Local start labels for participants in input order."
          },
          "score": {
            "type": "number",
            "description": "Sum of absolute hours from 13:00 at each participant’s slot midpoint; lower ranks first."
          }
        },
        "required": [
          "start",
          "startUtc",
          "inside",
          "labels",
          "score"
        ],
        "additionalProperties": false
      },
      "description": "Up to three shared slots ranked by score, then earliest UTC start; [] means no overlap."
    }
  },
  "required": [
    "tool",
    "input",
    "units",
    "method",
    "assumptions",
    "provenance",
    "rows",
    "overlapCount",
    "bestSlots"
  ],
  "additionalProperties": false,
  "description": "Meeting candidates and ranked shared slots with normalized participants, local labels and DST assumptions."
}
🟢recurring_schedule(startDate, tasks)

Prepare weekly, biweekly or monthly task calendars and estimate monthly effort for up to 20 tasks. Use to draft a recurring work plan; use cron_next_runs to preview existing cron syntax or meeting_time_zones for shared workday slots. Returns monthly hours, first dates, recurrence rules and an RFC 5545 calendar. Times float in the importing calendar’s local zone; weekly estimates use 52/12 runs per month and biweekly 26/12. owner is a planning label, with no assignment or execution. No calendar is updated; an empty task list returns zero hours and no events.

Input Schema

{
  "type": "object",
  "properties": {
    "startDate": {
      "type": "string",
      "format": "date",
      "minLength": 10,
      "maxLength": 10,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      "description": "Earliest date for the first occurrence of each task, from 2000-01-01 to 2100-12-31.",
      "examples": [
        "2026-10-05"
      ]
    },
    "tasks": {
      "type": "array",
      "minItems": 0,
      "maxItems": 20,
      "description": "Tasks to include in the estimate and calendar. [] returns zero hours and a calendar with no events.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "pattern": "\\S",
            "description": "Task label used as the calendar event summary.",
            "examples": [
              "Investor update"
            ]
          },
          "frequency": {
            "type": "string",
            "enum": [
              "weekly",
              "biweekly",
              "monthly"
            ],
            "description": "Repeat every week, every two weeks from the first matching weekday, or every month."
          },
          "day": {
            "type": "string",
            "enum": [
              "MO",
              "TU",
              "WE",
              "TH",
              "FR",
              "SA",
              "SU"
            ],
            "description": "Weekday for weekly/biweekly tasks. Required but ignored for monthly tasks.",
            "examples": [
              "MO"
            ]
          },
          "monthday": {
            "type": "integer",
            "minimum": 1,
            "maximum": 28,
            "description": "Day of month for monthly tasks, limited to dates present in every month. Required but ignored for weekly/biweekly tasks.",
            "examples": [
              1
            ]
          },
          "minutes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1440,
            "description": "Estimated minutes per run; used for event duration and monthly hours.",
            "examples": [
              35
            ]
          },
          "time": {
            "type": "string",
            "minLength": 5,
            "maxLength": 5,
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
            "description": "24-hour HH:mm start time, floating in the importing calendar’s local time zone.",
            "examples": [
              "09:00"
            ]
          },
          "owner": {
            "type": "string",
            "enum": [
              "delegate",
              "keep",
              "decide"
            ],
            "description": "Planning label: delegate to an operator, keep for yourself, or decide later. Included in the calendar note; does not assign or execute work."
          }
        },
        "required": [
          "title",
          "frequency",
          "day",
          "monthday",
          "minutes",
          "time",
          "owner"
        ]
      }
    }
  },
  "required": [
    "startDate",
    "tasks"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "const": "recurring-task-planner",
      "description": "Calculator identifier for this result."
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "startDate": {
          "type": "string",
          "format": "date",
          "minLength": 10,
          "maxLength": 10,
          "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
          "description": "Earliest date for the first occurrence of each task, from 2000-01-01 to 2100-12-31.",
          "examples": [
            "2026-10-05"
          ]
        },
        "tasks": {
          "type": "array",
          "minItems": 0,
          "maxItems": 20,
          "description": "Tasks to include in the estimate and calendar. [] returns zero hours and a calendar with no events.",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "title": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80,
                "pattern": "\\S",
                "description": "Task label used as the calendar event summary.",
                "examples": [
                  "Investor update"
                ]
              },
              "frequency": {
                "type": "string",
                "enum": [
                  "weekly",
                  "biweekly",
                  "monthly"
                ],
                "description": "Repeat every week, every two weeks from the first matching weekday, or every month."
              },
              "day": {
                "type": "string",
                "enum": [
                  "MO",
                  "TU",
                  "WE",
                  "TH",
                  "FR",
                  "SA",
                  "SU"
                ],
                "description": "Weekday for weekly/biweekly tasks. Required but ignored for monthly tasks.",
                "examples": [
                  "MO"
                ]
              },
              "monthday": {
                "type": "integer",
                "minimum": 1,
                "maximum": 28,
                "description": "Day of month for monthly tasks, limited to dates present in every month. Required but ignored for weekly/biweekly tasks.",
                "examples": [
                  1
                ]
              },
              "minutes": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1440,
                "description": "Estimated minutes per run; used for event duration and monthly hours.",
                "examples": [
                  35
                ]
              },
              "time": {
                "type": "string",
                "minLength": 5,
                "maxLength": 5,
                "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
                "description": "24-hour HH:mm start time, floating in the importing calendar’s local time zone.",
                "examples": [
                  "09:00"
                ]
              },
              "owner": {
                "type": "string",
                "enum": [
                  "delegate",
                  "keep",
                  "decide"
                ],
                "description": "Planning label: delegate to an operator, keep for yourself, or decide later. Included in the calendar note; does not assign or execute work."
              }
            },
            "required": [
              "title",
              "frequency",
              "day",
              "monthday",
              "minutes",
              "time",
              "owner"
            ]
          }
        }
      },
      "required": [
        "startDate",
        "tasks"
      ],
      "description": "Normalized inputs used for this calculation."
    },
    "units": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Unit or source detail for the named field."
      },
      "description": "Units for the numeric and time fields in this result."
    },
    "method": {
      "type": "string",
      "description": "Calculation or ranking method applied to the inputs."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Limits and assumptions to retain when presenting the result."
    },
    "provenance": {
      "type": "object",
      "additionalProperties": {
        "type": "string",
        "description": "Unit or source detail for the named field."
      },
      "description": "Dated data sources or runtime time-zone information used for this result."
    },
    "monthlyHours": {
      "type": "number",
      "description": "Estimated monthly hours using 52/12 weekly, 26/12 biweekly and one monthly run."
    },
    "schedules": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "pattern": "\\S",
            "description": "Task label used as the calendar event summary.",
            "examples": [
              "Investor update"
            ]
          },
          "frequency": {
            "type": "string",
            "enum": [
              "weekly",
              "biweekly",
              "monthly"
            ],
            "description": "Repeat every week, every two weeks from the first matching weekday, or every month."
          },
          "day": {
            "type": "string",
            "enum": [
              "MO",
              "TU",
              "WE",
              "TH",
              "FR",
              "SA",
              "SU"
            ],
            "description": "Weekday for weekly/biweekly tasks. Required but ignored for monthly tasks.",
            "examples": [
              "MO"
            ]
          },
          "monthday": {
            "type": "integer",
            "minimum": 1,
            "maximum": 28,
            "description": "Day of month for monthly tasks, limited to dates present in every month. Required but ignored for weekly/biweekly tasks.",
            "examples": [
              1
            ]
          },
          "minutes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1440,
            "description": "Estimated minutes per run; used for event duration and monthly hours.",
            "examples": [
              35
            ]
          },
          "time": {
            "type": "string",
            "minLength": 5,
            "maxLength": 5,
            "pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
            "description": "24-hour HH:mm start time, floating in the importing calendar’s local time zone.",
            "examples": [
              "09:00"
            ]
          },
          "owner": {
            "type": "string",
            "enum": [
              "delegate",
              "keep",
              "decide"
            ],
            "description": "Planning label: delegate to an operator, keep for yourself, or decide later. Included in the calendar note; does not assign or execute work."
          },
          "firstDate": {
            "type": "string",
            "format": "date",
            "description": "First occurrence on or after startDate."
          },
          "recurrenceRule": {
            "type": "string",
            "description": "RFC 5545 RRULE matching the task frequency and day."
          }
        },
        "required": [
          "title",
          "frequency",
          "day",
          "monthday",
          "minutes",
          "time",
          "owner",
          "firstDate",
          "recurrenceRule"
        ],
        "additionalProperties": false
      },
      "description": "Normalized tasks with their first occurrence and recurrence rule, in input order."
    },
    "ics": {
      "type": "string",
      "description": "RFC 5545 calendar with CRLF folding and floating local times."
    }
  },
  "required": [
    "tool",
    "input",
    "units",
    "method",
    "assumptions",
    "provenance",
    "monthlyHours",
    "schedules",
    "ics"
  ],
  "additionalProperties": false,
  "description": "Monthly effort estimate, normalized recurrence rules and an importable floating-time calendar."
}
🟢ai_subscription_stack_cost(planIds)

Total selected AI chat and coding subscriptions in USD and identify overlapping capabilities. Use to review a subscription stack; use ai_api_cost for API token charges. Select unique planIds from the schema enum; [] returns zero totals and no plans. Returns monthly and annual totals, selected plans, capability groups and dated official sources. Annual totals use published annual billing or twelve monthly charges; taxes, regional differences and promotions are excluded. Bundled rates are dated estimates, without live billing lookup or subscription changes.

Input Schema

{
  "type": "object",
  "properties": {
    "planIds": {
      "type": "array",
      "minItems": 0,
      "maxItems": 18,
      "uniqueItems": true,
      "description": "Unique subscription IDs from the enum. An empty list returns zero totals and no selected plans.",
      "examples": [
        [
          "chatgpt-plus",
          "claude-pro"
        ],
        []
      ],
      "items": {
        "type": "string",
        "enum": [
          "chatgpt-go",
          "chatgpt-plus",
          "chatgpt-pro",
          "claude-pro",
          "claude-max-5x",
          "claude-max-20x",
          "google-ai-pro",
          "google-ai-ultra-5x",
          "google-ai-ultra-20x",
          "supergrok",
          "supergrok-plus",
          "perplexity-pro",
          "perplexity-max",
          "microsoft-365-premium",
          "mistral-pro",
          "manus-pro",
          "genspark-plus",
          "cursor-pro"
        ],
        "description": "ID of a plan in the bundled subscription catalog."
      }
    }
  },
  "required": [
    "planIds"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "const": "ai-subscription-cost-calculator",
      "description": "Calculator identifier for this result."
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "planIds": {
          "type": "array",
          "minItems": 0,
          "maxItems": 18,
          "uniqueItems": true,
          "description": "Unique subscription IDs from the enum. An empty list returns zero totals and no selected plans.",
          "examples": [
            [
              "chatgpt-plus",
              "claude-pro"
            ],
            []
          ],
          "items": {
            "type": "string",
            "enum": [
              "chatgpt-go",
              "chatgpt-plus",
              "chatgpt-pro",
              "claude-pro",
              "claude-max-5x",
              "claude-max-20x",
              "google-ai-pro",
              "google-ai-ultra-5x",
              "google-ai-ultra-20x",
              "supergrok",
              "supergrok-plus",
              "perplexity-pro",
              "perplexity-max",
              "microsoft-365-premium",
              "mistral-pro",
              "manus-pro",
              "genspark-plus",
              "cursor-pro"
            ],
            "description": "ID of a plan in the bundled subscription catalog."
          }
        }
      },
      "required": [
        "planIds"
      ],
      "description": "Normalized inputs used for this calculation."
    },
    "method": {
      "type": "string",
      "description": "Calculation or ranking method applied to the inputs."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Limits and assumptions to retain when presenting the result."
    },
    "units": {
      "type": "object",
      "properties": {
        "totals": {
          "const": "USD",
          "description": "Currency for subscription totals."
        }
      },
      "required": [
        "totals"
      ],
      "additionalProperties": false,
      "description": "Units for the numeric and time fields in this result."
    },
    "plans": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Catalog identifier for a plan or capability."
          },
          "provider": {
            "type": "string",
            "description": "Public subscription provider name."
          },
          "name": {
            "type": "string",
            "description": "Display name of the selected model or plan."
          },
          "monthly": {
            "type": "number",
            "description": "Published USD monthly charge."
          },
          "annual": {
            "type": [
              "number",
              "null"
            ],
            "description": "Published USD annual charge; null if only monthly billing is listed."
          },
          "annualNote": {
            "type": "string",
            "description": "Qualification about annual billing."
          },
          "capabilities": {
            "type": "object",
            "additionalProperties": {
              "type": "boolean",
              "description": "Whether the plan offers this capability."
            },
            "description": "Capability IDs mapped to whether the selected plan includes them."
          },
          "modelFamilies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Model family labels listed for the plan."
          },
          "source": {
            "type": "string",
            "description": "Official plan pricing URL."
          },
          "modelSource": {
            "type": "string",
            "description": "Official source for plan model access."
          },
          "checked": {
            "type": "string",
            "description": "Date the referenced catalog or scheduler source was checked."
          },
          "sourceNote": {
            "type": "string",
            "description": "Qualification about the source or plan availability."
          }
        },
        "required": [
          "id",
          "provider",
          "name",
          "monthly",
          "annual",
          "capabilities",
          "modelFamilies",
          "source",
          "modelSource",
          "checked"
        ],
        "additionalProperties": false
      },
      "description": "Selected plans with published USD charges and dated sources, in input order."
    },
    "monthlyTotal": {
      "type": "number",
      "description": "Sum of selected monthly USD charges; zero for an empty stack."
    },
    "annualTotal": {
      "type": "number",
      "description": "Sum of published annual charges or twelve monthly charges per plan; excludes taxes, regional changes and promotions."
    },
    "overlap": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Catalog identifier for a plan or capability."
          },
          "label": {
            "type": "string",
            "description": "Human-readable capability label."
          },
          "planIds": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Selected plans offering this capability; more than one ID indicates overlap."
          }
        },
        "required": [
          "id",
          "label",
          "planIds"
        ],
        "additionalProperties": false
      },
      "description": "Capability groups and selected plan IDs; more than one plan ID indicates overlap."
    },
    "provenance": {
      "type": "object",
      "properties": {
        "checked": {
          "type": "string",
          "description": "Date the referenced catalog or scheduler source was checked."
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "planId": {
                "type": "string",
                "description": "Selected plan ID corresponding to this source."
              },
              "url": {
                "type": "string",
                "description": "Official plan pricing URL."
              },
              "checked": {
                "type": "string",
                "description": "Date the referenced catalog or scheduler source was checked."
              }
            },
            "required": [
              "planId",
              "url",
              "checked"
            ],
            "additionalProperties": false
          },
          "description": "Official pricing sources for the selected plans."
        }
      },
      "required": [
        "checked",
        "sources"
      ],
      "additionalProperties": false,
      "description": "Dated data sources or runtime time-zone information used for this result."
    }
  },
  "required": [
    "tool",
    "input",
    "method",
    "assumptions",
    "units",
    "plans",
    "monthlyTotal",
    "annualTotal",
    "overlap",
    "provenance"
  ],
  "additionalProperties": false,
  "description": "Subscription totals, capability overlap and dated plan sources with normalized selection."
}
🟢cron_next_runs(expression, dialect, zone, after, count)

Preview up to 10 cron matches strictly after a supplied UTC instant, within a 366-day search. Use to check existing scheduler syntax; use recurring_schedule to draft task recurrence calendars or meeting_time_zones for participant overlap. Returns UTC starts, local labels, normalized inputs and a dated syntax source; fewer matches or [] means the search window ended. Supports numeric stars, lists, ranges, steps and weekday names in the selected dialect; rejects L, W, # and named months. cloudflare requires UTC; other zones follow runtime daylight saving transitions. No schedule is installed or run.

Input Schema

{
  "type": "object",
  "properties": {
    "expression": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "pattern": "\\S",
      "description": "Cron fields in the selected dialect: five for github/cloudflare, six or seven for quartz, six for aws (optional cron(...) wrapper). Supports *, lists, ranges, steps and weekday names; rejects L, W, # and named months. Quartz/aws require ? in exactly one day field.",
      "examples": [
        "0 9 * * 1-5"
      ]
    },
    "dialect": {
      "type": "string",
      "enum": [
        "github",
        "cloudflare",
        "quartz",
        "aws"
      ],
      "description": "Scheduler syntax and weekday numbering. github uses 0 or 7 for Sunday and 1–6 for Monday–Saturday; the others use 1–7 for Sunday–Saturday.",
      "examples": [
        "github"
      ]
    },
    "zone": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "pattern": "\\S",
      "description": "IANA time zone for matching local cron fields. cloudflare requires UTC. Daylight saving transitions follow the runtime time-zone database.",
      "examples": [
        "UTC",
        "America/New_York"
      ]
    },
    "after": {
      "type": "string",
      "format": "date-time",
      "minLength": 20,
      "maxLength": 24,
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$",
      "description": "UTC ISO instant from 2000 through 2100; matches are strictly after this instant. Only Z offsets are accepted.",
      "examples": [
        "2026-10-02T00:00:00Z"
      ]
    },
    "count": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Maximum matches to return. The list may be shorter or empty if no further matches occur within the 366-day search.",
      "examples": [
        3
      ]
    }
  },
  "required": [
    "expression",
    "dialect",
    "zone",
    "after",
    "count"
  ],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "properties": {
    "tool": {
      "const": "cron-expression-generator",
      "description": "Calculator identifier for this result."
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "expression": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "\\S",
          "description": "Cron fields in the selected dialect: five for github/cloudflare, six or seven for quartz, six for aws (optional cron(...) wrapper). Supports *, lists, ranges, steps and weekday names; rejects L, W, # and named months. Quartz/aws require ? in exactly one day field.",
          "examples": [
            "0 9 * * 1-5"
          ]
        },
        "dialect": {
          "type": "string",
          "enum": [
            "github",
            "cloudflare",
            "quartz",
            "aws"
          ],
          "description": "Scheduler syntax and weekday numbering. github uses 0 or 7 for Sunday and 1–6 for Monday–Saturday; the others use 1–7 for Sunday–Saturday.",
          "examples": [
            "github"
          ]
        },
        "zone": {
          "type": "string",
          "minLength": 1,
          "maxLength": 100,
          "pattern": "\\S",
          "description": "IANA time zone for matching local cron fields. cloudflare requires UTC. Daylight saving transitions follow the runtime time-zone database.",
          "examples": [
            "UTC",
            "America/New_York"
          ]
        },
        "after": {
          "type": "string",
          "format": "date-time",
          "minLength": 20,
          "maxLength": 24,
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$",
          "description": "UTC ISO instant from 2000 through 2100; matches are strictly after this instant. Only Z offsets are accepted.",
          "examples": [
            "2026-10-02T00:00:00Z"
          ]
        },
        "count": {
          "type": "integer",
          "minimum": 1,
          "maximum": 10,
          "description": "Maximum matches to return. The list may be shorter or empty if no further matches occur within the 366-day search.",
          "examples": [
            3
          ]
        }
      },
      "required": [
        "expression",
        "dialect",
        "zone",
        "after",
        "count"
      ],
      "description": "Normalized inputs used for this calculation."
    },
    "method": {
      "type": "string",
      "description": "Calculation or ranking method applied to the inputs."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Limits and assumptions to retain when presenting the result."
    },
    "runs": {
      "type": "array",
      "maxItems": 10,
      "items": {
        "type": "object",
        "properties": {
          "startUtc": {
            "type": "string",
            "format": "date-time",
            "description": "Start instant in ISO 8601 UTC."
          },
          "label": {
            "type": "string",
            "description": "Start formatted in the requested IANA time zone."
          }
        },
        "required": [
          "startUtc",
          "label"
        ],
        "additionalProperties": false
      },
      "description": "Chronological cron matches strictly after after, up to count; may be shorter or empty within the search window."
    },
    "searchDays": {
      "const": 366,
      "description": "Maximum search window in days."
    },
    "provenance": {
      "type": "object",
      "properties": {
        "sourceUrl": {
          "type": "string",
          "description": "Official rate or scheduler syntax reference URL."
        },
        "checked": {
          "type": "string",
          "description": "Date the referenced catalog or scheduler source was checked."
        }
      },
      "required": [
        "sourceUrl",
        "checked"
      ],
      "additionalProperties": false,
      "description": "Dated data sources or runtime time-zone information used for this result."
    }
  },
  "required": [
    "tool",
    "input",
    "method",
    "assumptions",
    "runs",
    "searchDays",
    "provenance"
  ],
  "additionalProperties": false,
  "description": "Bounded cron preview with normalized syntax, UTC starts, local labels and scheduler source."
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools