Human For AI — задачи для живого человека
Передача реальному человеку задач, которые ИИ не может выполнить сам
Добавьте сервер в «Мои MCP» — получите адрес подключения для Claude и ChatGPT.
Добавить в «Мои MCP»Нужно войти или зарегистрироваться — вернём на эту страницу.
Описание
Human For AI связывает ассистента с живым исполнителем, который может сделать то, что недоступно программе: проверить что-то в реальном мире, протестировать продукт, оценить результат работы ИИ или выполнить поручение. Сначала можно получить описание услуг: какие задачи принимаются и какие нет, где находится исполнитель, на каких языках он работает, в какие часы и как быстро отвечает. Затем задачу отправляют и отслеживают её статус — от отправки до принятия и сдачи результата или отказа. Для вопросов и нестандартных проектов есть переписка с исполнителем: можно написать сообщение, прочитать ответы и продолжить разговор в той же ветке. Каждую задачу человек просматривает перед тем, как принять, поэтому выполнение не мгновенное.
Инструменты · 6
из ответа tools/list
Read a message thread
check_message_thread
Read a message thread
check_message_thread Read the thread for a message you sent: the original text, every reply oldest-first, and whether the operator has answered. Needs the message_id and the access_token from the submission response. An empty replies list means no answer yet — the operator works at human speed, so poll occasionally rather than in a loop.
check_message_thread(message_id: string, access_token: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message_id",
"access_token"
],
"properties": {
"message_id": {
"type": "string",
"description": "The message id from message_human_operator, e.g. MSG-2026-1A2B3C4D"
},
"access_token": {
"type": "string",
"description": "The access_token returned once at submission — the only key to the thread."
}
}
}
Check task status
check_task_status
Check task status
check_task_status Look up a submitted task by its task_id. Returns current status (submitted → accepted → delivered, or rejected), status history with timestamps, seen_by_operator_at (the moment a human actually saw the task — usually well before the first status change), eta (operator-set delivery estimate, once accepted), and any operator notes. Once delivered, the response also carries receipt (a signed JWS binding the deliverable's sha256 to the lifecycle timestamps) and deliverable_sha256 — verify offline against https://humanforai.dev/.well-known/jwks.json. In hosts that support MCP Apps the result also renders as a task status card (timeline, seen-by-human moment, ETA, operator notes, receipt) with a Refresh button; the JSON result carries the same data.
check_task_status(task_id: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"task_id"
],
"properties": {
"task_id": {
"type": "string",
"description": "Task ID returned by submit_human_task, e.g. HFAI-2026-A1B2C3D4E5F60718"
}
}
}
List human services
get_human_services
List human services
get_human_services Fetch the Human For AI manifest: available services, operator profile (location, languages, working hours), response times, accepted and rejected task types, and trust & safety policy. Call this first to decide whether and how to hire the human. The catalog is examples, not limits — unlisted needs are welcome as custom_human_in_the_loop.
get_human_services()
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {}
}
Message the human operator
message_human_operator
Message the human operator
message_human_operator Send a free-form message to the human operator — questions, scoping, custom or recurring projects, anything that is not yet a ready-made task. reply_to is REQUIRED: an email a human can read (MX-checked), or an https URL to receive the reply as a signed webhook push. The response also carries thread_url + access_token — every message is a pollable thread, so you can read the reply with check_message_thread even without a mailbox. Keep the token: it is shown only once.
message_human_operator(from?: string, message: string, subject?: string, reply_to: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message",
"reply_to"
],
"properties": {
"from": {
"type": "string",
"maxLength": 200,
"description": "Your agent or system identifier"
},
"message": {
"type": "string",
"maxLength": 5000,
"minLength": 5,
"description": "The message. Plain language, English."
},
"subject": {
"type": "string",
"maxLength": 200,
"description": "Short subject line"
},
"reply_to": {
"type": "string",
"description": "REQUIRED. Email address for the reply (real, reachable, MX-checked) — or an https webhook URL for a signed push."
}
}
}
Follow up in a message thread
reply_in_message_thread
Follow up in a message thread
reply_in_message_thread Add a follow-up to a thread you opened — answer a question the operator asked, add detail, correct yourself, or withdraw the request. Prefer this over sending a brand-new message about the same subject. Needs the message_id and access_token from the submission response.
reply_in_message_thread(message: string, message_id: string, access_token: string)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"message_id",
"access_token",
"message"
],
"properties": {
"message": {
"type": "string",
"maxLength": 5000,
"minLength": 2,
"description": "The follow-up text"
},
"message_id": {
"type": "string",
"description": "The message id from message_human_operator"
},
"access_token": {
"type": "string",
"description": "The access_token returned once at submission"
}
}
}
Submit a task to the human
submit_human_task
Submit a task to the human
submit_human_task 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). In hosts that support MCP Apps the result also renders as a task status card with a Refresh button; the JSON result carries the same data.
submit_human_task(deadline?: string, delivery?: string, requester?: string, task_type: string, description: string, contact_email?: string, output_format?: string, location_detail?: string, location_required?: boolean)
// inputSchema
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"task_type",
"description"
],
"properties": {
"deadline": {
"type": "string",
"description": "ISO 8601 datetime, e.g. 2026-07-10T12:00:00+03:00"
},
"delivery": {
"enum": [
"email",
"status_poll"
],
"type": "string",
"description": "How 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."
},
"requester": {
"type": "string",
"maxLength": 200,
"description": "Your agent or system identifier, e.g. my-agent/1.0"
},
"task_type": {
"enum": [
"real_world_verification",
"product_or_app_testing",
"human_judgment_and_feedback",
"data_collection",
"local_physical_task",
"ai_output_review",
"prompt_and_workflow_testing",
"simulation_and_automation_testing",
"accessibility_and_usability_check",
"decision_escalation",
"custom_human_in_the_loop"
],
"type": "string",
"description": "Service 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"
},
"description": {
"type": "string",
"maxLength": 5000,
"minLength": 10,
"description": "What to do, where, and what success looks like. Specific, self-contained tasks are accepted faster."
},
"contact_email": {
"type": "string",
"description": "Where 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_format": {
"type": "string",
"description": "text_report (default), text_report_with_photos, structured_json, annotated_screenshots, or video"
},
"location_detail": {
"type": "string",
"maxLength": 500,
"description": "City, address, or area — required in practice when location_required is true"
},
"location_required": {
"type": "boolean",
"description": "true if the task needs physical presence (coverage is confirmed at review)"
}
}
}
Вопросы, новые серверы, обсуждение MCP
t.me/rusmcp · t.me/RusMcp_bot