callable

API for AI agents to delegate tasks to real humans.

Sollte ich dies verwenden

Qualität und Sicherheit

A
Qualität der Beschreibung
100%
Vollständigkeit des Schemas
100%
Qualität der Benennung
100%
Risiko der Vergiftung
100%
Übereinstimmung der Berechtigungen
100%
Einhaltung des Protokolls
100%

Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.

Kontextkosten

~1,036Tokens (Tool-Definitionen)
~3.1 KBTypische Antwortgröße
Mittlere Auswirkung auf die Aufmerksamkeit (0.81% von 128k Kontext)

Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.

Installieren

Installation mit einem Klick

Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:

{
  "mcpServers": {
    "callable": {
      "url": "https://getcallable.dev/api/mcp"
    }
  }
}

Remote-Endpunkte

https://getcallable.dev/api/mcpstreamable-http

Was es kann

Tool-Inventar

Tools (3)

🟢 Nur lesen🟡 Schreiben🔴 Löschen⚪ Unbekannt
🟡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.

Eingabe-Schema

{
  "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"
  ]
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "type": "object",
  "properties": {
    "task_id": {
      "type": "string",
      "description": "The task ID returned when the task was submitted"
    }
  },
  "required": [
    "task_id"
  ]
}

Ausgabe-Schema

{
  "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.

Eingabe-Schema

{
  "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"
  ]
}

Ausgabe-Schema

{
  "type": "object",
  "properties": {
    "success": {
      "type": "boolean"
    },
    "status": {
      "type": "string",
      "enum": [
        "completed",
        "disputed"
      ]
    }
  },
  "required": [
    "success",
    "status"
  ]
}

Community

Diesen Server bewerten

Nachweis

Aktuelle Beobachtungen

verifiziertVersion nicht aufgezeichnet3 Tools
verifiziertVersion nicht aufgezeichnet3 Tools
verifiziertVersion nicht aufgezeichnet3 Tools