Skip to main content
Glama

AI SENSE Free Public Tools

Request human approval

create_human_approval

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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault
okYes
tallyNo
statusYes
answeredNo
form_urlNo
wait_urlYes
action_idYes
form_urlsNo
responsesNo
result_urlYes
respondentsNo
expire_datetimeYes
expire_timestampYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • addedInput schema / properties / notify_url
      Added value: +{
      +  "description": "Optional public HTTP or HTTPS callback after the final answer.",
      +  "format": "uri",
      +  "maxLength": 2048,
      +  "type": "string"
      +}
    • addedInput schema / properties / respondents
      Added value: +{
      +  "default": 1,
      +  "description": "Number of separate form links. Each link can answer once.",
      +  "maximum": 20,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedOutput schema / additionalProperties
      Added value: +false
    • addedOutput schema / properties / answered
      Added value: +{
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / form_urls
      Added value: +{
      +  "items": {
      +    "format": "uri",
      +    "type": "string"
      +  },
      +  "maxItems": 20,
      +  "minItems": 2,
      +  "type": "array"
      +}
    • addedOutput schema / properties / ok
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / respondents
      Added value: +{
      +  "maximum": 20,
      +  "minimum": 2,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / responses
      Added value: +{
      +  "type": "array"
      +}
    • addedOutput schema / properties / status
      Added value: +{
      +  "const": "pending",
      +  "type": "string"
      +}
    • addedOutput schema / properties / tally
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / wait_url
      Added value: +{
      +  "format": "uri",
      +  "type": "string"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "action_id",
      -  "form_url",
      -  "result_url",
      -  "expire_timestamp",
      -  "expire_datetime"
      -]New value: +[
      +  "ok",
      +  "action_id",
      +  "status",
      +  "result_url",
      +  "wait_url",
      +  "expire_timestamp",
      +  "expire_datetime"
      +]
  2. Changed4 schema fields changed
    • addedInput schema / properties / allow_note / description
      Added value: +"Optional. Whether the person may add a free text comment alongside their choice. Defaults to true."
    • addedInput schema / properties / description / description
      Added value: +"Optional supporting detail below the question: what changes, what it costs, what happens if they decline."
    • addedInput schema / properties / options / description
      Added value: +"Optional. 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."
    • addedInput schema / properties / title / description
      Added value: +"Required. The question shown to the person, in their language. Make it answerable on its own, since they see no conversation history."
  3. First observed

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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.