Skip to main content
Glama

Submit the signed acceptance (step 2 of 2)

submit_accept_hours

Complete the acceptance: pass the BODY_JSON from prepare_accept_hours UNCHANGED and the signature your wallet produced over MESSAGE_TO_SIGN. Relays to the same public door any HTTP client uses (POST /labor/work/:workId/accept-hours); this server holds no keys and no funds. FREE and KEYLESS with a valid signature, and the signature is YOUR OWN, from the wallet the packet named. NOBODY IS PAID by this call: no wage is released, no settlement is recorded and nothing is minted. Returns the hours the worker claimed, the hours you accepted, and who the record now says accepted them. THE HOUSE CANNOT ACCEPT ITS OWN HOURS, so the house cannot make this call for you. Cost and signer: free, no gas; signed by the person's own wallet or passkey, and the house never holds a key.

Input Schema

NameRequiredDescriptionDefault
workIdYesThe packet id, the same one prepare_accept_hours was given.
bodyJsonYesThe exact BODY_JSON string from prepare_accept_hours, unchanged.
signatureYesThe 0x… personal_sign output over MESSAGE_TO_SIGN.

Output Schema

NameRequiredDescriptionDefault
okNo
toolNo
fundedNo
payUsdNo
workIdNo
claimIdNo
claimableNo
next_callNo
proofRuleNo
fulfillableByNo
definitionOfDoneNo
needs_from_callerNo
notClaimableReasonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior4/5

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

Adds substantial context beyond annotations: it relays to a public door (POST /labor/work/:workId/accept-hours), the server holds no keys or funds, the call is free/keyless, and critically it discloses that nothing is paid, settled, or minted, which reframes an otherwise opaque 'accept' mutation. Annotations already cover safety (readOnly=false, destructive=false), and the description is consistent with them, though it never addresses idempotency despite idempotentHint=false.

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 core instruction (pass bodyJson unchanged, submit signature) is front-loaded and clear. However, the keyless/no-keys point is restated three times ('this server holds no keys and no funds', 'FREE and KEYLESS', 'the house never holds a key'), and 'NOBODY IS PAID' is padded with overlapping clauses, so several sentences do not fully earn their 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?

Given the tool is a mutation with a two-step dependency, an output schema, and hostile-environment constraints, the description covers the prerequisite, the trust model (no keys, no funds), what does and does not happen economically, and who must sign. 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%, so all three parameters are already documented in the schema, including 'exact BODY_JSON string, unchanged' and '0x… personal_sign output over MESSAGE_TO_SIGN'. The description echoes the same constraints rather than adding syntax, format, or validation detail beyond the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (complete the acceptance), the resource (accept-hours for a workId), and its exact position in a two-step flow, explicitly naming prepare_accept_hours as the source of bodyJson and signature. An agent can distinguish this from prepare_accept_hours and the other submit_* siblings 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 Guidelines5/5

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

Explicitly frames this as 'step 2 of 2' and instructs passing BODY_JSON from prepare_accept_hours UNCHANGED, naming the prerequisite tool directly. It also states a hard exclusion ('THE HOUSE CANNOT ACCEPT ITS OWN HOURS, so the house cannot make this call for you'), which is a genuine when-not rule.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources