MCP 服务器

Croncool Cron Jobs

cool.cron/croncool
云与基础设施 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Inspects scheduled jobs, job runs, durable workflow runs, projects, and webhook delivery health, and can trigger an existing job after confirmation.

get_job
Get cron job details
Use this when someone asks about one cron job's schedule or target, or whether it is enabled and last succeeded. Returns the job's name, cron expression, type, target origin, HTTP method, content type, enabled state and last run status and time, or not-found. Not for running the job.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Job id (uuid)'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'job'], 'properties': {'job': {'anyOf': [{'type': 'object', 'required': ['id', 'projectId', 'name', 'expression', 'type', 'targetOrigin', 'httpMethod', 'contentType', 'enabled', 'lastExecutionTime', 'lastExecutionStatus', 'creationTime', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'type': {'anyOf': [{'type': 'string', 'maxLength': 60}, {'type': 'null'}]}, 'enabled': {'type': ['boolean', 'null']}, 'projectId': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'expression': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'httpMethod': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}, 'contentType': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'targetOrigin': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'lastExecutionTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastExecutionStatus': {'anyOf': [{'enum': ['success', 'failure'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}], 'description': "Null when not found, including another organization's job. Request payloads and credential-bearing URL paths, queries, fragments and userinfo are never returned."}, 'status': {'enum': ['found', 'not-found'], 'type': 'string'}}, 'additionalProperties': False}
get_job_runs
Check a job's run history
Use this when someone asks whether a cron job ran, failed or was slow, including a run just triggered. Returns recent runs newest first with success or failure, HTTP status, duration and time (no response bodies), 20 by default and 100 at most. Not for starting a run.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Job id (uuid)'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many runs to return, from 1 to 100; defaults to 20'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId', 'executions'], 'properties': {'jobId': {'type': 'string', 'maxLength': 128}, 'executions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status', 'httpStatus', 'durationMs', 'executionTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'status': {'anyOf': [{'enum': ['success', 'failure'], 'type': 'string'}, {'type': 'null'}]}, 'durationMs': {'anyOf': [{'type': 'number', 'maximum': 86400000, 'minimum': 0}, {'type': 'null'}]}, 'httpStatus': {'anyOf': [{'type': 'integer', 'maximum': 599, 'minimum': 0}, {'type': 'null'}]}, 'executionTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Runs newest first. Response bodies, error text, job request payloads and credentials are excluded.'}}, 'additionalProperties': False}
get_workflow_run
Trace a workflow run
Use this when someone asks why a durable workflow run failed or where it is stuck. Returns the run's status, timings and error code plus its steps with status, attempt, timings and error code, 50 steps by default and 200 at most. Not for listing runs.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectId', 'runId'], 'properties': {'runId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Workflow run id'}, 'projectId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Project id that owns the run'}, 'stepLimit': {'type': 'integer', 'maximum': 200, 'minimum': 1, 'description': 'How many steps to return, from 1 to 200; defaults to 50'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'run', 'steps', 'stepsTruncated'], 'properties': {'run': {'anyOf': [{'type': 'object', 'required': ['id', 'workflowName', 'status', 'creationTime', 'startedAt', 'completedAt', 'errorCode'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'status': {'anyOf': [{'enum': ['pending', 'running', 'completed', 'failed', 'cancelled'], 'type': 'string'}, {'type': 'null'}]}, 'errorCode': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'startedAt': {'$ref': '#/properties/run/anyOf/0/properties/creationTime'}, 'completedAt': {'$ref': '#/properties/run/anyOf/0/properties/creationTime'}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'workflowName': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}}, 'additionalProperties': False}, {'type': 'null'}]}, 'steps': {'type': 'array', 'items': {'type': 'object', 'required': ['stepId', 'stepName', 'status', 'attempt', 'creationTime', 'startedAt', 'completedAt', 'errorCode'], 'properties': {'status': {'anyOf': [{'enum': ['pending', 'running', 'completed', 'failed', 'retrying'], 'type': 'string'}, {'type': 'null'}]}, 'stepId': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'attempt': {'anyOf': [{'type': 'integer', 'minimum': 0}, {'type': 'null'}]}, 'stepName': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'errorCode': {'$ref': '#/properties/run/anyOf/0/properties/errorCode'}, 'startedAt': {'$ref': '#/properties/run/anyOf/0/properties/creationTime'}, 'completedAt': {'$ref': '#/properties/run/anyOf/0/properties/creationTime'}, 'creationTime': {'$ref': '#/properties/run/anyOf/0/properties/creationTime'}}, 'additionalProperties': False}, 'maxItems': 200, 'description': 'Step status, attempt, timings and machine error code. Workflow inputs, outputs, error messages, deployment details and ownership fields are excluded.'}, 'status': {'enum': ['found', 'not-found'], 'type': 'string'}, 'stepsTruncated': {'type': 'boolean', 'description': 'True when the run has more steps than were returned'}}, 'additionalProperties': False}
list_jobs
List scheduled cron jobs
Use this when someone asks what cron jobs or scheduled tasks they have, or which ones last failed. Returns each job's id, name, schedule, target origin, method, enabled state and last run status and time, 20 per page by default, with a cursor for more. Not for a job's full run history.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Jobs per page, from 1 to 100; defaults to 20'}, 'cursor': {'type': 'string', 'maxLength': 4096, 'minLength': 1, 'description': 'The nextCursor of the previous page with the same projectId; absent for the first page'}, 'projectId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Only jobs of this project'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobs', 'hasMore', 'nextCursor'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'projectId', 'name', 'expression', 'type', 'targetOrigin', 'httpMethod', 'contentType', 'enabled', 'lastExecutionTime', 'lastExecutionStatus', 'creationTime', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'type': {'anyOf': [{'type': 'string', 'maxLength': 60}, {'type': 'null'}]}, 'enabled': {'type': ['boolean', 'null']}, 'projectId': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'expression': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'httpMethod': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}, 'contentType': {'anyOf': [{'type': 'string', 'maxLength': 120}, {'type': 'null'}]}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastEditTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'targetOrigin': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'lastExecutionTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastExecutionStatus': {'anyOf': [{'enum': ['success', 'failure'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Job schedules and target origins only. Request payloads and credential-bearing URL paths, queries, fragments and userinfo are excluded.'}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}], 'description': 'Cursor for the next page with the same filters; null on the last page'}}, 'additionalProperties': False}
list_projects
List your Croncool projects
Use this when someone asks which Croncool projects they have, or a project's id is needed. Returns each project's id, name and creation time, 50 by default and 100 at most, with a flag when more exist. Not for listing jobs.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many projects to return, from 1 to 100; defaults to 50'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projects', 'hasMore'], 'properties': {'hasMore': {'type': 'boolean', 'description': 'True when more projects exist than were returned; there is no cursor'}, 'projects': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'creationTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Projects the signed-in user can access. Workflow callback configuration and secrets are excluded.'}}, 'additionalProperties': False}
list_webhook_subscriptions
Check webhook delivery health
Use this when someone asks whether their Croncool webhooks are delivering, failing or were disabled. Returns each subscription's endpoint origin, events, active state, consecutive failures, auto-disabled flag and last delivery time, 20 by default. Works only with a signed-in user session, not an API key. Not for changing or re-enabling a webhook.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many subscriptions to return, from 1 to 100; defaults to 20'}, 'projectId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Only subscriptions of this project'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['subscriptions'], 'properties': {'subscriptions': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'projectId', 'endpointOrigin', 'events', 'active', 'consecutiveFailures', 'autoDisabled', 'lastDeliveryTime', 'creationTime', 'lastEditTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'active': {'type': ['boolean', 'null']}, 'events': {'type': 'array', 'items': {'type': 'string', 'maxLength': 60}, 'maxItems': 10}, 'projectId': {'$ref': '#/properties/subscriptions/items/properties/id'}, 'autoDisabled': {'type': 'boolean'}, 'creationTime': {'$ref': '#/properties/subscriptions/items/properties/lastDeliveryTime'}, 'lastEditTime': {'$ref': '#/properties/subscriptions/items/properties/lastDeliveryTime'}, 'endpointOrigin': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'lastDeliveryTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'consecutiveFailures': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Endpoint origins and delivery health; autoDisabled marks a subscription switched off after 20 consecutive failures. Full endpoint paths and queries, signing secrets, payloads and ownership fields are excluded.'}}, 'additionalProperties': False}
list_workflow_runs
List workflow runs
Use this when someone asks about recent or failed runs of a durable workflow in a Croncool project. Returns each run's id, workflow name, status, timings and error code, newest first by default, 20 per page with a cursor, filterable by workflow and status. Not for one run's steps.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectId'], 'properties': {'sort': {'enum': ['newest', 'oldest'], 'type': 'string', 'description': 'newest (default) or oldest first'}, 'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'Runs per page, from 1 to 100; defaults to 20'}, 'cursor': {'type': 'string', 'maxLength': 4096, 'minLength': 1, 'description': 'The nextCursor of the previous page with the same project, workflow, status and sort; absent for the first page'}, 'status': {'enum': ['pending', 'running', 'completed', 'failed', 'cancelled'], 'type': 'string', 'description': 'Only runs in this status: pending, running, completed, failed or cancelled'}, 'projectId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Project id'}, 'workflowName': {'type': 'string', 'maxLength': 200, 'minLength': 1, 'description': 'Only runs of this workflow name'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['runs', 'hasMore', 'nextCursor'], 'properties': {'runs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'workflowName', 'status', 'creationTime', 'startedAt', 'completedAt', 'errorCode'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'status': {'anyOf': [{'enum': ['pending', 'running', 'completed', 'failed', 'cancelled'], 'type': 'string'}, {'type': 'null'}]}, 'errorCode': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'startedAt': {'$ref': '#/properties/runs/items/properties/creationTime'}, 'completedAt': {'$ref': '#/properties/runs/items/properties/creationTime'}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'workflowName': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Run identity, status, timings and machine error code. Workflow inputs, outputs and error messages are excluded.'}, 'hasMore': {'type': 'boolean'}, 'nextCursor': {'anyOf': [{'type': 'string', 'maxLength': 4096}, {'type': 'null'}], 'description': 'Cursor for the next page with the same filters; null on the last page'}}, 'additionalProperties': False}
list_workflows
List durable workflows
Use this when someone asks which durable workflows a Croncool project runs, or how many runs are running, pending, completed, failed or cancelled. Returns each workflow's name, run counts by status and last run time for one project, 50 by default and 100 at most. Not for individual runs.
只读 幂等
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['projectId'], 'properties': {'limit': {'type': 'integer', 'maximum': 100, 'minimum': 1, 'description': 'How many workflows to return, from 1 to 100; defaults to 50'}, 'projectId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Project id'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['workflows', 'hasMore'], 'properties': {'hasMore': {'type': 'boolean', 'description': 'True when the project has more workflows than returned'}, 'workflows': {'type': 'array', 'items': {'type': 'object', 'required': ['workflowName', 'total', 'running', 'pending', 'completed', 'failed', 'cancelled', 'lastRunAt'], 'properties': {'total': {'type': 'integer', 'minimum': 0}, 'failed': {'type': 'integer', 'minimum': 0}, 'pending': {'type': 'integer', 'minimum': 0}, 'running': {'type': 'integer', 'minimum': 0}, 'cancelled': {'type': 'integer', 'minimum': 0}, 'completed': {'type': 'integer', 'minimum': 0}, 'lastRunAt': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'workflowName': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 100, 'description': 'Run counts per workflow. Workflow inputs, outputs, error messages, callback configuration and secrets are excluded.'}}, 'additionalProperties': False}
run_job
Run a cron job now
Use this when someone asks to run or trigger a cron job now. Returns only that Croncool invoked it, not the target's response. Each call immediately sends the job's configured request again, which can write, message or bill downstream, and a repeated call sends it once more. Not for checking a run's result.
可能执行破坏性操作 可访问外部资源
输入模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['jobId'], 'properties': {'jobId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Job id (uuid) of the one job to run'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['status', 'jobId'], 'properties': {'jobId': {'type': 'string', 'maxLength': 128}, 'status': {'type': 'string', 'const': 'invoked', 'description': "Croncool invoked the job; the outcome is recorded in the job's run history"}}, 'additionalProperties': False}
show_project_overview
Show Croncool project overview
Use this when someone wants a quick overview or dashboard of one Croncool project. Returns an overview card with the project's name and creation time, whether workflow hosting is set up, and up to 12 jobs with schedule, target origin and last run status. Not for a job's run history.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['projectId'], 'properties': {'projectId': {'type': 'string', 'maxLength': 128, 'minLength': 1, 'description': 'Project id'}}}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['project', 'jobCount', 'jobCountIsLowerBound', 'jobs'], 'properties': {'jobs': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'name', 'expression', 'type', 'targetOrigin', 'httpMethod', 'lastExecutionStatus', 'lastExecutionTime'], 'properties': {'id': {'anyOf': [{'type': 'string', 'maxLength': 128}, {'type': 'null'}]}, 'name': {'type': 'string', 'maxLength': 200}, 'type': {'anyOf': [{'type': 'string', 'maxLength': 60}, {'type': 'null'}]}, 'expression': {'anyOf': [{'type': 'string', 'maxLength': 200}, {'type': 'null'}]}, 'httpMethod': {'anyOf': [{'type': 'string', 'maxLength': 16}, {'type': 'null'}]}, 'targetOrigin': {'anyOf': [{'type': 'string', 'maxLength': 2048}, {'type': 'null'}]}, 'lastExecutionTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'lastExecutionStatus': {'anyOf': [{'enum': ['success', 'failure'], 'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': False}, 'maxItems': 12, 'description': 'Up to 12 of the project jobs. Job request payloads, credential-bearing target paths or queries, organization fields and workflow callback secrets are excluded.'}, 'project': {'anyOf': [{'type': 'object', 'required': ['id', 'name', 'creationTime', 'workflowHostingConfigured'], 'properties': {'id': {'type': 'string', 'maxLength': 128}, 'name': {'type': 'string', 'maxLength': 200}, 'creationTime': {'anyOf': [{'type': 'string', 'maxLength': 32}, {'type': 'null'}]}, 'workflowHostingConfigured': {'type': 'boolean'}}, 'additionalProperties': False}, {'type': 'null'}]}, 'jobCount': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0}, 'jobCountIsLowerBound': {'type': 'boolean'}}, 'additionalProperties': False}
已更改
show_project_overview
2026年9月29日 02:50
已更改
list_webhook_subscriptions
2026年9月29日 02:50
已更改
get_workflow_run
2026年9月29日 02:50
已更改
list_workflow_runs
2026年9月29日 02:50
已更改
list_workflows
2026年9月29日 02:50
已更改
get_job_runs
2026年9月29日 02:50
已更改
run_job
2026年9月29日 02:50
已更改
get_job
2026年9月29日 02:50
已更改
list_jobs
2026年9月29日 02:50
已更改
list_projects
2026年9月29日 02:50
已添加
show_project_overview
2026年9月21日 02:40
已添加
list_webhook_subscriptions
2026年9月21日 02:40
已添加
get_workflow_run
2026年9月21日 02:40
已添加
list_workflow_runs
2026年9月21日 02:40
已添加
list_workflows
2026年9月21日 02:40
已添加
get_job_runs
2026年9月21日 02:40
已添加
run_job
2026年9月21日 02:40
已添加
get_job
2026年9月21日 02:40
已添加
list_jobs
2026年9月21日 02:40
已添加
list_projects
2026年9月21日 02:40