Server definition
- Hash
- sha256:f59accab9efff8c88f0d5edb09c2df99817449b6f03a77f5e2f5d2de0c546d07
- What it is
- What a remote MCP server returned when asked what it offers: 5 tools
The blob, as servednamed by its sha256
{
"instructions": null,
"tools": [
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"batchModelIds": {
"description": "Optional subset of modelIds to price with published batch discounts. Omission or [] uses standard rates; IDs without a published discount are rejected.",
"examples": [
[]
],
"items": {
"description": "Selected model ID with a published batch discount.",
"maxLength": 200,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"maxItems": 20,
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"cachedInputTokens": {
"description": "Cached portion of inputTokens per request; must not exceed inputTokens. Use 0 without caching.",
"examples": [
5000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
"inputTokens": {
"description": "Total input tokens per request, including cached input tokens.",
"examples": [
10000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
"modelIds": {
"description": "Unique providerId/id values from the MCP pricing catalog. Unknown or unavailable IDs fail validation.",
"items": {
"description": "Model ID accepted by the MCP pricing catalog.",
"maxLength": 200,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"outputTokens": {
"description": "Generated output tokens per request.",
"examples": [
2000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
"requestsPerDay": {
"description": "Requests used to scale the daily estimate, independent of requestsPerMonth.",
"examples": [
100
],
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"requestsPerMonth": {
"description": "Requests used to scale the monthly estimate; not inferred from the daily count.",
"examples": [
3000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"inputTokens",
"cachedInputTokens",
"outputTokens",
"requestsPerDay",
"requestsPerMonth",
"modelIds"
],
"type": "object"
},
"name": "ai_api_cost",
"outputSchema": {
"additionalProperties": false,
"description": "API token cost estimates with normalized inputs, USD units, rate assumptions and catalog snapshot provenance.",
"properties": {
"assumptions": {
"description": "Limits and assumptions to retain when presenting the result.",
"items": {
"type": "string"
},
"type": "array"
},
"estimates": {
"description": "Cost estimates in selected-model order.",
"items": {
"additionalProperties": false,
"properties": {
"batch": {
"description": "Whether a requested published batch discount was applied.",
"type": "boolean"
},
"longContext": {
"description": "Whether published long-context rate multipliers apply.",
"type": "boolean"
},
"modelId": {
"description": "Selected providerId/id from the pricing catalog.",
"type": "string"
},
"name": {
"description": "Display name of the selected model or plan.",
"type": "string"
},
"note": {
"description": "Catalog note about pricing limitations.",
"type": "string"
},
"perDay": {
"description": "Estimated USD per day at requestsPerDay; null when rates are unlisted.",
"type": [
"number",
"null"
]
},
"perMonth": {
"description": "Estimated USD per month at requestsPerMonth; null when rates are unlisted.",
"type": [
"number",
"null"
]
},
"perRequest": {
"description": "Estimated USD per request; null when any required rate is unlisted.",
"type": [
"number",
"null"
]
},
"ratesPerMillion": {
"additionalProperties": false,
"description": "USD rates per million tokens after long-context multipliers, before batch discounts; null means unlisted.",
"properties": {
"cachedInput": {
"description": "Cached-input USD rate per million tokens; falls back to the input rate when absent.",
"type": [
"number",
"null"
]
},
"input": {
"description": "Uncached-input USD rate per million tokens; null means unlisted.",
"type": [
"number",
"null"
]
},
"output": {
"description": "Output USD rate per million tokens; null means unlisted.",
"type": [
"number",
"null"
]
}
},
"required": [
"input",
"cachedInput",
"output"
],
"type": "object"
},
"sourceUrl": {
"description": "Official rate or scheduler syntax reference URL.",
"format": "uri",
"type": "string"
}
},
"required": [
"modelId",
"name",
"perRequest",
"perDay",
"perMonth",
"longContext",
"batch",
"ratesPerMillion",
"sourceUrl",
"note"
],
"type": "object"
},
"type": "array"
},
"input": {
"additionalProperties": false,
"description": "Normalized inputs used for this calculation.",
"properties": {
"batchModelIds": {
"description": "Optional subset of modelIds to price with published batch discounts. Omission or [] uses standard rates; IDs without a published discount are rejected.",
"examples": [
[]
],
"items": {
"description": "Selected model ID with a published batch discount.",
"maxLength": 200,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"maxItems": 20,
"minItems": 0,
"type": "array",
"uniqueItems": true
},
"cachedInputTokens": {
"description": "Cached portion of inputTokens per request; must not exceed inputTokens. Use 0 without caching.",
"examples": [
5000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
"inputTokens": {
"description": "Total input tokens per request, including cached input tokens.",
"examples": [
10000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
"modelIds": {
"description": "Unique providerId/id values from the MCP pricing catalog. Unknown or unavailable IDs fail validation.",
"items": {
"description": "Model ID accepted by the MCP pricing catalog.",
"maxLength": 200,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"outputTokens": {
"description": "Generated output tokens per request.",
"examples": [
2000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
},
"requestsPerDay": {
"description": "Requests used to scale the daily estimate, independent of requestsPerMonth.",
"examples": [
100
],
"maximum": 10000000,
"minimum": 0,
"type": "integer"
},
"requestsPerMonth": {
"description": "Requests used to scale the monthly estimate; not inferred from the daily count.",
"examples": [
3000
],
"maximum": 100000000,
"minimum": 0,
"type": "integer"
}
},
"required": [
"inputTokens",
"cachedInputTokens",
"outputTokens",
"requestsPerDay",
"requestsPerMonth",
"modelIds"
],
"type": "object"
},
"method": {
"description": "Calculation or ranking method applied to the inputs.",
"type": "string"
},
"provenance": {
"additionalProperties": {
"description": "Unit or source detail for the named field.",
"type": "string"
},
"description": "Dated data sources or runtime time-zone information used for this result.",
"type": "object"
},
"tool": {
"const": "ai-api-cost-calculator",
"description": "Calculator identifier for this result."
},
"units": {
"additionalProperties": {
"description": "Unit or source detail for the named field.",
"type": "string"
},
"description": "Units for the numeric and time fields in this result.",
"type": "object"
}
},
"required": [
"tool",
"input",
"units",
"method",
"assumptions",
"provenance",
"estimates"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"planIds": {
"description": "Unique subscription IDs from the enum. An empty list returns zero totals and no selected plans.",
"examples": [
[
"chatgpt-plus",
"claude-pro"
],
[]
],
"items": {
"description": "ID of a plan in the bundled subscription catalog.",
"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"
],
"type": "string"
},
"maxItems": 18,
"minItems": 0,
"type": "array",
"uniqueItems": true
}
},
"required": [
"planIds"
],
"type": "object"
},
"name": "ai_subscription_stack_cost",
"outputSchema": {
"additionalProperties": false,
"description": "Subscription totals, capability overlap and dated plan sources with normalized selection.",
"properties": {
"annualTotal": {
"description": "Sum of published annual charges or twelve monthly charges per plan; excludes taxes, regional changes and promotions.",
"type": "number"
},
"assumptions": {
"description": "Limits and assumptions to retain when presenting the result.",
"items": {
"type": "string"
},
"type": "array"
},
"input": {
"additionalProperties": false,
"description": "Normalized inputs used for this calculation.",
"properties": {
"planIds": {
"description": "Unique subscription IDs from the enum. An empty list returns zero totals and no selected plans.",
"examples": [
[
"chatgpt-plus",
"claude-pro"
],
[]
],
"items": {
"description": "ID of a plan in the bundled subscription catalog.",
"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"
],
"type": "string"
},
"maxItems": 18,
"minItems": 0,
"type": "array",
"uniqueItems": true
}
},
"required": [
"planIds"
],
"type": "object"
},
"method": {
"description": "Calculation or ranking method applied to the inputs.",
"type": "string"
},
"monthlyTotal": {
"description": "Sum of selected monthly USD charges; zero for an empty stack.",
"type": "number"
},
"overlap": {
"description": "Capability groups and selected plan IDs; more than one plan ID indicates overlap.",
"items": {
"additionalProperties": false,
"properties": {
"id": {
"description": "Catalog identifier for a plan or capability.",
"type": "string"
},
"label": {
"description": "Human-readable capability label.",
"type": "string"
},
"planIds": {
"description": "Selected plans offering this capability; more than one ID indicates overlap.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"id",
"label",
"planIds"
],
"type": "object"
},
"type": "array"
},
"plans": {
"description": "Selected plans with published USD charges and dated sources, in input order.",
"items": {
"additionalProperties": false,
"properties": {
"annual": {
"description": "Published USD annual charge; null if only monthly billing is listed.",
"type": [
"number",
"null"
]
},
"annualNote": {
"description": "Qualification about annual billing.",
"type": "string"
},
"capabilities": {
"additionalProperties": {
"description": "Whether the plan offers this capability.",
"type": "boolean"
},
"description": "Capability IDs mapped to whether the selected plan includes them.",
"type": "object"
},
"checked": {
"description": "Date the referenced catalog or scheduler source was checked.",
"type": "string"
},
"id": {
"description": "Catalog identifier for a plan or capability.",
"type": "string"
},
"modelFamilies": {
"description": "Model family labels listed for the plan.",
"items": {
"type": "string"
},
"type": "array"
},
"modelSource": {
"description": "Official source for plan model access.",
"type": "string"
},
"monthly": {
"description": "Published USD monthly charge.",
"type": "number"
},
"name": {
"description": "Display name of the selected model or plan.",
"type": "string"
},
"provider": {
"description": "Public subscription provider name.",
"type": "string"
},
"source": {
"description": "Official plan pricing URL.",
"type": "string"
},
"sourceNote": {
"description": "Qualification about the source or plan availability.",
"type": "string"
}
},
"required": [
"id",
"provider",
"name",
"monthly",
"annual",
"capabilities",
"modelFamilies",
"source",
"modelSource",
"checked"
],
"type": "object"
},
"type": "array"
},
"provenance": {
"additionalProperties": false,
"description": "Dated data sources or runtime time-zone information used for this result.",
"properties": {
"checked": {
"description": "Date the referenced catalog or scheduler source was checked.",
"type": "string"
},
"sources": {
"description": "Official pricing sources for the selected plans.",
"items": {
"additionalProperties": false,
"properties": {
"checked": {
"description": "Date the referenced catalog or scheduler source was checked.",
"type": "string"
},
"planId": {
"description": "Selected plan ID corresponding to this source.",
"type": "string"
},
"url": {
"description": "Official plan pricing URL.",
"type": "string"
}
},
"required": [
"planId",
"url",
"checked"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"checked",
"sources"
],
"type": "object"
},
"tool": {
"const": "ai-subscription-cost-calculator",
"description": "Calculator identifier for this result."
},
"units": {
"additionalProperties": false,
"description": "Units for the numeric and time fields in this result.",
"properties": {
"totals": {
"const": "USD",
"description": "Currency for subscription totals."
}
},
"required": [
"totals"
],
"type": "object"
}
},
"required": [
"tool",
"input",
"method",
"assumptions",
"units",
"plans",
"monthlyTotal",
"annualTotal",
"overlap",
"provenance"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"after": {
"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"
],
"format": "date-time",
"maxLength": 24,
"minLength": 20,
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$",
"type": "string"
},
"count": {
"description": "Maximum matches to return. The list may be shorter or empty if no further matches occur within the 366-day search.",
"examples": [
3
],
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"dialect": {
"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.",
"enum": [
"github",
"cloudflare",
"quartz",
"aws"
],
"examples": [
"github"
],
"type": "string"
},
"expression": {
"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"
],
"maxLength": 200,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"zone": {
"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"
],
"maxLength": 100,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"expression",
"dialect",
"zone",
"after",
"count"
],
"type": "object"
},
"name": "cron_next_runs",
"outputSchema": {
"additionalProperties": false,
"description": "Bounded cron preview with normalized syntax, UTC starts, local labels and scheduler source.",
"properties": {
"assumptions": {
"description": "Limits and assumptions to retain when presenting the result.",
"items": {
"type": "string"
},
"type": "array"
},
"input": {
"additionalProperties": false,
"description": "Normalized inputs used for this calculation.",
"properties": {
"after": {
"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"
],
"format": "date-time",
"maxLength": 24,
"minLength": 20,
"pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(?:\\.\\d{1,3})?Z$",
"type": "string"
},
"count": {
"description": "Maximum matches to return. The list may be shorter or empty if no further matches occur within the 366-day search.",
"examples": [
3
],
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"dialect": {
"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.",
"enum": [
"github",
"cloudflare",
"quartz",
"aws"
],
"examples": [
"github"
],
"type": "string"
},
"expression": {
"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"
],
"maxLength": 200,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"zone": {
"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"
],
"maxLength": 100,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"expression",
"dialect",
"zone",
"after",
"count"
],
"type": "object"
},
"method": {
"description": "Calculation or ranking method applied to the inputs.",
"type": "string"
},
"provenance": {
"additionalProperties": false,
"description": "Dated data sources or runtime time-zone information used for this result.",
"properties": {
"checked": {
"description": "Date the referenced catalog or scheduler source was checked.",
"type": "string"
},
"sourceUrl": {
"description": "Official rate or scheduler syntax reference URL.",
"type": "string"
}
},
"required": [
"sourceUrl",
"checked"
],
"type": "object"
},
"runs": {
"description": "Chronological cron matches strictly after after, up to count; may be shorter or empty within the search window.",
"items": {
"additionalProperties": false,
"properties": {
"label": {
"description": "Start formatted in the requested IANA time zone.",
"type": "string"
},
"startUtc": {
"description": "Start instant in ISO 8601 UTC.",
"format": "date-time",
"type": "string"
}
},
"required": [
"startUtc",
"label"
],
"type": "object"
},
"maxItems": 10,
"type": "array"
},
"searchDays": {
"const": 366,
"description": "Maximum search window in days."
},
"tool": {
"const": "cron-expression-generator",
"description": "Calculator identifier for this result."
}
},
"required": [
"tool",
"input",
"method",
"assumptions",
"runs",
"searchDays",
"provenance"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"date": {
"description": "Meeting date in the first person’s local time zone, from 2000-01-01 to 2100-12-31.",
"examples": [
"2026-10-05"
],
"format": "date",
"maxLength": 10,
"minLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"people": {
"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": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Participant label used in the returned local-time display.",
"examples": [
"Sam"
],
"maxLength": 80,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"zone": {
"description": "IANA time zone supported by Intl.DateTimeFormat.",
"examples": [
"America/New_York",
"Asia/Kolkata"
],
"maxLength": 100,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"name",
"zone"
],
"type": "object"
},
"maxItems": 8,
"minItems": 2,
"type": "array"
}
},
"required": [
"date",
"people"
],
"type": "object"
},
"name": "meeting_time_zones",
"outputSchema": {
"additionalProperties": false,
"description": "Meeting candidates and ranked shared slots with normalized participants, local labels and DST assumptions.",
"properties": {
"assumptions": {
"description": "Limits and assumptions to retain when presenting the result.",
"items": {
"type": "string"
},
"type": "array"
},
"bestSlots": {
"description": "Up to three shared slots ranked by score, then earliest UTC start; [] means no overlap.",
"items": {
"additionalProperties": false,
"properties": {
"inside": {
"description": "Whether each participant’s full half-hour fits their 09:00–17:00 workday, in input order.",
"items": {
"type": "boolean"
},
"type": "array"
},
"labels": {
"description": "Local start labels for participants in input order.",
"items": {
"type": "string"
},
"type": "array"
},
"score": {
"description": "Sum of absolute hours from 13:00 at each participant’s slot midpoint; lower ranks first.",
"type": "number"
},
"start": {
"description": "Unix epoch milliseconds.",
"type": "integer"
},
"startUtc": {
"description": "Start instant in ISO 8601 UTC.",
"format": "date-time",
"type": "string"
}
},
"required": [
"start",
"startUtc",
"inside",
"labels",
"score"
],
"type": "object"
},
"maxItems": 3,
"type": "array"
},
"input": {
"additionalProperties": false,
"description": "Normalized inputs used for this calculation.",
"properties": {
"date": {
"description": "Meeting date in the first person’s local time zone, from 2000-01-01 to 2100-12-31.",
"examples": [
"2026-10-05"
],
"format": "date",
"maxLength": 10,
"minLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"people": {
"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": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Participant label used in the returned local-time display.",
"examples": [
"Sam"
],
"maxLength": 80,
"minLength": 1,
"pattern": "\\S",
"type": "string"
},
"zone": {
"description": "IANA time zone supported by Intl.DateTimeFormat.",
"examples": [
"America/New_York",
"Asia/Kolkata"
],
"maxLength": 100,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"name",
"zone"
],
"type": "object"
},
"maxItems": 8,
"minItems": 2,
"type": "array"
}
},
"required": [
"date",
"people"
],
"type": "object"
},
"method": {
"description": "Calculation or ranking method applied to the inputs.",
"type": "string"
},
"overlapCount": {
"description": "Number of candidate slots inside every participant’s workday.",
"minimum": 0,
"type": "integer"
},
"provenance": {
"additionalProperties": {
"description": "Unit or source detail for the named field.",
"type": "string"
},
"description": "Dated data sources or runtime time-zone information used for this result.",
"type": "object"
},
"rows": {
"description": "All candidate half-hour starts on the first participant’s local date, in chronological order.",
"items": {
"additionalProperties": false,
"properties": {
"inside": {
"description": "Whether each participant’s full half-hour fits their 09:00–17:00 workday, in input order.",
"items": {
"type": "boolean"
},
"type": "array"
},
"labels": {
"description": "Local start labels for participants in input order.",
"items": {
"type": "string"
},
"type": "array"
},
"score": {
"description": "Sum of absolute hours from 13:00 at each participant’s slot midpoint; lower ranks first.",
"type": "number"
},
"start": {
"description": "Unix epoch milliseconds.",
"type": "integer"
},
"startUtc": {
"description": "Start instant in ISO 8601 UTC.",
"format": "date-time",
"type": "string"
}
},
"required": [
"start",
"startUtc",
"inside",
"labels",
"score"
],
"type": "object"
},
"type": "array"
},
"tool": {
"const": "meeting-time-zone-planner",
"description": "Calculator identifier for this result."
},
"units": {
"additionalProperties": {
"description": "Unit or source detail for the named field.",
"type": "string"
},
"description": "Units for the numeric and time fields in this result.",
"type": "object"
}
},
"required": [
"tool",
"input",
"units",
"method",
"assumptions",
"provenance",
"rows",
"overlapCount",
"bestSlots"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"startDate": {
"description": "Earliest date for the first occurrence of each task, from 2000-01-01 to 2100-12-31.",
"examples": [
"2026-10-05"
],
"format": "date",
"maxLength": 10,
"minLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"tasks": {
"description": "Tasks to include in the estimate and calendar. [] returns zero hours and a calendar with no events.",
"items": {
"additionalProperties": false,
"properties": {
"day": {
"description": "Weekday for weekly/biweekly tasks. Required but ignored for monthly tasks.",
"enum": [
"MO",
"TU",
"WE",
"TH",
"FR",
"SA",
"SU"
],
"examples": [
"MO"
],
"type": "string"
},
"frequency": {
"description": "Repeat every week, every two weeks from the first matching weekday, or every month.",
"enum": [
"weekly",
"biweekly",
"monthly"
],
"type": "string"
},
"minutes": {
"description": "Estimated minutes per run; used for event duration and monthly hours.",
"examples": [
35
],
"maximum": 1440,
"minimum": 1,
"type": "integer"
},
"monthday": {
"description": "Day of month for monthly tasks, limited to dates present in every month. Required but ignored for weekly/biweekly tasks.",
"examples": [
1
],
"maximum": 28,
"minimum": 1,
"type": "integer"
},
"owner": {
"description": "Planning label: delegate to an operator, keep for yourself, or decide later. Included in the calendar note; does not assign or execute work.",
"enum": [
"delegate",
"keep",
"decide"
],
"type": "string"
},
"time": {
"description": "24-hour HH:mm start time, floating in the importing calendar’s local time zone.",
"examples": [
"09:00"
],
"maxLength": 5,
"minLength": 5,
"pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
"type": "string"
},
"title": {
"description": "Task label used as the calendar event summary.",
"examples": [
"Investor update"
],
"maxLength": 80,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"title",
"frequency",
"day",
"monthday",
"minutes",
"time",
"owner"
],
"type": "object"
},
"maxItems": 20,
"minItems": 0,
"type": "array"
}
},
"required": [
"startDate",
"tasks"
],
"type": "object"
},
"name": "recurring_schedule",
"outputSchema": {
"additionalProperties": false,
"description": "Monthly effort estimate, normalized recurrence rules and an importable floating-time calendar.",
"properties": {
"assumptions": {
"description": "Limits and assumptions to retain when presenting the result.",
"items": {
"type": "string"
},
"type": "array"
},
"ics": {
"description": "RFC 5545 calendar with CRLF folding and floating local times.",
"type": "string"
},
"input": {
"additionalProperties": false,
"description": "Normalized inputs used for this calculation.",
"properties": {
"startDate": {
"description": "Earliest date for the first occurrence of each task, from 2000-01-01 to 2100-12-31.",
"examples": [
"2026-10-05"
],
"format": "date",
"maxLength": 10,
"minLength": 10,
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"tasks": {
"description": "Tasks to include in the estimate and calendar. [] returns zero hours and a calendar with no events.",
"items": {
"additionalProperties": false,
"properties": {
"day": {
"description": "Weekday for weekly/biweekly tasks. Required but ignored for monthly tasks.",
"enum": [
"MO",
"TU",
"WE",
"TH",
"FR",
"SA",
"SU"
],
"examples": [
"MO"
],
"type": "string"
},
"frequency": {
"description": "Repeat every week, every two weeks from the first matching weekday, or every month.",
"enum": [
"weekly",
"biweekly",
"monthly"
],
"type": "string"
},
"minutes": {
"description": "Estimated minutes per run; used for event duration and monthly hours.",
"examples": [
35
],
"maximum": 1440,
"minimum": 1,
"type": "integer"
},
"monthday": {
"description": "Day of month for monthly tasks, limited to dates present in every month. Required but ignored for weekly/biweekly tasks.",
"examples": [
1
],
"maximum": 28,
"minimum": 1,
"type": "integer"
},
"owner": {
"description": "Planning label: delegate to an operator, keep for yourself, or decide later. Included in the calendar note; does not assign or execute work.",
"enum": [
"delegate",
"keep",
"decide"
],
"type": "string"
},
"time": {
"description": "24-hour HH:mm start time, floating in the importing calendar’s local time zone.",
"examples": [
"09:00"
],
"maxLength": 5,
"minLength": 5,
"pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
"type": "string"
},
"title": {
"description": "Task label used as the calendar event summary.",
"examples": [
"Investor update"
],
"maxLength": 80,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"title",
"frequency",
"day",
"monthday",
"minutes",
"time",
"owner"
],
"type": "object"
},
"maxItems": 20,
"minItems": 0,
"type": "array"
}
},
"required": [
"startDate",
"tasks"
],
"type": "object"
},
"method": {
"description": "Calculation or ranking method applied to the inputs.",
"type": "string"
},
"monthlyHours": {
"description": "Estimated monthly hours using 52/12 weekly, 26/12 biweekly and one monthly run.",
"type": "number"
},
"provenance": {
"additionalProperties": {
"description": "Unit or source detail for the named field.",
"type": "string"
},
"description": "Dated data sources or runtime time-zone information used for this result.",
"type": "object"
},
"schedules": {
"description": "Normalized tasks with their first occurrence and recurrence rule, in input order.",
"items": {
"additionalProperties": false,
"properties": {
"day": {
"description": "Weekday for weekly/biweekly tasks. Required but ignored for monthly tasks.",
"enum": [
"MO",
"TU",
"WE",
"TH",
"FR",
"SA",
"SU"
],
"examples": [
"MO"
],
"type": "string"
},
"firstDate": {
"description": "First occurrence on or after startDate.",
"format": "date",
"type": "string"
},
"frequency": {
"description": "Repeat every week, every two weeks from the first matching weekday, or every month.",
"enum": [
"weekly",
"biweekly",
"monthly"
],
"type": "string"
},
"minutes": {
"description": "Estimated minutes per run; used for event duration and monthly hours.",
"examples": [
35
],
"maximum": 1440,
"minimum": 1,
"type": "integer"
},
"monthday": {
"description": "Day of month for monthly tasks, limited to dates present in every month. Required but ignored for weekly/biweekly tasks.",
"examples": [
1
],
"maximum": 28,
"minimum": 1,
"type": "integer"
},
"owner": {
"description": "Planning label: delegate to an operator, keep for yourself, or decide later. Included in the calendar note; does not assign or execute work.",
"enum": [
"delegate",
"keep",
"decide"
],
"type": "string"
},
"recurrenceRule": {
"description": "RFC 5545 RRULE matching the task frequency and day.",
"type": "string"
},
"time": {
"description": "24-hour HH:mm start time, floating in the importing calendar’s local time zone.",
"examples": [
"09:00"
],
"maxLength": 5,
"minLength": 5,
"pattern": "^([01][0-9]|2[0-3]):[0-5][0-9]$",
"type": "string"
},
"title": {
"description": "Task label used as the calendar event summary.",
"examples": [
"Investor update"
],
"maxLength": 80,
"minLength": 1,
"pattern": "\\S",
"type": "string"
}
},
"required": [
"title",
"frequency",
"day",
"monthday",
"minutes",
"time",
"owner",
"firstDate",
"recurrenceRule"
],
"type": "object"
},
"type": "array"
},
"tool": {
"const": "recurring-task-planner",
"description": "Calculator identifier for this result."
},
"units": {
"additionalProperties": {
"description": "Unit or source detail for the named field.",
"type": "string"
},
"description": "Units for the numeric and time fields in this result.",
"type": "object"
}
},
"required": [
"tool",
"input",
"units",
"method",
"assumptions",
"provenance",
"monthlyHours",
"schedules",
"ics"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:f59accab9efff8c88f0d5edb09c2df99817449b6f03a77f5e2f5d2de0c546d07 | sha256sum