Croncool Cron Jobs
Server Details
Check your cron jobs, recent runs, workflows and webhooks, and run a job now when you confirm.
- Status
- Healthy
- Uptime
- 59.3% over 68 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 11 tools
Most tools have clearly distinct purposes and the descriptions explicitly add 'Not for...' boundaries (e.g. get_job vs get_job_runs vs run_job, get_workflow_run vs list_workflow_runs). The main soft spot is the pair open_croncool and show_project_overview, which both surface project/job info and could be confused with list_projects/list_jobs, though the interactive-vs-read-only framing helps.
Strong, predictable verb_noun snake_case pattern throughout (get_job, list_jobs, run_job, list_workflow_runs, show_project_overview). The slight deviation is open_croncool, which is a bare verb plus product name rather than verb_noun, but it reads as expected branding.
11 tools is well-scoped for a cron/workflow domain spanning jobs, projects, workflows, webhooks, and runs. Each tool maps to a distinct read or action, with no bloat.
The surface is heavily read-oriented plus a single run_job trigger; there is no create_job, update_job, delete_job, or enable/disable toggle despite enabled state being a core attribute. Webhook subscriptions are list-only with no re-enable or change, and workflows cannot be created or triggered, leaving notable lifecycle gaps.
Available Tools
11 toolsget_jobGet cron job detailsARead-onlyIdempotentInspect
Use this when the user wants to read the scheduling configuration and latest execution metadata of one CronCool job selected by its exact identifier. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job id (uuid) |
Output Schema
| Name | Required | Description |
|---|---|---|
| job | Yes | Null when not found, including another organization's job. Request payloads and credential-bearing URL paths, queries, fragments and userinfo are never returned. |
| status | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered externally. The description adds the not-found outcome and notes that only the latest run is returned, which is modest added value beyond the annotations but not deep behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the usage trigger and purpose, with the exclusion appended last. The return-field enumeration is slightly list-heavy but still compact and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description need not explain return values, yet it still names the key returned fields and the not-found case. Combined with fully covered annotations and a documented parameter, the definition is sufficient to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single jobId parameter is documented as a uuid with length bounds. The description only restates this as 'exact identifier', adding little beyond what the schema already provides, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (scheduling configuration and latest execution metadata of one job), scoped to an exact identifier. It also distinguishes itself from siblings by ruling out execution ('Not for running the job'), so an agent can separate it from run_job and get_job_runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear trigger ('Use this when the user wants to read...') and an explicit exclusion for job execution. It does not, however, name get_job_runs as the alternative when the user wants execution history rather than latest status, leaving that inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_job_runsCheck a job's run historyARead-onlyIdempotentInspect
Use this when the user wants to read execution history for one CronCool job to inspect success, failure, HTTP status and duration. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job id (uuid) | |
| limit | No | How many runs to return, from 1 to 100; defaults to 20 |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | Yes | |
| executions | Yes | Runs newest first. Response bodies, error text, job request payloads and credentials are excluded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds real behavioral context beyond that: ordering (newest first), truncation (no response bodies), and pagination bounds (20 default, 100 max).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences: usage first, return shape second, exclusion last. No filler and nothing buried.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no further explanation, and the description still summarizes the shape. Annotations cover safety, schema covers parameters — nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both jobId and limit are already documented, including the defaults and bounds the description repeats. The description adds no syntax or format meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('read') and resource ('execution history for one CronCool job'), and scopes it to a single job, which distinguishes it from sibling listings like list_workflow_runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger ('Use this when the user wants to read execution history for one CronCool job') and adds an exclusion ('Not for starting a run', pointing away from run_job). It doesn't name alternative read tools such as get_job or get_workflow_run, so it falls just short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_workflow_runTrace a workflow runARead-onlyIdempotentInspect
Use this when the user wants to read one CronCool workflow execution and a bounded page of its step statuses for troubleshooting. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| runId | Yes | Workflow run id | |
| projectId | Yes | Project id that owns the run | |
| stepLimit | No | How many steps to return, from 1 to 200; defaults to 50 |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | Yes | |
| steps | Yes | Step status, attempt, timings and machine error code. Workflow inputs, outputs, error messages, deployment details and ownership fields are excluded. |
| status | Yes | |
| stepsTruncated | Yes | True when the run has more steps than were returned |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/indempotent/non-destructive, so the safety profile is covered. The description adds genuinely new behavioral context: the step list is paginated and bounded (50 default, 200 max), so the agent knows results may be partial and may need the limit raised — though the returned field list largely duplicates the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger condition, then return contents, then the exclusion. No filler or redundancy; every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only trace tool with a full input schema, an output schema, and complete annotations, the description supplies everything else an agent needs: purpose, trigger, exclusion, and the bounded nature of the step page.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so runId, projectId and stepLimit are already documented in the schema; the description's restatement of the 50/200 step bounds adds no syntax or semantics beyond that. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb and resource (read one CronCool workflow execution plus a bounded page of its step statuses) and gives the intent (troubleshooting). The closing 'Not for listing runs' separates it from list_workflow_runs without the agent needing to open either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger condition ('Use this when the user wants to read one ... for troubleshooting') and closes with an explicit exclusion ('Not for listing runs'), pointing the agent at the listing sibling by implication. Both when-to-use and when-not are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsList scheduled cron jobsARead-onlyIdempotentInspect
Use this when the user wants to list scheduled jobs in CronCool to inspect schedules, enabled state and the latest execution status. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Jobs per page, from 1 to 100; defaults to 20 | |
| cursor | No | The nextCursor of the previous page with the same projectId; absent for the first page | |
| projectId | No | Only jobs of this project |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | Job schedules and target origins only. Request payloads and credential-bearing URL paths, queries, fragments and userinfo are excluded. |
| hasMore | Yes | |
| nextCursor | Yes | Cursor for the next page with the same filters; null on the last page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds pagination behavior (20 per page by default, cursor for more) and enumerates the returned fields, which is useful context beyond the annotations, though it doesn't discuss ordering or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with zero filler: trigger first, then return/pagination behavior, then the exclusion. Nothing is redundant and the important routing information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so the description needn't explain return values, yet it still summarizes them. Combined with pagination detail and the scope exclusion, an agent has everything needed to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so limit, cursor and projectId are already fully documented. The description restates the default page size and cursor semantics but adds no syntax or format detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (list scheduled jobs in CronCool) plus the inspection goal (schedules, enabled state, latest execution status). It also explicitly carves itself away from the run-history sibling with 'Not for a job's full run history', so an agent can distinguish it from get_job_runs without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit trigger ('Use this when the user wants to list scheduled jobs...') and gives one clear exclusion ('Not for a job's full run history'). It stops short of naming the sibling tool to use instead, leaving the agent to infer get_job_runs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsList your Croncool projectsARead-onlyIdempotentInspect
Use this when the user wants to list projects accessible to the connected CronCool account, including identifiers needed to select a project. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many projects to return, from 1 to 100; defaults to 50 |
Output Schema
| Name | Required | Description |
|---|---|---|
| hasMore | Yes | True when more projects exist than were returned; there is no cursor |
| projects | Yes | Projects the signed-in user can access. Workflow callback configuration and secrets are excluded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so safety is covered. The description goes beyond them by disclosing pagination behavior ('50 by default and 100 at most, with a flag when more exist') and the fact that returned identifiers are needed to select a project, which is real operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with no filler, and the trigger condition is front-loaded before the scope, payload, and pagination details. Every clause carries information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with an output schema present, the description covers the trigger, the exclusion, the scoping to the connected account, and the pagination ceiling. Nothing required to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional parameter with 100% schema description coverage, so the schema already documents the 1–100 range and the 50 default. The description restates those bounds without adding format or interaction detail, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb and resource ('list projects accessible to the connected CronCool account') and states the scope constraint (account-bound, not global). The closing clause 'Not for listing jobs' explicitly differentiates it from the sibling list_jobs, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear trigger ('Use this when the user wants to list projects') plus an explicit exclusion ('Not for listing jobs'), covering when-to-use and when-not. It stops short of naming the sibling to use instead (list_jobs), which is the only thing separating this from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_webhook_subscriptionsCheck webhook delivery healthARead-onlyIdempotentInspect
Use this when the user wants to read CronCool webhook subscription configuration and recorded delivery failures. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many subscriptions to return, from 1 to 100; defaults to 20 | |
| projectId | No | Only subscriptions of this project |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscriptions | Yes | 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. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new context beyond them: the signed-in session requirement (explicitly not an API key) and the default page size of 20. It stops short of ordering/pagination or failure-recording semantics, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four tight sentences, front-loaded with the trigger and the return payload, then auth constraint, then exclusion. The trailing ', 20 by default' is awkwardly spliced onto the field list and duplicates schema information, a minor structural blemish.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, enumerated return fields are bonus rather than necessity, and annotations cover the safety profile. The auth prerequisite and the read-only boundary are disclosed, leaving only minor gaps such as how results behave when projectId is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both `limit` and `projectId` are fully documented in the schema and the baseline is 3. The description repeats the default of 20 and never mentions the projectId scoping parameter, so it adds nothing the schema does not already carry.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with a specific trigger and verb+resource: reading CronCool webhook subscription configuration and recorded delivery failures. No sibling tool covers webhooks, so the scope is unambiguous, and the closing 'Not for changing or re-enabling a webhook' pins down the boundary further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit trigger ('Use this when the user wants to read...') and an explicit exclusion ('Not for changing or re-enabling a webhook'), which is exactly the when/when-not split an agent needs. No webhook-mutation sibling exists to name, so no routing is left ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflow_runsList workflow runsARead-onlyIdempotentInspect
Use this when the user wants to list executions of a durable workflow in CronCool, with optional workflow-name and status filters. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | newest (default) or oldest first | |
| limit | No | Runs per page, from 1 to 100; defaults to 20 | |
| cursor | No | The nextCursor of the previous page with the same project, workflow, status and sort; absent for the first page | |
| status | No | Only runs in this status: pending, running, completed, failed or cancelled | |
| projectId | Yes | Project id | |
| workflowName | No | Only runs of this workflow name |
Output Schema
| Name | Required | Description |
|---|---|---|
| runs | Yes | Run identity, status, timings and machine error code. Workflow inputs, outputs and error messages are excluded. |
| hasMore | Yes | |
| nextCursor | Yes | Cursor for the next page with the same filters; null on the last page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely new behavioral context: return fields, newest-first default ordering, 20-per-page pagination with a cursor, and filterability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with the usage trigger front-loaded and the exclusion placed last. Minor redundancy: the workflow/status filtering is stated twice, which slightly dilutes the efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the return-shape sentence is a bonus rather than a necessity. All an agent needs to invoke this list tool correctly – trigger, scope, filters, ordering, paging, exclusion – is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all six parameters including enums, limits and cursor semantics. The description paraphrases the filter and paging behavior but adds no format or syntax detail beyond what the schema provides, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('list executions of a durable workflow') and immediately scopes it against the sibling get_workflow_run with 'Not for one run's steps.' An agent can distinguish it from get_workflow_run and get_job_runs without opening any schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Opens with an explicit when-to-use trigger ('when the user wants to list executions...') and includes an exclusion ('Not for one run's steps'). It stops short of naming the sibling to use instead, so the routing is clear but not fully closed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_workflowsList durable workflowsARead-onlyIdempotentInspect
Use this when the user wants to list durable workflow definitions and run-count summaries for one CronCool project. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many workflows to return, from 1 to 100; defaults to 50 | |
| projectId | Yes | Project id |
Output Schema
| Name | Required | Description |
|---|---|---|
| hasMore | Yes | True when the project has more workflows than returned |
| workflows | Yes | Run counts per workflow. Workflow inputs, outputs, error messages, callback configuration and secrets are excluded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds genuine behavioral context beyond that: the exact return contents (name, run counts by status, last run time) and the pagination envelope (50 default, 100 max), which is useful for an agent. It stops short of auth or rate-limit context, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the use case, followed by scope/return behavior and then the exclusion. Every sentence carries information and nothing is padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, project scope, return summary, limit envelope, and an explicit exclusion, which is enough for a low-complexity list tool with only two parameters. Since an output schema exists, the description's recounting of return fields is mildly redundant, keeping it from a full 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description's '50 by default and 100 at most' simply restates the limit constraint already in the schema and adds no new semantics. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('list durable workflow definitions and run-count summaries') plus the scoping constraint ('for one CronCool project'). The closing exclusion 'Not for individual runs' cleanly separates it from list_workflow_runs and get_workflow_run without needing the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides a clear when-to-use trigger ('when the user wants to list durable workflow definitions and run-count summaries') and a when-not ('Not for individual runs'). The alternative tool for runs is only implied, not named, so it falls short of the explicit routing seen in the best examples.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_croncoolCronCool Cron JobsARead-onlyIdempotentInspect
Use this when the user wants to open the CronCool project-selection sidebar when the user requests an interactive project and job browser. Returns up to 100 projects to start from (no request payloads, workflow bodies, secrets or full target URLs). Not for running jobs or changing their configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| items | Yes | |
| truncated | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds meaningful behavioral context beyond annotations: returns up to 100 projects, and explicitly not request payloads, workflow bodies, secrets, or full target URLs. Clarifies scope and data limitations, though annotations already cover read-only and idempotent traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the trigger, then scope and exclusions. Some minor repetition in 'when the user wants' and 'when the user requests', but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a zero-parameter sidebar opener with an output schema. It covers when to use, what is returned, and what is not included, which is everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so baseline is 4. The description compensates by explaining the return scope (up to 100 projects) and what is excluded, which is useful even with an output schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource: opening the CronCool project-selection sidebar for interactive browsing. This differentiates it from sibling list_projects and get_job. The phrasing is slightly redundant ('when the user wants to open' and 'when the user requests'), but the purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use it, and gives a negative constraint ('Not for running jobs or changing their configuration'), plus the alternative interaction modes are implicitly available via siblings. Lacks a direct pointer to a specific alternative for programmatic listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_jobRun a cron job nowADestructiveInspect
Use this when the user wants to immediately execute the configured request for one CronCool job. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| jobId | Yes | Job id (uuid) of the one job to run |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobId | Yes | |
| status | Yes | Croncool invoked the job; the outcome is recorded in the job's run history |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (destructive, non-idempotent, open-world), the description explains the mechanism: each call re-sends the job's configured request, which 'can write, message or bill downstream,' and a repeat call sends it once more. It also discloses the return contract (only an invocation acknowledgement, not the target's response), information neither the annotations nor the output schema convey as clearly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, front-loaded with the trigger condition and followed by the return contract and the side-effect warning; every sentence carries distinct information. Minor awkwardness in the second sentence slightly reduces polish but not substance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter action tool, the description covers the trigger, the non-obvious side effects, the non-idempotent behavior, and the narrow return value. Nothing an agent needs to call it correctly or interpret its result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single jobId parameter is fully documented in the schema as a uuid. The description adds no further parameter-level detail, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'immediately execute the configured request for one CronCool job.' It is unambiguously distinct from read siblings like get_job_runs because it defines the target action (send the configured request) rather than observing runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use it ('when the user wants to immediately execute...') and adds an explicit exclusion ('Not for checking a run's result'), which routes the agent away from run-inspection siblings. It stops short of naming the alternative tool, so it falls just short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
show_project_overviewShow Croncool project overviewARead-onlyIdempotentInspect
Use this when the user wants to render a read-only overview of one CronCool project and a bounded preview of its scheduled jobs. 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.
| Name | Required | Description | Default |
|---|---|---|---|
| projectId | Yes | Project id |
Output Schema
| Name | Required | Description |
|---|---|---|
| jobs | Yes | 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 | Yes | |
| jobCount | Yes | |
| jobCountIsLowerBound | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive/non-open-world, so the safety profile is covered. The description adds real value beyond that: the result is an overview card with name, creation time, workflow-hosting status, and a bounded 12-job preview with schedule/origin/last-run status.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences, zero filler, front-loaded with the trigger condition followed by the return contents and the exclusion. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a single-parameter read tool: the trigger, the bounded behavior, and the returned fields are all stated, and an output schema exists so no further return-value detail is required. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and there is only one parameter (projectId), so the schema fully documents it. The description adds no syntax or format detail for projectId beyond 'one CronCool project,' which is baseline behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('render a read-only overview of one CronCool project') and bounds the scope ('up to 12 jobs'). It explicitly carves itself out from siblings with 'Not for a job's run history,' routing agents toward get_job_runs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear triggering condition ('when the user wants to render...') and an explicit exclusion ('Not for a job's run history'). It stops short of naming the alternative sibling tool, but the negative guidance is unambiguous enough to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
- Added
open_croncool
10 tool updates
- Changed
get_job1 field changed- added
Output schema / properties / job / descriptionAdded value: +"Null when not found, including another organization's job. Request payloads and credential-bearing URL paths, queries, fragments and userinfo are never returned."
- Changed
get_job_runs3 fields changed- changed
Input schema / properties / jobId / descriptionPrevious value: -"Job id (uuid) to fetch execution history for"New value: +"Job id (uuid)" - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of executions to return (default 20, max 100)"New value: +"How many runs to return, from 1 to 100; defaults to 20" - added
Output schema / properties / executions / descriptionAdded value: +"Runs newest first. Response bodies, error text, job request payloads and credentials are excluded."
- Changed
get_workflow_run4 fields changed- changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id owning the run (required)"New value: +"Project id that owns the run" - changed
Input schema / properties / stepLimit / descriptionPrevious value: -"Maximum number of steps to return (default 50, max 200)"New value: +"How many steps to return, from 1 to 200; defaults to 50" - added
Output schema / properties / steps / descriptionAdded value: +"Step status, attempt, timings and machine error code. Workflow inputs, outputs, error messages, deployment details and ownership fields are excluded." - added
Output schema / properties / stepsTruncated / descriptionAdded value: +"True when the run has more steps than were returned"
- Changed
list_jobs5 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque nextCursor from an earlier list_jobs call with the same project filter"New value: +"The nextCursor of the previous page with the same projectId; absent for the first page" - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of jobs to return (default 20, max 100)"New value: +"Jobs per page, from 1 to 100; defaults to 20" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Only return jobs owned by this exact project id"New value: +"Only jobs of this project" - added
Output schema / properties / jobs / descriptionAdded value: +"Job schedules and target origins only. Request payloads and credential-bearing URL paths, queries, fragments and userinfo are excluded." - added
Output schema / properties / nextCursor / descriptionAdded value: +"Cursor for the next page with the same filters; null on the last page"
- Changed
list_projects3 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of projects to return (default 50, max 100)"New value: +"How many projects to return, from 1 to 100; defaults to 50" - added
Output schema / properties / hasMore / descriptionAdded value: +"True when more projects exist than were returned; there is no cursor" - added
Output schema / properties / projects / descriptionAdded value: +"Projects the signed-in user can access. Workflow callback configuration and secrets are excluded."
- Changed
list_webhook_subscriptions3 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of subscriptions to return (default 20, max 100)"New value: +"How many subscriptions to return, from 1 to 100; defaults to 20" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Only return subscriptions of this project"New value: +"Only subscriptions of this project" - added
Output schema / properties / subscriptions / descriptionAdded value: +"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."
- Changed
list_workflow_runs8 fields changed- changed
Input schema / properties / cursor / descriptionPrevious value: -"Opaque nextCursor from an earlier call with the same project, workflow, status, and sort filters"New value: +"The nextCursor of the previous page with the same project, workflow, status and sort; absent for the first page" - changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of runs to return (default 20, max 100)"New value: +"Runs per page, from 1 to 100; defaults to 20" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id whose workflow runs should be listed (required)"New value: +"Project id" - changed
Input schema / properties / sort / descriptionPrevious value: -"Order of the returned runs (default newest first)"New value: +"newest (default) or oldest first" - changed
Input schema / properties / status / descriptionPrevious value: -"Only return runs in this status"New value: +"Only runs in this status: pending, running, completed, failed or cancelled" - changed
Input schema / properties / workflowName / descriptionPrevious value: -"Only return runs of this workflow"New value: +"Only runs of this workflow name" - added
Output schema / properties / nextCursor / descriptionAdded value: +"Cursor for the next page with the same filters; null on the last page" - added
Output schema / properties / runs / descriptionAdded value: +"Run identity, status, timings and machine error code. Workflow inputs, outputs and error messages are excluded."
- Changed
list_workflows4 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Maximum number of workflows to return (default 50, max 100)"New value: +"How many workflows to return, from 1 to 100; defaults to 50" - changed
Input schema / properties / projectId / descriptionPrevious value: -"Project id whose workflows should be listed (required)"New value: +"Project id" - added
Output schema / properties / hasMore / descriptionAdded value: +"True when the project has more workflows than returned" - added
Output schema / properties / workflows / descriptionAdded value: +"Run counts per workflow. Workflow inputs, outputs, error messages, callback configuration and secrets are excluded."
- Changed
run_job2 fields changed- changed
Input schema / properties / jobId / descriptionPrevious value: -"Job id (uuid) of the job to run immediately"New value: +"Job id (uuid) of the one job to run" - added
Output schema / properties / status / descriptionAdded value: +"Croncool invoked the job; the outcome is recorded in the job's run history"
- Changed
show_project_overview2 fields changed- changed
Input schema / properties / projectId / descriptionPrevious value: -"Croncool project id to render"New value: +"Project id" - added
Output schema / properties / jobs / descriptionAdded value: +"Up to 12 of the project jobs. Job request payloads, credential-bearing target paths or queries, organization fields and workflow callback secrets are excluded."
10 tool updates
- First observed
get_job - First observed
get_job_runs - First observed
get_workflow_run - First observed
list_jobs - First observed
list_projects - First observed
list_webhook_subscriptions - First observed
list_workflow_runs - First observed
list_workflows - First observed
run_job - First observed
show_project_overview
Related MCP Connectors
Debug background jobs — runs, traces, spans, schedules, queues and deployments.
Manage CronPulser from an AI agent: HTTP, Runner and TLS jobs, alerts, Runners and run history.
Discover Playwright workflows, start runs, and inspect results in Playrunner Cloud.
Dead-man's-switch for cron jobs & AI agents. Import a crontab to arm one silent-miss alert per job.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceShows, cron slot by cron slot, how late each scheduled GitHub Actions run started, which slots never ran, and whether your config or GitHub's scheduler is to blame; can catch up missed slots without double-running.MIT
- FlicenseNot gradedqualityDmaintenanceDiagnoses scheduled GitHub Actions workflows for anomalies like stuck jobs, retry storms, duration creep, or recent failures.-
- AlicenseNot gradedqualityBmaintenanceEnables querying your own self-hosted automation instance with your own instance URL and API key, listing and inspecting workflows with active/inactive breakdowns, node integrations, and tags, and reviewing recent execution history including failures and statuses.26 npmMIT
- AlicenseAqualityAmaintenanceMonitoring that agents set up for themselves — cron jobs, CI/CD pipelines and AI agent runs.503MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.