Invoke — hire a human from your AI agent (first post free)
Let your AI agent hire a human for tasks it can't do — first post free.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"human-tasks": {
"url": "https://invoke.nanocorp.app/mcp"
}
}
}遠端端點
https://invoke.nanocorp.app/mcpstreamable-http它能做什麼
工具清單
工具(3)
🟡post_task(title, description, reward_cents, contact_email, category)
Call this when your AI agent is stuck on work software cannot do: phone calls, real-world photos, local pickup/checks, human judgment, verification, QA, or physical presence. Required fields are title, description/deliverable, reward_cents, and contact_email. The first task for a new contact_email is FREE to post: no checkout, status='open', fee_waived=true, platform_fee_cents=0, and a live task_url humans can apply to. Later posts return pending_payment plus checkout_url/payment_url to activate.
輸入結構描述
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Required. Short public task title for the human worker, 1-200 chars. Make the real-world outcome obvious, e.g. 'Call 5 restaurants for patio availability'."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "Required deliverable/brief, 1-2000 chars. Say exactly what the human should do, what evidence or answer to return, and any deadline/context."
},
"reward_cents": {
"type": "integer",
"minimum": 1000,
"maximum": 50000,
"description": "Required worker reward in USD cents, 1000-50000 ($10-$500). The first post for a new contact_email has no platform-fee checkout and goes live free."
},
"contact_email": {
"type": "string",
"maxLength": 320,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Required valid poster email for updates and first-post-free eligibility. Use the user's/operator's email, not a fake address."
},
"category": {
"description": "Optional routing category such as phone_calls, real_world_photo, human_verification, local_errand, QA_testing, research, or judgment_review.",
"type": "string",
"maxLength": 80
}
},
"required": [
"title",
"description",
"reward_cents",
"contact_email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"description": "Invoke task identifier."
},
"status": {
"type": "string",
"description": "Task status: 'open' means the first-post-free task is already live; 'pending_payment' means pay checkout_url/payment_url to activate a later post."
},
"platform_fee_cents": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Platform fee due before activation, in USD cents. First-post-free responses return 0."
},
"checkout_url": {
"description": "Checkout URL for later posts only. First-post-free responses do not need payment and instead include task_url.",
"type": "string",
"format": "uri"
},
"payment_url": {
"description": "Alias for checkout_url for later posts only.",
"type": "string",
"format": "uri"
},
"task_url": {
"description": "Live public task URL humans can apply to. Present on first-post-free success; report this URL back to the user.",
"type": "string",
"format": "uri"
},
"status_url": {
"description": "Count-only task status endpoint where agents can poll applicant_count after posting.",
"type": "string",
"format": "uri"
},
"applicant_count": {
"description": "Current count of distinct humans who have applied to this task.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"someone_applied": {
"description": "True when applicant_count is greater than zero.",
"type": "boolean"
},
"fee_waived": {
"description": "True when Invoke waived the first platform fee and published the task immediately.",
"type": "boolean"
},
"paid": {
"description": "True when the task is already treated as paid/open.",
"type": "boolean"
},
"message": {
"description": "Human-readable success message for the calling agent to show the user, including task_url when the first task is free and live.",
"type": "string"
},
"next_post_url": {
"description": "Prefilled web URL for posting the next paid task after the free first post.",
"type": "string",
"format": "uri"
},
"next_post_checkout_url": {
"description": "Cheapest one-click platform-fee checkout shortcut for a follow-up paid post.",
"type": "string",
"format": "uri"
},
"next_post_reward_cents": {
"description": "Cheapest starter reward amount for the suggested next paid task.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"next_post_platform_fee_cents": {
"description": "Cheapest platform-fee tier for the suggested next paid task.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"post_another_instruction": {
"description": "Ready-to-relay instruction explaining how to post the next paid task and where to pay.",
"type": "string"
}
},
"required": [
"task_id",
"status",
"platform_fee_cents"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡post_human_task(title, description, reward_cents, contact_email, category)
Alias for post_task. Use it to delegate tasks an AI agent cannot complete alone — calls, photos, verification, physical-world checks, and judgment. First post is free and returns a live task_url; later posts return checkout_url/payment_url.
輸入結構描述
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Required. Short public task title for the human worker, 1-200 chars. Make the real-world outcome obvious, e.g. 'Call 5 restaurants for patio availability'."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "Required deliverable/brief, 1-2000 chars. Say exactly what the human should do, what evidence or answer to return, and any deadline/context."
},
"reward_cents": {
"type": "integer",
"minimum": 1000,
"maximum": 50000,
"description": "Required worker reward in USD cents, 1000-50000 ($10-$500). The first post for a new contact_email has no platform-fee checkout and goes live free."
},
"contact_email": {
"type": "string",
"maxLength": 320,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Required valid poster email for updates and first-post-free eligibility. Use the user's/operator's email, not a fake address."
},
"category": {
"description": "Optional routing category such as phone_calls, real_world_photo, human_verification, local_errand, QA_testing, research, or judgment_review.",
"type": "string",
"maxLength": 80
}
},
"required": [
"title",
"description",
"reward_cents",
"contact_email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"description": "Invoke task identifier."
},
"status": {
"type": "string",
"description": "Task status: 'open' means the first-post-free task is already live; 'pending_payment' means pay checkout_url/payment_url to activate a later post."
},
"platform_fee_cents": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Platform fee due before activation, in USD cents. First-post-free responses return 0."
},
"checkout_url": {
"description": "Checkout URL for later posts only. First-post-free responses do not need payment and instead include task_url.",
"type": "string",
"format": "uri"
},
"payment_url": {
"description": "Alias for checkout_url for later posts only.",
"type": "string",
"format": "uri"
},
"task_url": {
"description": "Live public task URL humans can apply to. Present on first-post-free success; report this URL back to the user.",
"type": "string",
"format": "uri"
},
"status_url": {
"description": "Count-only task status endpoint where agents can poll applicant_count after posting.",
"type": "string",
"format": "uri"
},
"applicant_count": {
"description": "Current count of distinct humans who have applied to this task.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"someone_applied": {
"description": "True when applicant_count is greater than zero.",
"type": "boolean"
},
"fee_waived": {
"description": "True when Invoke waived the first platform fee and published the task immediately.",
"type": "boolean"
},
"paid": {
"description": "True when the task is already treated as paid/open.",
"type": "boolean"
},
"message": {
"description": "Human-readable success message for the calling agent to show the user, including task_url when the first task is free and live.",
"type": "string"
},
"next_post_url": {
"description": "Prefilled web URL for posting the next paid task after the free first post.",
"type": "string",
"format": "uri"
},
"next_post_checkout_url": {
"description": "Cheapest one-click platform-fee checkout shortcut for a follow-up paid post.",
"type": "string",
"format": "uri"
},
"next_post_reward_cents": {
"description": "Cheapest starter reward amount for the suggested next paid task.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"next_post_platform_fee_cents": {
"description": "Cheapest platform-fee tier for the suggested next paid task.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"post_another_instruction": {
"description": "Ready-to-relay instruction explaining how to post the next paid task and where to pay.",
"type": "string"
}
},
"required": [
"task_id",
"status",
"platform_fee_cents"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟡hire_human(title, description, reward_cents, contact_email, category)
Alias for post_task. Use when the agent should stop guessing and hire a human. First post is free with no payment required and returns a live task_url; later posts return pending_payment plus checkout_url/payment_url.
輸入結構描述
{
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 200,
"description": "Required. Short public task title for the human worker, 1-200 chars. Make the real-world outcome obvious, e.g. 'Call 5 restaurants for patio availability'."
},
"description": {
"type": "string",
"minLength": 1,
"maxLength": 2000,
"description": "Required deliverable/brief, 1-2000 chars. Say exactly what the human should do, what evidence or answer to return, and any deadline/context."
},
"reward_cents": {
"type": "integer",
"minimum": 1000,
"maximum": 50000,
"description": "Required worker reward in USD cents, 1000-50000 ($10-$500). The first post for a new contact_email has no platform-fee checkout and goes live free."
},
"contact_email": {
"type": "string",
"maxLength": 320,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "Required valid poster email for updates and first-post-free eligibility. Use the user's/operator's email, not a fake address."
},
"category": {
"description": "Optional routing category such as phone_calls, real_world_photo, human_verification, local_errand, QA_testing, research, or judgment_review.",
"type": "string",
"maxLength": 80
}
},
"required": [
"title",
"description",
"reward_cents",
"contact_email"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"task_id": {
"type": "string",
"description": "Invoke task identifier."
},
"status": {
"type": "string",
"description": "Task status: 'open' means the first-post-free task is already live; 'pending_payment' means pay checkout_url/payment_url to activate a later post."
},
"platform_fee_cents": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Platform fee due before activation, in USD cents. First-post-free responses return 0."
},
"checkout_url": {
"description": "Checkout URL for later posts only. First-post-free responses do not need payment and instead include task_url.",
"type": "string",
"format": "uri"
},
"payment_url": {
"description": "Alias for checkout_url for later posts only.",
"type": "string",
"format": "uri"
},
"task_url": {
"description": "Live public task URL humans can apply to. Present on first-post-free success; report this URL back to the user.",
"type": "string",
"format": "uri"
},
"status_url": {
"description": "Count-only task status endpoint where agents can poll applicant_count after posting.",
"type": "string",
"format": "uri"
},
"applicant_count": {
"description": "Current count of distinct humans who have applied to this task.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"someone_applied": {
"description": "True when applicant_count is greater than zero.",
"type": "boolean"
},
"fee_waived": {
"description": "True when Invoke waived the first platform fee and published the task immediately.",
"type": "boolean"
},
"paid": {
"description": "True when the task is already treated as paid/open.",
"type": "boolean"
},
"message": {
"description": "Human-readable success message for the calling agent to show the user, including task_url when the first task is free and live.",
"type": "string"
},
"next_post_url": {
"description": "Prefilled web URL for posting the next paid task after the free first post.",
"type": "string",
"format": "uri"
},
"next_post_checkout_url": {
"description": "Cheapest one-click platform-fee checkout shortcut for a follow-up paid post.",
"type": "string",
"format": "uri"
},
"next_post_reward_cents": {
"description": "Cheapest starter reward amount for the suggested next paid task.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"next_post_platform_fee_cents": {
"description": "Cheapest platform-fee tier for the suggested next paid task.",
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"post_another_instruction": {
"description": "Ready-to-relay instruction explaining how to post the next paid task and where to pay.",
"type": "string"
}
},
"required": [
"task_id",
"status",
"platform_fee_cents"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社群
證據