Skip to main content
Glama

submit_rate_limit_challenge

Lift a Signal sending rate limit by submitting a proof-of-humanity challenge token and captcha after a send fails with a rate-limit or proof-required error.

Instructions

Lift a Signal rate limit on sending by submitting a proof-of-humanity challenge. Use it when a send fails with a rate-limit / proof-required error that includes a challenge token. challenge (required): the challenge token from that error; captcha (required): the token from solving the captcha at https://signalcaptchas.org/challenge/generate.html. Talks to Signal's servers; a rejected captcha returns an error and you need a fresh one. Returns {status: 'challenge submitted'}; then retry the failed send. For a captcha needed while changing number, pass it to start_change_number instead.

Input Schema

NameRequiredDescriptionDefault
captchaYesSolved captcha token from the Signal captcha page
challengeYesChallenge token from the rate-limit error

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations already flag openWorldHint=true and idempotentHint=false, and the description reinforces the external call ('Talks to Signal's servers') while adding behavior annotations do not carry: a rejected captcha returns an error and requires a fresh one, and the caller must retry the failed send afterward. Error and retry semantics are precisely the value-add expected here.

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?

Front-loads the purpose, then trigger, then parameters, then error behavior and return value, then the sibling alternative. Every sentence carries load with no filler; parentheticals are compact.

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, but the description discloses the return value ({status: 'challenge submitted'}) and the required follow-up action (retry the failed send), plus failure behavior. For a two-parameter, single-purpose tool this leaves nothing an agent needs 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%, so the baseline is 3, but the description goes beyond the schema by stating where each token originates: the challenge token 'from that error' and the captcha token from solving the captcha at a specific URL. That origin/provenance detail is genuinely useful for correct invocation.

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 ('Lift a Signal rate limit on sending') and the mechanism (submitting a proof-of-humanity challenge), which no sibling tool offers. An agent can immediately tell this apart from send_message or start_change_number.

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?

Gives an explicit trigger ('when a send fails with a rate-limit / proof-required error that includes a challenge token') and an explicit exclusion/alternative ('For a captcha needed while changing number, pass it to start_change_number instead'). This is exactly the when/when-not/alternative guidance the dimension rewards.

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