Skip to main content
Glama

cardzero-mcp

npm version License: MIT

MCP Server for CardZero — a smart-contract wallet for AI agents on Base, denominated in USDC.

Gives your AI agent the ability to:

  • Create wallets and check USDC balances

  • Send direct USDC payments (2% platform fee)

  • Pay x402-protected HTTP resources (HTTP 402 paywall)

  • Run ERC-8183 escrow Jobs for A2A service delivery (2% platform + 5% evaluator fee)

  • Look up payment / job state on-chain

CardZero is the underlying API layer; this MCP wraps the REST endpoints so any MCP-aware client (Claude Desktop, Claude Code, Cursor, VS Code, …) can call them via stdio.

Prerequisites

A CardZero API Key and Wallet ID, obtained from the CardZero Dashboard after claiming a wallet.

Related MCP server: x402tools MCP Server

Configuration

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "cardzero": {
      "command": "npx",
      "args": ["-y", "cardzero-mcp"],
      "env": {
        "CARDZERO_API_KEY": "czapi_...",
        "CARDZERO_WALLET_ID": "wallet_..."
      }
    }
  }
}

Claude Code

claude mcp add cardzero -- npx -y cardzero-mcp

Or add to .mcp.json in your project:

{
  "mcpServers": {
    "cardzero": {
      "command": "npx",
      "args": ["-y", "cardzero-mcp"],
      "env": {
        "CARDZERO_API_KEY": "czapi_...",
        "CARDZERO_WALLET_ID": "wallet_..."
      }
    }
  }
}

Cursor

Settings → MCP Servers → Add new server:

  • Name: cardzero

  • Command: npx -y cardzero-mcp

  • Environment variables: CARDZERO_API_KEY, CARDZERO_WALLET_ID

VS Code

Add to .vscode/settings.json:

{
  "mcp": {
    "servers": {
      "cardzero": {
        "command": "npx",
        "args": ["-y", "cardzero-mcp"],
        "env": {
          "CARDZERO_API_KEY": "czapi_...",
          "CARDZERO_WALLET_ID": "wallet_..."
        }
      }
    }
  }
}

Environment Variables

Variable

Required

Description

CARDZERO_API_KEY

Yes (for tool calls)

Agent API Key (czapi_...) from CardZero Dashboard

CARDZERO_WALLET_ID

Yes (for wallet-scoped tools)

Wallet ID (wallet_...) from CardZero Dashboard

CARDZERO_API_URL

No

API base URL — default https://api.cardzero.ai/v1

The server starts and responds to tools/list even without these vars — individual tool calls then return a clean config_missing error.

Available Tools (10)

Direct payments

Tool

Description

create_wallet

Create a new CardZero wallet. Returns address + one-time claim key for the human owner. No auth required.

get_balance

Check current USDC balance of your wallet.

send_payment

Send USDC to any Ethereum address. 2% fee deducted from your wallet.

list_payments

View recent payment history.

get_payment

Look up a specific payment by ID. No auth required.

x402

Tool

Description

pay_x402

Pay for an x402-protected HTTP resource. Returns a payment header to retry the request with.

ERC-8183 Jobs (escrow / A2A service delivery)

Tool

Description

create_job

Create a Job that escrows USDC until a Provider delivers and an Evaluator approves.

fund_job

Lock the budget into escrow. Status: openfunded.

submit_job

Provider submits a deliverable. Status: fundedsubmitted → auto-evaluated.

get_job

Read current state (status, txs, evaluation outcome). No auth required — Job state is public.

How it works

This MCP server is a thin client that calls the CardZero REST API. It runs locally on your machine and communicates with your AI assistant over stdio. No data is stored locally.

AI Assistant (Claude / Cursor / VS Code)
  ⇅ stdio (JSON-RPC)
cardzero-mcp (local Node process)
  ⇅ HTTPS
api.cardzero.ai → Base mainnet (USDC + ERC-4337 + ERC-8004 + ERC-8183)

Development

git clone https://github.com/mrocker/cardzero-mcp.git
cd cardzero-mcp
npm install
npm run dev   # tsx-watch the source
npm run build # compile to ./dist

Resources

License

MIT

Available Tools

10 tools
create_jobA

Create a Job that escrows USDC payment until a Provider delivers and an Evaluator approves. Use this for A2A service delivery (vs send_payment for direct transfers). Confirm budget + provider with user first. Provider must have a CardZero wallet (Sprint 9 MVP requirement).

ParametersJSON Schema
NameRequiredDescriptionDefault
providerAddressYesProvider's wallet address (0x-prefixed, must be a CardZero wallet)
budgetUsdcYesBudget in microUSDC (6 decimals), e.g. "10000000" for $10 USDC
expiredAtYesUnix timestamp (seconds). Must be at least 86400 (1 day) from now.
titleYesShort title describing the work
descriptionYesDetailed description: what Provider must deliver to be paid
evaluatorRuleYesEvaluator rule that decides complete/reject when Provider submits
idempotencyKeyNoOptional: prevent duplicate Jobs on retry

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries full burden. It explains the escrow mechanism and provider requirement but omits details like expiry behavior, cancellability, or what happens on submission failure. Adequate but not comprehensive for a financial tool.

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?

Three sentences with no waste. First sentence states purpose, second gives usage context and alternative, third provides prerequisite. Efficiently structured and front-loaded.

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?

Given the complexity (7 params, nested evaluatorRule, no output schema), the description is relatively complete but misses behavioral details like what happens when job expires or if conditions aren't met. Without annotations, more context on return values or side effects would improve completeness.

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?

Schema coverage is 100%, so the input schema already documents all parameters with descriptions. The description adds no additional semantic value for parameters beyond usage guidance, thus baseline score of 3 is appropriate.

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 clearly states the tool creates a job that escrows USDC for A2A service delivery. It distinguishes itself from send_payment for direct transfers, providing a specific verb and resource with a clear delineation from siblings.

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?

Explicitly tells when to use (A2A service delivery vs send_payment) and includes a prerequisite: confirm budget and provider with user, and provider must have a CardZero wallet. This is high-quality guidance for an AI agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_walletA

Create a new CardZero wallet. Returns a wallet address and one-time claim key for the human owner. No authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNoOptional display name for the wallet

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses that no authentication is needed and that it returns a wallet address and claim key, which is helpful. However, it does not mention potential side effects or idempotency, so it's adequate but not exceptional.

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 that cover purpose and key behavioral info without any fluff. Every word earns its place.

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 is complete for a simple creation tool with one optional parameter. It specifies the return values despite no output schema, and the lack of annotations is partially compensated by clear behavioral statements. Minor gap: it doesn't mention if wallet creation is idempotent.

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 input schema has 100% coverage with a single optional parameter ('name') that already includes a description. The tool description adds no additional meaning to this parameter, which is acceptable given the schema's completeness.

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 ('Create a new CardZero wallet') and specifies the outputs ('Returns a wallet address and one-time claim key for the human owner'). It distinguishes itself from sibling tools like create_job or fund_job by focusing solely on wallet creation.

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 states 'No authentication required,' providing a key usage condition. While it doesn't mention alternatives or exclusion scenarios, this is reasonable for a creation tool and leaves little ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

fund_jobA

Fund a Job created via create_job. Locks the budget USDC into escrow. Requires that the Job is in 'open' state. Two on-chain operations: USDC.approve(jobs) + Jobs.fund. Status: open → funded.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID returned by create_job (job_...)

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the tool's behavior: it performs two on-chain operations (USDC.approve and Jobs.fund), changes status from 'open' to 'funded', and requires the job to be open. This is transparent for a mutation tool.

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 with no wasted words. It front-loads purpose, then constraints, then operations. Every sentence serves a distinct purpose.

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?

Given the tool's simplicity (one parameter, no output schema, but involves on-chain actions), the description covers purpose, prerequisites, side effects, and resulting state. No gaps remain.

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?

The single parameter jobId has a schema description clarifying it's the ID from create_job. The description adds value by specifying the origin of the ID, which helps the agent understand the required input beyond the schema.

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 verb 'Fund' and resource 'Job created via create_job', distinguishes it from sibling tools like create_job (which creates), and specifies the action of locking USDC into escrow.

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?

It explicitly requires the Job to be in 'open' state and describes the two on-chain operations. However, it does not explicitly state when not to use or list alternatives, though the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_balanceA

Check the current USDC balance of your CardZero wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read operation but does not disclose any behavioral details beyond that, such as whether it is rate-limited or requires authentication. Since no annotations are provided, the description carries the burden, which is only partially met.

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 a single sentence that is front-loaded with the verb 'Check', and every word is essential. There is no fluff.

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?

Given no output schema, the description does not explain what the return value looks like (e.g., a number or string). The tool is simple, but the agent might benefit from knowing the output format.

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?

With zero parameters and 100% schema coverage, the description adds no parameter information, but the baseline for 0 parameters is 4. The description is adequate for a parameterless tool.

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 checks the current USDC balance of the CardZero wallet, using a specific verb and resource. It distinguishes from siblings like create_job or create_wallet, which are clearly different operations.

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?

No explicit guidance on when to use this tool or when not to. It is implied that it is used when the agent needs to check the balance, but no alternatives or exclusions are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_jobA

Get the current state of a Job (status, budget, transactions, evaluation outcome). No authentication required — Job state is public.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID (job_...)

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 fully carries the burden. It discloses that the operation is read-only and publicly accessible, which are key behavioral traits. However, it does not specify error handling 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences front-loading the core purpose and adding a critical access note. Every sentence adds value with no redundancy.

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?

The tool is simple with one parameter and no output schema. The description adequately covers what is returned and access requirements, meeting completeness needs.

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?

Schema description coverage is 100% for the single parameter 'jobId', which is described as 'Job ID (job_...)'. The description adds no further meaning beyond the schema, so baseline 3 is appropriate.

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 retrieves the current state of a Job, listing specific fields (status, budget, transactions, evaluation outcome). This distinctively separates it from sibling tools like create_job (creation) and fund_job (funding).

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?

It explicitly states no authentication is required and the job state is public, giving clear context for when to use. However, it does not explicitly mention when not to use or name alternative tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_paymentA

Check the status of a specific payment by its ID. No authentication required.

ParametersJSON Schema
NameRequiredDescriptionDefault
paymentIdYesPayment ID (pay_...)

TDQS

A3.8/5.0
Behavior3/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 states the tool is read-only and requires no authentication, which are key behavioral traits. However, it does not detail error handling or possible status values, leaving some transparency 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 extremely concise with two sentences, no redundant information. Every word contributes to understanding the tool's purpose and a key constraint (no auth).

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 simple tool with one parameter and no output schema, the description covers the core purpose and a notable behavioral attribute. It lacks detail on return format or possible statuses, but given the tool's simplicity, it is largely complete.

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?

Schema description coverage is 100% for the single parameter paymentId, which is clearly described as 'Payment ID (pay_...)'. The description adds context ('Check the status') but does not significantly enhance meaning beyond the schema.

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 'Check the status of a specific payment by its ID', which is a specific verb-resource combination. It distinguishes from sibling tools like list_payments (which lists multiple) and send_payment (which creates payments).

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?

The description mentions 'No authentication required', which is a usage condition but does not explicitly guide when to use this tool versus alternatives like list_payments or send_payment. Usage is implied but not fully specified.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_paymentsB

View recent payment history for your CardZero wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoNumber of records to return (default: 20)
offsetNoNumber of records to skip for pagination (default: 0)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It only says 'View recent payment history' but doesn't disclose that it returns a list, ordering, or side effects. Minimal behavioral context.

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, no extraneous information. Efficient and front-loaded.

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?

No output schema, and description does not explain what the response contains (e.g., list of payment objects). For a simple listing tool, more detail on return format or default behavior would be helpful.

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?

Schema coverage is 100% for parameters (limit and offset). Description adds no value beyond the schema; baseline of 3 is appropriate.

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 payment history for the wallet, using a specific verb and resource. It distinguishes from siblings like get_payment (single) and send_payment (send).

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 vs alternatives like get_payment for a specific payment or send_payment for sending. No mention of pagination or filtering implications.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pay_x402A

Pay for an x402-protected HTTP resource (HTTP 402 Payment Required). Use after receiving a 402 response. Returns a paymentHeader to include in the retry request as X-PAYMENT header.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL that returned HTTP 402
maxAmountYesMaximum USDC to pay, e.g. "1.00"
recipientYesMerchant's Ethereum address (from the 402 response)
networkNoChain ID, defaults to "eip155:8453" (Base Mainnet)
assetNoUSDC contract address (from the 402 response)
idempotencyKeyNoOptional key to prevent duplicate payments on retry

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so description carries full burden. Mentions returning paymentHeader but lacks details on failure modes, irreversibility, or confirmation steps.

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 sentences, no fluff, front-loaded with purpose. Every word earns its place.

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; description covers return value usage but omits error handling, balance checks, and other important behavioral context for a payment tool.

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?

Schema coverage is 100% with good parameter descriptions; description adds context for the returned header but doesn't significantly improve parameter understanding.

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?

Clear verb 'Pay' and specific resource 'x402-protected HTTP resource' distinguish it from siblings like send_payment. States use case after 402 response.

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?

Explicitly says 'Use after receiving a 402 response'. Missing explicit alternatives among siblings, but context is strong.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_paymentA

Send a USDC payment to any Ethereum address. A 2% service fee is deducted automatically from your wallet. Confirm amount and recipient with the user before calling.

ParametersJSON Schema
NameRequiredDescriptionDefault
toYesRecipient Ethereum address (0x-prefixed, 42 chars)
amountYesUSDC amount as string, e.g. "2.50"
memoNoOptional note for the payment
idempotencyKeyNoOptional key to prevent duplicate payments on retry

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It mentions the automatic 2% service fee deduction, but does not cover return types, gas costs, or reversibility. Some transparency, but incomplete.

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 adds fee and confirmation instructions. No unnecessary words; each sentence adds value.

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 no output schema and no annotations, the description should explain return values or side effects. It does not mention what the tool returns (e.g., transaction hash) or any network-related details, leaving important gaps.

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?

Schema coverage is 100%, so baseline is 3. The description adds the confirmation guidance but does not add meaning beyond the schema's parameter descriptions.

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 sends a USDC payment to any Ethereum address. The verb 'Send' and resource 'USDC payment' are specific, and it distinguishes from siblings like 'pay_x402' and read-only tools like 'get_payment'.

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 instructs to confirm amount and recipient with the user before calling, providing clear usage guidance. However, it does not explicitly differentiate when to use this tool versus the sibling 'pay_x402'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_jobA

Submit a deliverable for a Job (Provider side). Posts the deliverable hash on-chain; Evaluator then auto-approves or rejects. Status: funded → submitted.

ParametersJSON Schema
NameRequiredDescriptionDefault
jobIdYesJob ID (job_...)
contentHashYes32-byte hex hash of the deliverable (0x... + 64 hex chars). Use keccak256 of canonical content.
contentURINoOptional: URL where the deliverable can be fetched

TDQS

A4.2/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 reveals that the deliverable hash is posted on-chain and that the evaluator auto-approves or rejects, which adds important behavioral context beyond the operation itself.

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 extremely concise, with two sentences that front-load the key purpose and side. Every word adds value, no filler.

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 explains the flow and status transition, which is helpful given no output schema. However, it lacks details on return values or error conditions, which would improve completeness.

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?

All input parameters have descriptions in the schema (100% coverage), so the baseline is 3. The description does not add new meaning beyond what the schema already provides.

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 submits a deliverable for a Job on the provider side, using specific verbs and resources. It distinguishes itself from sibling tools like create_job or fund_job by focusing on submission.

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 implies usage after the job is funded (Status: funded → submitted) but does not explicitly state prerequisites or when not to use it. Alternatives are not mentioned, but the context makes it clear.

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. Dates show when Glama detected each change.

  1. 10 tool updatesv0.2.0
    • First observedcreate_job
    • First observedcreate_wallet
    • First observedfund_job
    • First observedget_balance
    • First observedget_job
    • First observedget_payment
    • First observedlist_payments
    • First observedpay_x402
    • First observedsend_payment
    • First observedsubmit_job

TDQS

A3.9/5.0
Disambiguation4/5

Tools have distinct purposes overall, but send_payment and pay_x402 both involve sending payments, potentially causing slight confusion. Descriptions help differentiate them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores, e.g., create_job, get_balance, send_payment. No mixing of styles.

Tool Count5/5

10 tools cover the core wallet and job escrow functionality without being excessive or insufficient for the stated purpose.

Completeness4/5

Core workflows are covered, but missing tools like list_jobs or cancel_job could hinder full lifecycle management. Minor gap.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mrocker/cardzero-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server