callable
API for AI agents to delegate tasks to real humans.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"callable": {
"url": "https://getcallable.dev/api/mcp"
}
}
}Puntos de conexión remotos
https://getcallable.dev/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (3)
🟡submit_task(task_type, instructions, deadline_minutes, callback_url, payment_credential)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"task_type": {
"type": "string",
"enum": [
"account_verification"
],
"description": "account_verification — a real human verifies an account, KYC check, sign-in, or CAPTCHA on real hardware and returns structured proof ($39)."
},
"instructions": {
"type": "object",
"description": "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."
},
"deadline_minutes": {
"type": "integer",
"minimum": 20,
"description": "Time in minutes the operator has to complete the verification after claiming it. Minimum 20. Recommended: 30."
},
"callback_url": {
"type": "string",
"description": "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."
},
"payment_credential": {
"type": "object",
"description": "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."
}
},
"required": [
"task_type",
"instructions",
"deadline_minutes"
]
}Esquema de salida
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"description": "Unique identifier for the submitted task"
},
"status": {
"type": "string",
"enum": [
"pending",
"in_progress",
"pending_review",
"completed",
"disputed"
],
"description": "Current task status"
},
"message": {
"type": "string",
"description": "Confirmation or error message"
},
"estimated_completion": {
"type": "string",
"description": "Estimated completion time based on deadline_minutes"
}
},
"required": [
"task_id",
"status"
]
}🟢get_task_status(task_id)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"description": "The task ID returned when the task was submitted"
}
},
"required": [
"task_id"
]
}Esquema de salida
{
"type": "object",
"properties": {
"task_id": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"pending",
"in_progress",
"pending_review",
"completed",
"disputed"
]
},
"result": {
"type": "object",
"description": "Task result payload when completed"
},
"output_url": {
"type": "string",
"description": "URL to download output file (video, screenshot, etc.)"
},
"completed_at": {
"type": "string",
"description": "ISO timestamp of completion"
},
"operator": {
"type": "string",
"description": "Name of the operator who completed the task"
}
},
"required": [
"task_id",
"status"
]
}🟢review_task(task_id, decision, dispute_reason, what_is_needed)
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.
Esquema de entrada
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"description": "The task ID returned by submit_task."
},
"decision": {
"type": "string",
"enum": [
"approve",
"dispute"
],
"description": "approve to accept the result and release payment; dispute to reject it and request a resubmission."
},
"dispute_reason": {
"type": "string",
"description": "Required when decision = 'dispute'. What went wrong with the submission."
},
"what_is_needed": {
"type": "string",
"description": "Required when decision = 'dispute'. What the operator must do for the submission to be accepted."
}
},
"required": [
"task_id",
"decision"
]
}Esquema de salida
{
"type": "object",
"properties": {
"success": {
"type": "boolean"
},
"status": {
"type": "string",
"enum": [
"completed",
"disputed"
]
}
},
"required": [
"success",
"status"
]
}Comunidad
Evidencia