@fliq/mcp
Supports creating Slack alert channels to be notified on permanent job failures.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@fliq/mcpSchedule a one-time HTTP job to https://example.com/webhook at 2025-01-15T10:00:00Z"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@fliq/mcp
A Model Context Protocol (MCP) server for Fliq — the Postgres-native HTTP job scheduler.
It lets any MCP-capable AI agent (Claude Desktop, Claude Code, Cursor, custom
agents) schedule and manage HTTP jobs, recurring cron schedules, rate-limited
buffers, and alert channels — and inspect usage and billing — in natural
language. Under the hood every tool is a single call to the Fliq REST API
(https://api.fliq.sh) authenticated with one of your fliq_sk_* API tokens.
Durable one-off + cron HTTP jobs with retries, backoff and crash recovery.
Buffers: outbound rate-limiting so an agent can hammer a 429-prone API (Stripe, Shopify, an LLM) without getting throttled.
Replay failed jobs/items, get per-attempt history, watch usage and balance.
Distributed over stdio — add it to your agent in one config line.
Get an API token
In the Fliq dashboard → Settings → API tokens, create a token. It looks like
fliq_sk_… and is shown once. That token is the only credential the server
needs.
Related MCP server: smplkit MCP Server
Install / run
No install needed — run it on demand with npx:
FLIQ_API_TOKEN=fliq_sk_xxx npx @fliq/mcpOr install globally:
npm install -g @fliq/mcp
FLIQ_API_TOKEN=fliq_sk_xxx fliq-mcpIt speaks MCP over stdio — you normally don't run it by hand; your MCP client launches it (see the config blocks below).
Configuration (environment)
Variable | Required | Default | Description |
| yes | — | Your |
| no |
| Override the API base URL (e.g. self-hosted). |
Client configuration
Claude Desktop
Edit claude_desktop_config.json
(macOS: ~/Library/Application Support/Claude/claude_desktop_config.json,
Windows: %APPDATA%\Claude\claude_desktop_config.json), then restart Claude:
{
"mcpServers": {
"fliq": {
"command": "npx",
"args": ["-y", "@fliq/mcp"],
"env": {
"FLIQ_API_TOKEN": "fliq_sk_xxx"
}
}
}
}Claude Code
claude mcp add fliq \
--env FLIQ_API_TOKEN=fliq_sk_xxx \
-- npx -y @fliq/mcp(Add --scope user to make it available in every project. To point at a
self-hosted Fliq, also pass --env FLIQ_API_URL=https://api.your-host.)
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
{
"mcpServers": {
"fliq": {
"command": "npx",
"args": ["-y", "@fliq/mcp"],
"env": {
"FLIQ_API_TOKEN": "fliq_sk_xxx"
}
}
}
}Tools
Each tool is one REST call with a typed (zod) input schema. Non-2xx responses become clear tool errors — e.g. 402 = out of credits, 409 = not in a replayable state, 401 = bad/revoked token.
Jobs
Tool | Description |
| Schedule a one-off HTTP job at an RFC3339 time, with retries. |
| Fetch a job by id (status + execution timestamps). |
| List jobs, optionally filtered by status; cursor-paginated. |
| Cancel a pending job. |
| Re-run a permanently-failed job as a fresh pending job. |
| List every execution attempt (status code, error, timing). |
Schedules (cron)
Tool | Description |
| Create a recurring schedule from a cron expression. |
| List schedules; cursor-paginated. |
| Pause a schedule (stops firing). |
| Resume a paused schedule. |
| Permanently delete a schedule. |
Buffers (outbound rate limiting)
Tool | Description |
| Create a rate-limited outbound queue (deliveries/sec). |
| List buffers; cursor-paginated. |
| Enqueue one item; drains respecting the rate limit. |
| Aggregated status breakdown + success rate. |
| Re-run a failed item onto the tail of the buffer. |
Alerts
Tool | Description |
| List channels notified on permanent failures. |
| Create a |
Analytics & billing
Tool | Description |
| Execution totals, success rate, avg/p95 duration over N days. |
| Daily job + buffer execution buckets, balance, plan. |
| Current credit balance, plan, daily limit. |
How billing works
Each execution attempt (including retries) costs one credit. schedule_job
and replay_job pass the same credit gate; if you're out of credits they return
a 402 tool error. Use get_balance / usage_stats to keep an eye on it.
Development
npm install
npm run build # tsc → dist/index.js (with shebang, executable)
npm start # run the built server (needs FLIQ_API_TOKEN)Source layout:
src/client.ts— thin fetch wrapper: attaches the bearer token, builds query strings, maps non-2xx to status-awareFliqApiErrors.src/index.ts— the MCP server: reads config from env, registers all tools.
License
MIT
Available Tools
21 toolsbuffer_statsBuffer statsA
Server-aggregated status breakdown for a buffer: pending/running/completed/failed/total counts and success_rate (not page-limited).
| Name | Required | Description | Default |
|---|---|---|---|
| buffer_id | Yes | Buffer id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that results are not page-limited and provides return fields, but does not mention error handling, idempotency, or permission requirements. Adequate but not comprehensive.
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?
The description is a single sentence that conveys all essential information without unnecessary words. It is front-loaded with the key action and result details.
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?
The description specifies the exact return values (pending/running/completed/failed/total counts and success_rate) and notes the absence of page limits. Given no output schema, this provides sufficient context for the agent.
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?
The only parameter, buffer_id, has a minimal description in the schema ('Buffer id.'). The tool description adds no additional meaning beyond the schema. Since schema coverage is 100%, baseline is 3.
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 clearly states it returns server-aggregated status breakdown for a buffer including specific counts and success rate. It effectively distinguishes from sibling tools like job_stats by focusing on buffers.
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?
The description does not explicitly specify when to use this tool versus alternatives like job_stats. While the purpose is clear, there is no guidance on exclusion or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cancel_jobCancel a jobA
Cancel a pending job by id. Returns no content on success.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id to cancel. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses the return behavior but does not mention side effects, idempotency, error handling (e.g., if job not found or not pending), or auth requirements. For a simple mutation, it is acceptable but not thorough.
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?
The description is extremely concise: one sentence that front-loads the action and outcome. No wasted words or redundancy.
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?
Given the tool's simplicity (one param, no output schema, no annotations), the description covers the essential purpose and return behavior. It is lacking error conditions and preconditions, but for a straightforward cancel operation it is mostly complete.
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% (the single parameter 'id' has a description). The tool description adds minimal value beyond the schema: it says 'by id' which is already implied. Baseline 3 is appropriate as no additional meaning is provided.
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 clearly states the verb 'Cancel', the resource 'a pending job', and the method 'by id'. It also specifies the return behavior 'Returns no content on success', which is specific and distinguishes it from siblings like 'get_job' or 'replay_job'.
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?
The description implicitly indicates usage for cancelling a pending job, but it does not explicitly state when to use it versus alternatives or what preconditions exist (e.g., job must be pending). Sibling tools like 'replay_job' suggest different actions, but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_alert_channelCreate an alert channelA
Create an alert channel notified on permanent failures. type is 'webhook' or 'slack' (email is not supported). target is the webhook/Slack URL.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Optional friendly name. | |
| type | Yes | Channel type. | |
| target | Yes | Destination URL (webhook endpoint or Slack webhook). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the channel is for permanent failures and that email is unsupported, which adds context. However, it does not specify behavioral aspects like idempotency, permissions required, or what happens if a duplicate is created. This is adequate but not comprehensive.
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?
The description is only two sentences long, with the primary purpose in the first sentence. Every sentence provides essential information: what the tool does, the type constraints, and the target format. No redundancy or unnecessary details.
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?
Given the tool's simplicity (3 parameters, no nested objects, no output schema), the description covers the main aspects: purpose, type valid values, target format, and a hint about the use case (permanent failures). It does not discuss return value or error scenarios, but for a creation tool with these parameters, it is reasonably complete.
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 baseline is 3. The description adds value by explaining that the type parameter's values are 'webhook' or 'slack' (with email exclusion), and that the target is a URL. This extra semantic context helps the agent understand the expected inputs beyond the schema descriptions.
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 clearly identifies the tool as creating an alert channel, specifying it is 'notified on permanent failures.' It distinguishes this tool from sibling tools like list_alert_channels by the action 'Create' and the specific resource. The mention of supported types and target further clarifies its purpose.
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?
The description provides explicit guidance on when to use this tool (for permanent failures) and what parameter values are valid ('webhook' or 'slack', and that email is not supported). However, it does not mention alternatives, prerequisites, or cases where it should not be used, but for a simple creation tool this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_bufferCreate a bufferA
Create a buffer — a rate-limited outbound queue. Items pushed to it drain to url at most rate_limit per second, with retries. Use this to call rate-limited APIs (Stripe, Shopify, LLMs) without hitting 429s. Returns the new buffer.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL each item is delivered to. | |
| name | Yes | Human-readable buffer name. | |
| method | No | HTTP method Fliq will use when calling the target URL. | |
| backoff | No | Retry backoff strategy between attempts. | |
| headers | No | Optional HTTP headers to send with the request, as a JSON object. | |
| rate_limit | Yes | Max deliveries per second (the drain rate). | |
| max_retries | No | ||
| webhook_url | No | ||
| timeout_seconds | No | ||
| webhook_headers | No | Optional HTTP headers to send with the request, as a JSON object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It explains the tool creates a queue with retry behavior and rate limiting. It does not mention side effects or authorization needs, but the core behavior is clear. No contradictions with absent annotations.
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?
The description is three sentences long, front-loads the primary purpose, then adds a use case and return info. No superfluous text; 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?
For a tool with 10 parameters, 3 required, and no output schema, the description covers the core concept and return value. It could detail the response structure or constraints (e.g., uniqueness of name), but the existing info is sufficient for an agent.
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 high (70%), so the baseline is 3. The description adds only minimal context beyond the schema (e.g., connecting rate_limit to 'max at most'). It does not elaborate on optional parameters or their interactions.
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 clearly identifies the tool as creating a buffer, a rate-limited outbound queue, with specific behavior (draining to URL at a rate). It distinguishes the tool from sibling tools like push_buffer_item or list_buffers by its creation purpose.
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?
The description provides a concrete use case ('Use this to call rate-limited APIs... without hitting 429s'), guiding when to apply it. However, it does not explicitly mention when not to use it or alternatives like modifying an existing buffer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_scheduleCreate a recurring scheduleB
Create a recurring (cron) schedule: Fliq fires the HTTP request on every tick of cron_expr. Returns the new schedule.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL Fliq will call each tick. | |
| body | No | Request body sent each tick. | |
| name | Yes | Human-readable schedule name. | |
| method | No | HTTP method Fliq will use when calling the target URL. | |
| backoff | No | Retry backoff strategy between attempts. | |
| headers | No | Optional HTTP headers to send with the request, as a JSON object. | |
| cron_expr | Yes | Cron expression, e.g. '0 * * * *' for hourly. | |
| max_retries | No | ||
| webhook_url | No | ||
| timeout_seconds | No | ||
| webhook_headers | No | Optional HTTP headers to send with the request, as a JSON object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only mentions the basic behavior (firing HTTP requests on cron ticks) but omits important traits like validation of cron expressions, error handling, idempotency, authentication needs, or whether schedules can be duplicates. This is insufficient for safe invocation.
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?
The description is two sentences with no wasted words. It front-loads the core purpose and return value, making it easy to parse quickly. 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?
Despite high parameter count (11) and no output schema or annotations, the description is very brief. It fails to explain return format, error conditions, or how the schedule interacts with other tools (e.g., list_schedules). This leaves significant gaps for an agent to use the tool 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 coverage is 73% (high), so baseline is 3. The description mentions cron_expr as the trigger but does not elaborate on other parameters. It adds minimal value beyond the schema, but given the high coverage, a 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 clearly states the tool's purpose: 'Create a recurring (cron) schedule' and explains the core behavior ('Fliq fires the HTTP request on every tick of cron_expr'). It also specifies the return value ('Returns the new schedule'), making it distinct from sibling tools like list_schedules or schedule_job.
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?
The description provides no guidance on when to use this tool versus alternatives such as schedule_job or pause_schedule. It lacks explicit context, prerequisites, or exclusions, leaving the agent to infer usage from the tool name and purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_scheduleDelete a scheduleA
Permanently delete a schedule by id. No content on success.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule id to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Given no annotations, the description carries the full disclosure burden. It specifies that deletion is permanent and that success yields no content. This adequately communicates the irreversible nature and response format, though it could mention error handling or idempotency.
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?
The description is two succinct sentences with no wasted words. It front-loads the key action ('permanently delete') and immediately follows with the response behavior.
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 delete tool with one parameter, no output schema, and clear sibling distinctions, the description covers the essential aspects: what the tool does, how it behaves (permanent, no content), and the required input.
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?
The input schema covers the single parameter 'id' with 100% schema description coverage. The description adds no additional semantic information beyond what the schema already provides, so it meets the baseline.
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 clearly states 'Permanently delete a schedule by id', using a specific verb and resource. This distinguishes it from sibling tools like pause_schedule or resume_schedule which are temporary state changes.
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?
The description implies the tool is for deleting schedules but provides no explicit guidance on when to use it versus alternatives, nor any exclusion criteria. The purpose is clear but not accompanied by contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceGet billing balanceA
Current credit balance, plan (free/paid), daily limit and credits-per-dollar.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the returned fields but does not explicitly state the operation is read-only or mention any side effects, authentication, or rate limits. For a getter, it's adequate but lacking in behavioral 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?
The description is a single, concise sentence that front-loads key information: the resource and the specific data points. No unnecessary words.
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?
Given no output schema, the description adequately lists the return fields. However, it does not specify the return format (e.g., JSON object) or provide any example. For such a simple tool, it is nearly complete.
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?
The input schema has zero parameters (100% coverage trivially), so the baseline is 4. The description adds value by listing the returned fields, which helps understand what the tool will produce without 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?
The description explicitly states the tool returns 'Current credit balance, plan (free/paid), daily limit and credits-per-dollar,' which clearly identifies the specific resource and data fields. This distinguishes it from sibling tools like buffer_stats or job_stats which deal with different resources.
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?
The description implies usage when billing information is needed but provides no explicit guidance on when to use or avoid this tool versus alternatives. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_jobGet a jobA
Fetch a single job by id, including status and execution timestamps.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It correctly implies a read-only operation via 'Fetch' and mentions return fields, but does not explicitly state safety, side effects, or rate limits. Adequate but not thorough.
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?
Single sentence, front-loaded with verb and resource, no wasted words. Highly 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?
For a simple fetch tool with one parameter and no output schema, the description is largely complete. It specifies the key return fields. Minor omission: no mention of error behavior (e.g., missing ID).
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?
The input schema has 100% coverage with a description for 'id' ('Job id.'). The description adds no extra meaning beyond the schema. 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 clearly states the verb 'Fetch', the resource 'single job', the identifier 'by id', and specifies the included data ('status and execution timestamps'). It distinguishes from siblings like 'list_jobs' which returns multiple jobs.
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?
No guidance on when to use this tool vs alternatives (e.g., list_jobs, job_stats). The description does not mention prerequisites, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
job_statsJob statsA
Aggregate job execution stats over the last days (default 30, clamped 1–365): totals, success_rate, avg and p95 duration.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses clamping of the 'days' parameter to 1–365 and a default of 30, but does not state whether the tool is read-only or has other safety implications.
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?
A single sentence efficiently conveys purpose, parameter behavior, and output statistics. No redundant words.
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?
Given one parameter, no output schema, and no annotations, the description fully explains the input and the aggregate metrics returned. Nothing essential 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 coverage is 100% for the single parameter, so baseline is 3. The description adds value by specifying the default (30) and the clamping range (1–365), going beyond the schema's min/max constraints.
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 clearly states it aggregates job execution stats over a configurable time window, specifying metrics like success_rate and duration percentiles. This distinguishes it from sibling tools like buffer_stats or usage_stats.
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?
The description implies use for obtaining historical job statistics, but lacks explicit when-to-use or when-not-to-use guidance relative to siblings. No alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_alert_channelsList alert channelsB
List alert channels. Channels are notified when a job or buffer item exhausts its retries (a permanent failure).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does not disclose behavioral traits such as read-only nature, authorization requirements, or side effects. The tool name implies reading, but explicit transparency is missing.
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?
The description is two concise sentences. The first states the core action, and the second adds relevant context. No wasted words or redundancy.
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?
Despite the tool having no parameters and no output schema, the description fails to explain what information is returned by listing channels (e.g., channel names, types). For a list operation, the agent needs to know the output structure to interpret results, but this is not provided.
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?
The input schema has no parameters (0 parameters, 100% coverage). Since schema coverage is high, the baseline is 3. The description adds no parameter-specific meaning because there are none to describe.
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 clearly states the action ('List alert channels') and the resource type. It distinguishes itself from sibling tools like list_buffers and list_jobs by specifying 'alert channels'.
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?
The description provides context on what alert channels are used for (permanent failure notifications), which implies when to use this tool (to view existing channels). However, it does not explicitly state when to use vs. alternatives like create_alert_channel or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_buffersList buffersB
List buffers. Cursor-paginated via next_cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size. | |
| cursor | No | Pagination cursor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions cursor-pagination via 'next_cursor', which is a behavioral trait. However, with no annotations, it fails to disclose whether the tool is read-only, requires authentication, or has rate limits. The pagination detail is useful but incomplete.
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?
The description is extremely concise at two sentences, with no wasted words. It could be more informative, but it prioritizes brevity appropriately.
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 list tool with no output schema, the description covers basic purpose and pagination but omits details about the return format or what constitutes a 'buffer'. This leaves an agent with incomplete information.
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 describes both parameters adequately. The description adds no extra meaning beyond the schema, achieving baseline score of 3.
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 clearly states the action 'List buffers', which is specific and distinguishes from sibling tools like create_buffer or push_buffer_item. However, it does not explicitly differentiate from buffer_stats, which might also list buffers with statistics.
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?
The description provides no guidance on when to use this tool versus alternatives, such as buffer_stats or create_buffer. No context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_job_attemptsList job attemptsB
List every execution attempt for a job (status code, error, timing). An attempt with completed_at = null means a worker died mid-execution.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Job id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses one important behavioral trait (completed_at = null indicates worker death), which adds value beyond the schema. However, it does not state whether the operation is read-only or if there are any side effects.
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 concise sentences: the first clearly states the purpose and returned data, the second adds a specific behavioral note. No redundant words.
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?
Despite lacking an output schema, the description only vaguely mentions returned fields (status code, error, timing) without specifying structure, ordering, or pagination. For a list tool, more detail is needed to understand the full response format.
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?
The input schema has 100% description coverage, with the 'id' parameter described as 'Job id.' The description reinforces that the job id is used to list attempts, but adds no additional constraints or format details beyond the 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?
The description clearly states the verb ('List'), the resource ('every execution attempt for a job'), and the data fields included ('status code, error, timing'). It distinguishes itself from siblings like list_jobs or get_job by focusing on execution attempts.
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?
The description provides no explicit guidance on when to use this tool versus alternatives like get_job (for a single job) or buffer_stats. It does not mention prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_jobsList jobsA
List jobs (newest first), optionally filtered by status. Cursor-paginated: pass the returned next_cursor to get the next page.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size. | |
| cursor | No | Pagination cursor from a previous call. | |
| status | No | Filter by job status. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses ordering and pagination mechanism (cursor-paginated, next_cursor). No annotations provided, so description carries burden; missing details like default limit, output format, or behavior on empty results.
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 purpose, no superfluous information. Efficient and clear.
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?
Adequate for a simple list tool with 3 parameters and no output schema. Covers filtering, pagination, and ordering. Could mention default limit or behavior when no jobs match.
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 coverage is 100%; description adds ordering ('newest first') and clarifies cursor usage ('pass the returned next_cursor'). Adds value beyond 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?
Clearly states verb ('List'), resource ('jobs'), ordering ('newest first'), and optional filtering by status. Distinguishes from sibling tools like get_job (single) and job_stats (statistics).
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?
Explains filtering and pagination usage, but does not explicitly mention when to use this tool versus alternatives like job_stats or list_job_attempts. Implicit differentiation exists.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_schedulesList schedulesB
List recurring schedules. Cursor-paginated via next_cursor.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size. | |
| cursor | No | Pagination cursor. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that results are cursor-paginated via 'next_cursor,' but does not mention whether the operation is read-only, authentication requirements, rate limits, or behavior when no schedules exist. The behavioral context is minimal.
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?
The description is extremely concise with two sentences, no wasted words. The purpose is front-loaded, and the pagination detail is efficiently stated. Every sentence adds value.
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?
Given no output schema and no annotations, the description adequately conveys the tool's basic function and pagination mechanism. However, it lacks details about response structure, ordering, and error cases, leaving some ambiguity. For a simple list tool, it is minimally viable but not comprehensive.
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?
Both parameters are fully described in the schema (100% coverage), and the description adds the concept of cursor-pagination, which gives context to the 'cursor' parameter. However, it does not provide additional syntax or formatting details beyond the schema, resulting in baseline value.
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 clearly states 'List recurring schedules,' identifying the verb 'List' and the resource 'recurring schedules.' This distinguishes it from sibling list tools like list_buffers or list_jobs, though no explicit comparison is made. The resource type is specific and unambiguous.
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?
The description does not provide guidance on when to use this tool versus alternatives like create_schedule or delete_schedule. It only mentions cursor-pagination, which is a technical detail rather than usage context. No exclusionary or conditional information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pause_schedulePause a scheduleA
Pause a schedule so it stops firing until resumed. No content on success.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule id to pause. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states the result ('stops firing until resumed') and the response ('No content on success'), but does not disclose what happens if the schedule is already paused, whether it is idempotent, or any required permissions. Since no annotations are provided, the description carries the full burden, and it is minimally adequate but lacks depth.
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?
The description is two sentences with no wasted words. The first sentence states the main action, and the second clarifies the response. It is appropriately front-loaded and 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?
Given the tool's simplicity (one parameter, no output schema), the description covers the core behavior and response format. It does not discuss error cases or edge states, but for a straightforward pause action, it is reasonably complete.
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% with the 'id' parameter described as 'Schedule id to pause.' The tool description adds no additional meaning beyond the schema, so the baseline score of 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 clearly states the action (pause) and resource (schedule), and distinguishes from sibling tools like resume_schedule, delete_schedule, and create_schedule. The verb 'Pause' is specific and the resource is explicit.
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?
The description explains the effect ('stops firing until resumed'), which implies when to use it, but does not explicitly state when not to use it or provide alternatives like 'use delete_schedule to remove permanently'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_buffer_itemPush an item onto a bufferA
Enqueue one item onto a buffer. It is delivered to the buffer's URL respecting the buffer's rate limit and retry policy. Returns the created item.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Request body for this item (raw string). | |
| headers | No | Optional HTTP headers to send with the request, as a JSON object. | |
| buffer_id | Yes | Buffer id to push onto. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions that the item respects the buffer's rate limit and retry policy, and returns the created item. However, it does not disclose whether the operation is synchronous, idempotent, or what happens on failure. With no annotations, the description provides only partial behavioral 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?
Two sentences, front-loaded with the action, and no redundant information. Every sentence adds value.
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?
The description covers the basic purpose and some behavior, but with no output schema and no usage guidance, it omits details about the return value shape and when to apply the tool. For a simple tool, the description is adequate but not fully complete.
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?
All three parameters are documented in the schema (100% coverage), so the description does not need to add meaning. It does not elaborate on the parameters beyond what the schema provides, resulting in a baseline score.
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 clearly states the action ('enqueue one item onto a buffer') and specifies the resource, distinguishing it from sibling tools like `create_buffer` or `replay_buffer_item`.
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?
The description provides no guidance on when to use this tool versus alternatives (e.g., `replay_buffer_item`), nor does it mention prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_buffer_itemReplay a failed buffer itemA
Re-run a permanently-failed buffer item. Clones it onto the tail of the buffer so it drains in order after the current queue. 409 if the item is not failed.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | Failed item id to replay. | |
| buffer_id | Yes | Buffer id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses cloning behavior and error condition, but lacks details on side effects (e.g., whether the original item is modified), idempotency, or auth requirements. More depth would be beneficial for a mutation tool.
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 with no extraneous words. The first sentence defines the purpose, the second adds behavioral detail and error case. Efficient and 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?
Given the tool's simplicity (2 params, no output schema, no nested objects), the description covers the core operation and error. It could mention the return value or success response, but the absence of output schema makes this acceptable.
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?
With 100% schema description coverage, the schema already documents both parameters. The description merely repeats the schema text ('Failed item id to replay', 'Buffer id.'), adding no extra meaning beyond what is already provided.
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 clearly states the tool re-runs a permanently-failed buffer item by cloning it to the tail, and specifies the 409 error for non-failed items. It distinguishes itself from sibling tools like push_buffer_item (adds new item) and replay_job (replays job).
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?
The description explicitly limits usage to 'permanently-failed buffer items' and warns of a 409 error if the item is not failed, providing clear when-to-use guidance. It does not explicitly mention alternatives but the context is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_jobReplay a failed jobA
Re-run a permanently-failed job. Clones it into a fresh pending job (passes the same credit gate as scheduling). 409 if the job is not in a failed state; 402 if out of credits.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Failed job id to replay. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses cloning behavior, credit gate, and error codes, but does not mention side effects, authorization needs, or whether the original job remains unchanged.
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, no filler. Purpose is stated first, followed by behavioral details. Every sentence adds value.
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?
No output schema exists, so the description should explain return behavior. It covers error codes but not success response (e.g., new job id). Missing information for a mutation tool creating a new resource.
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 coverage is 100% and already describes the parameter as 'Failed job id to replay.' The description adds context about cloning and credit gate, but does not provide additional parameter-specific meaning beyond the 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?
The description clearly states the tool's purpose: re-run a permanently-failed job by cloning it into a fresh pending job. It uses specific verbs and resources, distinguishing it from siblings like replay_buffer_item.
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?
The description implies when to use (on permanently-failed jobs) and provides error conditions (409 if not failed, 402 if out of credits). However, it does not explicitly state when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_scheduleResume a scheduleA
Resume a paused schedule. No content on success.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Schedule id to resume. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description mentions 'No content on success,' indicating an empty response. However, it lacks details on permissions, error conditions, or side effects. Without annotations, this is minimal but sufficient for a simple action.
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 concise sentences with no fluff. Each sentence serves a purpose: stating the action and describing the response.
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 one-parameter tool with no output schema, the description covers the action and response. Missing error handling or prerequisites, but still relatively complete.
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 coverage is 100%, and the description adds no extra meaning beyond the schema's parameter description ('Schedule id to resume'). 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?
The description clearly states 'Resume a paused schedule,' which provides a specific verb and resource. It effectively distinguishes from sibling tools like pause_schedule.
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?
The description implies usage on paused schedules but does not explicitly state when to use or avoid this tool. No alternatives are mentioned, but the sibling context provides contrast.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
schedule_jobSchedule a jobA
Schedule a one-off HTTP job: Fliq will call url with method/headers/body at scheduled_at (RFC3339 UTC), retrying on failure. Returns the new job id. Each attempt (including retries) costs one credit; 402 means out of credits.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target URL Fliq will call. | |
| body | No | Request body (raw string, e.g. JSON). | |
| method | No | HTTP method Fliq will use when calling the target URL. | POST |
| backoff | No | Retry backoff strategy between attempts. | |
| headers | No | Optional HTTP headers to send with the request, as a JSON object. | |
| max_retries | No | Max retry attempts. | |
| webhook_url | No | Optional URL notified with the execution result. | |
| scheduled_at | Yes | When to fire, RFC3339 UTC, e.g. 2026-01-01T12:00:00Z. | |
| idempotency_key | No | Dedupe key; a repeat with the same key (per user) is rejected. | |
| timeout_seconds | No | Per-attempt timeout. | |
| webhook_headers | No | Optional HTTP headers to send with the request, as a JSON object. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description reveals key behaviors: retries on failure, cost per attempt, 402 error for insufficient credits, and return of job ID. However, it does not disclose idempotency key effects, webhook behavior, or rate limits, though the disclosed traits are significant.
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?
The description is extremely concise, consisting of three short sentences. It front-loads the purpose and adds essential behavioral details (retries, cost, error code) without any extraneous words. Every sentence contributes value.
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?
Given the tool's complexity (11 parameters, nested objects, no output schema), the description covers the core operation, return value, costing, and error scenario. It lacks explicit context on idempotency, webhooks, and timeout, but the high schema coverage compensates. It is largely complete for an API tool.
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 coverage is 100%, so baseline is 3. The description mentions url, method, headers, body, and scheduled_at, adding context beyond the schema's individual parameter descriptions. However, it does not detail backoff, max_retries, idempotency_key, or other parameters, providing only marginal added meaning.
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 clearly states it schedules a one-off HTTP job, specifying the resource 'job' and the action 'schedule'. It contrasts with sibling tools like cancel_job, get_job, list_jobs, etc., which have different purposes, making the tool's function unambiguous.
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?
The description implies usage for one-off HTTP jobs but does not explicitly state when to use this tool instead of alternatives like create_schedule (for recurring jobs) or other tools. It lacks exclusion criteria or guidance on prerequisites, leaving selection somewhat implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usage_statsUsage statsB
Daily usage buckets (job + buffer executions) over the last days (default 30), plus current balance and plan.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Lookback window in days. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of disclosing behavioral traits. It fails to indicate that the operation is read-only, any authentication requirements, rate limits, or potential side effects. As a result, the agent has little insight into the tool's behavior beyond the returned data.
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?
The description is a single sentence that packs all essential information: the resource (daily usage), the data included (job + buffer executions), the configurable parameter (days with default), and additional output (current balance and plan). No wasted words.
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?
Given that there is only one configurable parameter and no output schema, the description sufficiently covers the tool's purpose and output. However, it lacks details about the structure of the returned data (e.g., array of daily objects), which could help the agent parse the response 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?
The schema fully describes the single 'days' parameter with min/max and a description. The description adds the default value of 30 days, which is not present in the schema. This additional semantic information helps the agent understand the default 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?
The description clearly states that the tool returns daily usage buckets (job and buffer executions) over a configurable number of days, plus current balance and plan. It is specific about the resource and scope. However, it does not explicitly distinguish itself from sibling tools like 'buffer_stats' or 'job_stats', which might be used for more granular details.
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?
No guidance is provided on when to use this tool versus alternatives such as 'get_balance', 'buffer_stats', or 'job_stats'. The description simply states what it does without contextual usage recommendations.
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.
21 tool updates
v0.1.0- First observed
buffer_stats - First observed
cancel_job - First observed
create_alert_channel - First observed
create_buffer - First observed
create_schedule - First observed
delete_schedule - First observed
get_balance - First observed
get_job - First observed
job_stats - First observed
list_alert_channels - First observed
list_buffers - First observed
list_job_attempts - First observed
list_jobs - First observed
list_schedules - First observed
pause_schedule - First observed
push_buffer_item - First observed
replay_buffer_item - First observed
replay_job - First observed
resume_schedule - First observed
schedule_job - First observed
usage_stats
TDQS
Scored across 21 tools
Each tool targets a distinct resource and action, with no overlapping purposes. Jobs, schedules, buffers, alert channels, and account tools are clearly separated, and even within categories (e.g., list_jobs vs. list_job_attempts) they serve unique functions.
Most tools follow a consistent verb_noun pattern with underscores (e.g., create_buffer, list_jobs). Minor deviations include the stats tools (buffer_stats, job_stats, usage_stats) which use noun_stats instead, and get_balance which is verb_noun but acceptable.
21 tools is well-scoped for the domain covering multiple resource types (jobs, schedules, buffers, alert channels, account). Each tool serves a clear purpose and contributes to the overall functionality without unnecessary bloat.
Notable gaps exist: missing update and delete operations for jobs, buffers, and alert channels; no get-by-id for buffers or schedules. While core workflows (create, list, stats) are covered, lifecycle management is incomplete, potentially causing agent dead ends.
Maintenance
Related MCP Connectors
Schedule tasks for later from your AI agent: reminders, delayed webhooks, recurring jobs.
- golemryOAuthcom.golemry
Create and manage scheduled, guarded AI agent jobs with built-in quality control and 900+ connectors
Durable background job execution, async task scheduling, and state persistence for AI agents.
Build, validate, deploy — HTTP APIs, cron jobs, webhooks and MCP tools — from your AI client.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI agents to parse, validate, explain, and preview cron expressions, surfacing common silent bugs before deployment.431 npmMIT

smplkit MCP Serverofficial
AlicenseAqualityBmaintenanceEnables AI agents to create, run, and monitor scheduled HTTP jobs on the smplkit platform via natural language commands.29MIT- AlicenseNot gradedqualityBmaintenanceSchedule any prompt on any cron expression; when it fires, we POST the job to your callback URL. No LLM in the stack.MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that lets AI agents manage cron jobs through natural language — adding, listing, pausing, removing, running, and viewing logs of scheduled jobs with plain-English schedule parsing, automatic log capture, missed-run detection, and failure alerts.MIT