Servidor MCP
OperatorNest tools
com.operatornest/tools
Público y accesible
MCP 2025-11-25
Qué hace este MCP
Calculate API and subscription costs, meeting time zones, recurring schedules and cron matches.
Capacidades
Herramientas
5
herramientas
ai_api_cost
AI API cost
Estimate USD per request, day and month from token counts, caching and published batch discounts. Use for an API workload budget, not chat subscriptions. Model IDs use providerId/id from https://operatornest.com/api/models?subset=pricing; some catalog records are unavailable through MCP. Rates are from the dated catalog snapshot returned with the result.
Solo lectura
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['inputTokens', 'cachedInputTokens', 'outputTokens', 'requestsPerDay', 'requestsPerMonth', 'modelIds'], 'properties': {'modelIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'minItems': 1, 'uniqueItems': True}, 'inputTokens': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'outputTokens': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'batchModelIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'minItems': 0, 'description': 'Optional model IDs using a published batch discount.', 'uniqueItems': True}, 'requestsPerDay': {'type': 'integer', 'maximum': 10000000, 'minimum': 0}, 'requestsPerMonth': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'cachedInputTokens': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['tool', 'input', 'units', 'method', 'assumptions', 'provenance', 'estimates'], 'properties': {'tool': {'const': 'ai-api-cost-calculator'}, 'input': {'type': 'object', 'required': ['inputTokens', 'cachedInputTokens', 'outputTokens', 'requestsPerDay', 'requestsPerMonth', 'modelIds'], 'properties': {'modelIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'minItems': 1, 'uniqueItems': True}, 'inputTokens': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'outputTokens': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'batchModelIds': {'type': 'array', 'items': {'type': 'string', 'pattern': '\\S', 'maxLength': 200, 'minLength': 1}, 'maxItems': 20, 'minItems': 0, 'description': 'Optional model IDs using a published batch discount.', 'uniqueItems': True}, 'requestsPerDay': {'type': 'integer', 'maximum': 10000000, 'minimum': 0}, 'requestsPerMonth': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}, 'cachedInputTokens': {'type': 'integer', 'maximum': 100000000, 'minimum': 0}}, 'additionalProperties': False}, 'units': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'method': {'type': 'string'}, 'estimates': {'type': 'array', 'items': {'type': 'object', 'required': ['modelId', 'name', 'perRequest', 'perDay', 'perMonth', 'longContext', 'batch', 'ratesPerMillion', 'sourceUrl', 'note'], 'properties': {'name': {'type': 'string'}, 'note': {'type': 'string'}, 'batch': {'type': 'boolean'}, 'perDay': {'type': ['number', 'null']}, 'modelId': {'type': 'string'}, 'perMonth': {'type': ['number', 'null']}, 'sourceUrl': {'type': 'string', 'format': 'uri'}, 'perRequest': {'type': ['number', 'null']}, 'longContext': {'type': 'boolean'}, 'ratesPerMillion': {'type': 'object', 'required': ['input', 'cachedInput', 'output'], 'properties': {'input': {'type': ['number', 'null']}, 'output': {'type': ['number', 'null']}, 'cachedInput': {'type': ['number', 'null']}}, 'additionalProperties': False}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
ai_subscription_stack_cost
AI subscription stack cost
Total selected AI chat and coding subscriptions in USD and identify overlapping capabilities. Returns monthly charges, annual billing or twelve-charge estimates, plans and dated official sources. Use for reviewing a subscription stack, not API token costs.
Solo lectura
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['planIds'], 'properties': {'planIds': {'type': 'array', 'items': {'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, 'uniqueItems': True}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['tool', 'input', 'method', 'assumptions', 'units', 'plans', 'monthlyTotal', 'annualTotal', 'overlap', 'provenance'], 'properties': {'tool': {'const': 'ai-subscription-cost-calculator'}, 'input': {'type': 'object', 'required': ['planIds'], 'properties': {'planIds': {'type': 'array', 'items': {'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, 'uniqueItems': True}}, 'additionalProperties': False}, 'plans': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'provider', 'name', 'monthly', 'annual', 'capabilities', 'modelFamilies', 'source', 'modelSource', 'checked'], 'properties': {'id': {'type': 'string'}, 'name': {'type': 'string'}, 'annual': {'type': ['number', 'null']}, 'source': {'type': 'string'}, 'checked': {'type': 'string'}, 'monthly': {'type': 'number'}, 'provider': {'type': 'string'}, 'annualNote': {'type': 'string'}, 'sourceNote': {'type': 'string'}, 'modelSource': {'type': 'string'}, 'capabilities': {'type': 'object', 'additionalProperties': {'type': 'boolean'}}, 'modelFamilies': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'units': {'type': 'object', 'required': ['totals'], 'properties': {'totals': {'const': 'USD'}}, 'additionalProperties': False}, 'method': {'type': 'string'}, 'overlap': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'planIds'], 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'planIds': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'required': ['checked', 'sources'], 'properties': {'checked': {'type': 'string'}, 'sources': {'type': 'array', 'items': {'type': 'object', 'required': ['planId', 'url', 'checked'], 'properties': {'url': {'type': 'string'}, 'planId': {'type': 'string'}, 'checked': {'type': 'string'}}, 'additionalProperties': False}}}, 'additionalProperties': False}, 'annualTotal': {'type': 'number'}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'monthlyTotal': {'type': 'number'}}, 'additionalProperties': False}
cron_next_runs
Cron next runs
Preview 1–10 cron matches strictly after a supplied UTC instant within 366 days, in an IANA time zone. Supports numeric stars, lists, ranges, steps and weekday names for GitHub, Cloudflare, Quartz and AWS dialects. L, W, # and named months are rejected. This does not install or run a schedule.
Solo lectura
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['expression', 'dialect', 'zone', 'after', 'count'], 'properties': {'zone': {'type': 'string', 'pattern': '\\S', 'maxLength': 100, 'minLength': 1}, 'after': {'type': 'string', 'format': 'date-time', 'maxLength': 30, 'description': 'UTC ISO instant from 2000 through 2100; matches are strictly after this instant.'}, 'count': {'type': 'integer', 'maximum': 10, 'minimum': 1}, 'dialect': {'enum': ['github', 'cloudflare', 'quartz', 'aws'], 'type': 'string'}, 'expression': {'type': 'string', 'pattern': '\\S', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['tool', 'input', 'method', 'assumptions', 'runs', 'searchDays', 'provenance'], 'properties': {'runs': {'type': 'array', 'items': {'type': 'object', 'required': ['startUtc', 'label'], 'properties': {'label': {'type': 'string'}, 'startUtc': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}, 'maxItems': 10}, 'tool': {'const': 'cron-expression-generator'}, 'input': {'type': 'object', 'required': ['expression', 'dialect', 'zone', 'after', 'count'], 'properties': {'zone': {'type': 'string', 'pattern': '\\S', 'maxLength': 100, 'minLength': 1}, 'after': {'type': 'string', 'format': 'date-time', 'maxLength': 30, 'description': 'UTC ISO instant from 2000 through 2100; matches are strictly after this instant.'}, 'count': {'type': 'integer', 'maximum': 10, 'minimum': 1}, 'dialect': {'enum': ['github', 'cloudflare', 'quartz', 'aws'], 'type': 'string'}, 'expression': {'type': 'string', 'pattern': '\\S', 'maxLength': 200, 'minLength': 1}}, 'additionalProperties': False}, 'method': {'type': 'string'}, 'provenance': {'type': 'object', 'required': ['sourceUrl', 'checked'], 'properties': {'checked': {'type': 'string'}, 'sourceUrl': {'type': 'string'}}, 'additionalProperties': False}, 'searchDays': {'const': 366}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}}, 'additionalProperties': False}
meeting_time_zones
Meeting time zones
Find 30-minute meeting times inside 09:00–17:00 for 2–8 people in IANA time zones. The date is local to the first person. Applies daylight saving changes; does not read calendars or send invitations.
Solo lectura
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['date', 'people'], 'properties': {'date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Real date from 2000-01-01 to 2100-12-31.'}, 'people': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'zone'], 'properties': {'name': {'type': 'string', 'pattern': '\\S', 'maxLength': 80, 'minLength': 1}, 'zone': {'type': 'string', 'pattern': '\\S', 'maxLength': 100, 'minLength': 1, 'description': 'An IANA time zone supported by Intl.DateTimeFormat, such as America/New_York.'}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 2}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['tool', 'input', 'units', 'method', 'assumptions', 'provenance', 'rows', 'overlapCount', 'bestSlots'], 'properties': {'rows': {'type': 'array', 'items': {'type': 'object', 'required': ['start', 'startUtc', 'inside', 'labels', 'score'], 'properties': {'score': {'type': 'number'}, 'start': {'type': 'integer', 'description': 'Unix epoch milliseconds.'}, 'inside': {'type': 'array', 'items': {'type': 'boolean'}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'startUtc': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}}, 'tool': {'const': 'meeting-time-zone-planner'}, 'input': {'type': 'object', 'required': ['date', 'people'], 'properties': {'date': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Real date from 2000-01-01 to 2100-12-31.'}, 'people': {'type': 'array', 'items': {'type': 'object', 'required': ['name', 'zone'], 'properties': {'name': {'type': 'string', 'pattern': '\\S', 'maxLength': 80, 'minLength': 1}, 'zone': {'type': 'string', 'pattern': '\\S', 'maxLength': 100, 'minLength': 1, 'description': 'An IANA time zone supported by Intl.DateTimeFormat, such as America/New_York.'}}, 'additionalProperties': False}, 'maxItems': 8, 'minItems': 2}}, 'additionalProperties': False}, 'units': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'method': {'type': 'string'}, 'bestSlots': {'type': 'array', 'items': {'type': 'object', 'required': ['start', 'startUtc', 'inside', 'labels', 'score'], 'properties': {'score': {'type': 'number'}, 'start': {'type': 'integer', 'description': 'Unix epoch milliseconds.'}, 'inside': {'type': 'array', 'items': {'type': 'boolean'}}, 'labels': {'type': 'array', 'items': {'type': 'string'}}, 'startUtc': {'type': 'string', 'format': 'date-time'}}, 'additionalProperties': False}, 'maxItems': 3}, 'provenance': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'overlapCount': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}
recurring_schedule
Recurring schedule
Estimate monthly hours for weekly, biweekly and monthly tasks and return recurrence rules plus a complete RFC 5545 calendar. Use to prepare a schedule; no task is executed or calendar updated. Times float in the importing calendar’s local time zone.
Solo lectura
Idempotente
Esquema de entrada
{'type': 'object', 'required': ['startDate', 'tasks'], 'properties': {'tasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'frequency', 'day', 'monthday', 'minutes', 'time', 'owner'], 'properties': {'day': {'enum': ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'], 'type': 'string'}, 'time': {'type': 'string', 'pattern': '^([01][0-9]|2[0-3]):[0-5][0-9]$'}, 'owner': {'enum': ['delegate', 'keep', 'decide'], 'type': 'string'}, 'title': {'type': 'string', 'pattern': '\\S', 'maxLength': 80, 'minLength': 1}, 'minutes': {'type': 'integer', 'maximum': 1440, 'minimum': 1}, 'monthday': {'type': 'integer', 'maximum': 28, 'minimum': 1}, 'frequency': {'enum': ['weekly', 'biweekly', 'monthly'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 0}, 'startDate': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Real date from 2000-01-01 to 2100-12-31.'}}, 'additionalProperties': False}
Esquema de salida
{'type': 'object', 'required': ['tool', 'input', 'units', 'method', 'assumptions', 'provenance', 'monthlyHours', 'schedules', 'ics'], 'properties': {'ics': {'type': 'string', 'description': 'RFC 5545 calendar with CRLF folding and floating local times.'}, 'tool': {'const': 'recurring-task-planner'}, 'input': {'type': 'object', 'required': ['startDate', 'tasks'], 'properties': {'tasks': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'frequency', 'day', 'monthday', 'minutes', 'time', 'owner'], 'properties': {'day': {'enum': ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'], 'type': 'string'}, 'time': {'type': 'string', 'pattern': '^([01][0-9]|2[0-3]):[0-5][0-9]$'}, 'owner': {'enum': ['delegate', 'keep', 'decide'], 'type': 'string'}, 'title': {'type': 'string', 'pattern': '\\S', 'maxLength': 80, 'minLength': 1}, 'minutes': {'type': 'integer', 'maximum': 1440, 'minimum': 1}, 'monthday': {'type': 'integer', 'maximum': 28, 'minimum': 1}, 'frequency': {'enum': ['weekly', 'biweekly', 'monthly'], 'type': 'string'}}, 'additionalProperties': False}, 'maxItems': 20, 'minItems': 0}, 'startDate': {'type': 'string', 'format': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Real date from 2000-01-01 to 2100-12-31.'}}, 'additionalProperties': False}, 'units': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'method': {'type': 'string'}, 'schedules': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'frequency', 'day', 'monthday', 'minutes', 'time', 'owner', 'firstDate', 'recurrenceRule'], 'properties': {'day': {'enum': ['MO', 'TU', 'WE', 'TH', 'FR', 'SA', 'SU'], 'type': 'string'}, 'time': {'type': 'string', 'pattern': '^([01][0-9]|2[0-3]):[0-5][0-9]$'}, 'owner': {'enum': ['delegate', 'keep', 'decide'], 'type': 'string'}, 'title': {'type': 'string', 'pattern': '\\S', 'maxLength': 80, 'minLength': 1}, 'minutes': {'type': 'integer', 'maximum': 1440, 'minimum': 1}, 'monthday': {'type': 'integer', 'maximum': 28, 'minimum': 1}, 'firstDate': {'type': 'string', 'format': 'date'}, 'frequency': {'enum': ['weekly', 'biweekly', 'monthly'], 'type': 'string'}, 'recurrenceRule': {'type': 'string'}}, 'additionalProperties': False}}, 'provenance': {'type': 'object', 'additionalProperties': {'type': 'string'}}, 'assumptions': {'type': 'array', 'items': {'type': 'string'}}, 'monthlyHours': {'type': 'number'}}, 'additionalProperties': False}
Historial
Cambios recientes en herramientas
Añadido
cron_next_runs
3 de October de 2026 a las 02:40
Añadido
ai_subscription_stack_cost
3 de October de 2026 a las 02:40
Añadido
recurring_schedule
3 de October de 2026 a las 02:40
Añadido
meeting_time_zones
3 de October de 2026 a las 02:40
Añadido
ai_api_cost
3 de October de 2026 a las 02:40