Skip to main content
Glama

AI SENSE Free Public Tools

Server Details

66 public tools: semantic search, queues, inboxes, webhooks, approvals, DNS, images, PDF and more.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
99.2% over 63 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
aisenseapi/aisense-free-public-rest-apis
GitHub Stars
0

TDQS

A3.7/5.0

Scored across 66 tools

Disambiguation3/5

Many tools have clear distinct purposes (e.g., generate_uuid vs generate_random, get_current_time vs time_formats), but several clusters overlap significantly: lease tools (acquire_lease, complete_lease, release_lease, renew_lease) have subtle boundary differences; agent queue tools (ack_agent_queue_job, claim_agent_queue_job, enqueue_agent_queue_job, read_agent_queue, read_agent_queue_job, release_agent_queue_job, renew_agent_queue_job) form a dense set with nuanced roles; and semantic search note operations (add, delete, query, read, create) could cause confusion. The descriptions help, but the volume of similar operations makes misselection plausible.

Naming Consistency4/5

Most tool names follow a consistent verb_noun pattern (e.g., create_agent_inbox, read_agent_queue, delete_dns_name, convert_timestamp). However, some names deviate: 'ack_agent_queue_job', 'decide', 'crypto_wallet', 'slugify_text', 'simulate_failure', and 'verify_hash' are not strictly verb_noun or use abbreviations. These are minor deviations, so the overall pattern remains predictable.

Tool Count2/5

66 tools is excessive for a free public API toolkit; the set spans unrelated domains (agent coordination, text conversion, file storage, networking, crypto, etc.) and includes many niche utilities. This likely overwhelms an agent's selection process and indicates poor scoping. While each tool may have a purpose, the count is too high for practical coherence.

Completeness4/5

The surface is very broad and covers many operations, but as a multi-domain server, it cannot be complete for any single domain. There are some gaps (e.g., no tool to list all created resources, no delete for stored temporary data, no update for human approvals). However, the provided tools likely cover most common ad-hoc tasks, so it earns a 4 despite the lack of lifecycle coverage in some areas.

Available Tools

66 tools
ack_agent_queue_jobAcknowledge agent queue jobA
DestructiveIdempotent
Inspect

Mark a claimed job completed using the worker token and its current receipt. Repeating acknowledgement with the same winning receipt succeeds. A different, stale or expired claim receipt is a conflict. Completion does not reclaim the lifetime job allowance.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
receiptYes
queue_idYes
worker_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
jobYes
queue_idYes
expire_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description reveals meaningful behavioral details: repeated acknowledgement with the same winning receipt succeeds, different or stale receipts conflict, and completion does not reclaim the lifetime job allowance. This adds value beyond idempotentHint and destructiveHint and does not contradict any annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences with no filler. The core action is stated first, followed by idempotency and conflict behavior, then the allowance consequence. Every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, annotations, and a clear description covering purpose, prerequisites, idempotency, conflict behavior, and a key side-effect, the definition is complete enough for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry semantic weight. It explains the role of the worker token and the receipt, including what makes a receipt valid or conflicting. The queue_id and job_id parameters are not explicitly described, but their names and schemas make them reasonably self-explanatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Mark a claimed job completed using the worker token and its current receipt.' This clearly identifies the operation and distinguishes it from sibling tools like claim_agent_queue_job, release_agent_queue_job, and renew_agent_queue_job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context: use this when a claimed job is completed, with the worker token and current receipt. It also explains important usage conditions around repeating the same receipt versus a stale or different receipt, but it does not explicitly name alternative tools for non-completion actions like release or renew.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

acquire_leaseAcquire leaseAInspect

Claim one unit of work so concurrent agents do not perform it twice. The first writer receives an owner token and a monotonic fencing token. A later caller receives held, conflict or a reusable completed result. Contention is a normal result. Use a private namespace, or supply a high-entropy unscoped key. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesWork identity. With a namespace use 1 to 128 URL-safe ASCII characters, starting with a letter or digit. Without one use a caller-generated secret of 32 to 200 ASCII characters from A-Z, a-z, 0-9, dot, underscore, colon, tilde or hyphen, with at least eight distinct characters.
namespaceNoOptional 256-bit namespace from create_lease_namespace. Keep it secret.
fingerprintNoOptional stable description or digest that binds this key to the same work.
ttl_secondsNoOwnership period, capped by the absolute 24 hour lifetime.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo
statusYes
owner_tokenNo
ttl_secondsNo
completed_atNo
fencing_tokenNo
lease_expires_atNo
absolute_expires_atNo
retry_after_secondsNo
completed_at_timestampNo
lease_expires_at_timestampNo
absolute_expires_at_timestampNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are sparse (no idempotency flags), and the description compensates by disclosing the success result (owner + monotonic fencing token), the possible outcomes for later callers, and the fact that contention is normal. No contradiction with readOnlyHint=false or destructiveHint=false.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with the core purpose, followed by outcome/contention guidance and namespace advice. Every sentence earns its place and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers purpose, outcomes, contention expectations, key safety, and authentication. Return-value details are already handled by the output schema, so nothing needed for a correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline applies; the description's namespace/key advice mainly restates the schema's guidance rather than adding new per-parameter semantics. No additional value is added for fingerprint or ttl_seconds beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb ('Claim') and resource ('one unit of work'), explains the concurrency goal, and is instantly distinguishable from sibling lease tools (release_lease, renew_lease) by describing acquisition behavior rather than lifecycle operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: use when work must not be executed twice concurrently, and advises key/namespace strategy ('Use a private namespace, or supply a high-entropy unscoped key'). It does not explicitly name alternatives or exclusions, but the context is strong enough for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

add_semantic_search_notesAdd notes to a semantic search collectionAInspect

Add 1 to 32 notes with the write token. Each note is an object with text, 1 to 2000 characters, and an optional key of up to 64 letters, digits, dots, underscores, colons or hyphens. Notes are stored until the collection expires and count toward its 500-note lifetime limit, deleted notes included. Never send secrets or sensitive personal data. Adding and searching share a usage limit of 60 per minute and 1000 per UTC day per IP. Refusals may carry Retry-After. Do not retry automatically. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesYesNotes such as {"text": "Refund order DEMO-57", "key": "job:57"}.
write_tokenYesThe write_token from create_semantic_search, shown once. It adds and deletes notes.
collection_idYesThe collection_id from create_semantic_search.

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: the 500-note lifetime limit that counts deleted notes, retention until collection expiry, rate-limit budget shared with search, Retry-After on refusals, and a secrets/PII warning. Annotations only confirm it is a non-idempotent, non-read-only, non-destructive write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Dense but front-loaded: batch size, auth, note shape, then limits, rate limits, and retry policy in order of importance. Nearly every sentence carries actionable information, though the closing 'no API key, no account, no sign up' line is marginal padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no output schema and thin annotations, the description covers auth, limits, retention, rate limiting, and failure handling well. It stops short of explaining what a reused note key does (upsert vs. duplicate) — a notable gap given the non-idempotent annotation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by documenting constraints the schema omits: text of 1-2000 characters, an optional key of up to 64 allowed characters, and the 1-32 batch bound. The write_token's role is also spelled out beyond the schema text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Add ... notes') with the target ('semantic search collection') and batch semantics. It is trivially distinguishable from siblings like create_semantic_search, query_semantic_search, delete_semantic_search_note, and read_semantic_search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives strong operational usage context: the write token is required, sharing a 60/min and 1000/day per-IP budget with search, refusal Retry-After handling, and an explicit 'do not retry automatically' instruction. It does not explicitly name when to prefer a sibling (e.g. delete or query), but the tool's scope makes that largely implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

cancel_webhook_scheduleCancel a scheduled webhookA
DestructiveIdempotent
Inspect

Cancel a scheduled webhook that has not finished. A job that has already ended cannot be cancelled. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
schedule_idYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare destructiveHint=true and idempotentHint=true with readOnlyHint=false; the description adds the precondition failure mode (an ended job can't be cancelled). It doesn't restate idempotency, which annotations already cover. The auth disclosure ('No API key...call it directly') is useful additional context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and its precondition. The auth sentence is somewhat tangential but brief.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter destructive mutation with annotations covering safety, the description supplies the key missing behavioral fact (cannot cancel a finished job). It could note what cancellation does to the schedule record, but is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One required parameter with 0% schema description coverage. The description does not explain schedule_id's format, even though the schema pattern defines a UUID. Baseline 3 for a single-param tool where the name is self-explanatory, but the description adds no meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (cancel) and resource (scheduled webhook), and adds a scope qualifier ('that has not finished'). Clearly distinguishes this from sibling schedule_webhook and read_webhook_schedule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear precondition for when the tool can be used ('has not finished') and what happens otherwise ('A job that has already ended cannot be cancelled'). No sibling alternatives are named, but the when-to-use condition is explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

claim_agent_queue_jobClaim agent queue jobAInspect

Claim the next pending job using the worker token. Returns job:null immediately when no work is available, otherwise a job containing a new secret receipt. Visibility defaults to 60 seconds and accepts 30-900 seconds. Redelivery is possible: make worker side effects idempotent. Jobs fail after 5 unsuccessful claims. No job is executed by the server.

ParametersJSON Schema
NameRequiredDescriptionDefault
queue_idYes
worker_tokenYes
visibility_timeoutNoClaim visibility in seconds, capped by the fixed queue expiry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
jobYes
queue_idYes
expire_timestampYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no useful safety hints (all false), so the description carries the full burden. It discloses immediate null return, secret receipt issuance, visibility timeout range, redelivery semantics, the 5-claim failure limit, and the fact that no job executes server-side—far more than the structured fields alone convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the action and resource, and every subsequent sentence adds a distinct behavioral or safety fact. No filler is present.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is largely complete for invoking the tool: outputs (null vs. job with secret receipt), visibility constraints, failure limit, and redelivery caution are all covered. It falls just short of full completeness by not explaining queue_id or what an agent should do with the returned receipt (e.g., use it for subsequent ack/renew/release calls).

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only visibility_timeout has schema documentation, so the low coverage requires compensation. The description does explain worker_token's role and visibility_timeout's range and default, but queue_id is never described beyond its schema pattern; it must be inferred from the tool name and parameter name.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Claim the next pending job') and clarifies it uses a worker token. It also distinguishes the operation from siblings by stating the server does not execute jobs and that a returned job contains a new secret receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it: when a worker wants the next pending job, and it warns that redelivery is possible so workers should make side effects idempotent. However, it never explicitly contrasts this with sibling operations like ack_agent_queue_job, release_agent_queue_job, or renew_agent_queue_job, so an agent must infer the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

complete_leaseComplete leaseAInspect

Finish owned work and save a reusable JSON result for later callers with the same identity and fingerprint. The result is limited to 32 KB and secret-shaped fields are redacted. Do not store secrets or personal data. The owner token is required. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesWork identity. With a namespace use 1 to 128 URL-safe ASCII characters, starting with a letter or digit. Without one use a caller-generated secret of 32 to 200 ASCII characters from A-Z, a-z, 0-9, dot, underscore, colon, tilde or hyphen, with at least eight distinct characters.
resultYesReusable JSON value. Maximum encoded size is 32 KB. Do not include secrets.
namespaceNoOptional 256-bit namespace from create_lease_namespace. Keep it secret.
owner_tokenYesSecret owner token returned by acquire_lease.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo
statusYes
owner_tokenNo
ttl_secondsNo
completed_atNo
fencing_tokenNo
lease_expires_atNo
absolute_expires_atNo
retry_after_secondsNo
completed_at_timestampNo
lease_expires_at_timestampNo
absolute_expires_at_timestampNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond the annotations: the 32 KB size limit, redaction of secret-shaped fields, a warning not to store secrets or personal data, and that no authentication is required. These are useful constraints not present in the annotations. It does not disclose post-completion state changes (e.g., lease consumption), but the annotations and output schema partially cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with the primary purpose stated first, followed by constraints and security notes. It is not overly verbose, though it is broken into multiple short sentences, which slightly fragments the flow. Overall, it is well-structured and front-loaded with the core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (lease lifecycle, multiple parameters, output schema present) and minimal annotations, the description covers key operational constraints: size limit, redaction, storage guidance, and auth requirements. It lacks an explicit note on the lease's terminal state or error conditions, but the output schema and sibling context mitigate this. It is sufficiently complete for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides detailed descriptions for all four parameters (100% coverage), including format and constraints for key, owner_token, namespace, and result. The description adds no additional parameter-specific meaning; it only mentions the owner token requirement, which is already in the schema. Thus, the description does not enhance beyond schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Finish owned work') and resource (owned work with a lease), and explains the outcome (save a reusable JSON result for later callers with the same identity and fingerprint). This clearly distinguishes it from sibling lease operations like acquire_lease or release_lease by focusing on completion and storage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for completing a lease after work is done, but it does not explicitly contrast with alternatives such as release_lease (abandoning) or renew_lease (extending). While the sibling names suggest context, the description lacks explicit 'when to use' or 'when not to use' guidance, so an agent must infer the appropriate choice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_timestampConvert a timestamp or dateA
Read-onlyIdempotent
Inspect

Convert a Unix timestamp in seconds or milliseconds, or a date and time text, into a Unix timestamp, ISO 8601, RFC 2822 and UTC forms. offset sets the zone of the answer. The answer says what the input was read as. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
valueYesA Unix timestamp, or a date and time text such as 2026-09-30 14:00.
offsetNoUTC offset as a sign and four digits, from -1200 to +1200, for example +0200 or -0530.

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnlyHint, idempotentHint, openWorldHint=false), so credit goes to what is added: the disclosure that the response echoes what the input was parsed as, which mitigates ambiguity risk for 10- vs 13-digit timestamps. The auth-free statement is also useful context not present in annotations. No return-shape or error behavior is described, keeping it below 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the core conversion and output formats, followed by offset semantics and the auth note. Dense and mostly waste-free, though the 'No API key, no account and no sign up' clause is slightly redundant phrasing for a single fact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does supply the output formats and states that the response reports how the input was interpreted, covering the main ambiguity an agent faces. It stops short of describing default behavior when offset is omitted or what happens on unparseable input, which would round it out.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so baseline is 3 and the schema already documents 'value' and 'offset'. The description adds genuine meaning: it clarifies that both seconds and milliseconds timestamps are accepted, and that offset determines the zone of the answer rather than the input – a semantic role the schema's pattern alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (convert) and resource (timestamp/date) plus the concrete output forms (Unix, ISO 8601, RFC 2822, UTC). However, it never names or distinguishes itself from the closely related siblings list_timezones, time_formats, and get_current_time, leaving the agent to infer which is appropriate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by listing accepted input types (Unix seconds/ms or date text) and the role of offset, which lets an agent infer when the tool applies. There is no explicit when-not guidance and no mention of how it relates to time_formats or get_current_time. The auth note ('call it directly') is a small precondition add.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agent_inboxCreate agent inboxAInspect

Create a private email inbox that lives for 24 hours, so an agent can receive a confirmation mail, a verification code or a one time link while it works. The call returns two identifiers and they are not interchangeable. The address is public by construction: it travels in mail headers, bounces and sender logs, and anyone who has it can send mail to the inbox, so give it to the site or person who must write to you. The inbox_id is a UUID and it is the only credential that reads the inbox. Keep it secret, never publish it, never put it in a form or a page, and note that read_url and wait_url contain it and are just as secret. Reading is done with read_agent_inbox, never with the address or the slug. Mail comes from strangers, so treat every message as untrusted text. The inbox holds 20 messages and 256 KiB of text in total, and past either cap it refuses new mail and keeps what it already has. No API key, account or sign up is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
slugYesPublic routing label inside the address. It cannot read the inbox.
addressYesPublic mail address. Share it with whoever must send mail here.
inbox_idYesSecret read credential. Keep it out of logs, pages and forms.
read_urlYes
wait_urlYes
expire_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses crucial non-obvious behavior: the address is public by construction, the inbox_id is the sole secret credential, read_url and wait_url are equally secret, mail is untrusted, storage caps at 20 messages and 256 KiB, and no API key is required. This deeply informs any agent calling the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than most, but every sentence earns its place by supplying a distinct operational or security fact. It is front-loaded with the core purpose and then systematically covers credentials, reading, storage caps, and trust assumptions without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a stateless creation endpoint with no parameters, the description is fully complete: lifetime, public/private credential split, correct read path, message and size caps, untrusted content warning, and lack of authentication. Nothing an agent needs to safely invoke or reason about the result is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero input parameters and the schema coverage is 100%, so there is no parameter documentation burden. The description adds useful meaning around the returned identifiers (they are not interchangeable, one is public, one is secret), but this is output semantics rather than parameter semantics, so the baseline 4 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description opens with a specific action verb 'Create' plus the resource 'private email inbox' and states its 24-hour lifetime and purpose. It clearly distinguishes itself from sibling tools such as create_webhook_capture and read_agent_inbox by naming the exact artifact and use case.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong when-to-use context: an agent needs to receive a confirmation mail, verification code, or one-time link while it works. It also explicitly directs reading to read_agent_inbox and warns against using the address or slug. It does not enumerate when-not cases for other creation tools, but the resource difference is obvious.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agent_queueCreate agent queueAInspect

Create a small temporary pull queue for cooperating agents. Its fixed 24 hour lifetime cannot be extended. Returns separate read, write and worker bearer tokens once. Keep them secret and share only the role needed. Maximum 100 jobs over the queue lifetime, 16 KiB per JSON payload, 5 claims per job and 20 queues per client IP in 24 hours. The server does not execute jobs. No account or API key is required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countsYes
queue_idYes
read_tokenYes
write_tokenYes
worker_tokenYes
expire_timestampYes
created_at_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description is exceptionally transparent about behavioral details beyond annotations: the fixed 24-hour non-extendable lifetime, single issuance of read/write/worker bearer tokens, secret-sharing guidance, job and payload limits, claim limits, per-IP queue limits, non-execution of jobs, and lack of account/API key requirements. This fully compensates for the sparse annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and then efficiently packs the most decision-relevant constraints, token handling, quotas, and execution semantics. No sentence is filler; each adds operational guidance an agent would need.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter creation tool with an output schema available, the description is remarkably complete. It covers lifetime, authentication tokens, secrets, rate and size limits, non-execution behavior, and authentication requirements, leaving an agent with enough context to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so parameter semantics carry little burden. Baseline for zero-parameter tools is 4, and the description appropriately focuses on behavioral and usage context instead of parameter syntax.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a small temporary pull queue for cooperating agents.' It clearly identifies this as a queue-creation tool, distinct in nature from sibling inbox, wake, webhook, and heartbeat tools, and it does so without simply restating the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when this tool is appropriate: creating a temporary pull queue for cooperating agents. It also states that the server does not execute jobs, helping an agent understand this is not a job-execution tool. It does not explicitly name alternative tools or give direct when-not-to-use guidance, but the context is strong enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_agent_wakeWait for an eventAInspect

Create a durable MCP task that completes when a webhook arrives, a person answers a form or a chosen time is reached. Use it when an agent must pause and continue after an outside event without holding one HTTP request open. The task lasts from 60 seconds to 24 hours. Webhook bodies and human answers are readable by anyone holding the task URL, so do not send secrets, credentials or personal data.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoFor human events. The question shown on the form.
optionsNoFor human events. The choices on the form.
wake_atNoFor time events. Unix timestamp to wake at.
allow_noteNoFor human events. Allow an optional note.
event_typeYesThe event that completes the task.
descriptionNoFor human events. Supporting detail shown below the title.
delay_secondsNoFor time events. Wake this many seconds from now.
timeout_secondsNoMaximum task lifetime in seconds.

Output Schema

ParametersJSON Schema
NameRequiredDescription
task_idYes
event_typeYes
completed_at_datetimeYes
completed_at_timestampYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only indicate readOnly=false, openWorldHint=true, idempotent=false, and destructive=false. The description adds valuable behavioral context beyond those: bodies and human answers are readable by anyone with the task URL, secrets should not be sent, and task lifetime ranges from 60 seconds to 24 hours. Nothing in the description contradicts the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded: it defines what the tool does, specifies when to use it, states the duration limit, and includes an important security caveat. Every sentence contributes useful information with no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The input schema and output schema already cover parameter and return details, so the description can focus on lifecycle, security, and intent, which it does. It adequately covers the usage scenario and important caveats, though it could have named sibling tools like create_human_approval or create_webhook_capture to further guide selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and each parameter already has a clear description in the schema. The tool description adds no additional parameter-level meaning beyond grouping the event types, but with full schema coverage the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's action: creating a durable MCP task that completes on a webhook, form answer, or time event. It is specific about the resource and behavior, and the three event types make it easy to distinguish from the read-focused sibling tools. It does not explicitly name the overlapping create_human_approval or create_webhook_capture tools, so it slightly misses the chance to differentiate itself from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: "Use it when an agent must pause and continue after an outside event without holding one HTTP request open." This gives a clear usage context. It does not describe when not to use it or refer directly to sibling alternatives, but the stated condition is actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_dns_nameCreate a temporary DNS nameAInspect

Point a public hostname at an address you already control, for 24 hours. Use it when something needs a name rather than an address: a webhook target someone has to type, a staging box whose address moves, a service two agents must reach by the same name. No API key, no account and no sign up: call it directly. The name is assigned and never chosen, and comes back as aisense-.53for24h.com. The answer carries dns_token once and never again; without it the name cannot be changed or removed. It disappears on its own after 24 hours and nothing extends that. A name is a DNS record and nothing else: no tunnel, no hosting, no certificate and no HTTPS. The zone is not on the Public Suffix List, so every name shares one certificate quota and browsers treat them as one site. Do not put a login on one.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipYesA public unicast IPv4 or IPv6 address. Private, loopback, link-local and multicast ranges are refused. The address is required and never taken from the caller, because the caller is usually not the machine the name should point at.
ttlNoSeconds. 60 is the only value on the menu, so leave it out unless you want to be explicit.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipYes
okYes
ttlYes
nameYes
slugYes
recordYes
serialNo
dns_tokenYes
expire_atYes
nameserversYes
expire_timestampYes
created_at_timestampNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the sparse boolean annotations, the description discloses the one-time dns_token, 24-hour expiry, inability to extend, fact that the name is assigned rather than chosen, and the PSL/certificate-sharing caveat. These are exactly the non-obvious behaviors an agent needs to avoid misusing the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition starts with the core action and duration, then follows with use cases and constraints in a logical order. Every sentence adds a distinct, load-bearing fact; none repeat the schema or annotation data.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-shot ephemeral naming tool, the description covers lifecycle, output characteristics, security implications, and boundary conditions ('without it the name cannot be changed or removed'). An agent has enough context to call it directly and interpret the result even before seeing the output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already covers both parameters with descriptions, so the baseline applies; the description adds usage context rather than new parameter syntax. Its 'address you already control' phrasing reinforces the required ip field but does not change the mechanics documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource ('Point a public hostname at an address') with a clear temporal scope ('for 24 hours'), making the tool's core function unmistakable. It also distinguishes this from the sibling read/update/delete DNS tools by describing a fixed one-shot, auto-expiring naming service.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives explicit use cases ('a webhook target someone has to type, a staging box whose address moves') and tells the agent what it is not for ('no tunnel, no hosting, no certificate and no HTTPS'). It does not name sibling tools as alternatives, but the when-to-use guidance is strong 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.

create_heartbeatCreate heartbeatAInspect

Create a deadline monitor for a job, device or agent that should keep checking in. Call ping_heartbeat before the expected interval plus grace period ends. One missed deadline calls a public HTTP or HTTPS webhook or wakes an active Agent Wake webhook task. The monitor lasts at most 24 hours from creation, and pings cannot extend that limit. The returned heartbeat ID and URLs are bearer secrets. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
on_missYesExactly one miss target. Use url for a public HTTP or HTTPS webhook on port 80 or 443, or wake_task_id for an active Agent Wake webhook task.
grace_secondsYesExtra time after the expected check-in before the miss action fires. The expected interval plus grace must not exceed 86400 seconds.
expect_every_secondsYesExpected time between check-ins, from 60 seconds to 24 hours.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
lateYes
missesYes
statusYes
on_missYes
deliveryNo
ping_urlYes
ping_countYes
status_urlYes
heartbeat_idYes
grace_secondsYes
missed_at_datetimeNo
created_at_datetimeYes
expires_at_datetimeYes
missed_at_timestampNo
created_at_timestampYes
expect_every_secondsYes
expires_at_timestampYes
miss_due_at_datetimeYes
terminal_at_datetimeNo
last_ping_at_datetimeYes
miss_due_at_timestampYes
terminal_at_timestampNo
last_ping_at_timestampYes
next_expected_at_datetimeYes
next_expected_at_timestampYes

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a write operation (readOnlyHint=false, destructiveHint=false). The description adds valuable behavioral context: the monitor lasts at most 24 hours, pings cannot extend that limit, and the returned heartbeat ID and URLs are bearer secrets. It also explains the miss action (webhook or wake task). This goes beyond the annotations and helps the agent understand side effects and security implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded with the core purpose. It covers the key behavioral constraints (24-hour limit, bearer secrets, no auth required) in a compact, well-structured paragraph. Every sentence adds value, and the structure flows logically from purpose to usage to constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested on_miss object, two mutually exclusive target types, time constraints) and the presence of an output schema, the description is complete. It explains the miss action, the time limits, the security model, and the relationship between parameters. An agent has enough information to call this tool correctly without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 three parameters. The description adds context by explaining the relationship between expect_every_seconds and grace_seconds ('The expected interval plus grace must not exceed 86400 seconds') and by clarifying the on_miss target options ('Use url for a public HTTP or HTTPS webhook on port 80 or 443, or wake_task_id for an active Agent Wake webhook task'). This adds meaning beyond the raw schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 deadline monitor for a job, device or agent that should keep checking in.' It uses a specific verb ('create') and resource ('deadline monitor'), and distinguishes it from siblings like ping_heartbeat and read_heartbeat by explaining the creation role and the monitoring behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells the agent when to use this tool: 'Call ping_heartbeat before the expected interval plus grace period ends.' It also explains the miss behavior and the 24-hour limit, which clarifies when this monitor is appropriate. It doesn't explicitly name alternatives, but the context of creating a monitor versus pinging it is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_human_approvalRequest human approvalAInspect

Put a decision in front of one to twenty people. Use one respondent for a normal approval, or several when every invited person should answer through a separate bearer form link. Group results contain counts, a tally and anonymous numbered responses. Optional notify_url receives one small signal after the final answer. It does not contain the answers. Forms expire after 24 hours. No API key, account or login is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesRequired. The question shown to the person, in their language. Make it answerable on its own, since they see no conversation history.
optionsNoOptional. The buttons offered, 2 to 10 of them. Defaults to Approve and Reject. Use your own labels when the choice is not a yes or no, for example Ship today, Ship Monday, Cancel.
allow_noteNoOptional. Whether the person may add a free text comment alongside their choice. Defaults to true.
notify_urlNoOptional public HTTP or HTTPS callback after the final answer.
descriptionNoOptional supporting detail below the question: what changes, what it costs, what happens if they decline.
respondentsNoNumber of separate form links. Each link can answer once.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
tallyNo
statusYes
answeredNo
form_urlNo
wait_urlYes
action_idYes
form_urlsNo
responsesNo
result_urlYes
respondentsNo
expire_datetimeYes
expire_timestampYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only say readOnlyHint=false and destructiveHint=false. The description goes well beyond that by disclosing key behaviors: forms expire after 24 hours, no auth is required, notify_url fires only after the final answer and does not include answers, group results contain counts/tally/anonymous responses, and each form link can answer once. This is exactly the behavioral context an agent needs to set expectations correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single paragraph with no wasted words, and it front-loads the most important fact: who the decision goes to and the one-vs-many distinction. It is compact but dense; it could earn a 5 if it added one explicit 'Use this when...' clause, but it is still efficiently structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists, a 6-parameter input schema is fully documented, and annotations cover safety profile, the description covers all the behavioral gaps an agent might worry about: auth, expiry, callback content, anonymous group responses, and response limits. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 every parameter. The description adds a bit of context around notify_url (one small signal, no answers) and around respondents (separate form links), but most parameter meaning is already in the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific, concrete verb phrase ('Put a decision in front of one to twenty people') and differentiates the tool from the sibling read_human_approval and other create_* tools by explaining exactly what it produces: human approval forms. It clearly names the resource (human approval) and the action (create/request), so an agent can distinguish it from create_webhook_capture or create_heartbeat.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use one respondent vs several ('Use one respondent for a normal approval, or several when every invited person should answer through a separate bearer form link') and mentions the forms' 24-hour expiry and the no-API-key requirement. It doesn't explicitly name sibling alternatives to avoid, but the usage context is clear enough for an agent to know when this is the right tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_lease_namespaceCreate lease namespaceA
Read-only
Inspect

Create a random private namespace before several agents coordinate work using short readable keys. The namespace is a bearer secret and is returned once. Share it only with the cooperating agents. This operation stores no lease and needs no authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
namespaceYes
entropy_bitsYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description reveals important behavioral traits: the namespace is a bearer secret, is returned only once, and must be shared only with cooperating agents. It also clarifies that no authentication is required and that the operation stores no lease, giving the agent useful safety and side-effect context well beyond the structured annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose, then adds secret-handling and side-effect information in short, purposeful sentences. Every sentence adds meaningful guidance without redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema, the description fully covers what the tool does, when to use it, how to handle the returned secret, authentication needs, and side-effect behavior. Nothing important is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and the schema description coverage is 100%, so there are no parameter details needing clarification. The description adds context by noting no authentication is required, which is relevant to why no credential parameters exist. The baseline for zero-parameter tools is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Create' and the specific resource, a random private namespace, and explains its purpose: allowing several agents to coordinate work using short readable keys. It also distinguishes itself from lease-related siblings by noting it stores no lease, so an agent can tell it apart from acquire_lease and similar tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear context for when to use the tool: before multi-agent coordination that relies on short readable keys. It does not explicitly name alternatives, but the distinction from lease tools is implied by 'stores no lease,' and the guidance to share the namespace only with cooperating agents makes appropriate usage clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_qr_codeMake a QR codeA
Read-onlyIdempotent
Inspect

Make a QR code for a text or URL, as a PNG with error correction level H. The answer is the image. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds genuinely useful non-annotation context: the output is a PNG at error correction level H, and it explicitly states no API key/account/signup is required and that it can be called directly, which reduces invocation friction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core action and output format, followed by the access prerequisite. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 read-only/idempotent annotations and no output schema, the description covers purpose, output format, and access requirements. It stops short of noting the input length limit, but is otherwise sufficient for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the schema documents no parameter semantics. The description says the input is 'a text or URL' but does not mention the 1-2000 character bounds or that 'text' is the sole required field. Baseline consideration of a single-param tool keeps this at 3, but the description does not fully compensate for the coverage gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Make a QR code for a text or URL') and adds the output format (PNG, error correction level H). This clearly distinguishes it from the sibling read_qr_code, which does the inverse.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies the use case (encoding text/URL into a QR image) but offers no explicit when-to-use or when-not guidance, nor does it name alternatives. Adequate but leaves routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_webhook_captureCreate webhook captureAInspect

Create a throwaway URL that records the next HTTP request anyone sends to it, headers and body included. Use it to see what a webhook provider, a form or a third party service actually transmits, instead of trusting their documentation, and to prove that an integration fired at all. No API key, no account and no sign up: call it directly. The pending capture is stored before this call returns. Optional notify_url receives one small completion signal with a result URL after the first request arrives. The callback does not contain the captured request. Whatever is sent to update_url becomes publicly readable, so do not use it for secrets, credentials or personal data.

ParametersJSON Schema
NameRequiredDescriptionDefault
notify_urlNoOptional public HTTP or HTTPS callback. It receives one small signal after capture.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
statusYes
read_urlYes
wait_urlYes
capture_idYes
update_urlYes
expire_datetimeYes
expire_timestampYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, the description discloses important behaviors: the pending capture is stored before the call returns, the optional notify_url receives a completion signal only after the first request, that callback does not contain the captured request, and that anything sent to the generated URL becomes publicly readable. This is unusually transparent about timing, callback payload, and security/privacy implications.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but not bloated: it front-loads the main purpose, then gives usage rationale, setup simplicity, timing, callback semantics, and a privacy warning. Each sentence contributes, though the final sentence's 'update_url' wording could be tightened to avoid ambiguity with notify_url.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given a single optional parameter, an output schema, and annotations, the description covers the essential behaviors needed to call the tool correctly: what it creates, what the capture captures, when it is persisted, how the callback behaves, and privacy limitations. Minor gaps like explicit expiration or a clearer name for the generated URL are not critical for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% for notify_url, and the description adds meaning by explaining that it receives 'one small completion signal with a result URL after the first request arrives' and that it does not contain the captured request. The mention of 'update_url' is slightly confusing since that is not a declared parameter, but the single param is otherwise well explained.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Create a throwaway URL that records the next HTTP request anyone sends to it, headers and body included.' It also gives concrete use cases (inspecting webhook/form/third-party traffic, proving an integration fired), which clearly distinguishes it from read_webhook_capture and the other sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states explicit usage context: 'Use it to see what a webhook provider, a form or a third party service actually transmits, instead of trusting their documentation, and to prove that an integration fired at all.' It does not name alternatives or state when not to use it, but the intended scenario is clear enough that an agent can route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

crypto_walletBitcoin, Ethereum and Solana walletsB
Read-only
Inspect

The balance of a public Bitcoin, Ethereum or Solana address, read from blockchain.info, a public Ethereum RPC node or the Solana mainnet RPC, or a newly generated key pair. A generated private key is sent once and not stored, but it has passed through this service, so use it for tests and small amounts only. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYes
addressNobalance only: the public address.
operationYes

TDQS

B3.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover safety (readOnlyHint, openWorldHint, idempotentHint=false), and the description adds genuinely new behavioral context: the private key is sent once, not stored, but has transited the service, so it is test-grade only. It also names the actual data sources (blockchain.info, an Ethereum RPC node, Solana mainnet RPC), which nothing else discloses. A shadow of doubt remains about whether 'new_wallet' truly fits readOnlyHint, but no direct contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences with no explicit division between the balance path and the wallet-generation path, so the structure doesn't front-load the two distinct operations. The security caveat is placed mid-sentence rather than as a prominent warning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter enum-driven tool with no output schema, the description covers both operations, the data sources, the no-auth model, and a critical security caveat about generated keys. What an agent needs in order to call it correctly is largely present; only the return shape of the balance call is left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, so the description must compensate. It clarifies that the address is a public address used for balance, and the enums for chain and operation are self-documenting. However, it never states that 'address' is unused/optional for new_wallet, leaving that to the schema's 'balance only' note.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description conveys the domain – reading balances of BTC/ETH/SOL addresses and generating a key pair – but does so as an awkward noun fragment rather than a clean verb+resource statement ('The balance of ... or a newly generated key pair'). There are no sibling wallet tools, so differentiation isn't the issue; the gap is that the actual actions (check balance vs. generate wallet) are implied rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives one real usage constraint ('use it for tests and small amounts only' for generated keys) and reassures the caller no API key or account is needed. It does not explain when to pick the 'balance' operation versus 'new_wallet', nor any prerequisites for reading an address, leaving the choice to the schema enums.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

decideDecide from rules or a modelA
Read-only
Inspect

Omit model or use rules for the existing yes_no, choice and scale rule engine with probability, confidence and action. Use model clef, nimble or tev1 for noul, choice and score questions with instructions and criteria. tev1 is the smallest and fastest, tested by its maker in English only, and suits short, direct questions. Model mode processes the submitted state and questions and returns structured answers without an automatic action or rule trace. Model requests allow up to 8 KiB of JSON, 3 KiB for tev1, 4 questions and 8 choices per question, and have their own usage limit of 60 per minute and 1000 per UTC day per IP. Refusals may carry Retry-After. Do not retry automatically. state holds the facts. For rules, each rule is {"if": condition, "weight": number}, where a condition tests a field of state with eq, ne, gt, gte, lt, lte, in, exists, prefix or contains, combined with any and not. Request and answer bodies are not stored by this API. Usage counters are stored. Do not send credentials or sensitive personal data. The full format is at https://aisense.no/free-public-api-decide-api-endpoint. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoOptional. rules (default), clef, nimble or tev1. Unknown models are refused.
stateYesThe facts the rules test, or the input sent to the selected model.
questionsYes1 to 64 named rule questions, or up to 4 model questions under the default model limits.

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare read-only, open-world, non-idempotent, but the description adds substantial context the annotations cannot: request/answer bodies are not stored while usage counters are, exact size limits (8 KiB, 3 KiB for tev1), question/choice caps, per-minute and per-day rate limits, Retry-After semantics, and a 'do not retry automatically' warning. This is exactly the kind of operational detail an agent needs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is valuable but delivered as a long, run-on block mixing modes, limits, rule syntax, and privacy notes without clear structure. It is front-loaded on the mode choice, but the density makes it harder to scan than necessary; some clauses could be tightened or grouped.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so partially, stating that model mode returns structured answers without an automatic action or rule trace. Combined with the rule format, limits, and no-key/auth info, an agent has enough to invoke correctly, though the exact response shape for rules mode is left to the linked docs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description goes further by documenting the rule DSL: each rule is {"if": condition, "weight": number} with operators eq/ne/gt/gte/lt/lte/in/exists/prefix/contains combined via any and not, and clarifies that state holds the facts. That meaningfully enriches the otherwise opaque nested-object parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (Decide) and clearly distinguishes two modes: the rules engine (yes_no, choice, scale) and model mode (clef, nimble, tev1). It explains what each mode does, though the opening sentence is dense and slightly awkward to parse. It does not name a sibling tool, but none of the listed siblings are near-neighbors for this capability.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit routing: omit model/use rules for the rule engine, use clef/nimble/tev1 for noul/choice/score questions with instructions and criteria. It even characterizes tev1 as smallest, fastest, English-only, suited to short direct questions. No explicit 'when not to use' or alternative tool is named, but the mode-selection guidance is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_dns_nameDelete a temporary DNS nameA
DestructiveIdempotent
Inspect

Remove a temporary DNS name now, before its 24 hours are up. Needs the dns_token. Use it when the work is done and the name should stop answering rather than sit there until it expires. The removal reaches the primary name server at once and the secondary follows by replication, so a disconnected secondary can keep answering until it reconnects or the name expires. A resolver that already holds the answer keeps it for the rest of its TTL, at most 60 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug the service assigned, without the aisense- prefix and without the zone.
dns_tokenYesThe dns_token from create_dns_name. It is shown once and never again.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
nameYes
slugYes
serialNo
deletedYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond the annotations by disclosing the exact DNS propagation behavior: primary server removal is immediate, secondary servers follow via replication and may keep answering if disconnected, and resolvers retain cached answers up to 60 seconds. This is valuable operational context that annotation hints alone do not convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with the core action, and every sentence contributes useful information about timing, prerequisites, or propagation behavior. There is no wasted wording or irrelevant detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive operation with an existing output schema and rich annotations, the description covers purpose, timing, prerequisites, and observable side effects. An agent has enough information to decide when to call the tool and what to expect afterward, so no critical context is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the schema already thoroughly documents both 'slug' and 'dns_token', so the description need not restate them. The description adds a small reminder that dns_token is required, but it does not materially enrich parameter semantics beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Remove a temporary DNS name now, before its 24 hours are up') and differentiates this from sibling tools by emphasizing immediate removal versus waiting for expiration. It is specific about the resource type and avoids simply restating the tool name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a clear when-to-use instruction ('Use it when the work is done and the name should stop answering') and mentions the required dns_token prerequisite. It does not explicitly name an alternative tool for scenarios where the name still needs to answer, but the guidance is sufficiently clear for the common delete use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

delete_semantic_search_noteDelete a note from a semantic search collectionA
DestructiveIdempotent
Inspect

Delete one note with the write token. Its text and vector are removed and it leaves the search at once. Its place in the 500-note lifetime limit stays used. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
note_idYesThe note_id from add_semantic_search_notes or a search.
write_tokenYesThe write_token from create_semantic_search, shown once. It adds and deletes notes.
collection_idYesThe collection_id from create_semantic_search.

TDQS

A4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare destructiveHint=true, idempotentHint=true, and readOnlyHint=false, but the description adds genuinely non-obvious behavior beyond them: what is destroyed (text and vector), that removal from search is immediate, and that the note's slot in the 500-note lifetime quota stays consumed. It also states the auth model (no API key/account).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short, front-loaded sentences that put the action first and the quota caveat before the auth aside; no filler sentences. The 'no API key, no account and no sign up' triplet is slightly redundant for emphasis, keeping it just under a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation with full annotation coverage, fully documented parameters, and no output schema, the description supplies everything an agent needs: destruction scope, immediate effect, quota persistence, and the auth model. Nothing material is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and each parameter documents its own origin (write_token from create_semantic_search, note_id from add_semantic_search_notes or a search). The description only references 'the write token' and adds no syntax or format detail, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb (Delete) and resource (one note in a semantic search collection), and 'one note' implicitly contrasts with the plural sibling add_semantic_search_notes. It stops short of naming a sibling or the read/query counterparts, so it is clear but not fully differentiated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states you call it 'directly' with no API key, which is a usage precondition, and the singular scope hints at single-note deletion. But there is no explicit when-to-use vs when-not-to-use guidance and no reference to the alternative of leaving notes in place.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

encode_dataEncode or decode Base64, Base32, Base58, hex, URL or HTMLA
Read-onlyIdempotent
Inspect

Encode text as Base64, Base64url, Base32, Base58 or hex, as URL percent-encoding or as HTML entities, or decode such a string. Decoding answers decoded_text when the bytes are UTF-8 text and decoded_base64 when they are binary. Base58 uses the Bitcoin alphabet and takes at most 64 KiB, base64url the URL-safe alphabet without padding, url RFC 3986 percent-encoding with a space as %20. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesText to encode, or the encoded string to decode.
formatYes
operationYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint=false), and the description adds genuinely new behavior: decode returns decoded_text for UTF-8 vs decoded_base64 for binary, base58 uses the Bitcoin alphabet with a 64 KiB cap, base64url is unpadded, and url uses RFC 3986 with %20 for space. It stops short of describing error behavior on invalid input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with verb + formats, followed by return-value and format-detail sentences; the closing no-signup line earns modest place as invocation guidance. Dense but free of filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly explains the two possible return fields and the format-specific constraints. It is complete enough to call correctly, though it omits error/invalid-input behavior and the 250000 maxLength from the schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (format and operation enums are undescribed), so the description must compensate, and it does: it pins down Base58 alphabet/limit, base64url padding, and URL percent-encoding semantics. The operation enum is self-explanatory, so full marks aren't warranted.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb (encode/decode) and resource (text/string) across an explicit list of formats, so an agent can immediately tell it apart from siblings like hash_data, validate_value, or html_markdown_convert.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is largely implied by the tool's nature, but there is no explicit when-to-use guidance or contrast with adjacent tools such as hash_data or validate_value. The 'call it directly, no API key' note addresses friction, not tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enqueue_agent_queue_jobEnqueue agent queue jobA
Idempotent
Inspect

Add a JSON job using the write token and a stable job_key. The same key and payload return the original job. Changing the payload for that key is a conflict. Payloads are limited to 16 KiB encoded JSON and must contain no secrets or personal data. The 100-job lifetime limit includes completed and failed jobs.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_keyYes
payloadYesRequired JSON value, including null. Maximum encoded size: 16384 bytes.
queue_idYes
write_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
jobYes
queue_idYes
deduplicatedYes
expire_timestampYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal idempotency, non-read-only, and non-destructive behavior. The description goes further by explaining the exact conflict rule, the 16 KiB payload limit, the no-secrets requirement, and the 100-job lifetime cap. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four focused sentences, each adding a distinct constraint or behavior. The primary action is front-loaded, and there is no filler or redundant restatement.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers idempotency, conflict behavior, payload constraints, security policy, and lifetime limits. With an output schema present, return-value documentation is unnecessary, and the remaining parameters are adequately covered by names and schema patterns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, so the description must compensate. It adds meaning for job_key (stable, idempotency key) and payload (JSON, size limit, data sensitivity), and references write_token's role. However, queue_id and write_token semantics are mostly left to their names and regex patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource ('Add a JSON job') and clarifies the central idempotent behavior. It clearly differentiates this enqueue operation from sibling read/claim/release/renew operations through the stable job_key and conflict semantics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: use this tool to add a job to a queue. However, the description does not explicitly compare against alternatives or state when not to use this tool, so the agent must infer routing from purpose and sibling names.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_randomGenerate a random valueA
Read-only
Inspect

Generate a random number in a range (kind number, from and to, default 1 to 6), a color as #rrggbb (color), a GUID (guid), a password of 6 to 128 characters (password, length, default 12) or a passphrase of 2 to 12 word groups (passphrase, groups, default 4), which comes with its entropy in bits. For a UUID use generate_uuid. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNonumber only.
fromNonumber only.
kindYes
groupsNopassphrase only.
lengthNopassword only.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent hints, and random generation is consistent with idempotentHint=false. The description adds useful output context (passphrase returns entropy in bits) and default behavior, though it doesn't elaborate on return format for other kinds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense sentence enumerates the variants with defaults and ranges, followed by the sibling pointer and the no-auth note; front-loaded with the core purpose. Slightly long but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing what each kind returns (e.g. color as #rrggbb, entropy bits for passphrase). Adequate for a 5-param tool, though it could note error behavior for out-of-range values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 80% (min/max ranges documented), and the description adds the missing defaults (number 1-6, password length 12, passphrase groups 4) plus the semantic mapping of each parameter to its kind, which is value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource and enumerates every generated variant (number/color/guid/password/passphrase) with their modifiers, so an agent knows exactly what the tool produces. It also names the sibling generate_uuid and the condition that routes there.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'For a UUID use generate_uuid,' giving one clear alternative and when to pick it. It also clarifies there is no API key/account/sign-up requirement, which aids invocation, but gives no when-not guidance for the other random kinds.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

generate_uuidGenerate UUIDA
Read-only
Inspect

Generate one random RFC 4122 version 4 UUID. Use it when you need an identifier that will not collide with anything else - an idempotency key, a correlation id across systems, a filename - rather than inventing a string yourself, which is not random and tends to repeat across runs. Takes no parameters and returns a single lowercase hyphenated UUID. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
uuidYes

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that it returns a single lowercase hyphenated UUID and is random, and mentions the lack of authentication requirements. While the readOnlyHint annotation already indicates safety, the description adds useful behavioral details without contradicting the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is slightly verbose but every sentence adds value—purpose, usage, output, and access details are all covered. It is well-structured with hyphens and dashes, making it readable without being overly long.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, straightforward output), the description covers all necessary aspects: what it does, when to use it, what it returns, and authentication requirements. It is complete and self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, and the description explicitly states 'Takes no parameters,' which aligns with the empty schema. Since there are no parameters to explain, the description sufficiently covers this aspect.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool generates a random RFC 4122 version 4 UUID, with explicit use cases like idempotency keys and correlation IDs. It also distinguishes itself from inventing strings, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides specific guidance on when to use (when a collision-free identifier is needed) and when not to (when inventing strings). The note about no API key or signup further clarifies its accessibility, though it doesn't explicitly contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_current_timeGet current timeA
Read-onlyIdempotent
Inspect

Get the true current date and time, as an ISO 8601 string and a Unix timestamp, for any timezone. Use this whenever the actual present moment matters - stamping a record, computing an age or a deadline, deciding whether something has expired - because a language model has no clock and will otherwise guess a date from its training data. No API key, no account and no sign up: call it directly. The timezone parameter accepts an IANA name or a fixed UTC offset and defaults to UTC.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoIANA timezone or UTC offset, such as Europe/Oslo or +02:00.UTC

Output Schema

ParametersJSON Schema
NameRequiredDescription
datetimeYes
timezoneYes
timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the tool as read-only and idempotent; the description adds valuable behavioral context on top: it is a true external-clock call, requires no API key or account, returns both ISO 8601 and Unix timestamp, and accepts IANA/offset timezones. It does not contradict the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Every sentence earns its place: purpose/output, usage guidance, auth/directness, and parameter semantics are each covered in a compact four-sentence structure with no filler. The key action is front-loaded in the first sentence.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-optional-parameter tool with an output schema and safe annotations, the description is complete: it covers what, when, why, auth, and parameter behavior. The output schema handles return-value details, so the description need not repeat them.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully documents the timezone parameter with a default and example formats at 100% coverage. The description paraphrases that same meaning ('IANA name or a fixed UTC offset and defaults to UTC'), adding little value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Get the true current date and time') and names the concrete return forms (ISO 8601 string and Unix timestamp). It also scopes the tool to any timezone, clearly distinguishing it from unrelated sibling tools such as generate_uuid.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance ('whenever the actual present moment matters') with concrete examples like stamping records, computing ages/deadlines, and expiration checks. It also explains why an LLM should not guess the time, making the guidance actionable and unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

hash_dataHash textA
Read-onlyIdempotent
Inspect

Hash text with MD5, SHA-1, SHA-256, SHA-512, CRC32, Whirlpool, SHA3-256, SHA3-512, BLAKE2b-256 or BLAKE3 and answer the digest in hex, or for crc32 as an integer. Use sha256, sha3_256, blake2b or blake3 for integrity checks; md5 and sha1 are for systems that still expect them. argon2id, bcrypt and scrypt are password hashes: slow by design, salted, answered as a self-describing string, limited to 200 calls per day, and meant for test data, since a real password should be hashed where it is used. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
algorithmYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, closed-world), and the description layers on real behavioral context beyond them: a 200-calls-per-day limit on password hashes, salted slow-by-design output returned as a self-describing string, output format differences (hex vs. integer for crc32), and a no-auth requirement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action and algorithm list, dense with useful detail, and no filler sentences. It runs long as a few compound sentences but every clause conveys selection or behavioral information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description correctly explains return formats (hex digest, integer for crc32, self-describing string for password hashes) and covers rate limiting and auth needs. The only meaningful omission is the input-size bound on the data parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description must carry the burden. It does explain the algorithm parameter by grouping the enum members semantically (integrity vs. legacy vs. password), which adds meaning beyond the raw enum. However the data parameter — its string type and 250,000-character cap — is never addressed, leaving a required input undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a concrete verb+resource (hash text) and enumerates the algorithm family, so the agent immediately understands it's a one-shot hashing utility. It clearly contrasts itself with neighboring utilities like encode_data or generate_random by naming cryptographic vs. password-hash modes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit selection guidance: sha256/sha3_256/blake2b/blake3 for integrity checks, md5/sha1 only for legacy systems expecting them, and argon2id/bcrypt/scrypt for test-data password hashing. It does not route the agent to the sibling verify_hash tool for the verification half of the workflow, which would be the natural companion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_markdown_convertConvert between HTML and MarkdownA
Read-onlyIdempotent
Inspect

Convert HTML to Markdown, or Markdown to HTML. html_to_markdown leaves out scripts, styles, forms and media and answers markdown and the page title, so a fetched page reads with fewer tokens. markdown_to_html answers html from CommonMark with GitHub tables, strikethrough and task lists; raw HTML in the Markdown is shown as text and a link with an unsafe scheme as its text, so the html can go into a page as it is. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe HTML or the Markdown.
directionYes

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnly/idempotent/openWorld=false) by disclosing exactly what html_to_markdown strips (scripts, styles, forms, media) and returns (markdown plus page title), and how markdown_to_html handles raw HTML (rendered as text) and unsafe link schemes (rendered as their text). This is concrete behavioral detail that materially affects 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, then dense per-direction detail, with no filler. Slightly long and comma-heavy, but each clause carries real information about output behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 correctly explains return values for both directions (markdown + title, or html). Combined with the safety and auth-free context, an agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, with the direction enum and data field documented in the schema. The description adds meaning by explaining what each direction value actually produces and its safety handling, compensating for the gap on direction semantics; data itself is only lightly described.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (convert HTML<->Markdown) and the two direction modes, so the agent knows exactly what the tool does. It does not explicitly differentiate from the closest sibling html_to_pdf, relying on the resource name to distinguish, which keeps it just below a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear rationale for when each direction is useful ('so a fetched page reads with fewer tokens' for html_to_markdown, 'so the html can go into a page as it is' for markdown_to_html). It never names an alternative tool or states when-not to use it, so no explicit exclusion guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

html_to_pdfRender HTML to PDFAInspect

Render HTML to a PDF with JavaScript and network access turned off, so only the HTML sent is used and images must be inline data URLs. options can set page-size (A3, A4, A5, Letter, Legal, Tabloid), orientation (Portrait, Landscape) and margin-top, margin-bottom, margin-left, margin-right such as 10mm. The PDF is stored for 24 hours: the answer has storage_id and storage_url, and read_stored_file returns the file. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYes
optionsNo

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds substantial behavior beyond the annotations: JavaScript and network access are disabled, only submitted HTML is used, images must be inline data URLs, and the resulting PDF is stored for 24 hours with storage_id and storage_url. These details are exactly what an agent needs to invoke the tool safely and interpret the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The text is front-loaded with the core rendering behavior, then proceeds through options, storage lifetime, retrieval, and auth requirements. Every sentence adds actionable information without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the nested options object, no output schema, and annotations that leave storage and retrieval behavior unstated, the description is complete enough for correct invocation. It explains the output shape, where the file goes, and how to read it back.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the parameter burden and does so well. It documents the html input constraints (no external network, inline data URLs required) and enumerates the options keys with valid page sizes, orientations, and margin examples such as 10mm.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb-and-resource pair: render HTML to a PDF. It is immediately distinct from siblings such as process_image or read_stored_file, and the opening sentence leaves no ambiguity about what the tool produces.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear operational context: no API key or sign-up is needed, the output is stored for 24 hours, and read_stored_file retrieves it. It does not explicitly state when not to use this tool or name an alternative renderer, but the retrieval follow-up and auth guidance are useful usage cues.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_checkFormat or validate JSONAInspect

Format or validate JSON text. format pretty-prints it (mode pretty, indent 2 or 4) or compacts it (mode compact); validate reports whether it parses and where it breaks. The result is stored for 24 hours and the answer has its storage_id and storage_url. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe JSON text.
modeNoformat only.
indentNoformat only.
operationYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and openWorldHint=false, and the description explains why: results are persisted for 24 hours and returned with a storage_id and storage_url, which reconciles the non-read-only hint. It also discloses the auth posture (no API key, account, or sign-up). It stops short of mentioning the 250,000-character input limit or how to retrieve the stored artifact later (read_temporary_data), which would have completed the behavioral picture.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with purpose before mode semantics and then retention/auth facts. The closing 'No API key, no account and no sign up' is mildly redundant phrasing, but nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the return-value burden and does so by naming storage_id, storage_url, and validate's error location. The one real gap is that it never says how the 24-hour artifact is retrieved, leaving the agent to discover read_temporary_data on its own.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75%, with mode and indent described only as 'format only.' and operation undescribed. The description compensates by clarifying that mode selects pretty (with indent 2 or 4) versus compact, tying indent to the pretty path and explaining that validate ignores those options - meaningfully more than the schema conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific resource (JSON text) and enumerates both verbs (format, validate), so an agent immediately knows the tool's scope. It does not, however, explicitly route away from adjacent siblings such as json_csv_convert or validate_value, so it falls short of the top tier that requires sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains what each operation does in practice - format pretty-prints or compacts, validate reports whether it parses and where it breaks - which gives clear selection context between the two modes. It never states when NOT to use the tool or names an alternative for cases like JSON-to-CSV conversion, so no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

json_csv_convertConvert between JSON and CSVAInspect

Convert between JSON rows and CSV. json_to_csv takes columns and rows, up to 5000 flat objects, and stores result.csv; csv_to_json takes data, the CSV text, and stores result.json. delimiter is a comma, a semicolon or a tab. spreadsheet_safe guards cells a spreadsheet would run as formulas. The result is stored for 24 hours and the answer has its storage_id and storage_url. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNocsv_to_json only.
rowsNojson_to_csv only.
columnsNojson_to_csv only.
delimiterNo
directionYes
spreadsheet_safeNojson_to_csv only.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes beyond the annotations (readOnlyHint=false, destructiveHint=false) by disclosing the 5000-flat-object cap, the 24-hour result retention, that the response carries storage_id and storage_url, and crucially that no API key or account is needed. These are real operational facts an agent must plan around; only error/failure behavior is left unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph that is front-loaded with the core purpose before mode details, limits, and storage behavior. Nearly every clause carries information, though the delimiter enumeration duplicates the schema enum and could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by describing the return payload (storage_id, storage_url) and retention window. It covers inputs, limits, delimiter options, and auth posture for a 6-parameter tool, leaving only edge-case/error behavior unspecified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema coverage at 67%, the description usefully clarifies parameter roles the schema only tags as 'json_to_csv only' or 'csv_to_json only', and explains spreadsheet_safe beyond the schema as guarding cells a spreadsheet would execute as formulas. The delimiter enumeration (comma/semicolon/tab) merely restates the enum, keeping it short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Convert between JSON rows and CSV') and enumerates both operating modes with the inputs each consumes (json_to_csv takes columns and rows; csv_to_json takes data). An agent can immediately tell what the tool does and which direction to pick, with no sibling in the list (convert_timestamp, encode_data) overlapping this function.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description effectively routes the agent by mapping each direction to its required input ('json_to_csv takes columns and rows', 'csv_to_json takes data, the CSV text'), so the choice is unambiguous. It lacks explicit exclusions or a stated 'use X instead' comparison, but for a self-contained converter that is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

jwt_tokenCreate or verify a JWTA
Read-onlyIdempotent
Inspect

Create or check an HS256 JSON Web Token. encode signs payload with secret and answers jwt; decode verifies token with secret, including exp, nbf and iat, and answers decoded_payload. The secret is used for this call only and is not stored. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenNodecode only.
secretYes
payloadNoencode only: the claims.
operationYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds real behavioral context beyond the annotations: the secret is used only for this call and is not persisted, and no API key or account is required. It also discloses that decode validates exp, nbf and iat, which the schema does not state. The readOnly/idempotent annotations remain consistent since no state is stored.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the tool's purpose and then the mode semantics. The closing 'No API key, no account and no sign up' sentence is slightly redundant with the preceding 'secret is not stored' claim, but still conveys the auth-free calling model.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description covers return values by naming them ('answers jwt' and 'answers decoded_payload'), plus the auth model and the per-call secret handling. An agent has everything needed to call either mode correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (token and payload documented, secret and operation not), so the description must compensate. It does so by defining what each operation does and which parameter belongs to which mode, adding the timestamp-claim semantics for decode that the schema omits.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create or check an HS256 JSON Web Token') and spells out both modes: encode signs a payload, decode verifies a token. This distinguishes it clearly from computational siblings like hash_data, encode_data and verify_hash, which operate on different primitives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The encode/decode split and the 'decode only'/'encode only' parameter roles imply when each mode applies, and the token expiry claims (exp, nbf, iat) hint at verification use. However, there is no explicit when-to-use/when-not guidance or routing to a sibling tool for adjacent tasks such as hashing or signing non-JWT data.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_timezonesList timezonesA
Read-onlyIdempotent
Inspect

List the IANA timezones with their current UTC offsets, optionally only those at one offset such as +0530. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoUTC offset such as +0530, from -1400 to +1400.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds genuinely new context by noting no API key, account or sign-up is required, telling the agent it can invoke directly without credentials. It does not describe response size or pagination, which keeps it short of 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the core action and the optional filter before the access note. The final sentence is mildly promotional but does carry real information about auth, so it earns its place; nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter, no-auth read tool with no output schema, the description covers what is returned (timezone names plus current offsets) and how to narrow results. Only the exact return shape and result volume are unstated, which is a minor gap for a tool this simple.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and there is only one optional parameter, so the schema already documents 'offset' with a regex pattern and range. The description's '+0530' example reinforces the format but adds nothing the schema does not already state, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the IANA timezones') plus what is returned ('with their current UTC offsets') and the optional narrowing ('only those at one offset such as +0530'). This distinguishes it from siblings like convert_timestamp, time_formats and get_current_time, which deal with time but not timezone enumeration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when the 'offset' argument is useful ('optionally only those at one offset'), but never names an alternative tool or states when to prefer this over convert_timestamp or time_formats for timezone-related questions. Context is implied rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

lookup_networkNetwork lookupA
Read-onlyIdempotent
Inspect

Network facts: the public IP address this service sees for you (client_ip), your User-Agent (user_agent), the country, city, coordinates and timezone of an IPv4 address from a local GeoLite2 database (reverse_ip), or the first IPv4 address a domain resolves to (domain_ip). value is the address or domain for the last two. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
valueNoAn IPv4 address for reverse_ip, a domain name for domain_ip.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so safety and idempotency are covered structurally. The description adds useful operational context (no auth needed) and notes the GeoLite2 source, but does not describe accuracy limits, data gaps, or fallback behavior for unresolvable inputs.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence enumerating all four kinds, followed by a short operational note. No padding, though the listing is dense and could be slightly easier to scan if split.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 2-parameter read-only lookup with no output schema, the description covers all four modes, the meaning of 'value', and the auth contract. Missing only edge-case behavior (what happens on invalid IP/domain or resolution failure), which is minor for a simple lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% – 'value' is documented in the schema, but 'kind' is an enum-documented param whose semantics are partially in the description. The description maps 'value' to its meaning for reverse_ip and domain_ip, roughly maintaining the baseline expected when the schema carries half the load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly enumerates the four concrete facts the tool returns (client IP, user agent, geo lookup for an IPv4, first IPv4 of a domain), which distinguishes it from generic network utilities among the siblings. It is specific about the resource and the modes of operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the operational contract clearly ('no API key, no account and no sign up: call it directly') and ties each 'kind' to its behavior, giving the agent enough to invoke without prerequisites. It doesn't name alternatives, but no sibling overlaps this purpose, so exclusions are less critical.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

match_tablesMatch two tablesAInspect

Match the rows of two tables on one or more pairs of key columns, like a join, and store the matches as JSON for 24 hours. left and right are lists of row objects; keys lists pairs such as {"left":"id","right":"customer_id"}. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
keysYes
leftYes
rightYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=false and idempotentHint=false, but give no hint about persistence. The description adds genuinely new behavior: matches are stored as JSON and kept for 24 hours, plus the no-auth requirement. It stops short of saying how the stored result is later retrieved, but the TTL disclosure is valuable context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by the parameter format and the storage caveat. The closing 'No API key, no account and no sign up: call it directly' is somewhat redundant but adds operational value. Overall tight with minimal waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-param tool with no output schema and 0% schema coverage, the description covers purpose, input shape, TTL, and auth. It would be fully complete if it explained how the stored 24-hour result can be read back, since no output schema exists to document the return value.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden. It defines left/right as lists of row objects and explains keys as pairs with a concrete example ({"left":"id","right":"customer_id"}), which compensates well. It omits the maxItems=100 limit and does not fully describe the keys object shape, keeping it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('match the rows of two tables on pairs of key columns, like a join') and names the storage side effect. An agent immediately understands this is a table-join operation, which is clearly distinguishable from the surrounding utility siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'call it directly' with 'no API key, no account and no sign up' tells the agent it can be invoked without setup, which is useful operating context. However, there is no explicit when-to-use vs when-not guidance or named alternative, so usage remains implied rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ping_heartbeatPing heartbeatAInspect

Record a check-in for an armed heartbeat and move its next expected deadline. Use it after successful work or from a liveness loop. A ping does not extend the absolute 24 hour lifetime. The heartbeat ID is a bearer secret. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
heartbeat_idYesThe secret heartbeat ID returned by create_heartbeat.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
lateYes
missesYes
statusYes
on_missYes
deliveryNo
ping_urlYes
ping_countYes
status_urlYes
heartbeat_idYes
grace_secondsYes
missed_at_datetimeNo
created_at_datetimeYes
expires_at_datetimeYes
missed_at_timestampNo
created_at_timestampYes
expect_every_secondsYes
expires_at_timestampYes
miss_due_at_datetimeYes
terminal_at_datetimeNo
last_ping_at_datetimeYes
miss_due_at_timestampYes
terminal_at_timestampNo
last_ping_at_timestampYes
next_expected_at_datetimeYes
next_expected_at_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false and provide no behavioral protection, so the description carries the full burden. It discloses the side effect (moving the next expected deadline), a non-obvious limitation (does not extend absolute lifetime), and security context (heartbeat ID is a bearer secret; no authentication required). This is rich, accurate, and goes beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences with no filler. The core action is first, usage follows, then critical caveats, then authentication. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With a single parameter, an existing output schema, and annotations that are all false, the description covers the essential operational facts: what the tool does, when to use it, the non-renewal caveat, and security handling. No crucial information appears to be missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 emphasizing the heartbeat_id is a 'bearer secret,' which strengthens the schema's 'secret heartbeat ID' by implying it must be protected like a credential. It does not add format details, but the schema already includes pattern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Record a check-in for an armed heartbeat and move its next expected deadline.' It clearly distinguishes this from sibling tools like read_heartbeat (read-only) and create_heartbeat (creation), and the effect is concrete.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives explicit when-to-use guidance: 'Use it after successful work or from a liveness loop.' It also states a key when-not-to-use caveat: 'A ping does not extend the absolute 24 hour lifetime.' However, it does not name alternative sibling tools for comparison, so it stops short of a perfect 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

process_imageConvert, resize or inspect an imageAInspect

Work on a JPEG, PNG or WebP image, HEIC for convert and resize, or GIF for metadata and strip: convert to another format (format, quality, lossless), compress (quality), resize (width, height, fit contain or cover, upscale, format), read its metadata including any GPS position (metadata), strip EXIF, XMP and IPTC (strip), find its main colors (colors, count) or make a set of favicons as a ZIP (favicon, crop fit, trim or center, name). Give image_base64 or storage_id, for example the result of an earlier call. Every result is stored for 24 hours and the answer carries its storage_id, so calls can be chained. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
fitNo
cropNo
nameNofavicon only: the site name for the manifest.
countNo
widthNo
formatNo
heightNo
qualityNo
upscaleNo
losslessNo
operationYes
storage_idNoA storage_id from store_file, from a previous tool result, or from REST /storage. Objects expire 24 hours after they were stored.
image_base64NoThe file as standard base64, at most about 190 KB of file through MCP. For a larger file, store it with REST POST /services/v1/storage first and pass storage_id.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare a non-read-only, non-destructive, non-idempotent, non-open-world tool, and the description adds genuinely useful behavioral context: results are stored for 24 hours, the response carries a storage_id enabling chained calls, and no API key or account is required. It does not clarify that 'strip' discards EXIF/XMP/IPTC irreversibly or specify payload size limits beyond the schema, but it goes well beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense paragraph, front-loaded with the resource and then a parenthetical parameter-to-operation map, followed by input sourcing and storage/chaining notes. Every sentence carries information, though the long parenthetical enumeration is packed tightly enough to be slightly hard to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter, no-output-schema tool, the description covers input sourcing, format constraints per operation, the 24-hour result retention contract, and chaining via storage_id. Return-value details for metadata/colors/favicon are only implied, which is a minor gap given no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With schema description coverage at only 23% across 13 parameters, the description compensates substantially by naming each parameter inline and binding it to an operation (format, quality, lossless, width, height, fit contain/cover, upscale, crop fit/trim/center, name, count, metadata, strip). It omits value ranges that the schema actually supplies (quality 40-95, count 2-16), so it is strong but not complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource (images in JPEG/PNG/WebP/HEIC/GIF) and enumerates the exact operations it performs: convert, compress, resize, metadata, strip, colors, favicon. An agent can tell what this tool does without opening the schema, and no sibling tool overlaps with image processing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It maps each operation to its relevant inputs (e.g. 'HEIC for convert and resize', 'GIF for metadata and strip') and routes the agent to the alternative input path ('store it with REST POST /services/v1/storage first and pass storage_id'). It lacks explicit when-not-to-use guidance, but the operation-to-format mapping is clear practical context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_agent_inboxRead agent inboxA
Read-onlyIdempotent
Inspect

Read the mail that has arrived in an inbox from create_agent_inbox. Each message carries the sender, the subject, the arrival time in UTC, the cleaned text, any standalone 4 to 8 digit codes found in that text and any public http or https links. Attachments and raw headers are not stored. Set wait_seconds from 1 to 25 to wait for the next message, or zero to read immediately. An empty inbox is the ordinary answer before mail arrives and is not a failure. When truncated is true, at least one whole message was refused because the inbox had reached its 20 message cap or its 256 KiB total text cap. A code you are waiting for may then have been turned away rather than delayed. The reply names the public slug and never repeats the secret inbox_id. An unknown inbox_id and a wrong one fail in the same way, so neither can be told from the other, while an expired inbox says that it expired. No API key, account or sign up is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
inbox_idYesThe secret UUID that create_agent_inbox returned as inbox_id. Not the slug and not the address.
wait_secondsNoWait up to this many seconds for new mail. Zero returns immediately.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
slugYes
addressYes
messagesYes
receivedYes
truncatedYesTrue once at least one whole message has been refused, by the 20 message cap or by the 256 KiB total text cap. Messages already stored are kept.
wait_reasonYes
waited_secondsYes
expire_timestampYes
created_at_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent, and the description adds substantial behavioral detail: attachments and raw headers are not stored, 20-message and 256 KiB caps with truncation semantics, the reply uses a public slug and never repeats the secret inbox_id, unknown and wrong inbox_id fail identically while expired inboxes differ, and no API key or account is required. This covers safety, failure modes, and response nuances.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Longer than average, but every sentence carries distinct operational information: content shape, omitted attachments/headers, wait behavior, normal empties, truncation consequences, identifier secrecy, failure indistinguishability, and lack of auth. It is front-loaded with purpose and contains no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read tool with readOnly and idempotent annotations, an output schema, and full parameter schema coverage, the description supplies all missing behavioral context an agent needs: caps, truncation, empty semantics, failure modes, and identifier handling. Nothing essential is left unexplained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already defines both parameters. The description adds value by clarifying wait_seconds behavior, the meaning of an empty result, truncation consequences, and inbox_id secrecy/failure behavior, going beyond the schema without needing to repeat field-level format details.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Read the mail that has arrived in an inbox from create_agent_inbox', naming a specific verb and resource and referencing the creating sibling. It is clearly the agent-inbox reader, distinct from read_heartbeat, read_human_approval, read_webhook_capture, and read_temporary_data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational guidance: wait_seconds 0 returns immediately, 1 to 25 waits, an empty inbox is a normal pre-delivery result, and truncation means a message may have been refused. It doesn't explicitly contrast with sibling read tools, but the tool name and context make the domain unmistakable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_agent_queueRead agent queueA
Read-onlyIdempotent
Inspect

Read queue metadata and pending, claimed, completed and failed counts using the read token. Does not list payloads, disclose role tokens or extend the fixed expiry.

ParametersJSON Schema
NameRequiredDescriptionDefault
queue_idYes
read_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
countsYes
queue_idYes
expire_timestampYes
created_at_timestampYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark the operation as readOnly, idempotent, and closed-world. The description adds meaningful behavior beyond this: it requires a read token, does not expose payloads or role tokens, and does not extend the fixed expiry. These are important non-obvious safety and lifecycle details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences front-load the primary purpose and then state the key exclusions. Every sentence adds value, and there is no redundant repetition of the tool name or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, strong safety annotations, and only two simple parameters, the description is complete. It covers the operation's scope, its access-token requirement, and its non-actions, leaving no critical decision gap for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It clarifies that read_token is used as a scoped read credential and mentions security boundaries, but it does not explicitly define queue_id beyond the property name and tool context. The two parameters are simple and self-evident, but the description could do slightly more to document them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Read queue metadata and pending, claimed, completed and failed counts') tied to a clear resource ('agent queue'). It also distinguishes the tool from siblings by explicitly stating what it does NOT do: list payloads, disclose role tokens, or extend the fixed expiry.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the context clear: use this tool for read-only queue-level metadata and counts with the read token. It also gives exclusions by stating it does not list payloads or disclose role tokens, though it does not name an explicit alternative sibling for those cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_agent_queue_jobRead agent queue jobA
Read-onlyIdempotent
Inspect

Read one known job, its JSON payload and status using the read token. The active claim receipt and role tokens are never returned by this operation.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
queue_idYes
read_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
jobYes
queue_idYes
expire_timestampYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly, idempotent, and non-open-world behavior. The description adds meaningful security context by stating that active claim receipt and role tokens are never returned, which is not captured by the annotations and is important for an agent to know.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, with the primary operation front-loaded and a critical security caveat stated without extra words. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only tool with an output schema and annotations, the description covers the core behavior, token usage, and the sensitive fields excluded from responses. It does not address error scenarios or sibling selection explicitly, but those are secondary given the other structured signals.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It clarifies that the read_token is used for read access and that the job is 'known' via queue_id and job_id, but it does not elaborate on formats, relationships, or edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the operation: reading one known job, its JSON payload, and status using a read token. The qualifier 'known job' distinguishes it from listing or queue-level tools, though it does not explicitly name sibling alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage context is implied: use this when you have a specific queue_id, job_id, and read token to inspect a single job. However, there is no explicit guidance about when not to use it or which sibling tools to prefer instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_dns_nameRead a temporary DNS nameA
Read-onlyIdempotent
Inspect

Look up what a temporary DNS name points at and how long it has left. No token is needed: everything it returns is already public in DNS. Use it to confirm a name exists and resolves the way you expect before handing it to someone else. It fails once the name has expired, and a name stops answering in the same second it falls due.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesThe slug the service assigned, without the aisense- prefix and without the zone.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipYes
okYes
ttlYes
nameYes
slugYes
recordYes
serialNo
expire_atYes
nameserversYes
expire_timestampYes
created_at_timestampNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnly, idempotent, non-destructive), the description discloses that no token is required, that all returned data is already public in DNS, and that the lookup fails once the name expires, including the exact timing of expiry. This is valuable behavioral context the annotations do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences, with the main purpose front-loaded and no filler. Each sentence adds relevant information: what it does, authentication implications, usage context, and failure behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter, read-only tool with an output schema and comprehensive annotations, the description covers all the extra context an agent needs: purpose, usage, auth requirements, and expiry behavior. Nothing important is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers the only parameter, slug, with a clear description including the pattern, length, and the instruction to omit the prefix and zone. With 100% schema description coverage, the description does not need to add more, and it doesn't, 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Look up') and resource ('temporary DNS name'), and specifies what it returns: the target and remaining lifetime. It is clearly distinguishable from sibling tools like create_dns_name, delete_dns_name, and update_dns_name.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear use context: confirm a name exists and resolves as expected before handing it to someone else. It also notes that no token is needed. It does not explicitly contrast with alternatives, but the use case is specific enough for an agent to select it correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_heartbeatRead heartbeatA
Read-onlyIdempotent
Inspect

Read one heartbeat immediately. Use it to inspect whether the monitor is armed, missed, fired or expired, whether it is running late, and its next deadline. This does not wait for a state change. The heartbeat ID is a 256-bit bearer secret. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
heartbeat_idYesThe secret heartbeat ID returned by create_heartbeat.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
lateYes
missesYes
statusYes
on_missYes
deliveryNo
ping_urlYes
ping_countYes
status_urlYes
heartbeat_idYes
grace_secondsYes
missed_at_datetimeNo
created_at_datetimeYes
expires_at_datetimeYes
missed_at_timestampNo
created_at_timestampYes
expect_every_secondsYes
expires_at_timestampYes
miss_due_at_datetimeYes
terminal_at_datetimeNo
last_ping_at_datetimeYes
miss_due_at_timestampYes
terminal_at_timestampNo
last_ping_at_timestampYes
next_expected_at_datetimeYes
next_expected_at_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and idempotentHint annotations, the description adds meaningful behavioral context: it reads immediately without waiting, the heartbeat ID is a 256-bit bearer secret, and no authentication is required. These details clarify security expectations and non-blocking behavior without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core action. Each sentence earns its place: what the tool does, what it inspects, the non-waiting behavior, and the security-relevant bearer-secret/no-auth clarification. There is no filler or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter read-only tool with an output schema, the description covers the essential context: what state information is available, that it is non-blocking, that the ID is a secret, and that authentication is not required. Nothing an agent needs to decide whether to call this tool is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter is already described as the secret heartbeat ID returned by create_heartbeat. The description adds further meaning by emphasizing that the ID is a 256-bit bearer secret and that no authentication is required, which goes beyond the schema and helps the agent handle the parameter correctly.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource ('Read one heartbeat immediately') and then enumerates exactly what can be inspected: armed, missed, fired, expired, running late, and next deadline. This distinguishes it from the sibling create_heartbeat and ping_heartbeat by focusing on immediate status inspection rather than creation or waiting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states the intended use ('Use it to inspect whether...') and explicitly notes that it does not wait for a state change, which guides an agent away from using this tool for blocking or state-transition waiting. It does not name a specific alternative tool, so it stops short of a full 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_human_approvalRead human approvalA
Read-onlyIdempotent
Inspect

Check whether the person has answered a form from create_human_approval, and read the answer. For a group, partial means at least one person has answered and answered means all form links are complete. The group view contains counts, a tally and anonymous respondent numbers, never form tokens or notification settings. Set wait_seconds from 1 to 25 to wait for a change, or zero to read immediately. No API key, account or sign up is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
action_idYesThe UUID that create_human_approval returned.
wait_secondsNoWait up to this many seconds for a new answer. Zero returns immediately.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
tallyNo
statusYes
answeredNo
responseYes
action_idYes
responsesNo
respondentsNo
wait_reasonYes
waited_secondsYes
expire_datetimeYes
expire_timestampYes
created_at_datetimeYes
answered_at_datetimeYes
created_at_timestampYes
answered_at_timestampYes

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, and the description adds meaningful behavioral detail: group semantics, what the group view contains and never contains, the effect of wait_seconds, and the lack of authentication requirements. No annotation contradiction exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, and the remaining sentences each carry essential information: group behavior, group-view privacy constraints, wait behavior, and authentication requirements. There is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read tool with a known output schema and safety annotations, the description covers everything an agent needs: what action to read, polling semantics, group interpretation, privacy boundaries, and auth requirements. Nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both parameters already have descriptive text. The description reinforces action_id as the UUID from create_human_approval and frames wait_seconds as waiting 'for a change,' but it does not add substantial parameter meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Check whether the person has answered a form from create_human_approval, and read the answer.' It clearly ties the tool to its create-sibling and distinguishes it from the other read tools available.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives strong contextual guidance: it tells when to use it (after create_human_approval), explains partial vs. answered for groups, and prescribes wait_seconds behavior from 1 to 25 or 0 for immediate reads. It does not explicitly name alternatives or exclusions, but the usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_qr_codeRead QR codes in an imageA
Read-onlyIdempotent
Inspect

Read the QR codes in a PNG, JPEG, GIF or WebP image. Several codes come back joined by newlines. Give image_base64 or storage_id. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
storage_idNoA storage_id from store_file, from a previous tool result, or from REST /storage. Objects expire 24 hours after they were stored.
image_base64NoThe file as standard base64, at most about 190 KB of file through MCP. For a larger file, store it with REST POST /services/v1/storage first and pass storage_id.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint=false, so the safety profile is covered. The description adds behavior beyond that: multiple codes are returned joined by newlines, and no API key/account/signup is required. It omits rate limits and what happens when no code is found, 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four short sentences, front-loaded with purpose and formats, then return behavior, input choice, and auth note. Nothing is padded and every sentence carries distinct information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully explains the newline-joined return format and covers accepted formats, input paths, and auth. It lacks error/empty-result behavior and any rate or size context beyond what the schema already states.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 schema already documents storage_id provenance, 24h expiry, and the base64 size limit. The description's "or" only clarifies that the two parameters are mutually alternative input paths, a marginal addition over the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (read) and resource (QR codes) plus the accepted image formats (PNG, JPEG, GIF, WebP), which cleanly separates it from the sibling create_qr_code. An agent can tell what it does and what it accepts without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Give image_base64 or storage_id" tells the caller how to supply input, which is real usage guidance, but there is no when-to-use/when-not context and no comparison to neighbors like process_image or read_stored_file. Usage is implied rather than framed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_stored_fileRead a stored fileA
Read-onlyIdempotent
Inspect

Read a stored object by storage_id. JSON comes back as data, an image as an image, and any other file, such as a PDF from html_to_pdf or a ZIP from process_image, as an embedded resource of at most 4 MB. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
storage_idYesA storage_id from store_file, from a previous tool result, or from REST /storage. Objects expire 24 hours after they were stored.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover safety (readOnly, idempotent, closed-world), so the bar is lower; the description still adds real behavior: return type varies by content type and embedded resources are capped at 4 MB. It does not repeat the annotation claims, but also does not discuss error behavior for a missing/expired id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the action and resource in the first clause, then the return-shape detail, then the no-auth note. Efficient overall, though the triple 'No API key, no account and no sign up' is slightly redundant filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With one fully documented parameter, rich annotations, and no output schema, the description carries the exact burden it must: it explains what comes back for each content type and the 4 MB cap. Nothing needed 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the schema itself documents the UUID pattern, the expiry window, and the provenance of storage_id. The description adds only the restatement 'by storage_id', so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read a stored object by storage_id') and enumerates the three return shapes (JSON data, image, embedded resource). It names sibling tools only as producers (html_to_pdf, process_image) rather than distinguishing itself from lookalike readers such as read_temporary_data, so sibling differentiation is partial.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear invocation context ('No API key, no account and no sign up: call it directly') and tells the agent where a valid storage_id comes from. It stops short of stating when to prefer this tool over read_temporary_data or other read_* siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_temporary_dataRead temporary dataA
Read-onlyIdempotent
Inspect

Fetch back a JSON value that store_temporary_data saved earlier, in this session or in another one. Returns the value exactly as it was stored. Fails if the id is unknown or if the 24 hour lifetime has already passed, so treat a failure as expired or never written rather than as a temporary fault worth retrying. sha256_hash is the digest of the stored bytes and bytes their length, the same values store_temporary_data reported. A value stored with max_downloads answers downloads_left, how many reads remain, and is gone once they are taken. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
storage_idYesThe UUID that store_temporary_data returned.

Output Schema

ParametersJSON Schema
NameRequiredDescription
dataYes
bytesYes
storage_idYes
sha256_hashYes
downloads_leftNo
expire_timestampYes

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnly, idempotent, closed-world) by disclosing the 24-hour lifetime, that failures are terminal rather than transient, that sha256_hash/bytes mirror the stored values, that max_downloads produces downloads_left and consumes reads, and that no API key is required. This is exactly the operational context an agent needs and the annotations cannot supply.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with what it returns and what it pairs with, and each sentence carries real information. The closing 'No API key, no account and no sign up' is slightly promotional padding, keeping it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for a one-parameter read tool: the description covers the source of the value, lifetime, failure semantics, and the meaning of the returned metadata, while an output schema exists to formalize the shape. 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.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single parameter's description already states it is the UUID returned by store_temporary_data, so the schema carries the load. The description's sha256_hash/bytes/downloads_left text describes return fields, not the input parameter, so it adds no input-side meaning beyond the baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (fetch back) and resource (a JSON value stored by store_temporary_data), naming the exact sibling that produced the data. An agent can distinguish this from read_stored_file or read_agent_queue_job 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear context: use it to retrieve values written by store_temporary_data, in this or another session. It also gives explicit error-handling guidance ('treat a failure as expired or never written rather than a temporary fault worth retrying'), which is unusually actionable. It does not, however, contrast with the sibling read_stored_file, so it falls short of the when-not/alternatives bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_webhook_captureRead webhook captureA
Read-onlyIdempotent
Inspect

Check whether anything has been sent to a capture URL yet, and read it. The status field is pending or captured. Pending is the ordinary answer before the sender fires and is not a failure. Set wait_seconds from 1 to 25 to wait efficiently for the first request. The call returns early when the capture changes. Zero reads the current state immediately. Unknown and expired IDs fail. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
capture_idYesThe UUID that create_webhook_capture returned.
wait_secondsNoWait up to this many seconds for a request. Zero returns immediately.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
statusYes
requestYes
capture_idYes
wait_reasonYes
waited_secondsYes
expire_datetimeYes
expire_timestampYes
created_at_datetimeYes
captured_at_datetimeYes
created_at_timestampYes
captured_at_timestampYes

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and idempotentHint, and the description adds significant behavioral detail beyond that: status semantics, pending not being a failure, early return when capture changes, zero meaning immediate read, unknown/expired IDs failing, and no-auth direct invocation. There is no contradiction with the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four compact, front-loaded sentences cover purpose, status semantics, waiting behavior, edge cases, and authentication. Every sentence earns its place; there is no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema, full parameter documentation, and read-only/idempotent annotations, the description covers all necessary operational details: status interpretation, waiting strategy, early return, failure cases, and invocation prerequisites. Nothing essential for correct use is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the description adds further meaning: it explains the effective use of wait_seconds (1-25 for efficient waiting), the early-return behavior, and that zero reads the current state immediately. This goes beyond the schema's basic parameter constraints and enriches agent understanding.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Check whether anything has been sent to a capture URL yet, and read it.' It clearly distinguishes the tool as a read/status operation and defines the status values (pending/captured), preventing confusion with capture creation or other sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives practical usage guidance: pending is a normal state, wait_seconds can be used to wait efficiently with early return on change, and zero returns immediately. It also explains that no API key, account, or signup is needed. It stops short of explicitly naming create_webhook_capture as the complementary tool, but the create/read relationship is clear from the sibling context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_webhook_scheduleRead a scheduled webhookA
Read-only
Inspect

Read a scheduled webhook: its status, attempts and, after it fired, the HTTP status and an excerpt of the answer. wait_seconds, up to 25, waits for the status to change before answering. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
schedule_idYes
wait_secondsNo

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint/openWorldHint/idempotentHint; the description adds the meaningful behavioral fact that wait_seconds blocks up to 25s waiting for a status change, plus the auth-free access model and the post-fire response contents. It does not, however, say what happens if the webhook never fires within the wait window.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight clauses, front-loaded with the read purpose before the polling semantics and the auth note. Every sentence carries information, though the 'no API key' sentence is slightly tangential to invocation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description helpfully describes the returned fields, and it covers wait semantics and access requirements. The required schedule_id remains unexplained, a minor gap given the low schema coverage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning. It explains wait_seconds well (function and 25s cap) but says nothing about the required schedule_id beyond its obvious name, leaving half the parameters undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read a scheduled webhook') and then enumerates exactly what is returned (status, attempts, HTTP status, response excerpt). This clearly distinguishes it from sibling write/lifecycle tools like schedule_webhook, cancel_webhook_schedule, and read_webhook_capture.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives practical context ('no API key, no account, no sign up: call it directly') and explains when wait_seconds applies, but never states when to prefer this over read_webhook_capture or how it relates to schedule_webhook/cancel_webhook_schedule. Usage is implied rather than routed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

release_agent_queue_jobRelease agent queue jobA
Destructive
Inspect

Return a claimed job to pending using the worker token and its current receipt. On the fifth claim it becomes failed. The receipt is invalidated. Stale receipts conflict.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
receiptYes
queue_idYes
worker_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
jobYes
queue_idYes
expire_timestampYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds meaningful behavioral details beyond the annotations: the receipt is invalidated, a fifth claim makes the job failed, and stale receipts cause conflicts. This gives an agent crucial side-effect and edge-case information that annotations alone do not provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences deliver distinct information: core action, failure threshold, and receipt lifecycle. The description is front-loaded and every sentence earns its place without filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating tool with an output schema and destructive annotations, the description covers the main preconditions and side effects: the job must be claimed, the worker needs the current receipt, receipt invalidation, and the fifth-claim failure. It does not spell out every error response, but the output schema and annotations cover part of that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining the two least obvious parameters: the worker token acts as the credential and the receipt must be 'current', with stale receipts conflicting. queue_id and job_id are not elaborated, but their roles are largely self-evident from their names and the required-parameter context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Return a claimed job to pending', a specific verb and state transition that clearly identifies the tool's purpose. It also distinguishes this from siblings like claim_agent_queue_job and ack_agent_queue_job by specifying the release action and the required token/receipt.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended usage is clear: a worker that previously claimed a job wants to return it to pending. It does not explicitly name alternatives or state when not to use it, but the state-transition language and sibling list make the context apparent without ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

release_leaseRelease leaseAInspect

Give up a lease before its TTL ends so another agent can acquire the work. Use it when abandoning work without a reusable result. The secret owner token is required. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesWork identity. With a namespace use 1 to 128 URL-safe ASCII characters, starting with a letter or digit. Without one use a caller-generated secret of 32 to 200 ASCII characters from A-Z, a-z, 0-9, dot, underscore, colon, tilde or hyphen, with at least eight distinct characters.
namespaceNoOptional 256-bit namespace from create_lease_namespace. Keep it secret.
owner_tokenYesSecret owner token returned by acquire_lease.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo
statusYes
owner_tokenNo
ttl_secondsNo
completed_atNo
fencing_tokenNo
lease_expires_atNo
absolute_expires_atNo
retry_after_secondsNo
completed_at_timestampNo
lease_expires_at_timestampNo
absolute_expires_at_timestampNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate this is a mutating, non-idempotent, non-destructive operation. The description adds valuable context: it releases the lease before TTL ends, requires the secret owner token, and explicitly states 'No authentication is required.' This goes beyond the annotations by clarifying the authorization model and the effect on other agents. It doesn't mention what happens to the lease's data or whether the release is permanent, but the core behavior is well disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: the action and purpose, the usage condition, and the required token plus auth note. The most important information is front-loaded. No fluff or repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutating lease operation with a clear schema and output schema, the description covers the essential context: when to use it, what it does, and the key prerequisite. It could mention what the response contains or what happens to the lease after release, but the output schema likely covers that. The description is complete enough for an agent to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 three parameters thoroughly. The description adds the context that owner_token is the 'secret owner token' and that it is required, but this is also in the schema. The description does not add new parameter-level meaning beyond what the schema provides, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Give up a lease before its TTL ends'), the resource ('a lease'), and the purpose ('so another agent can acquire the work'). It also distinguishes the tool from siblings like renew_lease and complete_lease by specifying the use case of abandoning work without a reusable result.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('when abandoning work without a reusable result') and implies when not to use it (when there is a reusable result, presumably complete_lease). It also mentions the required secret owner token, which is a key prerequisite. This is strong guidance for an agent deciding between release_lease and related lease tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renew_agent_queue_jobRenew agent queue jobAInspect

Move the active claim deadline using the worker token and current receipt. Visibility accepts 30-900 seconds, defaults to 60 seconds and is capped by the original queue expiry. A stale or expired receipt is a conflict. Queue lifetime is never extended.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
receiptYes
queue_idYes
worker_tokenYes
visibility_timeoutNoClaim visibility in seconds, capped by the fixed queue expiry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
jobYes
queue_idYes
expire_timestampYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description goes well beyond annotations by disclosing that visibility is capped by the original queue expiry, that stale/expired receipts are conflicts, and that overall queue lifetime is never extended. This gives an agent critical stateful behavior without contradicting the readOnly/idempotent/destructive hints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences lead with the core action, then pack the timeout constraints, conflict case, and lifetime caveat. Every sentence contributes information and there is no filler or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present and annotations already marking this as non-read-only and non-idempotent, the description covers the important behavioral edge cases for a renewal call. It is only slightly incomplete in not explicitly stating that the worker must already hold the claim and that the response likely returns a refreshed receipt, though 'current receipt' strongly implies this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to visibility_timeout (30-900 seconds, default 60, capped by queue expiry) and clarifies that receipt must be the current receipt. However, it leaves the roles of queue_id, job_id, and worker_token mostly to inference from naming and schema patterns.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with the specific action 'Move the active claim deadline', naming both the operation and the resource. This clearly distinguishes renewal from sibling actions like ack_agent_queue_job, release_agent_queue_job, or claim_agent_queue_job.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies renewal is only valid while a claim is active and a current receipt is held, and it gives constraints on visibility_timeout. However, it never explicitly says 'use this when you need more processing time for a claimed job' or contrasts it with ack/release alternatives, so the usage context is more implied than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

renew_leaseRenew leaseAInspect

Extend a lease that this caller still owns. Use it before the current TTL ends when work is still running. The owner token is required and must stay secret. Renewal cannot move the absolute 24 hour limit. No authentication is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesWork identity. With a namespace use 1 to 128 URL-safe ASCII characters, starting with a letter or digit. Without one use a caller-generated secret of 32 to 200 ASCII characters from A-Z, a-z, 0-9, dot, underscore, colon, tilde or hyphen, with at least eight distinct characters.
namespaceNoOptional 256-bit namespace from create_lease_namespace. Keep it secret.
owner_tokenYesSecret owner token returned by acquire_lease.
ttl_secondsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
okYes
errorNo
resultNo
statusYes
owner_tokenNo
ttl_secondsNo
completed_atNo
fencing_tokenNo
lease_expires_atNo
absolute_expires_atNo
retry_after_secondsNo
completed_at_timestampNo
lease_expires_at_timestampNo
absolute_expires_at_timestampNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-read-only, non-idempotent, and non-destructive. The description adds important behavioral details: renewal cannot move the absolute 24-hour limit, no authentication is required, and the owner token must stay secret. These go beyond the annotations and help the agent understand side effects and security constraints.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three concise sentences, front-loaded with the action and key constraints. No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and detailed annotations, the description covers all necessary usage aspects: when to use, the 24-hour limit, authentication, and owner token security. No critical information for calling the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 75% (key, namespace, owner_token have descriptions; ttl_seconds lacks a description). The description itself doesn't add parameter-specific details beyond what the schema already provides, so it doesn't significantly enhance understanding. Baseline of 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Extend a lease'), the resource ('a lease that this caller still owns'), and a key constraint ('cannot move the absolute 24 hour limit'). It clearly distinguishes from siblings like acquire_lease, complete_lease, and release_lease by focusing on extension of an existing lease.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides a clear usage condition: 'Use it before the current TTL ends when work is still running.' It also notes that renewal cannot extend beyond the absolute limit. However, it doesn't explicitly mention alternatives like complete_lease or release_lease, though the context implies them.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

schedule_webhookSchedule a webhookAInspect

Schedule an HTTP POST of a JSON payload to a public URL: once, after delay_seconds or at the Unix time fire_at, 5 seconds to 24 hours ahead, or repeatedly every 60 to 86400 seconds until 24 hours after creation. The URL must resolve to a public address on port 80 or 443. The answer has schedule_id, which reads and cancels the job and should be kept private. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
everyNo
fire_atNo
payloadNoAny JSON, at most 32 KB. Defaults to {}.
delay_secondsNo

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare it a non-idempotent, non-destructive, open-world write. The description adds meaningful context beyond them: the URL must resolve to a public address on port 80/443, schedule_id must be kept private (security handling), and no API key or account is required (auth needs). It stops short of disclosing failure/retry behavior, so not a full 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three dense sentences, front-loaded with purpose and constraints, and the auth note last. Every clause carries useful information, though the run-on opening packs several constraints together.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return value ('The answer has schedule_id'), plus timing, URL and auth constraints. Given annotations cover safety, an agent has nearly everything needed to call it correctly, with only error/failure semantics left implicit.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 20% (payload alone), so the description must carry the load, and it does: it explains delay_seconds vs fire_at (relative vs Unix time, 5s-24h), every (60-86400s repeat), and the URL's public-address/port requirement. Adds substantial meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a precise verb and resource ('Schedule an HTTP POST of a JSON payload to a public URL') and specifies the once/repeated model, distinguishing it clearly from siblings like create_webhook_capture, read_webhook_schedule and cancel_webhook_schedule.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: fire once after delay_seconds or at fire_at, or repeatedly every 60-86400 seconds, with explicit timing bounds (5s to 24h ahead). It does not name alternatives such as read_webhook_schedule or cancel_webhook_schedule, though it alludes to them via schedule_id, so no explicit exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

service_healthCheck the serviceA
Read-only
Inspect

Check that the AI SENSE service answers. Returns status ok and the server time with microseconds. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds value beyond them by disclosing the auth profile (no API key/account/sign-up) and the return behavior (status ok plus microsecond-precision server time). It does not mention rate limits or failure semantics, but for a health probe that is a minor gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and return value are front-loaded in the first two sentences, and the eligibility note is last. It is compact, though 'No API key, no account and no sign up' is a slightly redundant triple that could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-param, no-output-schema tool, the description covers the essential contract: it explains what is checked and what comes back. It leaves failure/timeout behavior unstated, but the core information needed to call it correctly is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the schema carries the entire contract and the description correctly says nothing about inputs. Baseline 4 is appropriate for a no-param tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It states a specific verb+resource ('Check that the AI SENSE service answers') and even previews the payload ('status ok and the server time with microseconds'). It is clear on its own, but does not differentiate from nearby siblings like get_current_time or ping_heartbeat that also return time/liveness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Call it directly' with 'No API key, no account and no sign up' implies it is a no-setup eligibility probe, which is useful usage context. However there is no explicit when-to-use-it-vs-get_current_time-or-ping_heartbeat guidance, leaving choice among overlapping siblings to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

shorten_urlShorten URLAInspect

Turn a long URL into a short 307.fi link that redirects to it. Use it when a URL has to be typed, read aloud, pasted into a message with a length limit, or put in front of a person. No API key, no account and no sign up: call it directly. The link stops working 24 hours after creation, so do not use it for anything that must survive longer than a day; it is for handoffs inside a task, not for publishing.

ParametersJSON Schema
NameRequiredDescriptionDefault
long_urlYesHTTP or HTTPS URL to shorten.

Output Schema

ParametersJSON Schema
NameRequiredDescription
short_urlYes
expire_timestampYes

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations list all hints as false, indicating no special flags, but the description adds key behavioral details: no authentication required, the 24-hour expiration, and the redirect mechanism. This goes beyond the annotations to clearly set expectations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences: states the core function, gives usage context, and warns about the 24-hour limit. Every sentence adds value, with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with an output schema and annotations, the description covers purpose, usage, and constraints comprehensively. No gaps remain for expected behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of the parameter (long_url) with a clear description and format. The tool description does not add extra parameter-level detail, but the schema already provides sufficient meaning. Baseline of 3 is appropriate given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: turning a long URL into a short 307.fi link that redirects. It uses a specific verb-resource combination and differentiates itself from siblings by highlighting the temporary nature and direct usage.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use the tool (e.g., when a URL needs to be typed or pasted in constrained contexts) and when not to use it (for anything lasting over 24 hours). It also provides a clear alternative guidance by labeling it for handoffs within tasks, distinguishing it from other tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_failureSimulate a failureA
Read-only
Inspect

Get a chosen failure on purpose, to test how an agent or client handles it: an HTTP status from 200 to 504, an HTML error page (html), an empty body (empty) or JSON labelled as text (wrongtype), after an optional delay of up to 10 seconds. The result reports the status, content type, headers and body the REST endpoint sent, and is an error result for statuses of 400 and above. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
outcomeYes
delay_msNo

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the description need not re-establish safety. It still adds real context: no API key/account/signup required, an optional delay up to 10 seconds, and the important rule that statuses 400+ are surfaced as an error result. It does not address the idempotentHint=false annotation, leaving that behavioral nuance unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence that front-loads purpose before the outcome list and the return-shape details. It runs slightly long with the auth disclaimer tacked on the end, but every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by describing what comes back (status, content type, headers, body) and how error statuses are reported. For a two-parameter test tool with annotations covering the safety profile, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it mostly does: it explains the status range (200–504) and the meaning of the non-numeric enum values (html = HTML error page, empty = empty body, wrongtype = JSON mislabelled as text), plus the delay bound. Only the individual status codes (401 vs 429 vs 503) are left to the schema enum, which is reasonable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific action (deliberately return a chosen failure outcome) and its intent (test how an agent or client handles errors), which no sibling tool does. An agent can tell this apart from the rest of the utility catalogue at a glance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the testing context clearly ('to test how an agent or client handles it') and enumerates the selectable outcomes, so the agent knows when this is the right call. It stops short of explicit when-not guidance or naming alternatives, which is a minor gap given there are no real alternatives here.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

slugify_textMake a URL slugA
Read-onlyIdempotent
Inspect

Turn text into a lowercase URL slug with words joined by hyphens. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and closed-world behavior, so the safety profile is covered. The description adds genuinely new context in the form of the auth model (no API key, no account, no sign up), which annotations cannot express. It omits the 10000-character input limit and handling of non-ASCII/special characters.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, output format front-loaded and the operational note second. No filler and nothing that could be trimmed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly describes the return value (lowercase, hyphen-joined slug), and annotations cover the safety profile. It stops short of documenting edge behavior such as long inputs or unicode, but for a single-parameter transform it is nearly sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter exists and schema description coverage is 0%, but the description names its input implicitly ("turn text into") and the required/type constraints in the schema are self-evident. It adds little about length cap or character handling, so it does only baseline work.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (turn text into) and resource (lowercase URL slug) and even specifies the output transformation, words joined by hyphens. This precision separates it from near-neighbors like shorten_url or create_dns_name without needing to name them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Call it directly" communicates that no setup or prerequisites are needed, which is useful context. However, it gives no when-to-use vs alternatives guidance, e.g. vs shorten_url or create_dns_name, leaving selection to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

store_fileStore a fileAInspect

Store a file given as base64 for 24 hours, at a link that anyone who has it can open. Answers storage_id and storage_url. Use it to hand a file to another tool, such as an image to process_image or read_qr_code. Never store secrets or personal data. max_downloads, 1 to 100, removes the file after that many fetches; the answer then carries downloads_max and downloads_left, and a spent storage_id answers that the object is gone. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
data_base64YesThe file as standard base64, at most about 190 KB of file through MCP. For a larger file, store it with REST POST /services/v1/storage first and pass storage_id.
max_downloadsNoOptional. How many times the file may be fetched before it is removed, 1 to 100. Without it the file lives 24 hours.

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the generic write profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description goes well beyond that: 24-hour TTL, anyone-with-the-link access, max_downloads causing removal, spent storage_id behavior, and that no API key or account is required. This is exactly the behavioral context annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads what the tool does and what it returns, then layers usage, safety warning, and the max_downloads contract. Dense but each sentence carries information; the closing 'No API key, no account and no sign up' sentence is the least essential, keeping it out of the top band.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly names the return fields (storage_id, storage_url, and downloads_max/downloads_left when capped) and covers lifetime, access model, auth requirements, and removal semantics. An agent has everything needed to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 still adds value beyond the schema by explaining the consequence of max_downloads (file removed after that many fetches, response then carries downloads_max and downloads_left) and by flagging the 190 KB MCP cap and the REST escape hatch for larger files.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (store a file given as base64), plus the key scoping facts: 24-hour lifetime, public link, and the returned storage_id/storage_url. An agent can distinguish this from read_stored_file, store_temporary_data, and read_temporary_data 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete when-to-use: hand a file to another tool such as process_image or read_qr_code, and adds a prohibition (never store secrets or personal data). It does not explicitly contrast with the closest sibling, store_temporary_data, so it stops short of full alternative routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

store_temporary_dataStore temporary dataAInspect

Put any JSON value somewhere another process can fetch it, and get back a storage_id plus a public read_url. Use it to hand a result to a different agent, a script, a webhook receiver or a later run, when there is no shared filesystem and no database between you. No API key, no account and no sign up: call it directly. Anyone holding the URL can read it, so never store secrets, credentials or personal data. The value disappears 24 hours after it is written. Read it back with read_temporary_data, passing the storage_id. The answer also carries sha256_hash, the digest of the stored bytes, and bytes, their length, so a receiver can tell it got what you sent. The same object over REST calls the link storage_url and serves it with that digest as its ETag. max_downloads, 1 to 100, removes the value after that many reads; the answer then carries downloads_max and downloads_left, and a spent storage_id answers that the object is gone.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYesThe JSON value to store. Any type: object, array, string, number, boolean or null. Readable by anyone with the URL, so no secrets.
max_downloadsNoOptional. How many times the value may be read before it is removed, 1 to 100. Without it the value lives 24 hours.

Output Schema

ParametersJSON Schema
NameRequiredDescription
bytesYes
read_urlYes
storage_idYes
sha256_hashYes
downloads_maxNo
downloads_leftNo
expire_timestampYes

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare the write/non-idempotent/non-destructive profile; the description goes well beyond them by disclosing no auth or account needed, public URL readability, a 24-hour TTL, the sha256_hash/bytes returned, ETag behavior over REST, max_downloads semantics with downloads_max/downloads_left, and that a spent storage_id reports the object is gone. That is unusually rich behavioral context 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core action and return shape are front-loaded in sentence one, and each subsequent sentence carries distinct information (safety warning, TTL, read-back tool, digest/length, REST naming, max_downloads). It is on the long side and the REST/storage_url aside is arguably secondary, but nothing is pure filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, yet the description still supplies the operational facts an agent needs: safety constraint (no secrets), expiry, read-back path, integrity fields, and read-count limits. Nothing material for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is already 100%, so the baseline is 3. The description adds real meaning beyond the schema: that 'data' may be any JSON type including null, and that max_downloads (1-100) removes the value after that many reads and causes downloads_max/downloads_left to appear in the response.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The opening sentence gives a specific verb and resource ('put any JSON value somewhere another process can fetch it') plus the concrete artifacts returned (storage_id, public read_url). It is clearly distinguishable from siblings store_file/read_stored_file (file storage) and read_temporary_data (retrieval).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the use case explicitly — handing a result to another agent, script, webhook receiver or later run when there is no shared filesystem or database — and names read_temporary_data as the read-back path. It does not, however, say when to prefer store_file or read_stored_file instead, so sibling exclusion is only partial.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

time_formatsCurrent time in several formatsA
Read-only
Inspect

The current time in several formats at once: a Unix timestamp, Unix time with microseconds, an ISO 8601 date and time at an optional UTC offset, and Swatch Internet Time. For a named timezone such as Europe/Oslo use get_current_time. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
offsetNoUTC offset as a sign and four digits, from -1200 to +1200, for example +0200 or -0530.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only and closed-world status, and the description adds genuinely useful operational context that annotations cannot convey: no API key, no account, no sign-up, callable directly. It also implicitly explains the idempotentHint=false by framing the tool as returning 'the current time'. It does not discuss rate limits or precision guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the payload (the returned formats), followed by the sibling routing rule and then the no-setup note. Every sentence carries weight, though the trailing 'no API key, no account and no sign up' is slightly redundant with itself.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry the return-value burden, and it does by enumerating all four formats returned. The only remaining gap is that Swatch Internet Time and microsecond precision are named but not characterized, which a caller might want given there is no output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the pattern, range, and examples for 'offset' are already fully documented in the schema. The description adds only marginal framing by tying the offset to the ISO 8601 output specifically (not to the other formats), which is a small but real clarification. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb+resource ('The current time') and enumerates exactly the formats returned: Unix timestamp, Unix time with microseconds, ISO 8601 at an optional offset, and Swatch Internet Time. It explicitly disambiguates itself from the sibling get_current_time, so an agent can choose correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear routing rule: for a named timezone such as Europe/Oslo, use get_current_time instead. That is an explicit alternative with a selecting condition. It does not, however, address convert_timestamp or clarify when a multi-format instant is actually wanted versus a single-format call.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_dns_nameUpdate a temporary DNS nameAInspect

Change the address a temporary DNS name points at. Needs the dns_token from create_dns_name. Use it when the machine behind the name moved and you would rather keep the name than hand out a new one. The expiry does not move: the name still disappears 24 hours after it was created. One change per name per 10 seconds.

ParametersJSON Schema
NameRequiredDescriptionDefault
ipNoA public unicast IPv4 or IPv6 address. Private, loopback, link-local and multicast ranges are refused. The address is required and never taken from the caller, because the caller is usually not the machine the name should point at.
ttlNoSeconds. 60 is the only value on the menu, so leave it out unless you want to be explicit.
slugYesThe slug the service assigned, without the aisense- prefix and without the zone.
dns_tokenYesThe dns_token from create_dns_name. It is shown once and never again.

Output Schema

ParametersJSON Schema
NameRequiredDescription
ipYes
okYes
ttlYes
nameYes
slugYes
recordYes
serialNo
expire_atYes
nameserversYes
expire_timestampYes
created_at_timestampNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are all false, so the description carries the full burden. It discloses the auth requirement (dns_token), the non-extending expiry ('the name still disappears 24 hours after it was created'), and a rate limit ('One change per name per 10 seconds'). These are meaningful side effects beyond what the schema provides, and there is no contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each with a distinct role: action, prerequisite, use case, and side-effect/rate-limit. No redundant wording, and the most important information (action, prerequisite) is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with an output schema and a 100% covered input schema, the description covers the critical behavioral aspects: what it does, when to use it, the required credential, the expiry non-extension, and the rate limit. It omits error cases, but those are not typically required when schema and annotations already provide structural detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed per-parameter descriptions. The tool description adds no new parameter-level meaning beyond reinforcing that dns_token comes from create_dns_name. Baseline 3 is correct when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Change the address a temporary DNS name points at,' a specific verb+resource statement that clearly differentiates the tool from its siblings (create_dns_name, delete_dns_name, read_dns_name). The title and description align and no ambiguity remains about what operation is performed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides an explicit trigger: 'Use it when the machine behind the name moved and you would rather keep the name than hand out a new one.' It also names the prerequisite dns_token from create_dns_name. While it doesn't explicitly contrast with delete_dns_name or read_dns_name, the use case is clear enough for an agent to route correctly.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_emailCheck an email addressA
Read-onlyIdempotent
Inspect

Check an email address: its syntax, whether its domain has MX records, listing up to five, and whether the domain has an address record. The mail server is not contacted, so a good answer does not prove that the mailbox exists. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only cover the safety profile (read-only, idempotent, open-world). The description adds real behavioral context: what is verified, that up to five MX records are listed, and critically that the mail server is not contacted so a positive result does not prove the mailbox exists. That is exactly the kind of limitation an agent needs and cannot get from structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the checks, then the caveat, then the access note. No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-param read-only tool with no output schema, the description covers inputs, checks performed, and the key limitation. It does not sketch the response shape (e.g. how syntax/domain booleans are returned), a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

One parameter with 0% schema description coverage, but the single 'email' string is self-evident from the tool name and description. The description adds no format constraints (maxLength 320, minLength 1) beyond what the schema silently enforces.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource and enumerates exactly what is checked: syntax, MX records, and address record. This clearly distinguishes it from siblings like validate_value or lookup_network.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (call it directly, no auth needed) but never states when to prefer this over validate_value or lookup_network, nor when-not to use it. The 'no API key' note is access guidance rather than selection guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

validate_valueValidate a number or codeA
Read-onlyIdempotent
Inspect

Validate an IBAN, a payment card number (Luhn), a Norwegian organisation number (orgnr), a Norwegian bank account number (kontonummer) or a phone number, with the checksum and the normalized form where the type has them. Nothing is stored or looked up. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
typeYes
valueYesThe value to check. Spaces and dashes are allowed.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld=false, but the description adds meaningful context beyond them: nothing is stored or looked up, no API key/account/signup needed, and it returns the checksum plus normalized form where applicable. It stops short of describing failure/error behavior for invalid input.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the validated types, then the guarantees, then the call-to-action. Two efficient sentences; the trailing auth reassurance is slightly redundant but still useful for an agent deciding whether it can invoke without setup.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema exists, yet the description indicates what comes back (checksum and normalized form) and that there are no side effects, which is enough for a stateless validator. A brief note on invalid-input behavior would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, but the description compensates by expanding the enum values into human-readable forms (e.g. 'payment card number (Luhn)', 'orgnr', 'kontonummer') and clarifies the value accepts spaces/dashes. It adds real meaning to the enum beyond the bare schema tokens.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb (validate) and enumerates the exact resource set (IBAN, card/Luhn, orgnr, kontonummer, phone), with the checksum/normalized-form scope. An agent can distinguish this from validate_email immediately since email is not listed. No sibling overlap.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that it is stateless and directly callable, and the enumerated types implicitly scope its use versus validate_email. However, it never names the alternative tool or states explicit when-not conditions, so routing guidance relies on inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_hashVerify a hashA
Read-onlyIdempotent
Inspect

Check that text matches a hash. Name the algorithm when you know it. Without it the algorithm follows from the hash: 8, 32, 40, 64 or 128 hex characters mean CRC32, MD5, SHA-1, SHA-256 or SHA-512, and an integer means CRC32 in decimal; whirlpool, sha3_256, sha3_512, blake2b and blake3 share those lengths and must be named. For argon2id, bcrypt and scrypt the hash is the salted string those algorithms answered; the cost is read from it and must be within what this service produces. Answers match and algorithm, with computed for digests and params for password hashes. No API key, no account and no sign up: call it directly.

ParametersJSON Schema
NameRequiredDescriptionDefault
dataYes
hashYesThe hash to compare against.
algorithmNoOptional for the first five, required for the rest.

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses the auth posture ("No API key, no account and no sign up"), the response contents (match, algorithm, computed, params), and a constraint on password hashes (cost must be "within what this service produces"). That is substantial behavior beyond the structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded and every sentence carries information, but the inference rules are packed into a dense run-on block that takes effort to parse. Slightly longer than ideal, though nothing is truly wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description supplies the return shape itself, covers auth requirements, and explains the exception cases (salted password hashes, shared-length algorithms). An agent has everything needed to call it correctly without further inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 67%, and the description compensates with the algorithm inference map (8/32/40/64/128 hex chars and decimal integer), the caveat that whirlpool/sha3/blake variants share lengths and must be named, and how the hash is interpreted for argon2id/bcrypt/scrypt. This is meaning well beyond the terse schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

"Check that text matches a hash" states a specific verb (check/verify) and resource (hash of text), which is immediately distinguishable from the sibling hash_data. The description never leaves ambiguity about what the tool returns: a match verdict plus algorithm.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear conditional guidance for the optional algorithm parameter ("Name the algorithm when you know it"; otherwise infer from hash length) and notes no auth/setup is required. It stops short of routing agents between this and the sibling hash_data, which is the one usage gap.

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. 3 tool updates
    • Changedread_temporary_data1 field changed
      • addedOutput schema / properties / downloads_left
        Added value: +{
        +  "type": "integer"
        +}
    • Changedstore_file1 field changed
      • addedInput schema / properties / max_downloads
        Added value: +{
        +  "description": "Optional. How many times the file may be fetched before it is removed, 1 to 100. Without it the file lives 24 hours.",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
    • Changedstore_temporary_data3 fields changed
      • addedInput schema / properties / max_downloads
        Added value: +{
        +  "description": "Optional. How many times the value may be read before it is removed, 1 to 100. Without it the value lives 24 hours.",
        +  "maximum": 100,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / downloads_left
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / downloads_max
        Added value: +{
        +  "type": "integer"
        +}
  2. 5 tool updates
    • Addedadd_semantic_search_notes
    • Addedcreate_semantic_search
    • Addeddelete_semantic_search_note
    • Addedquery_semantic_search
    • Addedread_semantic_search
  3. 1 tool update
    • Changeddecide1 field changed
      • changedInput schema / properties / model / description
        Previous value: -"Optional. rules (default), or a configured model such as clef. Unknown models are refused."New value: +"Optional. rules (default), clef, nimble or tev1. Unknown models are refused."
  4. 1 tool update
    • Changeddecide3 fields changed
      • addedInput schema / properties / model
        Added value: +{
        +  "description": "Optional. rules (default), or a configured model such as clef. Unknown models are refused.",
        +  "maxLength": 32,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • changedInput schema / properties / questions / description
        Previous value: -"1 to 64 named questions."New value: +"1 to 64 named rule questions, or up to 4 model questions under the default model limits."
      • changedInput schema / properties / state / description
        Previous value: -"The facts the rules test."New value: +"The facts the rules test, or the input sent to the selected model."
  5. 1 tool update
    • Addedhtml_markdown_convert
  6. 1 tool update
    • Changedencode_data1 field changed
      • changedInput schema / properties / format / enum
        Previous value: -[
        -  "base64",
        -  "base32",
        -  "base58"
        -]New value: +[
        +  "base64",
        +  "base64url",
        +  "base32",
        +  "base58",
        +  "hex",
        +  "url",
        +  "html"
        +]
  7. 2 tool updates
    • Changedhash_data1 field changed
      • changedInput schema / properties / algorithm / enum
        Previous value: -[
        -  "md5",
        -  "sha1",
        -  "sha256",
        -  "sha512",
        -  "crc32",
        -  "whirlpool",
        -  "sha3_256",
        -  "sha3_512",
        -  "blake2b"
        -]New value: +[
        +  "md5",
        +  "sha1",
        +  "sha256",
        +  "sha512",
        +  "crc32",
        +  "whirlpool",
        +  "sha3_256",
        +  "sha3_512",
        +  "blake2b",
        +  "blake3",
        +  "argon2id",
        +  "bcrypt",
        +  "scrypt"
        +]
    • Changedverify_hash1 field changed
      • changedInput schema / properties / algorithm / enum
        Previous value: -[
        -  "md5",
        -  "sha1",
        -  "sha256",
        -  "sha512",
        -  "crc32",
        -  "whirlpool",
        -  "sha3_256",
        -  "sha3_512",
        -  "blake2b"
        -]New value: +[
        +  "md5",
        +  "sha1",
        +  "sha256",
        +  "sha512",
        +  "crc32",
        +  "whirlpool",
        +  "sha3_256",
        +  "sha3_512",
        +  "blake2b",
        +  "blake3",
        +  "argon2id",
        +  "bcrypt",
        +  "scrypt"
        +]
  8. 2 tool updates
    • Changedhash_data1 field changed
      • changedInput schema / properties / algorithm / enum
        Previous value: -[
        -  "md5",
        -  "sha1",
        -  "sha256",
        -  "sha512",
        -  "crc32"
        -]New value: +[
        +  "md5",
        +  "sha1",
        +  "sha256",
        +  "sha512",
        +  "crc32",
        +  "whirlpool",
        +  "sha3_256",
        +  "sha3_512",
        +  "blake2b"
        +]
    • Changedverify_hash1 field changed
      • addedInput schema / properties / algorithm
        Added value: +{
        +  "description": "Optional for the first five, required for the rest.",
        +  "enum": [
        +    "md5",
        +    "sha1",
        +    "sha256",
        +    "sha512",
        +    "crc32",
        +    "whirlpool",
        +    "sha3_256",
        +    "sha3_512",
        +    "blake2b"
        +  ],
        +  "type": "string"
        +}
  9. 28 tool updates
    • Addedcancel_webhook_schedule
    • Addedconvert_timestamp
    • Addedcreate_qr_code
    • Addedcrypto_wallet
    • Addeddecide
    • Addedencode_data
    • Addedgenerate_random
    • Addedhash_data
    • Addedhtml_to_pdf
    • Addedjson_check
    • Addedjson_csv_convert
    • Addedjwt_token
    • Addedlist_timezones
    • Addedlookup_network
    • Addedmatch_tables
    • Addedprocess_image
    • Addedread_qr_code
    • Addedread_stored_file
    • Addedread_webhook_schedule
    • Addedschedule_webhook
    • Addedservice_health
    • Addedsimulate_failure
    • Addedslugify_text
    • Addedstore_file
    • Addedtime_formats
    • Addedvalidate_email
    • Addedvalidate_value
    • Addedverify_hash
  10. 4 tool updates
    • Addedcreate_dns_name
    • Addeddelete_dns_name
    • Addedread_dns_name
    • Addedupdate_dns_name
  11. 2 tool updates
    • Changedread_temporary_data3 fields changed
      • addedOutput schema / properties / bytes
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / sha256_hash
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "storage_id",
        -  "data",
        -  "expire_timestamp"
        -]New value: +[
        +  "storage_id",
        +  "data",
        +  "sha256_hash",
        +  "bytes",
        +  "expire_timestamp"
        +]
    • Changedstore_temporary_data3 fields changed
      • addedOutput schema / properties / bytes
        Added value: +{
        +  "type": "integer"
        +}
      • addedOutput schema / properties / sha256_hash
        Added value: +{
        +  "type": "string"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "storage_id",
        -  "read_url",
        -  "expire_timestamp"
        -]New value: +[
        +  "storage_id",
        +  "read_url",
        +  "sha256_hash",
        +  "bytes",
        +  "expire_timestamp"
        +]

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    C
    maintenance
    Provides 63 production-ready API tools for AI agents, including web scraping, AI generation, crypto data, OCR, image generation, audio transcription, text-to-speech, email, and domain lookup.
    3
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    72 free, open-source (MIT) developer tools over a stateless, no-key MCP server: JSON/YAML/CSV conversion, PDF and image processing, JWT/hash/UUID utilities, DNS/TLS/HTTP checks, llms.txt and AI SEO checks, and more. Streamable HTTP with JSON responses.
    MIT
  • F
    license
    A
    quality
    B
    maintenance
    Enables AI agents to run privacy-first network diagnostics (egress IP, proxies, DNS, port checks, security-header audits), handle authentication primitives like TOTP and disposable inboxes, and use developer utilities such as URL-to-markdown reading, webhook inspection, hashing, file/paste sharing, and read-only EVM RPC calls. All tools are free, require no API keys, and operate under a zero-log policy with automatic expiry.
    16
    2
    -
  • A
    license
    A
    quality
    D
    maintenance
    14 utility tools via the PublicSoftTools API: QR code generation, PDF compress/merge/split/convert/unlock, cryptographic hashing (MD5/SHA-1/SHA-256/SHA-512), UUID generation, base64 encode/decode, secure password generation, IP geolocation, DNS records, SSL certificate check, and WHOIS lookup. Free tier: 1,500 calls/month.
    14
    8 npm
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.