Skip to main content
Glama
acrylicfiddle

x402tools MCP Server

x402tools MCP Server

npm MCP Registry

A Model Context Protocol server that gives AI agents 10 pay-per-call utility tools. Pay with USDC on Base via x402 protocol β€” agent's private key never leaves the agent.

πŸ›  Tools

Tool

Description

Price

qr.generate

Generate QR code from text/URL

$0.01

qr.generate_styled

Artistic QR with shapes & gradients

$0.05

image.screenshot

Website screenshot (dark mode, selectors)

$0.05

dns.lookup

DNS records (A, AAAA, MX, NS, TXT, SOA)

$0.02

document.parse

HTML/PDF β†’ structured JSON

$0.01

security.screen

Detect prompt injection / jailbreak

$0.03

email.validate

Email validation + deliverability + risk

$0.03

document.render_pdf

HTML/URL β†’ PDF

$0.05

image.ocr

Image β†’ text via OCR

$0.05

prospect.enrich

Name + domain β†’ sales-ready buyer profile + cold-email opener

$0.50

Related MCP server: dyoe-agent-tools-mcp

πŸ”Œ Connect

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

Hosted (HTTP):

{
  "mcpServers": {
    "x402tools": {
      "url": "https://mcp.x402tools.xyz/mcp"
    }
  }
}

Local (stdio with auto-pay convenience):

{
  "mcpServers": {
    "x402tools": {
      "command": "npx",
      "args": ["-y", "@x402-tools/mcp"],
      "env": {
        "WALLET_PRIVATE_KEY": "0x..."
      }
    }
  }
}

Cursor

Edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "x402tools": {
      "url": "https://mcp.x402tools.xyz/mcp"
    }
  }
}

Windsurf

Settings β†’ MCP Servers β†’ Add:

{
  "x402tools": {
    "serverUrl": "https://mcp.x402tools.xyz/mcp"
  }
}

Cline (VS Code)

.vscode/mcp.json:

{
  "mcpServers": {
    "x402tools": {
      "url": "https://mcp.x402tools.xyz/mcp"
    }
  }
}

Continue.dev

~/.continue/config.json:

{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "streamable-http",
          "url": "https://mcp.x402tools.xyz/mcp"
        }
      }
    ]
  }
}

OpenAI Agents SDK / Responses API

from openai import OpenAI

client = OpenAI()
response = client.responses.create(
    model="gpt-4o",
    tools=[{
        "type": "mcp",
        "server_label": "x402tools",
        "server_url": "https://mcp.x402tools.xyz/mcp",
        "require_approval": "never"
    }],
    input="Generate a QR code for https://x402tools.xyz"
)

Gemini / Google ADK

from google.genai import types

config = types.GenerateContentConfig(
    tools=[types.Tool(mcp_server={"url": "https://mcp.x402tools.xyz/mcp"})]
)

πŸ’Έ Payment Model

This server uses payment passthrough β€” the MCP server holds NO wallet. Each agent provides their own signed payment per call.

Flow:

  1. Agent calls a tool without payment β†’ MCP returns 402 + payment requirements

  2. Agent signs the payment locally with their wallet (hardware wallet, MPC, smart wallet, or private key)

  3. Agent retries the tool with _payment argument or PAYMENT-SIGNATURE HTTP header

  4. MCP forwards the signed payment to the underlying x402 service

Easiest signing: use @x402/fetch to wrap your fetch β€” it handles the 402 β†’ sign β†’ retry loop automatically:

import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.WALLET_PRIVATE_KEY);
const paidFetch = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:*", client: new ExactEvmScheme(account) }]
});

// Now calls to mcp.x402tools.xyz auto-pay on 402

Manual signing (for hardware wallets, MPC, smart accounts):

  1. Read requirements.accepts[0] from the 402 response

  2. Use @x402/evm's ExactEvmScheme.createPaymentPayload(2, requirements) with your ClientEvmSigner

  3. Wrap as v2 PaymentPayload: { x402Version: 2, payload, extensions: {}, resource, accepted }

  4. Base64-encode the JSON

  5. Send as PAYMENT-SIGNATURE HTTP header (or _payment tool arg)

🏷 Protocol

  • Network: Base mainnet (eip155:8453)

  • Token: USDC (0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913)

  • Receiver: 0xcEbbB82a183Faa69b929eD1F417aAFc63fa3b5b6

  • Header: PAYMENT-SIGNATURE (x402 v2)

πŸ” Discovery Endpoints

πŸš€ Self-host

git clone https://github.com/acrylicfiddle/x402tools-mcp
cd x402tools-mcp
npm install
npm run build
PORT=4080 npm start
# MCP at http://localhost:4080/mcp

πŸ“¦ Publishing to MCP Registry

brew install mcp-publisher
mcp-publisher login github
mcp-publisher publish

πŸ“œ License

MIT

Available Tools

11 tools
community.wordstatsWordstatsA
Read-only

Return word count, character count, and average word length for a block of text. Costs $0.001 on eip155:8453. Community service (x402 pay-per-call).

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesParameter "text" forwarded to the x402 service.
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, establishing this as a safe read operation. The description adds valuable context about the x402 pay-per-call payment model, cost ($0.001), and chain (eip155:8453), which is significant behavioral disclosure beyond what annotations provide. It doesn't describe the output format, but the output schema exists to cover that.

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 that front-load the core function, then add essential payment context. Every sentence earns its place β€” no filler, no repetition of schema content. Concise and efficient.

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 text-analysis tool with 100% schema coverage, an output schema present, and readOnly annotations declaring safety, the description covers the essential behavioral aspects: what it computes, the payment model, cost, chain, and the signing workflow. The two-call payment discovery flow is the key non-obvious behavior, and it's disclosed effectively.

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 100%, so parameters are well-documented structurally. The description adds value by explaining the use-case context for the text parameter ('a block of text') and clarifying the _payment parameter's role as a signed payment payload with the two-call retry flow. The _payment parameter's practical mechanics (sign locally, private key never leaves machine, first-call-then-retry flow) is meaningfully explained beyond 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 (Return) plus the specific resource (word count, character count, average word length) for a text input. It distinguishes from siblings by describing a text-analysis function that none of the sibling tools (qr, screenshot, dns, ocr, enrich) perform.

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 explains it processes 'a block of text' and mentions the pay-per-call nature with cost/pricing details. However, it doesn't explicitly say when to use vs alternatives or provide exclusions. The payment workflow is partially described (first call without _payment, then retry) but there's no explicit guidance on when this tool is preferable to other text tools.

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

dns.lookupDNS LookupA
Read-onlyIdempotent

Look up DNS records (A, AAAA, MX, NS, TXT, SOA) for any domain. Costs $0.02 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain name to look up (e.g. example.com)
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false β€” a strong safety profile. The description adds the critical cost disclosure ($0.02 USDC on Base), which is behavioral transparency beyond annotations. It also conveys the payment-gated nature of the call. The payment flow detail is actually in the schema parameter description rather than the main description, which slightly limits credit.

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, information-dense sentence: states the action, enumerates supported record types, scopes to any domain, and discloses cost. Every word earns its place. The payment mechanics are appropriately delegated to the parameter schema rather than bloating the description.

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 tool is simple (2 params, 1 required, no enums, no nesting) with a full output schema, so the description doesn't need to explain return values. The cost disclosure and record-type enumeration make it reasonably complete for agent invocation. The only gap is that no explicit note about rate limits or auth flow prerequisites beyond _payment appears in the main description, though the _payment param description covers the flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (both parameters are described in the schema). The _payment parameter has rich semantics explaining the signing process, local key handling, and the two-step retry pattern. The description adds the pragmatic cost dimension. With complete schema coverage and strong parameter descriptions, this earns a high score.

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?

Description states a clear verb+resource ('Look up DNS records') and lists specific record types (A, AAAA, MX, NS, TXT, SOA) for a domain. It's distinct from sibling tools which cover QR, images, documents, email, OCR, etc. However, it doesn't explicitly name any sibling as an alternative for related lookups, though none of the siblings are network lookup tools, so differentiation is inherently clear.

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 (looking up DNS records for any domain) and provides the cost context. It mentions the payment requirement in the schema parameter description, explaining the two-step flow (call without _payment first, then retry). No exclusionary guidance against alternatives exists, but none of the siblings do DNS lookups, so this is acceptable.

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

document.parseParse DocumentA
Read-onlyIdempotent

Parse any public HTML page or PDF URL into clean structured JSON. Auto-detects doc type. Costs $0.01 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic URL of HTML page or PDF to parse
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
output_schemaNoOutput schema typeauto
include_raw_textNoInclude raw extracted text

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4.1/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. Description adds meaningful context: costs $0.01 USDC, requires public URL (not private/auth-needed pages), auto-detects doc type. However, it doesn't disclose pagination, size limits, rate limits, or failure modes (e.g., what happens with unsupported formats). Since annotations carry the safety burden, a 3 is appropriate.

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 main description is a tight two-sentence summary with zero waste. The cost info and input types are efficiently packed. The _payment parameter description is longer but earns its length by explaining the signing flow and security guarantee (private key never leaves machine). Slightly verbose in the payment param, but justifiably so.

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?

With an output schema present, return format need not be described. The four parameters are fully documented. The description covers input restrictions (public URL), cost, auto-detection, and the payment flow. Gaps: doesn't mention size limits, supported doc complexity, or error handling for unparseable content, but for a single-required-param tool with rich annotations and full schema coverage, this is quite 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?

Schema description coverage is 100%, so the schema documents all four parameters. The description adds value by noting 'Auto-detects doc type' which clarifies the output_schema=auto default behavior, and the payment parameter description in the schema provides rich signing guidance. The description itself doesn't add param detail beyond the 100% coverage, but the baseline 3 plus the auto-detection clarification around output_schema justifies a 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?

Description states specific verb+resource: 'Parse any public HTML page or PDF URL into clean structured JSON.' It names the input types (HTML/PDF URLs), the output format (structured JSON), and auto-detection of doc type. Clear differentiation from siblings like image.ocr (image OCR) and document.render_pdf (PDF 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?

Description specifies the input requirement ('public' URL), which implies the access constraint. It notes cost and payment (USDC on Base), giving context. However, it does not explicitly state when to use this vs. document.render_pdf or image.ocr, though the purpose clarity makes the distinction fairly obvious. The _payment parameter documentation covers the auth flow well.

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

document.render_pdfRender PDFA
Read-onlyIdempotent

Convert raw HTML or a public URL into a PDF document. Costs $0.05 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic URL to render (provide html OR url)
htmlNoRaw HTML to render (provide html OR url)
scaleNoRender scale, 0.1-2
formatNoPage sizeA4
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
landscapeNoLandscape orientation

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
encodingNoEncoding of the binary payload (base64).
mimeTypeNoMIME type of the returned binary payload (e.g. image/png, application/pdf).
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A3.8/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, which covers the safety profile well. However, the description carries additional burden for the payment mechanism. It mentions the cost ($0.05 USDC on Base) but does NOT explain the two-step payment flow in the description itselfβ€”this is only buried in the _payment parameter description. For a tool that requires a complex payment handshake, this is a significant behavioral disclosure gap.

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 tightly-written sentence followed by a cost note. Every word earns its placeβ€”it states the input, output, and cost in minimal space. No filler or redundancy.

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 tool is moderately complex (6 params, payment mechanism, output schema present). The description covers the core purpose and cost. The output schema exists, so return values need not be explained. The main gap is that the payment flow (two-step process with _payment) is not disclosed at the description level, but this is partially compensated by the schema and the fact that it's discoverable. Given output schema presence and 100% param coverage, a 4 is appropriate.

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 the schema already documents all 6 parameters with descriptions. The tool-level description adds marginal value by naming the two input modes (html OR url). However, it does not clarify the relationship or precedence between html and url, nor does it explain the payment flow that the _payment parameter requires beyond what the schema says. The schema carries most of the burden here.

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 ('Convert') with clear resources ('raw HTML or a public URL') and a clear output ('PDF document'). It clearly distinguishes this from sibling tools like document.parse, image.screenshot, and image.ocr. The purpose is immediately obvious and specific.

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 specifies the input types (raw HTML or public URL), which helps with when to use it. It also mentions the payment cost which sets expectations. However, it doesn't explicitly state when NOT to use it or name alternative tools for similar rendering tasks (like image.screenshot for image output), though sibling differentiation is largely implied by the distinct output type.

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

email.validateValidate EmailA
Read-onlyIdempotent

Validate and verify an email address. Checks syntax, MX records, SMTP deliverability, disposable domains, and returns a risk score. Costs $0.03 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address to validate
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
checkSmtpNoAttempt an SMTP deliverability probe

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering the safety profile. The description adds the cost ($0.03 USDC on Base) as behavioral/financial disclosure, which is useful beyond annotations. However, it doesn't disclose rate limits, response format details, or failure behavior when checks fail β€” but does note the paid POST first-call-then-retry pattern in the _payment schema.

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 dense sentences plus a cost line. Every word earns its place: lists the checks performed, notes the risk score output, and quotes the exact price. No filler, no repetition of the title.

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?

Output schema exists, reducing burden on description. Tool complexity is moderate (validation checks + paid access + optional SMTP probe). The description covers the core checks, the cost, and the two-call payment flow is covered in the schema. Slightly lacking clarity on risk score scale/output format, but output schema presumably handles that.

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 all 3 parameters are documented in the schema. The description adds the notion that checkSmtp is optional enrichment and that _payment requires a first call to obtain requirements, but the schema already explains the two-step signing flow well. The description's main added value is signaling which checks are default (syntax, MX, disposable) vs optional (SMTP).

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 specific verb (validate/verify) with resource (email address) and enumeration of what checks occur (syntax, MX records, SMTP, disposable domains, risk score). Distinct from all 11 siblings, none of which do email validation. The risk score and cost details further differentiate it.

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?

Description implies when to use (when you need to validate/verify an email) but doesn't explicitly name alternatives or exclusions. The _payment parameter details a clear two-step flow (first call without _payment, then retry with signed payload) which is valuable operational guidance. Lacks explicit 'use X instead when...' guidance but context is reasonably clear.

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

image.ocrExtract Text (OCR)A
Read-onlyIdempotent

Extract text from an image using OCR. Costs $0.05 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlNoPublic image URL to OCR (provide url OR image)
imageNoBase64-encoded image data (provide url OR image)
formatNoOutput formattext
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
languageNoOCR language (ISO 639-3, e.g. eng)eng

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true β€” the safety profile is fully covered. The description adds value by disclosing the cost ($0.05 USDC on Base), which is genuinely useful behavioral information an agent wouldn't know from annotations alone. The _payment parameter flow is also referenced in the schema though not the description.

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, zero wasted words. The first sentence states the core function and the second adds the key cost information. Every word earns its place and the description is front-loaded with the primary purpose.

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 tool has a full input schema covering 5 params, an output schema exists, and annotations fully cover read-only/idempotent/open-world behavior. With an output schema present, the description needn't explain return values. The only potential gap is guidance on format choices or language nuances, but given the rich schema and annotations, the description is adequate for agent selection and invocation.

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 5 parameters are already documented in the input schema. The description adds no additional parameter context beyond what the schema provides β€” baseline 3 is appropriate when the schema carries the full documenting burden. It doesn't clarify format semantics (text vs json vs hocr) beyond what the schema enumerates, but that's not required at 100% 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 clearly states the verb+resource ('Extract text from an image using OCR'), which is specific and unambiguous. The description distinguishes it from siblings like image.screenshot (which captures screenshots) and document.parse (which likely parses documents). The tool name image.ocr β€” with section 'image.' separating it from qr.* and document.* siblings β€” plus an explicit OCR purpose leaves no ambiguity.

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 states what the tool does but provides no explicit when-to-use guidance or exclusions versus alternatives. There's no mention of alternatives like document.parse for document-based extraction. The payment context ('Costs $0.05 USDC on Base') is helpful contextual usage guidance but doesn't address when to reach for this tool versus siblings.

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

image.screenshotCapture Website ScreenshotA
Read-only

Capture a screenshot of any website. Supports dark mode, full-page, and element selection. Costs $0.05 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to screenshot
delayNoWait ms after page load before capture
widthNoViewport width in pixels
formatNoOutput image formatpng
heightNoViewport height in pixels
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
darkModeNoEmulate prefers-color-scheme: dark
fullPageNoCapture full scrollable page
selectorNoCSS selector to capture specific element

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
encodingNoEncoding of the binary payload (base64).
mimeTypeNoMIME type of the returned binary payload (e.g. image/png, application/pdf).
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true, destructiveHint=false, and the description aligns. It discloses the $0.05 USDC cost and the two-phase payment flow (call without _payment first, then retry), which is valuable behavioral transparency. However, it doesn't detail failure modes, rate limits, or output format beyond what the output schema covers.

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 dense sentences with zero wasted words. The feature list (dark mode, full-page, element selection) and the cost disclosure deliver maximum information per sentence.

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?

With 100% schema coverage, an output schema present, and readOnly annotations, the description is complete for its complexity. The intentional two-phase payment flow is adequately explained, and the feature set is well covered. No major gaps identified.

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 100%, so the baseline is 3. The description adds value by explaining the _payment parameter's workflow (sign locally, call without it first to get requirements, then retry), which significantly aids correct invocation. The two-phase payment protocol is meaningful additional semantics beyond the schema.

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 action ('Capture a screenshot of any website') and lists key capabilities (dark mode, full-page, element selection). It distinguishes well from siblings like image.ocr and document.render_pdf, though it doesn't explicitly name alternatives.

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 gives clear context on what the tool does but does not explicitly state when to use it vs alternatives or when NOT to use it among the sibling tools. The pricing disclosure adds useful context for when to deploy (cost-aware decisions), but no alternative tool is named.

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

prospect.enrichEnrich ProspectA
Read-only

Turn a name + company domain into a sales-ready prospect profile: seniority, buyer persona, decision-maker probability, company intel, email pattern, and a personalised cold-email opener. Use for AI SDRs, lead enrichment, and outbound personalisation. Costs $0.50 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesFull name of the prospect
domainYesCompany domain, e.g. stripe.com
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
company_nameNoCompany name if known (optional)
linkedin_urlNoKnown LinkedIn profile URL (optional hint)

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds material behavioral context beyond those annotations: it discloses the monetary cost ($0.50 USDC on Base) and hints at the paid, two-call payment flow via the _payment param description. This adds genuine value for an agent deciding whether to invoke a paid tool. Slightly room for more (e.g., what the email pattern looks like), but solid.

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?

Three concise sentences: the main capability, the use cases, and the cost. All front-loaded with the core purpose first. The description is efficient with no wasted words. The one minor deduction is that cost and payment could be positioned more prominently since it's a paid tool, but the current structure is clean and every sentence 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?

For a tool whose output is a rich prospect profile (seniority, persona, decision-maker probability, etc.), the description front-loads the output surface clearly. The output schema exists, so return format is covered by structured data. The paid/payment-flow nuance is addressed. What's missing: any caveats about accuracy, turnaround time, or cases where enrichment might fail (e.g., unknown domain). Given good annotations and output schema, this is reasonably 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?

Schema coverage is 100%, so the schema documents all 5 parameters. The description adds meaning beyond this by explaining the output relationship (name + domain as the two required inputs that drive the enrichment). The _payment parameter, in particular, gets valuable supplementary detail in the description about signing locally with @x402/evm/@x402/fetch and the 'first call without _payment, then retry' flow β€” context the schema alone doesn't convey. Baseline 3 elevated for the _payment guidance.

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 ('turn... into') plus a precise resource ('a sales-ready prospect profile') and enumerates the concrete outputs: seniority, buyer persona, decision-maker probability, company intel, email pattern, and cold-email opener. This clearly differentiates it from sibling tools (qr.generate, dns.lookup, email.validate, document.parse), which are unrelated domains, and it names the use cases (AI SDRs, lead enrichment, outbound personalisation).

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 states clear contexts for use: AI SDRs, lead enrichment, and outbound personalisation. It also flags the $0.50 cost, which is important usage context. It doesn't explicitly state when NOT to use it or name alternative enrichment tools among the siblings, but the siblings are all unrelated (QR, DNS, OCR, screenshots), so there's no competing tool to disambiguate. The 'use for' phrasing gives strong guidance.

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

qr.generateGenerate QR CodeA
Read-onlyIdempotent

Generate a QR code from text or URL. Returns PNG image as base64. Costs $0.01 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoImage width/height in pixels
textYesContent to encode in QR code
formatNoOutput formatbase64
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
encodingNoEncoding of the binary payload (base64).
mimeTypeNoMIME type of the returned binary payload (e.g. image/png, application/pdf).
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is well-covered. The description adds value by disclosing the payment cost ($0.01 USDC) which is a genuine behavioral trait beyond annotations. It also reveals the return format (PNG base64). No contradiction with annotations found.

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 short sentences with zero waste. Each sentence earns its place: purpose, output format, and cost. Information is front-loaded with the core purpose stated first.

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 relatively simple generate tool, the description is complete: it states purpose, output format, and cost. The output schema exists, so return values don't need elaboration. The _payment parameter is complex but already thoroughly documented in the schema itself. Could mention pagination/limits but none apply to QR generation.

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 4 parameters are already documented in the schema, including the size default, format enum, and _payment instructions. The description adds the output-format detail (PNG base64) and cost context, but doesn't add meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate given complete 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+resource ('Generate a QR code') with clear scope ('from text or URL'). It also states the output format (PNG image as base64) and distinguishes from the sibling tool qr.generate_styled by implying standard QR generation. Purpose is fully clear.

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 implies usage context (encode text/URL into QR) but offers no explicit when-to-use vs alternatives guidance. There's no mention of when to use qr.generate vs qr.generate_styled, or exclusions. The cost mention ($0.01 USDC on Base) adds a practical usage signal but not comparison guidance.

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

qr.generate_styledGenerate Styled QR CodeA
Read-onlyIdempotent

Generate an artistic/styled QR code with custom shapes, colors, and gradients. Costs $0.05 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
sizeNoImage width/height in pixels
textYesContent to encode in QR code
formatNoOutput formatbase64
dotTypeNoShape of QR modulesrounded
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
dotColorNoHex color for dots (e.g. #6366f1)
gradientToNoGradient end color (hex)
cornerColorNoHex color for finder pattern corners
gradientFromNoGradient start color (hex)
backgroundColorNoHex background color#ffffff

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
encodingNoEncoding of the binary payload (base64).
mimeTypeNoMIME type of the returned binary payload (e.g. image/png, application/pdf).
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A3.5/5.0
Behavior3/5

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

Annotations declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, destructiveHint=false. The description adds the $0.05 cost disclosure, which is genuinely useful behavioral context beyond annotations. It does not contradict annotations. However, it doesn't disclose the payment-required behavior trait (that calls without _payment will fail on first attempt) in the main description, though this is partly covered in the parameter description. With annotations already covering safety, a 3 is fair.

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 efficient sentence that captures purpose and cost without waste. It's appropriately brief given the rich schema coverage. Not quite a 5 because it could use the front-loading opportunity to add one more differentiator (e.g., 'Use for branded/visually customized QR; use qr.generate for standard QR'), but it's lean and effective.

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 tool has 10 params, 100% schema coverage, an output schema, and strong annotations. The description covers the styling angle and cost. The payment workflow is the main gap - the agent needs to understand the two-step payment flow (call without _payment, get requirements, retry), which is only hinted in the parameter description, not the tool description. Still, the combination of schema + annotations + description is reasonably 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 coverage is 100%, so the schema documents all 10 parameters with descriptions. The description adds the pricing detail and the payment flow hint but doesn't add meaning to individual parameters beyond schema descriptions. Baseline 3 for high coverage is appropriate - the description doesn't need to repeat parameter detail.

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 it generates an artistic/styled QR code with custom shapes, colors, and gradients - a specific verb+resource. It distinguishes from the sibling qr.generate by emphasizing styling/customization, though it could be more explicit about how it differs from the plain version.

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 cost mention ('Costs $0.05 USDC') and the _payment parameter guidance ('Get the requirements from a first call without _payment, then retry.') give useful contextual guidance. However, there's no explicit statement of when to use this vs qr.generate (plain QR) or when NOT to use it, leaving the agent to infer the differentiation from the word 'styled.'

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

security.screenScreen for Prompt InjectionA
Read-onlyIdempotent

Screen text for prompt injection and jailbreak attacks before passing it to an LLM. Detects 10 attack categories. Costs $0.03 USDC on Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesText to screen for prompt injection (max 50,000 chars)
sourceNoOrigin of the text (user_input, email, form, etc.)
_paymentNoBase64-encoded signed v2 PaymentPayload (the value you'd put in the PAYMENT-SIGNATURE HTTP header). Use @x402/evm or @x402/fetch to sign locally with your own wallet β€” your private key never leaves your machine. Get the requirements from a first call without _payment, then retry.
redactedNoRedact flagged snippets in the response
sensitivityNoDetection sensitivitymedium

Output Schema

ParametersJSON Schema
NameRequiredDescription
errorNoError message when the call failed.
resultNoRaw JSON payload returned by the x402 service on a successful, paid call.
networkNoSettlement network for the x402 payment (base).
serviceNoUnderlying x402tools service that handled the call.
price_usdcNoPrice charged for this call, in USDC on Base.
requirementsNox402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
payment_requiredNoTrue when the call needs an x402 payment before it will run.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations declare readOnlyHint=true and destructiveHint=false, so the description doesn't need to restate safety. It adds value by disclosing the cost ($0.03 USDC on Base) and the payment mechanism, which is a significant behavioral trait. The description also mentions detection categories (10) giving functional scope beyond annotations.

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 with zero waste. States purpose, scope, and cost efficiently. Front-loaded with the core function first.

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?

Has output schema and 100% schema coverage, so the description doesn't need to explain return values or params. For a single-purpose screening tool with readOnly annotations, the description plus schema fully covers what an agent needs to invoke it correctly, including the payment requirement.

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 the schema documents all 5 parameters well. The description adds minimal param-specific detail (char limit mentioned in schema, sensitivity enum in schema). Baseline 3 is appropriate since the schema does the heavy lifting and description doesn't need to compensate.

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+resource ('Screen text for prompt injection and jailbreak attacks') and clearly states the core function before passing to an LLM. It distinguishes itself from sibling tools (qr, image, dns, etc.) by its unique security domain. Adding the 10 attack categories and cost provides concrete scope.

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 clearly states WHEN to use it ('before passing it to an LLM') which is explicit usage context. It doesn't name alternatives or exclusions, but the domain is distinct enough from siblings that alternatives aren't obviously relevant. The payment flow is described in the schema parameter._payment.

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. 11 tool updatesv1.8.0
    • First observedcommunity.wordstats
    • First observeddns.lookup
    • First observeddocument.parse
    • First observeddocument.render_pdf
    • First observedemail.validate
    • First observedimage.ocr
    • First observedimage.screenshot
    • First observedprospect.enrich
    • First observedqr.generate
    • First observedqr.generate_styled
    • First observedsecurity.screen

TDQS

A4/5.0
Disambiguation5/5

Each tool targets a clearly distinct purpose: QR generation (but two variants), screenshots, DNS, document parsing, security screening, email validation, OCR, prospect enrichment, and word stats. The only minor overlap is between qr.generate and qr.generate_styled, but the styling distinction is explicit enough. No tools could be confused despite the varied domains.

Naming Consistency3/5

Tools follow a dotted namespace convention (category.verb), which is somewhat consistent, but the verbs vary: generate, screenshot, lookup, parse, screen, validate, render_pdf, ocr, enrich, wordstats. Some are nouns (screenshot, ocr, wordstats) rather than verbs, and generate_styled mixes into the verb form. The namespace prefixing helps, but verb usage is internally inconsistent across all tools.

Tool Count5/5

Eleven tools is well within an appropriate range and each serves a distinct paid utility purpose. This is a pay-per-call API toolkit where breadth across domains is intentional; the count feels well-scoped and not bloated for a general-purpose utility server.

Completeness4/5

For a general utility server, the coverage is reasonable, offering generation, capture, lookup, parsing, validation, security, OCR, enrichment, and text analysis. Minor gaps exist: there's no tool to delete/update results (not applicable since stateless), and no obvious companion for image.screenshot (e.g., file storage) or for document.parse (image extraction). But as a stateless utility surface it feels complete enough for its purpose.

Maintenance

ActivitySlowing
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

  • F
    license
    Not graded
    quality
    F
    maintenance
    20 pay-per-call utility tools for AI agents via x402 USDC micropayments on Base. Screenshots, OCR, PDF, web scraping, weather, forex rates, crypto/stock prices, DNS, geocoding, translation, and more. $0.001–$0.008 per call. No API keys, no signup.
    1
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides coding agents with 19 pay-per-call developer utilities, npm supply-chain security checks, and Base blockchain lookups, paid via USDC on Base using x402. No API key neededβ€”payment acts as authentication.
    61
    -

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/acrylicfiddle/x402tools-mcp'

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