Skip to main content
Glama
humanforai

humanforai

Official
by humanforai

Submit a task to the human

submit_human_task

Submit a task for a human operator to perform in the real world, receiving a task ID for tracking. Choose email delivery or poll status for the result, with human review before acceptance.

Instructions

Submit a task for the human operator to perform in the real world. Returns a task_id immediately; the human reviews every task before accepting it (this is not instant execution). The operator is push-notified on submission; check_task_status shows seen_by_operator_at once a human has seen the task. Free during the pilot. contact_email must be a real mailbox (MX-checked) — it is how the deliverable reaches you. No mailbox? Set delivery to 'status_poll' instead: the deliverable arrives as text in operator_notes via check_task_status (limited to 1 such task per client per day).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
deadlineNoISO 8601 datetime, e.g. 2026-07-10T12:00:00+03:00
deliveryNoHow the deliverable reaches you. 'email' (default) needs contact_email. 'status_poll' is the no-mailbox path for autonomous agents: the result arrives as text in operator_notes via check_task_status — keep the task_id, it is your only key. Budget: 1 status_poll task per client per day.
requesterNoYour agent or system identifier, e.g. my-agent/1.0
task_typeYesService category — see get_human_services for descriptions. The list is not exhaustive: use custom_human_in_the_loop for anything that fits no other category
descriptionYesWhat to do, where, and what success looks like. Specific, self-contained tasks are accepted faster.
contact_emailNoWhere the deliverable and clarifying questions are sent. Required unless delivery is 'status_poll'. Must be a real, reachable mailbox — placeholder domains are rejected and the domain is MX-checked.
output_formatNotext_report (default), text_report_with_photos, structured_json, annotated_screenshots, or video
location_detailNoCity, address, or area — required in practice when location_required is true
location_requiredNotrue if the task needs physical presence (coverage is confirmed at review)

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations (readOnlyHint=false, openWorldHint=true) already signal a real-world write, and the description adds substantial behavior beyond them: the human reviews every task before accepting, this is not instant execution, the operator is push-notified on submission, MX-checking on contact_email, and the pilot is free. This is exactly the kind of async and validation context an agent needs and that structured annotations 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 dense sentences with zero waste, and the most critical caveat (human review, not instant execution) is front-loaded. Every clause earns its place: async review, push notification, pilot free, MX-check, and the status_poll fallback all carry distinct 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?

For a complex open-world tool (9 params, no output schema), the description is remarkably complete: it covers the return value (task_id), the async acceptance flow, the tracking path via check_task_status, both delivery modes with their constraints, and the daily budget. The only minor omission is what happens on task rejection, which is acceptable for a submission tool.

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 schema descriptions are themselves rich (delivery enum, task_type guidance). The description adds genuine cross-parameter value on top: the contact_email↔delivery coupling (email needs a real MX-checked mailbox; status_poll is the no-mailbox path), the 1-per-day status_poll budget, and 'keep the task_id, it is your only key.' That goes beyond a baseline 3 but the schema already does heavy lifting, so 4 is right.

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 ('Submit a task for the human operator to perform in the real world') and immediately scopes it as an async submission, not execution. It is clearly distinguishable from siblings: get_human_services (listing), check_task_status (tracking), message_human_operator (conversation). The core action, the return value, and the non-instant nature are all in the first sentence.

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?

Routes the agent to the correct follow-up tool ('check_task_status shows seen_by_operator_at...') and to get_human_services for task_type descriptions, and gives an explicit alternative for the delivery path ('No mailbox? Set delivery to status_poll instead'). It lacks explicit when-not guidance versus the messaging siblings (message_human_operator), so it earns a 4 rather than a 5, but the workflow routing is solid.

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