Skip to main content
Glama

Invoke Human Tool

Server Details

Ask a person on an Apple device or in a browser, then read their answer.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
abhirupghosh/invoke-human-plugins
GitHub Stars
0

TDQS

A3.9/5.0

Scored across 9 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but there are a few confusable clusters: send_handoff vs send_html_handoff vs send_ui_handoff all create a handoff with different payload types, and get_handoff_result vs wait_for_handoff overlap since both can return a pending status and a completed answer. share_handoff vs delegate_handoff is also subtle (invite more people vs reassign with release defaulting to true), though the descriptions do draw the line.

Naming Consistency4/5

Nearly everything follows a verb_noun snake_case pattern (send_handoff, get_handoff_status, wait_for_handoff, share_handoff, delegate_handoff). Minor deviations: validate_ui is a bare helper without the handoff noun, and send_handoff is the generic sibling of send_html_handoff/send_ui_handoff, which slightly breaks the parallel structure.

Tool Count5/5

Nine tools is well-scoped for a handoff service: three send variants, three read/wait tools, two collaboration tools, and one validator. Each earns its place and the surface is neither thin nor bloated.

Completeness3/5

The lifecycle covers create, read status, read result, wait, share, delegate, and validate, but there is no list/enumerate operation (an agent cannot discover existing handoff ids on the account) and no cancel/revoke/delete for a handoff that was sent in error — a notable gap given repeated sends are explicitly non-idempotent.

Available Tools

9 tools
delegate_handoffForward a handoffB
Destructive
Inspect

Forward a handoff you can reassign and invite the new recipients. release defaults to true and drops your own duty to answer down to view. Set release to false to keep that duty. The default is destructive.

NameRequiredDescriptionDefault
idYesHandoff id, hnd_...
noteNo
releaseNoDefaults to true.
recipientsYes
await_answerNoSet true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=false, and the description's 'The default is destructive' largely restates that. It does add genuine context the annotations cannot convey — that the default release drops the caller's own duty to view — but it never addresses the await_answer/Tasks path, which changes the call from fire-and-forget to blocking.

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 sentences, no filler, with the release behavior placed early. The trailing 'The default is destructive' is a slightly clumsy afterthought that duplicates the annotation rather than informing.

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?

Incorrect for five parameters including a nested recipients array and a Tasks-extension flag. With no output schema and a mutation that reassigns ownership, the description should describe what the caller gets back and how await_answer changes the invocation shape; neither is covered.

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 60%, so the schema already documents id, release, and most recipient sub-fields. The description explains the consequence of release=true (duty drops to view), which is real added meaning, but it says nothing about the recipients targeting rules or the await_answer flag that governs whether the call returns a task or an id immediately.

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 ('Forward a handoff') plus the effect of reassigning and inviting new recipients, which distinguishes it from send_handoff/share_handoff by implication. It never names a sibling explicitly, so an agent must infer which of the nine siblings this replaces.

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

Usage Guidelines2/5

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

There is no statement of when to forward versus send_handoff, share_handoff, or wait_for_handoff. The only conditional given ('Set release to false to keep that duty') is a parameter behavior, not a task-selection guideline.

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

get_handoff_resultRead the answerA
Read-onlyIdempotent
Inspect

Read the completed answer for one handoff on this account: PDF paths and recognized handwriting, or JSON answers for an HTML or HUI handoff. If they have not submitted, the result is status pending. Pending is success, not an error. This does not change the handoff.

NameRequiredDescriptionDefault
idYesHandoff id, hnd_...

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, idempotent, non-destructive, so the description correctly spends its words elsewhere: it discloses that pending is a success state and not an error (a genuine pitfall), that payload format depends on handoff type, and that the call does not mutate the handoff. Missing only failure behavior for an unknown or malformed id.

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 front-loaded sentences, each carrying distinct information: the primary action, the format variants, the pending edge case, and the non-mutating guarantee. Nothing is repeated from the annotations 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?

With no output schema, the description takes on the burden of describing returns and does so adequately — named payload shapes plus the pending state. Safety is covered by annotations and the unaffected-by-call note closes the mutation question.

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 id parameter is fully documented as 'Handoff id, hnd_...'. The description adds only that the id scopes to one handoff on this account, so 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?

States a specific verb (read) and resource (the completed answer for one handoff), and further specifies the return shape per handoff type: PDF paths plus recognized handwriting, or JSON answers for HTML/HUI. An agent can tell this apart from get_handoff_status without opening a schema.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: you call this when you want the submitted answer, and the pending note tells you what happens before submission. It never names get_handoff_status or wait_for_handoff as the alternative, so the agent must infer the routing from sibling names alone.

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

get_handoff_statusRead handoff statusA
Read-onlyIdempotent
Inspect

Read one handoff on this account: type, title, and status (new, in_progress, or completed), plus source and file paths. Another account's id is not found. This does not change the handoff.

NameRequiredDescriptionDefault
idYesHandoff id, hnd_...

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false. The description adds useful error behavior by stating that another account's id is not found, though "This does not change the handoff" largely repeats the non-destructive 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 short and front-loads the primary purpose and return fields. The final sentence is slightly redundant with the readOnly/destructive annotations, but overall the structure is efficient.

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 one-parameter read tool with full schema coverage and annotations covering safety, the description is complete enough: it names the returned fields, status values, account scoping, and not-found behavior. No output schema is needed given the field enumeration.

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 id parameter is already documented as a handoff id in hnd_... format. The description still adds semantic value by clarifying that the id is scoped to this account and that foreign-account ids will not be found.

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: "Read one handoff on this account." It then names the exact fields returned (type, title, status, source, file paths) and the possible status values, making the tool clearly distinguishable from sibling write/share/delegate handoff tools.

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 this is the tool for reading a single handoff, but it does not explicitly route the agent against alternatives such as get_handoff_result or wait_for_handoff. The account-scoping note is useful context, but there is no direct when-to-use versus when-not-to-use guidance.

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

send_handoffSend a handoffA
Destructive
Inspect

Create one worksheet, form, approval, review, or sketch for the signed-in person. They write or draw on an Apple device. You get a filled PDF later. This sends something to a person and cannot be silently undone. It does not wait, and sending again creates a second handoff. Pass source so the device can show which session sent it.

NameRequiredDescriptionDefault
dueNoYYYY-MM-DD or an ISO timestamp.
htmlNoHTML body for type html. Scripts are removed. Named inputs become answer fields.
tagsNo
typeNoDefaults to worksheet. Use html, or send_html_handoff, for tap and type answers. Use ui, or send_ui_handoff, for a HUI 0.1 document.
titleYes
fieldsNoStructured controls for type html.
promptNoQuestion or request when not sending markdown or problems. For type html, this becomes a required text field.
sourceNoOptional session context stored with the handoff and shown on the iPad.
routingNoowner: the sending account answers. first: the first recipient to submit wins. all: every answerer must submit. Defaults to first when a recipient can answer, otherwise owner.
markdownNo
problemsNo
questionNo
from_agentYesName of the agent sending the handoff.
recipientsNoPeople who should receive this handoff, besides the signed-in account. Each entry targets user_id, email, handle, group, team, or group_id. They must accept before they can read it.
await_answerNoSet true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.
callback_urlNoPublic https URL notified when the handoff is submitted.
instructionsNo

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare destructive, openWorld, and non-idempotent, but the description reinforces these with concrete consequences: 'cannot be silently undone' and 'sending again creates a second handoff'. It also discloses the async nature ('does not wait'), which is operationally critical given the await_answer flag. Does not mention recipient acceptance or permission requirements for the send.

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 artifact types, then operational warnings. Five short sentences, each carrying information; the PDF outcome and the undo warning both earn their place. Slightly scattered — the source hint could be grouped with other parameter guidance.

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

Completeness3/5

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

For a 17-parameter, nested, mutation tool with no output schema, the description covers the what and the key pitfalls but omits the recipient acceptance flow, routing modes, and how await_answer interacts with the async default. Those are documented in the schema, so the agent can recover, but the description alone is not 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?

Schema coverage is 65%, so the schema does much of the work. The description adds value only for the source parameter ('so the device can show which session sent it'), which explains intent beyond the schema's 'Optional session context...' note. Key params like recipients, routing, fields, and await_answer are left entirely to the schema.

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 ('Create') and enumerates the exact artifact types (worksheet, form, approval, review, sketch), plus the round-trip outcome ('You get a filled PDF later'). It does not name the sibling tools (send_html_handoff, send_ui_handoff) that handle the other types, so a sibling distinction must be inferred from the enum.

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 does not wait' and 'sending again creates a second handoff' clearly steer the agent away from using this for synchronous waits or retries, implicitly pointing at wait_for_handoff. The 'Pass source so...' line gives a positive usage instruction. Missing an explicit pointer to send_html_handoff/send_ui_handoff for tap-and-type or HUI documents.

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

send_html_handoffSend a tap-or-type formA
Destructive
Inspect

Create one HTML handoff the person answers by tapping or typing, on an Apple device or in a browser. Pass html, fields, or both. Scripts are removed. fields are text, choice, checkbox, rating, approval, or file. The result is JSON answers, not handwriting. This sends something to a person and cannot be silently undone. Sending again creates a second handoff. An agent key does not receive answer_url.

NameRequiredDescriptionDefault
dueNoYYYY-MM-DD or an ISO timestamp.
htmlNoHTML body. Script, iframes, and event handlers are removed. Inputs with a name are returned as answers.
tagsNo
titleYes
fieldsNo
promptNoAdds a required text field named response when you do not define that field yourself.
sourceNoOptional session context stored with the handoff and shown on the iPad.
routingNoSame as send_handoff. routing all waits until every answerer submits. The signed link is not a vote for routing all.
from_agentYesName of the agent sending the handoff.
recipientsNoPeople who should receive this handoff, besides the signed-in account. Same shape as send_handoff.
await_answerNoSet true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.
callback_urlNoPublic https URL notified when the handoff is submitted. The body includes answers and answered_by.
instructionsNo

TDQS

A3.7/5.0
Behavior4/5

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

Goes beyond the annotations with concrete behavior: scripts/iframes/handlers are stripped, the send 'cannot be silently undone', resending creates a duplicate, and 'An agent key does not receive answer_url'. The last point is genuinely non-obvious output behavior that an agent needs. It stops short of describing delivery timing or recipient permission effects.

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?

Eight short front-loaded sentences, with the purpose first and the destructive/duplicate warning placed after the construction rule. The field-type enumeration is the one sentence that duplicates structured data and could be cut.

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, nested-object, no-output-schema tool, the description covers the answer format (JSON answers keyed by field id), the sanitization guarantee, and the destructive/duplicate semantics. Routing modes and the await_answer/Tasks behavior are covered only by schema descriptions, so it is not fully self-contained.

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 69%, and the description adds one real constraint not in the schema: that html, fields, or both must be supplied even though neither is required. The enumeration of field types (text, choice, checkbox, rating, approval, file) merely restates the schema enum and earns little.

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 ('Create one HTML handoff') plus the answering mode (tap or type) and the return form ('JSON answers, not handwriting'), which meaningfully separates it from the handwriting/UI variants. It never names send_handoff or send_ui_handoff, so the sibling differentiation is left implicit rather than explicit.

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?

'Pass html, fields, or both' gives the construction rule, and 'Sending again creates a second handoff' warns about repeat calls. But nothing says when to pick this over send_handoff or send_ui_handoff, which is the main routing decision an agent faces among these siblings.

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

send_ui_handoffSend a structured formA
Destructive
Inspect

Create one HUI 0.1 form. The person answers with native controls or the signed link. No HTML, CSS, or JavaScript. Call validate_ui first. HUI 0.1 is a JSON document. No HTML, CSS, or JavaScript. kinds: markdown, heading, callout, text, number, choice, multichoice, approval, rating, slider, toggle, date, time, section, group, disclosure, columns. inputs need id matching ^[a-z][a-z0-9_]{0,40}$. visibleIf and requiredIf use == != < > in && || ! plus field ids, strings, numbers, true, false, null, and lists. options may be an array of {value, label} or {"$bind":"/pointer"} into data. Do not send colors, fonts, or pixel sizes. tone is default, accent, or warning. emphasis is true or false. A flat children array is allowed. steps is the other layout, at most 6. Call validate_ui before send_ui_handoff when you are unsure. The result is answers keyed by field id, plus summary_text. This sends something to a person and cannot be silently undone. Sending again creates a second handoff. An agent key does not receive answer_url.

NameRequiredDescriptionDefault
uiYesHUI 0.1 document: { hui: "0.1", steps or children }.
dueNoYYYY-MM-DD or an ISO timestamp.
tagsNo
titleYes
sourceNoOptional session context stored with the handoff and shown on the iPad.
lenientNoWhen true, unknown properties are warnings and are dropped. Defaults to false, which rejects them.
routingNoSame as send_handoff. A UI answer completes the handoff.
from_agentYesName of the agent sending the handoff.
recipientsNoPeople who should receive this handoff, besides the signed-in account. Same shape as send_handoff.
await_answerNoSet true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.
callback_urlNoPublic https URL notified when the handoff is submitted. The body includes answers, summary_text, and answered_by.
instructionsNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already flag destructiveHint=true and idempotentHint=false, but the description goes beyond them by explaining the consequence: the send cannot be silently undone, re-sending creates a second handoff, and an agent key does not receive answer_url. Those are exactly the warnings an agent needs before calling a non-idempotent mutation. It stops short of stating auth or rate-limit behavior.

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 first sentence is well front-loaded and the irreversibility warning lands early. But 'No HTML, CSS, or JavaScript' is stated twice and the validate_ui instruction is repeated in two separate sentences, so a meaningful fraction of the text is redundant. The mid-section reads as a dense dump of constraints rather than ordered guidance.

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 12-parameter, nested-object, no-output-schema tool, the description covers the hard parts: document format, validation prerequisite, idempotency risk, and what the answer looks like ('answers keyed by field id, plus summary_text'). Remaining gaps — recipients/permission defaults, await_answer semantics, routing — are handled adequately by schema descriptions.

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%, so the schema already carries much of the load. The description nonetheless adds substantial meaning for the opaque `ui` object — the list of allowed kinds, the id regex, the visibleIf/requiredIf operator grammar, the options array vs $bind form, tone/emphasis values, and the 6-step cap — all of which is absent from the schema. It also states the return shape that the 'ui' answers will produce.

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?

Opens with a specific verb and resource ('Create one HUI 0.1 form') and clarifies the interaction model (the person answers with native controls or a signed link). The repeated 'No HTML, CSS, or JavaScript' hints at a contrast with send_html_handoff without ever naming that sibling, so differentiation from the handoff family is only implied.

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 a concrete prerequisite ('Call validate_ui first') and repeats it for the unsure case, which is real guidance. However, it never states when to pick this over send_handoff, send_html_handoff, or delegate_handoff — the closest it comes is the negative framing about HTML. Sibling routing is left to the schema's 'Same as send_handoff' note.

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

share_handoffInvite someoneA
Destructive
Inspect

Invite more people to a handoff you own. Each recipient is one of user_id, email, handle, group, team, or group_id. They must accept before they can read the pages. This sends an invite and cannot be silently undone. It does not delete the handoff or drop your own duty to answer. Calling it again sends another invite.

NameRequiredDescriptionDefault
idYesHandoff id, hnd_...
recipientsYes

TDQS

A3.9/5.0
Behavior5/5

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

Goes well beyond the annotations by clarifying that the invite cannot be silently undone, that it does not delete the handoff or remove the owner's duty to answer, that recipients must accept before reading pages, and that repeated calls send another invite. This adds meaningful nuance around the destructive and non-idempotent hints, helping the agent understand the real consequences of the mutation.

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 core action and then adds behavioral context in short, clear sentences. A few sentences are slightly repetitive (the non-undoable and repeat-invite points overlap), but nearly every sentence contributes useful information with no significant 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 mutation tool with annotations covering destructive, non-idempotent, and open-world behavior, the description supplies the key missing context: recipient acceptance, irreversibility, non-deletion semantics, and repeat-call behavior. It does not cover invite expiry, revocation, or what happens when a recipient already has access, but those are secondary for an invite operation, and the schema covers the permission 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?

Schema coverage is 50%, so the schema already documents recipient target fields and the permission enum with its meaning. The description adds a useful summary of the allowed recipient types, but does not explain the permission field, defaults, or edge cases beyond what the schema already provides. Baseline 3 is appropriate because the schema carries most of the parameter semantics.

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: invite people to a handoff you own. It is clearly an invite/grant operation, but it does not explicitly differentiate itself from sibling tools like delegate_handoff or send_handoff. An agent can still tell what this tool does, though it must infer the boundary from the name and description alone.

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?

Provides an implied precondition ('a handoff you own') and notes that repeat calls send another invite, which helps avoid accidental duplicate invites. However, it offers no explicit when-to-use versus when-not-to-use guidance and never names an alternative sibling such as delegate_handoff or send_handoff. Adequate but with a clear gap in routing guidance.

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

validate_uiCheck a formA
Read-onlyIdempotent
Inspect

Check a HUI 0.1 document without creating a handoff and without contacting the person. Returns { ok, hui, diagnostics, fields }. ok false is a successful tool call so you can correct the document. diagnostics[].path, code, and message say what to change.

NameRequiredDescriptionDefault
uiYesHUI 0.1 document. You can also pass the document fields at the top level.
lenientNoWhen true, unknown properties are warnings instead of errors.

TDQS

A4.3/5.0
Behavior5/5

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

Beyond the annotations (readOnly, idempotent, non-destructive, closed-world), the description discloses the two side effects that are not performed (no handoff created, no person contacted) and, critically, explains that 'ok false is a successful tool call' so an agent will not treat validation failure as a transport error. It also documents the return shape and the meaning of diagnostics entries, which annotations alone cannot 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?

Three short sentences, front-loaded with the verb and resource, then the side-effect exemption, then the return contract. No sentence is redundant and the most decision-relevant fact (ok false is still a successful call) is stated plainly.

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, and the description compensates by naming the four return keys and explaining how to interpret diagnostics for correction. Combined with the no-side-effect guarantee on a nested-object input, an agent has everything needed to call this correctly and to reason about the result.

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 are already documented, including the top-level-fields shortcut for 'ui' and the error-to-warning behavior of 'lenient'. The description adds no parameter-level meaning beyond that, so this sits at the baseline for fully documented schemas.

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 ('Check a HUI 0.1 document') and implicitly separates it from the handoff-creation siblings by saying it does so 'without creating a handoff and without contacting the person'. The verb 'check' is slightly softer than 'validate' and the title ('Check a form') uses different vocabulary than the description ('HUI 0.1 document'), which costs a bit of precision, but the operation is still unambiguous.

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 'without creating a handoff and without contacting the person' clause gives a clear dry-run framing that tells an agent to use this before the send_* handoff tools. It stops short of naming a sibling or stating an explicit 'use this instead of X when Y' routing rule, so the agent must infer the workflow placement.

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

wait_for_handoffWait for the answerA
Read-onlyIdempotent
Inspect

Wait up to 25 seconds for one handoff on this account to be submitted. Returns the completed result, or status pending. Pending is success. Call it again to keep waiting. This does not change the handoff. Use it when the client does not declare the MCP Tasks extension. With Tasks, pass await_answer on send instead.

NameRequiredDescriptionDefault
idYesHandoff id, hnd_...
timeout_msNoHow long to wait, from 0 to 25000. Default 20000.

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the readOnly and idempotent annotations, the description explains the waiting behavior, the 25-second wait cap, the meaning of a pending return, and that pending is success. It also explicitly states that the call does not change the handoff, which is valuable behavioral context.

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

Conciseness5/5

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

The description is short and front-loaded with the core wait behavior. Every sentence adds useful operational detail: return semantics, pending success, retry behavior, non-mutation, and when to prefer the Tasks extension.

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 two-parameter read-only tool with no output schema, the description covers the important return semantics and retry behavior. It also explains when to use it versus the Tasks-based approach, leaving no major operational 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?

Schema description coverage is 100%, so the id and timeout_ms parameters are already documented in the input schema. The description mentions the 25-second wait window but adds little parameter-specific guidance beyond the schema's range and default for timeout_ms.

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 states a specific verb and resource: wait up to 25 seconds for one handoff on this account. It clarifies that it returns the completed result or a pending status, which distinguishes it from simple status/result retrieval. However, it does not explicitly name get_handoff_result or get_handoff_status as alternatives, so sibling differentiation is implied rather than fully explicit.

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 an explicit usage condition: use it when the client does not declare the MCP Tasks extension. It also names the alternative behavior with Tasks: pass await_answer on send instead, and explains that repeated calls are needed to keep waiting.

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. 4 tool updates
    • Changeddelegate_handoff1 field changed
      • addedInput schema / properties / await_answer
        Added value: +{
        +  "description": "Set true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.",
        +  "type": "boolean"
        +}
    • Changedsend_handoff1 field changed
      • addedInput schema / properties / await_answer
        Added value: +{
        +  "description": "Set true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.",
        +  "type": "boolean"
        +}
    • Changedsend_html_handoff1 field changed
      • addedInput schema / properties / await_answer
        Added value: +{
        +  "description": "Set true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.",
        +  "type": "boolean"
        +}
    • Changedsend_ui_handoff1 field changed
      • addedInput schema / properties / await_answer
        Added value: +{
        +  "description": "Set true to wait for the human's answer. When this client declares the MCP Tasks extension, the call returns a task and the client delivers the same JSON as get_handoff_result once they submit. Omit it, or pass false, to get the handoff id immediately and keep working. Clients that do not declare Tasks ignore this flag and return the handoff id, same as today.",
        +  "type": "boolean"
        +}
  2. 9 tool updates
    • First observeddelegate_handoff
    • First observedget_handoff_result
    • First observedget_handoff_status
    • First observedsend_handoff
    • First observedsend_html_handoff
    • First observedsend_ui_handoff
    • First observedshare_handoff
    • First observedvalidate_ui
    • First observedwait_for_handoff

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to ask questions to users asynchronously via a local macOS app, allowing users to respond by text or voice.
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables any MCP-compatible AI agent to ask humans questions in real time via a mobile-friendly PWA with push notifications, operating local-first without third-party services.
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Lets an AI agent ask real humans a question when the web genuinely has no answer, and get verbatim replies back with a respondent count. Built for the moment an agent is about to say "you should validate this with real users". Remote MCP, plain POST, or a single GET. No signup, no API key.
    2
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Know what your cloud agents did without reading logs. Heard MCP lets Claude, ChatGPT, Devin, Copilot and other cloud agents brief you out loud on your Mac, by name: what they got done, what's blocking them, or the decision they need. "Scout finished: the CI fix is merged." Answer out loud and the agent picks up your reply and keeps going. Hosted, OAuth sign-in, nothing to install.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.