Skip to main content
Glama

Server Details

API for AI agents to delegate tasks to real humans.

If you are the author of this connector, you can claim ownership with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Available Tools

3 tools
get_task_statusA
Read-onlyIdempotent
Inspect

Poll the status and retrieve the result of a previously submitted task. Returns the current status (pending, in_progress, pending_review, completed, disputed), the result payload, and any output URLs (video, screenshot). Use this in a polling loop after submit_task if no callback_url was provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID returned when the task was submitted

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultNoTask result payload when completed
statusYes
task_idYes
operatorNoName of the operator who completed the task
output_urlNoURL to download output file (video, screenshot, etc.)
completed_atNoISO timestamp of completion

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds value by detailing what the tool returns (status values, result payload, output URLs) and prescribing a polling loop usage, which reinforces the safe, idempotent nature. No contradictions, and the added context is meaningful.

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 two sentences, front-loaded with the core purpose, then return details, then usage context. Every sentence earns its place with no redundancy or filler. Very concise and well-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?

The tool is simple (single parameter), has annotations, and an output schema. The description covers the essential return values and provides guidance for the common polling use case. It is complete for an agent to select and invoke the tool correctly.

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?

The schema fully describes task_id with 'The task ID returned when the task was submitted' (100% coverage). The description does not add extra parameter meaning beyond the schema. With high schema coverage, a baseline of 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 clearly states the tool's function: polling status and retrieving results of a previously submitted task. It uses specific verbs ('poll', 'retrieve') and identifies the resource ('status and result'), and it distinguishes itself from sibling tools (submit_task, review_task) by focusing on post-submission status and result retrieval.

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 says when to use this tool: 'in a polling loop after submit_task if no callback_url was provided.' It also implicitly gives a when-not condition (if a callback_url is provided, polling may be unnecessary), and references the sibling submit_task for context. This is clear usage direction.

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

review_taskA
Idempotent
Inspect

Optional. Approve or dispute a task that is in pending_review status. Use this after get_task_status reports the operator has completed the work. Approving releases the operator payout. Disputing requires a reason and a description of what is needed for acceptance; the operator is then allowed to resubmit. If you never call review_task, tasks are auto-approved after the review window expires.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID returned by submit_task.
decisionYesapprove to accept the result and release payment; dispute to reject it and request a resubmission.
dispute_reasonNoRequired when decision = 'dispute'. What went wrong with the submission.
what_is_neededNoRequired when decision = 'dispute'. What the operator must do for the submission to be accepted.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYes
successYes

TDQS

A4.7/5.0
Behavior5/5

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

Beyond annotations (which already indicate non-read-only and idempotent), the description discloses important effects: 'Approving releases the operator payout,' 'Disputing... the operator is then allowed to resubmit,' and the auto-approval fallback. These are behavioral consequences not captured by the annotations or schema.

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 four sentences, front-loaded with the core action. Every sentence earns its place: the action, the trigger, the effects, and the fallback behavior. No redundant or tangential 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?

Given an output schema exists, the description need not explain return values. It covers when to call, what actions do, required fields for dispute, and the auto-approval safety net. This is sufficient for an agent to select and invoke the tool correctly in a workflow.

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?

The schema already provides 100% coverage for all four parameters, including descriptions and the conditional requirement for dispute_reason/what_is_needed. The tool description adds contextual consequences (e.g., 'releases payout') but does not introduce new parameter-level semantics beyond what the schema states. 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 clearly states the tool's purpose: 'Approve or dispute a task that is in pending_review status.' It uses a specific verb and resource, and distinguishes itself from siblings by saying 'Use this after get_task_status reports the operator has completed the work,' positioning it as the follow-up action to a status check.

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?

Provides explicit usage context: 'Use this after get_task_status reports the operator has completed the work.' It also explains the alternative of not calling the tool ('tasks are auto-approved after the review window expires'), which helps the agent decide if invocation is needed.

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

submit_taskAInspect

Submit an account verification task to a real human operator. Use this when your agent is blocked on something only a real person can complete — a KYC check, a platform sign-in or 2FA prompt, a CAPTCHA, an identity confirmation, or any verification step that requires a human. The task is charged automatically via Stripe ($39). A vetted operator claims it, performs the verification on real hardware, and returns the result (with optional screenshot) to your callback_url or via get_task_status. Typical completion: 30 minutes.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_typeYesaccount_verification — a real human verifies an account, KYC check, sign-in, or CAPTCHA on real hardware and returns structured proof ($39).
callback_urlNoWebhook URL to receive a POST request with the task result when completed. Recommended for async agent workflows. If omitted, poll get_task_status instead.
instructionsYesStructured input for account_verification. Required fields: platform (e.g. 'gmail', 'stripe'), url (where to perform the verification), credentials (login info or how to obtain the code), what_to_verify (what the operator must confirm). Optional: screenshot_required (boolean, default true), additional_notes.
deadline_minutesYesTime in minutes the operator has to complete the verification after claiming it. Minimum 20. Recommended: 30.
payment_credentialNoStripe Link Agent Wallet Single-use Payment Token (SPT) for fully autonomous agent payments with no human intervention required. Omit if the developer account has a saved card on file.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusYesCurrent task status
messageNoConfirmation or error message
task_idYesUnique identifier for the submitted task
estimated_completionNoEstimated completion time based on deadline_minutes

TDQS

A4.1/5.0
Behavior4/5

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

Beyond annotations (readOnlyHint=false etc.), description discloses automatic Stripe charge ($39), human operator workflow, async result delivery via callback or get_task_status, and typical 30-minute completion. This adds meaningful side-effect and latency context.

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?

Starts with a one-sentence purpose, followed by when-to-use list and process details. It is compact and information-dense, though slightly longer than strictly necessary.

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?

Combined with a rich schema and output schema, the description covers trigger conditions, cost, execution flow, delivery method, and timing. No critical gaps for an agent deciding to submit a human-verification task.

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?

Input schema has 100% parameter description coverage, including nested `instructions` and `payment_credential`. The description only adds the overall cost and result-delivery flow, not new per-parameter meaning, 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?

Description opens with a specific verb+resource ('Submit ... account verification task to a real human operator') and enumerates exact use cases (KYC, sign-in, CAPTCHA). This clearly distinguishes it from siblings get_task_status and review_task.

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?

Explicitly states when to use ('when your agent is blocked on something only a real person can complete') and gives concrete examples. It does not provide explicit exclusions or contrast with review_task, but the guidance is unambiguous.

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. Dates show when Glama detected each change.

  1. 1 tool update
    • Changedsubmit_task4 fields changed
      • changedInput schema / properties / deadline_minutes / description
        Previous value: -"Time in minutes the operator has to complete the task after claiming it. Minimum 20. Recommended: 60 for phone calls, 120 for videos, 30 for form filling."New value: +"Time in minutes the operator has to complete the verification after claiming it. Minimum 20. Recommended: 30."
      • changedInput schema / properties / instructions / description
        Previous value: -"Task-specific structured input. Fields vary by task_type. For phone_call: phone_number, identity, objective, language, attempts. For ugc_video: script, tone, location, frame, duration, language. For form_filling: form_url, fields object. For account_verification: platform, url, credentials, what_to_verify. For authentic_posting: platform, content, scheduled_time, account_access. For lead_enrichment: leads (array of objects), fields_needed (array of strings), instructions."New value: +"Structured input for account_verification. Required fields: platform (e.g. 'gmail', 'stripe'), url (where to perform the verification), credentials (login info or how to obtain the code), what_to_verify (what the operator must confirm). Optional: screenshot_required (boolean, default true), additional_notes."
      • changedInput schema / properties / task_type / description
        Previous value: -"The type of human task to request. ugc_video: face-cam video recorded by a real creator ($99). phone_call: a real human makes or receives a phone call ($49). account_verification: identity or account verification with optional screenshot ($39). form_filling: forms requiring authentic human input ($39). authentic_posting: real posts on Instagram, TikTok, Twitter, or LinkedIn ($29). lead_enrichment: a human researcher finds requested fields (email, phone, LinkedIn URL, job title) for a list of leads and returns structured data ($29)."New value: +"account_verification — a real human verifies an account, KYC check, sign-in, or CAPTCHA on real hardware and returns structured proof ($39)."
      • changedInput schema / properties / task_type / enum
        Previous value: -[
        -  "ugc_video",
        -  "phone_call",
        -  "form_filling",
        -  "account_verification",
        -  "authentic_posting",
        -  "lead_enrichment"
        -]New value: +[
        +  "account_verification"
        +]
  2. 1 tool update
    • Changedsubmit_task3 fields changed
      • changedInput schema / properties / instructions / description
        Previous value: -"Task-specific structured input. Fields vary by task_type. For phone_call: phone_number, identity, objective, language, attempts. For ugc_video: script, tone, location, frame, duration, language. For form_filling: form_url, fields object. For account_verification: platform, url, credentials, what_to_verify. For authentic_posting: platform, content, scheduled_time, account_access."New value: +"Task-specific structured input. Fields vary by task_type. For phone_call: phone_number, identity, objective, language, attempts. For ugc_video: script, tone, location, frame, duration, language. For form_filling: form_url, fields object. For account_verification: platform, url, credentials, what_to_verify. For authentic_posting: platform, content, scheduled_time, account_access. For lead_enrichment: leads (array of objects), fields_needed (array of strings), instructions."
      • changedInput schema / properties / task_type / description
        Previous value: -"The type of human task to request. ugc_video: face-cam video recorded by a real creator ($99). phone_call: a real human makes or receives a phone call ($49). account_verification: identity or account verification with optional screenshot ($39). form_filling: forms requiring authentic human input ($39). authentic_posting: real posts on Instagram, TikTok, Twitter, or LinkedIn ($29)."New value: +"The type of human task to request. ugc_video: face-cam video recorded by a real creator ($99). phone_call: a real human makes or receives a phone call ($49). account_verification: identity or account verification with optional screenshot ($39). form_filling: forms requiring authentic human input ($39). authentic_posting: real posts on Instagram, TikTok, Twitter, or LinkedIn ($29). lead_enrichment: a human researcher finds requested fields (email, phone, LinkedIn URL, job title) for a list of leads and returns structured data ($29)."
      • changedInput schema / properties / task_type / enum
        Previous value: -[
        -  "ugc_video",
        -  "phone_call",
        -  "form_filling",
        -  "account_verification",
        -  "authentic_posting"
        -]New value: +[
        +  "ugc_video",
        +  "phone_call",
        +  "form_filling",
        +  "account_verification",
        +  "authentic_posting",
        +  "lead_enrichment"
        +]
  3. 1 tool update
    • Addedreview_task
  4. 2 tool updates
    • Changedget_task_status1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "completed_at": {
        +      "description": "ISO timestamp of completion",
        +      "type": "string"
        +    },
        +    "operator": {
        +      "description": "Name of the operator who completed the task",
        +      "type": "string"
        +    },
        +    "output_url": {
        +      "description": "URL to download output file (video, screenshot, etc.)",
        +      "type": "string"
        +    },
        +    "result": {
        +      "description": "Task result payload when completed",
        +      "type": "object"
        +    },
        +    "status": {
        +      "enum": [
        +        "pending",
        +        "in_progress",
        +        "pending_review",
        +        "completed",
        +        "disputed"
        +      ],
        +      "type": "string"
        +    },
        +    "task_id": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "task_id",
        +    "status"
        +  ],
        +  "type": "object"
        +}
    • Changedsubmit_task1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "estimated_completion": {
        +      "description": "Estimated completion time based on deadline_minutes",
        +      "type": "string"
        +    },
        +    "message": {
        +      "description": "Confirmation or error message",
        +      "type": "string"
        +    },
        +    "status": {
        +      "description": "Current task status",
        +      "enum": [
        +        "pending",
        +        "in_progress",
        +        "pending_review",
        +        "completed",
        +        "disputed"
        +      ],
        +      "type": "string"
        +    },
        +    "task_id": {
        +      "description": "Unique identifier for the submitted task",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "task_id",
        +    "status"
        +  ],
        +  "type": "object"
        +}
  5. 1 tool update
    • Changedsubmit_task5 fields changed
      • changedInput schema / properties / callback_url / description
        Previous value: -"URL to POST the result to when the task is completed"New value: +"Webhook URL to receive a POST request with the task result when completed. Recommended for async agent workflows. If omitted, poll get_task_status instead."
      • changedInput schema / properties / deadline_minutes / description
        Previous value: -"Minutes the operator has to complete the task after claiming"New value: +"Time in minutes the operator has to complete the task after claiming it. Minimum 20. Recommended: 60 for phone calls, 120 for videos, 30 for form filling."
      • changedInput schema / properties / instructions / description
        Previous value: -"Structured instructions for the operator based on task_type"New value: +"Task-specific structured input. Fields vary by task_type. For phone_call: phone_number, identity, objective, language, attempts. For ugc_video: script, tone, location, frame, duration, language. For form_filling: form_url, fields object. For account_verification: platform, url, credentials, what_to_verify. For authentic_posting: platform, content, scheduled_time, account_access."
      • changedInput schema / properties / payment_credential / description
        Previous value: -"Stripe Link Agent Wallet SPT for autonomous payment"New value: +"Stripe Link Agent Wallet Single-use Payment Token (SPT) for fully autonomous agent payments with no human intervention required. Omit if the developer account has a saved card on file."
      • changedInput schema / properties / task_type / description
        Previous value: -"Type of task to assign to a human operator"New value: +"The type of human task to request. ugc_video: face-cam video recorded by a real creator ($99). phone_call: a real human makes or receives a phone call ($49). account_verification: identity or account verification with optional screenshot ($39). form_filling: forms requiring authentic human input ($39). authentic_posting: real posts on Instagram, TikTok, Twitter, or LinkedIn ($29)."
  6. 2 tool updates
    • First observedget_task_status
    • First observedsubmit_task

Frequently Asked Questions

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.5/5.0
Disambiguation5/5

Each tool serves a distinct stage in the task lifecycle: submit creates a task, get_task_status polls it, and review acts on the pending_review outcome. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (submit_task, get_task_status, review_task) with clear, specific verbs and the same domain object. This is a model of naming consistency.

Tool Count5/5

Three tools is the ideal number for this server's narrow purpose—submitting, monitoring, and reviewing human tasks. Each tool is necessary and there are no redundant or missing tools.

Completeness5/5

The toolset fully covers the workflow: task creation, status polling, and final approval/dispute resolution. The documented auto-approval mechanism fills any edge case, leaving no obvious functional gaps.

Resources