Skip to main content
Glama

โšก A-Pay Protocol (AgentPay)

The World's First Fully Autonomous HTTP 402 Micropayment & Economic Settlement Layer on Base L2

Base L2 Verified Python 3.11+ TypeScript / Node MCP Protocol 2025 Smithery Verified Discord Community Cloudflare Edge License: MIT


๐ŸŒ Canonical Protocol Identity & Verified Network

โ›“๏ธ Verified Smart Contracts (Base Mainnet โ€” Chain ID 8453)

Contract / Resource

Contract Address

Explorer / Pool

$APAY Token (ERC-20)

0x8dd4ff9035c7d4e0bef30aa64fc30d128a4066c3

BaseScan (100M Fixed Cap)

EscrowVault (Session Keys)

0xd08c8a337e5339d1c083e06d74a9265956ceea16

BaseScan (Non-Custodial Delegated Spend)

APayRouterV2 (Enterprise)

0x452eb7d4e7ccbf76ecf511829880b5fbcb24e854

BaseScan (Cumulative Channels & Merkle Claims)

APayRouter (V1 Gateway)

0x71434344beef9c44ff3bc95572beb7bfb8847ec6

BaseScan (1.0% Protocol Fee)

StakingVault (Anti-Spam)

0x3e35a9e802627a3d9a86d6554e72b1c446e34aaf

BaseScan (Collateral & Slashing)

Aerodrome Liquidity Pool

vAMM-WETH/APAY (0x6933...7777)

Aerodrome Swap

Market Analytics

DexScreener Live Pool

DexScreener Chart

๐Ÿงช Base Sepolia Testnet (Chain ID 84532)


Related MCP server: PipRail

๐Ÿ’ก The Genesis: Unlocking HTTP 402 After 30 Years

In 1996, Sir Tim Berners-Lee and the IETF authored RFC 2068, reserving the HTTP status code 402 Payment Required for digital cash protocols.

For thirty years, status code 402 sat dormant. Web 2.0 forced digital payments into human-centric credit card rails (Visa, Mastercard, Stripe), requiring KYC identity checks, CAPTCHAs, and minimum fixed transaction fees of $0.30 + 2.9%.

โš ๏ธ The Problem Today (2026 AI Agent Economy)

  1. AI Agents Have No Credit Cards: Autonomous software agents (Claude Desktop, Cursor, LangChain, AutoGen, CrewAI) execute multi-step workflows across the web. They cannot hold credit cards, submit passports for KYC, or solve visual captchas.

  2. Publishers & Website Owners are Bleeding Compute: Autonomous AI scrapers (GPTBot, ClaudeBot, PerplexityBot) crawl millions of pages daily. Publishers face massive server bandwidth bills while their proprietary intelligence is consumed for free.

  3. Stripe Kills Micropayments: If an AI agent wants to purchase a single database row, an API call, or an article for $0.001 (0.1ยข), Stripe's $0.30 fixed fee makes it impossible.

๐ŸŒŸ The A-Pay Solution

A-Pay is the world's first autonomous economic settlement layer that implements the native HTTP 402 standard on Base Layer 2.

  • Sub-Cent Micropayments: Settle transactions as small as $0.0001 (0.01ยข) in native USDC or $APAY.

  • Zero Gas Friction for Agents: Agents sign off-chain cryptographic authorizations (EIP-712). Relayers handle batch settlement on Base L2.

  • Sub-15ms Latency: Cryptographic verification completes in under 15 milliseconds, seamlessly unblocking HTTP responses.

  • 100% Non-Custodial & Audited: Guarded by smart contract session keys with daily spending limits and per-call caps.


๐Ÿ›๏ธ The Three Architectural Pillars

                                      A-PAY PROTOCOL
                                            โ”‚
         โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
         โ–ผ                                  โ–ผ                                  โ–ผ
   [PILLAR 1: SELLER]                 [PILLAR 2: BUYER]               [PILLAR 3: SETTLEMENT]
  HTTP 402 Paywall Layer            Autonomous Agent Wallets            Base L2 Escrow Vault
  โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€            โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€            โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
  โ€ข WordPress AI Paywall Plugin     โ€ข Model Context Protocol (MCP)      โ€ข EIP-712 Batch Settlement
  โ€ข Reverse Proxy (`apay protect`)  โ€ข Ephemeral Session Keys            โ€ข Non-Custodial Escrow
  โ€ข FastAPI / Express Decorators    โ€ข Daily Budgets & Per-Call Caps     โ€ข Cumulative Payment Channels
  โ€ข Next.js 15 Middleware           โ€ข LangChain / CrewAI Wrappers       โ€ข Native USDC & $APAY Support

Pillar 1: HTTP 402 Paywall & Monetization Layer (For Publishers & Sellers)

Turn unmetered AI crawler traffic into instant, automated revenue:

  • Selective Bot Paywall: Genuine human visitors read your website freely without popups or captchas. Autonomous AI crawler bots automatically receive an HTTP 402 Payment Required challenge.

  • Instant Reverse Proxy: Protect ANY existing REST API, FastAPI backend, or web server with a single terminal command:

    apay protect --target http://localhost:8000 --price 0.001 --wallet 0xYourPayoutAddress
  • Native Framework SDKs: Drop-in middleware for Next.js 15, FastAPI, Express.js, and WordPress.

Pillar 2: Autonomous Agent Wallet & MCP Server (For AI Agents & LLMs)

Give AI agents economic agency with programmatic safety rails:

  • Model Context Protocol (MCP): Native integration for Claude Desktop, Cursor, Cline, Windsurf, and custom LLM tool runners.

  • Spending Guardrails: Define hard spending limits (daily_budget_usdc=2.00, max_per_call_usdc=0.01). The agent cannot exceed its delegated allowance even if prompted maliciously.

  • Auto-Settling HTTP Client: APaySession automatically catches 402 headers, signs the EIP-712 challenge, and retrieves data in a single round-trip without human intervention.

Pillar 3: On-Chain Base L2 Settlement & Escrow Vault (For Enterprise Web3 Security)

Enterprise-grade cryptographic settlement built on Coinbase's Base Layer 2:

  • EscrowVault: Agents deposit or lock funds into dedicated smart contracts. Session keys authorize payments without holding root private keys.

  • APayRouterV2: Batch settlements aggregate thousands of off-chain micro-signatures into a single Merkle-verified on-chain transaction, reducing effective gas costs to fractions of a cent.

  • Dual-Currency Support: Settle in dollar-pegged USDC or the protocol utility token $APAY with fee discounts.


๐Ÿ‘ฅ Who Is A-Pay For? (Target Personas & Benefits)

User Persona

The Pain Point Today

How A-Pay Solves It

Website Owners & Publishers

AI bots scrape content for free; hosting bills surge; paywalls block human readers.

Human visitors read for free; AI scrapers pay $0.001/page via HTTP 402 paywall.

API Providers & SaaS Founders

Monthly SaaS billing requires Stripe KYC, invoices, high churn, and $0.30 transaction minimums.

Pure pay-per-call micro-billing ($0.005/request); zero chargebacks; instant settlement.

AI Engineers (Claude/Cursor)

Agents cannot purchase web search results, private datasets, or pay for third-party tools.

Agents hold delegated session wallets with daily budgets to pay for tools autonomously.

Web3 & Base L2 Builders

Tokens lack real-world utility; micro-transaction dApps suffer from gas friction.

Millions of automated M2M agent micro-settlements flowing through Base L2 contracts.


๐Ÿš€ Quickstart & Universal Developer Setup

1. Python Developers (FastAPI & AI Agents)

pip install apay

Protect a FastAPI Endpoint with HTTP 402:

from fastapi import FastAPI, Depends
from apay import require_payment

app = FastAPI()

@app.get("/api/alpha-feed")
@require_payment(price_usdc=0.005, receiver="0xYourPayoutWalletAddress")
async def get_alpha_feed():
    return {"status": "unlocked", "data": "Exclusive proprietary real-time signals"}

Call Protected APIs with an Autonomous Agent:

from apay import APaySession, AgentWallet

# Create an agent wallet with strict safety caps
wallet = AgentWallet(
    private_key="0x...",
    max_per_call_usdc=0.01,
    daily_budget_usdc=5.00
)
session = APaySession(wallet)

# Automatically handles HTTP 402 challenges & settles on the fly (<15ms)
response = session.get("https://api.example.com/api/alpha-feed")
print(response.json())

2. TypeScript & Node.js Developers (Next.js & Express)

Scaffold a complete fullstack project in 30 seconds:

npx create-apay-app my-autonomous-agent

Or install the client library:

npm install apay-client
import { APayClient } from "apay-client";

const client = new APayClient({
  privateKey: process.env.AGENT_PRIVATE_KEY!,
  network: "base-mainnet",
  maxPerCallUsdc: 0.05
});

// Auto-settling request
const data = await client.fetchWithPaywall("https://data-provider.com/market-depth");
console.log(data);

3. Claude Desktop & Cursor (Model Context Protocol / MCP)

One-Click Install via Smithery:

npx -y smithery mcp add apayprotocol/apay

Or Add to claude_desktop_config.json / Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "apay": {
      "command": "uvx",
      "args": ["apay", "mcp"],
      "env": {
        "APAY_NETWORK": "base-mainnet",
        "APAY_CURRENCY": "DUAL",
        "APAY_MAX_PER_CALL": "0.05",
        "APAY_DAILY_BUDGET": "2.00"
      }
    }
  }
}

Now Claude or Cursor can execute tools:

  • apay_request: Send requests to HTTP 402 protected APIs and settle on-the-fly.

  • apay_get_balance: Inspect live on-chain balances (ETH, USDC, $APAY).

  • apay_inspect_endpoint: Probe an API paywall for price and terms without spending gas.

  • apay_set_budget: Adjust per-call limits and daily spending guardrails.


4. Website Owners & WordPress (Zero Code Reverse Proxy)

Protect ANY live web server or WordPress site without changing a single line of backend code:

apay protect --target http://localhost:8000 --price 0.001 --wallet 0xYourPayoutAddress
  • Human browsers view the site freely.

  • AI web crawlers (GPTBot, ClaudeBot, Bytespider) receive an HTTP 402 challenge and pay per scrape.


5. Coinbase AgentKit (On-Chain Base L2 Agents)

Drop-in Action Provider enabling any Coinbase AgentKit agent to probe and settle HTTP 402 micropayments on Base L2:

Python:

from apay.integrations.agentkit import create_apay_action_provider

apay_provider = create_apay_action_provider(
    network="base-mainnet",
    max_per_call_usdc=0.05,
    daily_budget_usdc=2.00,
)

TypeScript:

import { createAPayActionProvider } from "apay-gateway/agentkit";

const apayProvider = createAPayActionProvider({
  network: "base-mainnet",
  preferredCurrency: "USDC",
});

Provides 5 native tools: apay_probe_endpoint, apay_request, apay_get_wallet_status, apay_get_balance, apay_set_budget.


๐Ÿ“‚ Project Architecture

a_pay/
โ”œโ”€โ”€ src/apay/                # Core Python SDK & Runtime
โ”‚   โ”œโ”€โ”€ cli.py               # โšก 1-Command CLI (`apay protect`, `apay wallet new`, `apay mcp`)
โ”‚   โ”œโ”€โ”€ client.py            # ๐Ÿค– Autonomous HTTP client with auto-402 negotiation
โ”‚   โ”œโ”€โ”€ wallet.py            # ๐Ÿ” In-memory delegated wallet & spending limits
โ”‚   โ”œโ”€โ”€ proxy.py             # ๐Ÿ›ก๏ธ Ultra-light reverse proxy HTTP 402 paywall
โ”‚   โ”œโ”€โ”€ relayer.py           # ๐Ÿ“Š EIP-712 batch settlement relayer
โ”‚   โ””โ”€โ”€ integrations/        # ๐Ÿ”— LangChain, CrewAI & AutoGen agent wrappers
โ”œโ”€โ”€ gateway-ts/              # Enterprise TypeScript Gateway & EIP-712 Verifier
โ”œโ”€โ”€ packages/create-apay-app # Official NPX starter scaffolding CLI
โ”œโ”€โ”€ contracts/               # Audited Solidity Smart Contracts (Base Mainnet & Sepolia)
โ”‚   โ”œโ”€โ”€ APAYToken.sol        # ERC-20 100M Cap Protocol Utility Token
โ”‚   โ”œโ”€โ”€ EscrowVault.sol      # Session Key Delegated Spending Vault
โ”‚   โ”œโ”€โ”€ APayRouterV2.sol     # Cumulative Channel & Merkle Root Router
โ”‚   โ””โ”€โ”€ StakingVault.sol     # Anti-Spam Collateral Engine
โ”œโ”€โ”€ web/                     # Official Portal (Next.js 15, Tailwind, RainbowKit, Wagmi)
โ”œโ”€โ”€ docs/                    # Complete Protocol Specifications & RFCs
โ”œโ”€โ”€ spec/                    # RFC wire format & EIP-712 domain specifications
โ””โ”€โ”€ pyproject.toml           # Official Hatchling packaging configuration

๐Ÿ”’ Security & Verification Guarantees

  1. Non-Custodial Session Delegation: Agents operate with strictly sandboxed session keys. The agent NEVER has access to the owner's primary root wallet or vault withdrawal functions.

  2. Deterministic Cryptographic Limits: Spending caps are signed off-chain and enforced both in-memory and on-chain by the EscrowVault smart contract.

  3. Formal Verification & Secrets Hygiene:

    • Zero hardcoded secrets, seed phrases, or private keys across the entire codebase.

    • Automated security scans verified via python3 scripts/scan_secrets.py.

    • On-chain bytecode verified on BaseScan.


๐Ÿค Community & Ecosystem

A-Pay is an open-source decentralized economic protocol for the machine-to-machine economy. Built on Base Layer 2.

Available Tools

5 tools
apay_get_balanceA

Inspect the agent's live on-chain balances on Base Layer 2, including native ETH (for gas), USDC, and $APAY tokens.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/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 load, and it does convey that this is a non-mutating inspection of live state and enumerates what is returned. It stops short of disclosing failure modes (e.g., unconfigured wallet), whether it triggers an RPC call, or any caching/latency behavior.

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, front-loaded sentence with the key facts (live, on-chain, Base L2, asset list) and no filler. Every clause 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?

There is no output schema, so the description usefully substitutes for one by naming the returned asset types. For a zero-parameter read tool this is nearly sufficient, with only edge-case behavior left unstated.

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 tool takes zero parameters, so the baseline is 4. The description correctly adds nothing about inputs because none exist.

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?

States a precise verb+resource ('inspect the agent's live on-chain balances') with the exact chain (Base L2) and the specific assets (ETH, USDC, $APAY), so the agent knows what data it will get back. It does not, however, differentiate itself from the possibly-overlapping sibling apay_get_wallet_status.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as apay_get_wallet_status or the relationship to apay_request. Usage is only loosely implied by the name and the balance-focused wording.

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

apay_get_wallet_statusA

Inspect the agent's active non-custodial wallet address, current spending guardrails, and total spent in USDC and $APAY.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/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 the full burden. 'Inspect' and the zero-argument schema imply a safe read of the agent's own wallet, and it discloses that guardrails and spend totals are returned, but it says nothing about authentication, data freshness, or whether any state changes occur.

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 front-loaded sentence naming the verb, the resource, and the three returned facets with no filler. Every clause 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?

There is no output schema, so the description must convey the return surface; it does so by listing wallet address, spending guardrails, and total spent in two currencies. For a no-argument read tool this is nearly complete, though it omits any note on freshness or formatting of the returned values.

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 tool takes zero parameters, so per the rubric the baseline is 4. There is no parameter surface for the description to clarify or obscure.

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?

States a specific verb ('Inspect') and resource ('wallet status') and enumerates the returned facets: wallet address, spending guardrails, and total spent in USDC/$APAY. It is distinguishable from siblings like apay_set_budget and apay_get_balance by implication, but never names them explicitly, so it stops short of full sibling differentiation.

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?

There is no guidance on when to call this versus apay_get_balance or apay_inspect_endpoint, and no stated preconditions. The agent is left to infer usage entirely from the tool name and the sibling list.

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

apay_inspect_endpointA

Inspect an endpoint to check if it requires an A-Pay micropayment, inspect the exact price quote, currency, and payout receiver without spending any funds.

NameRequiredDescriptionDefault
urlYesThe URL to probe for HTTP 402 payment requirements

TDQS

A3.8/5.0
Behavior4/5

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

With no annotations, the description carries the full burden and does disclose the most important trait: this probe is free and non-destructive ('without spending any funds'), and it enumerates the information surfaced (payment requirement, quote, currency, receiver). It omits what is returned when no payment is required, auth needs, and rate limits, but the safety profile is clear.

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 front-loaded sentence with zero waste; the no-cost guarantee and the enumerated outputs each earn their 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?

For a one-parameter read-only probe with no output schema, the description covers purpose, the pre-spend framing, and the fields discovered. It would be fully complete with a note on the non-payment outcome, but nothing essential for correct invocation is missing.

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 single 'url' parameter and its HTTP 402 probing role are already documented in the schema. The description adds no format, validation, or syntax details beyond what the schema provides, so the baseline 3 applies.

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?

States a specific verb (inspect) and resource (endpoint) plus the exact data revealed: payment requirement, price quote, currency, and payout receiver. It implicitly separates itself from a paying sibling like apay_request via 'without spending any funds', but never names an alternative, so sibling differentiation is implied rather than explicit.

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 practical trigger (probe before committing funds) is implied by 'without spending any funds', which suggests the pre-payment inspection role. However, it never states when to use this over apay_request or that it should precede a payment, leaving the agent to infer the workflow.

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

apay_requestB

Make an HTTP request (GET, POST, etc.) to any API or website. If the endpoint returns an HTTP 402 Payment Required challenge, A-Pay automatically signs the cryptographic payment authorization within your budget limits and unlocks the data in <25ms.

NameRequiredDescriptionDefault
urlYesTarget endpoint URL to fetch or query
methodNoHTTP request method (default: GET)GET
headersNoOptional additional HTTP headers
json_bodyNoOptional JSON payload for POST/PUT requests

TDQS

B3.2/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, and it does disclose meaningful behavior: it signs a cryptographic payment authorization, respects budget limits, and responds in <25ms. However, it omits what happens when the budget is exceeded, whether spending is idempotent/retryable, and how errors surface โ€” notable gaps for a tool that can spend money.

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?

Two sentences, front-loaded with the primary action and the unusual payment behavior. Efficient overall, though the '<25ms' latency claim is promotional rather than decision-relevant.

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?

There is no output schema and no annotations, so the description must carry the full context. It explains the headline feature (automatic 402 payment) but leaves out budget-exceeded behavior, error semantics, and return shape โ€” enough is missing that an agent cannot fully predict outcomes.

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%, so url, method, headers, and json_body are already documented in the schema. The description adds no format, constraint, or usage nuance beyond what the schema provides, so baseline 3 applies.

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?

States a specific verb and resource ('Make an HTTP request ... to any API or website') and immediately highlights the differentiating behavior: automatic HTTP 402 payment authorization. It does not explicitly name or contrast itself with siblings like apay_inspect_endpoint, so an agent must infer the boundary.

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?

There is no guidance on when to use this tool versus apay_inspect_endpoint, apay_set_budget, or apay_get_balance. The only conditional language ('If the endpoint returns an HTTP 402...') describes internal behavior, not when an agent should select this tool.

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

apay_set_budgetC

Configure agent safety invariants and spending guardrails. Prevents runaway loops or overcharging.

NameRequiredDescriptionDefault
daily_budget_apayNoMaximum $APAY token rolling 24-hour spending budget
daily_budget_usdcNoMaximum USDC rolling 24-hour spending budget
max_per_call_apayNoMaximum $APAY token allowance for a single API call
max_per_call_usdcNoMaximum USDC allowance for a single API call

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, and it says little beyond intent: it does not state that settings persist, whether provided values replace or merge with existing limits, what happens when a parameter is omitted (all four are optional), or what authority is required. 'Prevents runaway loops or overcharging' hints at enforcement but never explains the mechanism.

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?

Two tight sentences with no filler, and the core purpose is front-loaded. It is slightly under-specified rather than verbose, which is not a conciseness failure.

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?

For a 4-parameter mutation tool with no annotations and no output schema, the description leaves key gaps: persistence of settings, semantics of optional parameters at already-set budgets, and interaction with the sibling apay_request tool that these guardrails constrain.

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%, so all four parameters (daily vs per-call, APAY vs USDC) are already documented in the schema. The description adds no meaning about units, defaults, or behavior when values are omitted, so the baseline 3 applies.

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 verb 'Configure' plus 'spending guardrails' conveys that this sets spending limits, which is a real purpose rather than a tautology. But 'agent safety invariants' is abstract jargon, and the description never names the concrete resources ($APAY/USDC budgets, per-call caps) that distinguish it from siblings like apay_get_balance or apay_request.

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?

There is no statement of when to invoke this tool, no prerequisites (e.g., before making apay_request calls), and no reference to any alternative. The reader must infer its place in the workflow entirely.

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. 5 tool updatesv0.1.0
    • First observedapay_get_balance
    • First observedapay_get_wallet_status
    • First observedapay_inspect_endpoint
    • First observedapay_request
    • First observedapay_set_budget

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct action: inspecting an endpoint, checking balances, making a paid request, viewing wallet status/guardrails, and setting budget. The dry-run inspect tool is clearly separated from the actual payment request tool, and balance vs wallet status are differentiated by their descriptions.

Naming Consistency4/5

All tools use a consistent apay_ prefix and mostly follow a verb_noun pattern (inspect_endpoint, get_balance, get_wallet_status, set_budget). apay_request is the lone verb-only name, a minor deviation but still readable and predictable.

Tool Count5/5

Five tools are well-scoped for a micropayment protocol agent surface: inspect, request, balance, status, and budget. Each tool earns its place with no obvious redundancy or missing core operation.

Completeness4/5

The toolset covers the essential lifecycle: checking payment requirements, executing paid requests, viewing balances, inspecting wallet state, and configuring spending limits. Minor gaps exist around transaction history or explicit wallet funding/withdrawal, but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers