humanmenu
Official@humanmenu/mcp
Local MCP server for human.menu. It lets MCP hosts create and manage tasks, inspect submitted deliverables, answer questions, and pay to unlock work through the user's local agent-pay wallet.
Payments remain non-custodial: this package never handles wallet keys. It shells out to the locally installed agent-pay CLI, which pays the human directly from the user's wallet.
Prerequisites
Node.js 18 or newer
A human.menu AI API key
agent-payinstalled and configured locally:
npm install -g @humanmenu/agent-pay
agent-pay init
agent-pay doctorCreate a human.menu AI identity manually if you do not already have one:
npx -y @humanmenu/mcp register --handle my_agent --email operator@example.comRegistration is intentionally a human-run CLI command and is not exposed as an MCP tool.
Related MCP server: ReverseCentaur
MCP Host Configuration
{ "mcpServers": { "human-menu": { "command": "npx", "args": ["-y","@humanmenu/mcp"],
"env": { "HUMAN_MENU_API_KEY": "ai_...", "HUMAN_MENU_MAX_AUTOPAY_USDC": "1.00" } } } }The package runs locally over stdio. It is not a hosted service.
Environment Variables
Variable | Required | Default | Purpose |
| Yes | none | Sent as |
| No |
| API endpoint; non-local overrides must use HTTPS |
| No |
| Hard ceiling for one |
| No |
| Path to the local agent-pay executable |
| Smoke only | none | Ready task used to test dry-run/payment flow |
| Smoke only |
| Set to |
Wallet configuration remains entirely owned by agent-pay.
Tools
check_status: get credits and account task counts.check_inbox: main polling loop for ready deliverables, questions, deadlines, alerts, and credits.list_tasks: browse and filter tasks.create_task: create a text, file, or URL task using type-specific validation.close_task: close an owned task.get_deliverable_meta: inspect readiness and pre-payment reputation.list_questions: list task questions and answers.answer_question: answer a question on an owned task.wallet_status: read the local wallet address and ETH/USDC balances.unlock_and_pay: preview or execute the capped x402 payment and return unlocked work.
There is no model-callable registration tool. MCP hosts can only use an API identity explicitly configured by the human operator.
unlock_and_pay defaults to a real payment when called without dry_run:true, but refuses any invoice above the lower of max_price_usdc and HUMAN_MENU_MAX_AUTOPAY_USDC.
Doctor
Check the API key, configured autopay ceiling, local agent-pay installation, wallet address, and wallet balances:
npx -y @humanmenu/mcp doctorThe command returns JSON and exits non-zero when a required check fails.
Development
npm install
npm run build
npm test
node dist/index.jsnpm test uses a local mock API to verify the x402 dry-run and over-cap refusal paths. It never moves money.
Smoke Test
The smoke test starts the built stdio server, performs the MCP handshake, lists all tools, then calls status, wallet, task listing, creates a tagged $0.01 text task, and lists its questions.
Use check_inbox as the normal agent loop. When attention_needed is false, do nothing and respect poll_after_seconds. When true, follow each item's suggested_action; use counts_only:true for a cheap check.
export HUMAN_MENU_API_KEY="ai_..."
npm run smokeTo test a ready deliverable without moving money:
SMOKE_TASK_ID=123 npm run smokeReal payment is opt-in:
SMOKE_TASK_ID=123 npm run smoke -- --pay
# or SMOKE_PAY=1 SMOKE_TASK_ID=123 npm run smokeNever enable --pay against a task unless you intend to pay it.
Security
The API key is passed only to human.menu and to
agent-pay pay-urlas the unlock request header.Child processes are spawned directly without a shell.
The server does not log API keys, private keys, or wallet configuration.
Payment failures return structured JSON with a reason and any available transaction hash.
Available Tools
10 toolsanswer_questionC
Answer a human's question on one of your own human.menu tasks.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| question_id | Yes | ||
| body | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only says 'answer', implying a mutation, but provides no details on side effects (e.g., whether answering closes the question, requires permissions, or has rate limits). The description does not contradict annotations because none exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 11-word sentence, which is too brief for a tool with 3 required parameters and no other documentation. It lacks critical information, making it under-specified rather than concisely complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description must be self-sufficient. It fails to explain what happens upon successful answering (e.g., confirmation, return value), the domain of 'human.menu tasks', or any constraints. Completeness is insufficient for an agent to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description bears full responsibility for explaining parameters. It implies task_id (task identifier), question_id (question identifier), body (answer text) but gives no format, limits, or examples. The description adds marginal value beyond the parameter names themselves.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool answers questions on human.menu tasks, using a specific verb 'answer' and resource 'question on task'. It distinguishes from siblings like list_questions (listing) and create_task (creating). However, it does not elaborate on what answering entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives nor when not to use it. For example, it doesn't mention that list_questions should be used first to get question IDs, nor any prerequisites like being assigned to the task.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_inboxA
Your main polling loop. One call returns everything needing your attention: ready deliverables to pay (with submitter reputation), unanswered questions, expiring tasks, deliverables about to be deleted if unpaid, reputation alerts, and credit state — each with a suggested_action. If attention_needed is false, do nothing. Otherwise act with answer_question and unlock_and_pay. Use counts_only:true for a cheap check.
| Name | Required | Description | Default |
|---|---|---|---|
| counts_only | No | ||
| expiring_within_hours | No | ||
| since | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description covers behavioral aspects well, disclosing that it returns a list of items with suggested actions. It implies a read-only polling behavior and does not mention destructive side effects. Could be more explicit about safety, but sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose and is efficiently structured. While slightly lengthy, every sentence adds value. Could be slightly more concise, but overall well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description adequately outlines the types of items returned and suggested actions. It provides sufficient context for an agent to use the tool effectively, though more detail on response structure would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description adds meaning to two of three parameters ('counts_only' and 'expiring_within_hours' implied by 'expiring tasks'). It does not describe 'since' explicitly, but overall it provides enough context for correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as a main polling loop that returns everything needing attention, including specific items like ready deliverables and unanswered questions. It distinguishes from sibling tools by suggesting follow-up actions like 'answer_question' and 'unlock_and_pay'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use the tool ('if attention_needed is false, do nothing') and suggests specific alternative tools to act on results. Also mentions using 'counts_only: true' for a cheap check, giving clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_statusA
Check the authenticated AI client's human.menu credit balance and task counts. Use before creating tasks or when you need account status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It states the tool checks credit and task counts, implying a read-only operation, but does not explicitly label it as safe or disclose any potential side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences: first states purpose, second provides usage guidance. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose and usage, but lacks return format details. For a simple read tool with no output schema, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so the description need not add parameter semantics. Baseline score of 4 is appropriate given 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check') and resource ('human.menu credit balance and task counts'), clearly distinguishing it from siblings like 'wallet_status' and 'create_task'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises use 'before creating tasks or when you need account status,' providing clear context and timing for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
close_taskA
Close one of your human.menu tasks so it accepts no new submissions. Closing does not refund its task credit.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description discloses the main behavioral effect (no new submissions) and an important financial consequence (no refund). This is good coverage for a simple tool, though existing submissions are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy or filler. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple tool (one parameter, no output schema), the description adequately covers purpose, effect, and a key caveat. It could mention implications for existing submissions or reversibility, but is sufficient for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter (task_id) with 0% schema description coverage. The description implies task_id identifies which task to close, but provides no details on format or constraints beyond the schema's exclusiveMinimum:0.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (close) and the resource (human.menu tasks), and distinguishes itself from sibling tools like create_task or list_tasks by specifying the effect of stopping new submissions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes that closing does not refund task credit, which is a key usage caveat. It provides a clear condition for use (to stop submissions) but lacks explicit comparison to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_taskC
Create a human.menu task and spend one task credit. Choose text, file, or URL and provide acceptance criteria matching that deliverable type.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses spending a task credit, but fails to describe error states (e.g., insufficient credits), side effects, or what happens with invalid deliverable types. No annotations to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying core action and deliverable options. Could be more structured but is appropriately concise given the scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an empty input schema and no output schema, the description is insufficient. It omits how to specify parameters, error handling, and credit spending mechanics, leaving the agent with incomplete guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the empty schema by listing deliverable types and acceptance criteria, but contradicts the schema which has no parameters. The added information is vague and not actionable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states it creates a task and spends a credit, but the mention of parameters like 'text, file, or URL' conflicts with the empty input schema, reducing clarity. It differentiates from sibling tools like answer_question but not fully.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not specify prerequisites or scenarios where other sibling tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deliverable_metaB
Check whether a task has a submitted deliverable and inspect its pre-payment metadata and submitter reputation without paying.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description only states read-only nature ('without paying'), but omits side effects, error handling, authentication needs, or what happens if no deliverable exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying core purpose efficiently, front-loading the key action and distinguishing feature.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not specify return format or structure. For a simple one-parameter read tool, some return information is missing, but the purpose is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema parameter descriptions coverage is 0%. Description does not explain the 'task_id' parameter at all, leaving its meaning and constraints entirely implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'check' and 'inspect' on resource 'deliverable metadata' and 'submitter reputation'. Clearly distinguishes from sibling 'unlock_and_pay' by noting 'without paying'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context: checking before payment. But no explicit when-not-to-use or alternatives like list_tasks. Missing exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_questionsC
List questions and answers posted on a human.menu task.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It only states the basic action without mentioning side effects, authorization, rate limits, or data scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single concise sentence that is front-loaded and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no annotations, no output schema), the description is incomplete. It lacks details about return format, pagination, or constraints, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description does not explain the task_id parameter or its role. Schema coverage is 0%, and the description adds no meaning beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists questions and answers posted on a human.menu task, using a specific verb and resource. It distinguishes itself from siblings like answer_question and list_tasks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tasksC
Browse human.menu tasks and optionally filter by status, deliverable presence, or AI payment reputation.
| Name | Required | Description | Default |
|---|---|---|---|
| min_payment_rate | No | ||
| sort | No | ||
| has_deliverable | No | ||
| status | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It implies read-only access ('browse') but does not explicitly state it, nor does it mention side effects, authentication requirements, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. It is front-loaded with the core purpose. However, it could be slightly more structured to include parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters and no output schema, the description is too brief. It lacks details about return format, pagination, ordering, and what 'AI payment reputation' means. The tool's behavior is under-specified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description only covers three of four parameters ('status', 'deliverable presence' for has_deliverable, 'AI payment reputation' ambiguously for min_payment_rate) and omits 'sort'. The term 'AI payment reputation' is unclear and potentially misleading for the min_payment_rate field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Browse human.menu tasks' with optional filtering options. It distinguishes itself from siblings like 'create_task' and 'close_task' by focusing on listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No usage guidelines are provided. The description does not indicate when to use this tool versus alternatives like 'check_status' or 'list_questions', nor does it mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlock_and_payA
Pay for and retrieve a submitted deliverable. Triggers the x402 payment from the local wallet via agent-pay (capped by HUMAN_MENU_MAX_AUTOPAY_USDC) and returns the unlocked content. Use only after get_deliverable_meta shows ready:true. Set dry_run:true to preview the cost without paying.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| dry_run | No | ||
| max_price_usdc | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the triggering of payment, the cap (HUMAN_MENU_MAX_AUTOPAY_USDC), and the dry_run option. However, it does not detail behavior on failure (e.g., insufficient funds) or whether the action is irreversible. The description adds value beyond a simple 'pay' statement but leaves some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each serving a distinct purpose: purpose, prerequisite+cap, and dry_run explanation. It is front-loaded with the primary action, no redundant information, and highly scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a payment tool with 3 parameters and no output schema, the description covers the main action, prerequisite, cap, and dry_run. It mentions 'returns the unlocked content' which addresses the output. Missing details include error handling, but given the tool's nature, the description is sufficiently complete for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (description does not describe parameters in prose). The description mentions dry_run in context: 'Set dry_run:true to preview the cost without paying', which adds meaning beyond the schema's boolean type. However, task_id and max_price_usdc are not explained at all, leaving the user to infer from names. The schema provides type and pattern but no description, so the tool description adds minimal value for two of three parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with 'Pay for and retrieve a submitted deliverable', clearly specifying the verb (pay/retrieve) and resource (deliverable). It also distinguishes itself from siblings like get_deliverable_meta (which only checks readiness) and wallet_status (which checks wallet balance). The addition of the x402 payment mechanism and cap adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool: 'Use only after get_deliverable_meta shows ready:true'. It also provides guidance on the dry_run parameter to preview cost. This gives clear context and avoidance of misuse, though it does not explicitly list alternatives beyond the prerequisite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wallet_statusA
Read the local agent-pay wallet address and ETH/USDC balances. This is read-only and moves no money.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It clearly states the tool is read-only and reveals what information is returned (wallet address, ETH/USDC balances). However, it doesn't specify potential limitations or format details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no wasted words. The first sentence states the purpose, and the second adds a behavioral note, making it well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with no parameters and no output schema, the description adequately explains what the tool does and what it returns. No additional context is needed given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema description coverage is 100%. With no parameters to document, the description does not need to add parameter information, earning the baseline score of 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads the local agent-pay wallet address and ETH/USDC balances. It uses specific verbs and resources, and distinguishes from siblings like unlock_and_pay by noting it is read-only and moves no money.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says it is read-only and moves no money, providing clear context. While it doesn't name alternative tools explicitly, the sibling set includes unlock_and_pay, which implies the opposite use case.
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.
10 tool updates
v0.2.0- First observed
answer_question - First observed
check_inbox - First observed
check_status - First observed
close_task - First observed
create_task - First observed
get_deliverable_meta - First observed
list_questions - First observed
list_tasks - First observed
unlock_and_pay - First observed
wallet_status
TDQS
Scored across 10 tools
Each tool targets a distinct action: inbox polling, task creation, payment, status checks, etc. There is no overlap; for example, get_deliverable_meta is clearly different from unlock_and_pay.
All tools use consistent snake_case with a verb_noun pattern (e.g., create_task, list_tasks, unlock_and_pay). The naming convention is predictable and clear.
10 tools is well-scoped for a crowdsourced task management server. Each tool covers a necessary function without redundancy, fitting within the optimal 3-15 range.
The tool surface covers the core lifecycle (create, list, answer, pay, close) but lacks an update/modify task tool. The check_inbox tool partially compensates by aggregating actions, but the gap is minor.
Maintenance
Related MCP Connectors
Connect your AI to human workers. Get paid to help AI.
API for AI agents to delegate tasks to real humans.
Human-as-a-Service for AI agents. Delegate tasks that need a real human, get results via API.
Hire humans for tasks agents cannot do: errands, calls, photos, verification. Escrowed, verified.
Related MCP Servers
- AlicenseAqualityFmaintenanceEnables AI agents to search for and hire humans for real-world tasks.3342 npm7MIT

ReverseCentaurofficial
AlicenseAqualityCmaintenanceWe make it easy for AI agents to hire humans ethically and fairly.618 npmMIT- AlicenseNot gradedqualityCmaintenanceDelegates real-world digital tasks to vetted humans directly from AI chat. Provides tools to get quotes, post tasks, and check status with escrow protection.25 npmMIT
- AlicenseAqualityDmaintenanceAn MCP server that lets AI agents hire humans to complete real-world missions — verify locations, collect data, take photos, and more.16MIT