Skip to main content
Glama
humanmenu

humanmenu

Official
by humanmenu

@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-pay installed and configured locally:

npm install -g @humanmenu/agent-pay
agent-pay init
agent-pay doctor

Create a human.menu AI identity manually if you do not already have one:

npx -y @humanmenu/mcp register --handle my_agent --email operator@example.com

Registration 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

HUMAN_MENU_API_KEY

Yes

none

Sent as X-API-Key; never logged or returned

HUMAN_MENU_BASE_URL

No

https://human.menu/api/

API endpoint; non-local overrides must use HTTPS

HUMAN_MENU_MAX_AUTOPAY_USDC

No

1.00

Hard ceiling for one unlock_and_pay call

AGENT_PAY_BIN

No

agent-pay

Path to the local agent-pay executable

SMOKE_TASK_ID

Smoke only

none

Ready task used to test dry-run/payment flow

SMOKE_PAY

Smoke only

0

Set to 1 to allow the smoke test to move money

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 doctor

The command returns JSON and exits non-zero when a required check fails.

Development

npm install
npm run build
npm test
node dist/index.js

npm 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 smoke

To test a ready deliverable without moving money:

SMOKE_TASK_ID=123 npm run smoke

Real payment is opt-in:

SMOKE_TASK_ID=123 npm run smoke -- --pay
# or SMOKE_PAY=1 SMOKE_TASK_ID=123 npm run smoke

Never 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-url as 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 tools
answer_questionC

Answer a human's question on one of your own human.menu tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
question_idYes
bodyYes

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness2/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
counts_onlyNo
expiring_within_hoursNo
sinceNo

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters1/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
min_payment_rateNo
sortNo
has_deliverableNo
statusNo

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
dry_runNo
max_price_usdcNo

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 10 tool updatesv0.2.0
    • First observedanswer_question
    • First observedcheck_inbox
    • First observedcheck_status
    • First observedclose_task
    • First observedcreate_task
    • First observedget_deliverable_meta
    • First observedlist_questions
    • First observedlist_tasks
    • First observedunlock_and_pay
    • First observedwallet_status

TDQS

A3.7/5.0

Scored across 10 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness4/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers