# io.github.acrylicfiddle/x402tools (remote · mcp.x402tools.xyz)

10 pay-per-call tools for AI agents: QR, screenshots, DNS, OCR, PDF, email & more. USDC on Base.

- Trust score: 69/100 (medium)
- Change this week: +4
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `mcp.x402tools.xyz`: 69/100 (this document), [markdown](https://verifymcp.io/servers/acrylicfiddle-x402tools/mcp.md), [page](https://verifymcp.io/servers/acrylicfiddle-x402tools/mcp)
- npm · `@x402-tools/mcp`: 57/100, [markdown](https://verifymcp.io/servers/acrylicfiddle-x402tools/x402-tools-mcp.md), [page](https://verifymcp.io/servers/acrylicfiddle-x402tools/x402-tools-mcp)

## Channel facts

- Endpoint: `https://mcp.x402tools.xyz/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.8.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 80/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 60/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 1855 tokens (~168/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability check failed: schema churn in the 8 days we've observed: 11 tool removals, 0 breaking changes, 0 auth/transport breaks, 11 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http acrylicfiddle-x402tools https://mcp.x402tools.xyz/mcp
```

### Codex

```toml
[mcp_servers.acrylicfiddle-x402tools]
url = "https://mcp.x402tools.xyz/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "acrylicfiddle-x402tools": {
      "type": "remote",
      "url": "https://mcp.x402tools.xyz/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add acrylicfiddle-x402tools --url https://mcp.x402tools.xyz/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  acrylicfiddle-x402tools:
    url: "https://mcp.x402tools.xyz/mcp"
```

### Other

```json
{
  "mcpServers": {
    "acrylicfiddle-x402tools": {
      "type": "http",
      "url": "https://mcp.x402tools.xyz/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-07-31 (score 69, +4)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-27 (score 65, +6)

- [security regression] Stability: unverified → fail
- [security regression] Tool “dns_lookup” was removed
- [security regression] Tool “extract_text_ocr” was removed
- [security regression] Tool “enrich_prospect” was removed
- [security regression] Tool “capture_screenshot” was removed
- [security regression] Tool “parse_document” was removed
- [security regression] Tool “render_pdf” was removed
- [security regression] Tool “screen_prompt_injection” was removed
- [security regression] Tool “validate_email” was removed
- [security regression] Tool “wordstats” was removed
- [security regression] Tool “generate_styled_qr” was removed
- [security regression] Tool “generate_qr” was removed
- [security improvement] Authorization: unverified → partial
- [functional] First check of Tool coverage: 100
- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server
- [functional] Server version: 1.7.0 → 1.8.0
- [functional] New tool “security.screen”
- [functional] New tool “qr.generate_styled”
- [functional] New tool “qr.generate”
- [functional] New tool “prospect.enrich”
- [functional] New tool “image.screenshot”
- [functional] New tool “image.ocr”
- [functional] New tool “email.validate”
- [functional] New tool “document.render_pdf”
- [functional] New tool “document.parse”
- [functional] New tool “dns.lookup”
- [functional] New tool “community.wordstats”

### 2026-07-26 (score 59)

First indexed and scored.

## MCP tools (11)

### `qr.generate` (~142 tokens)

Generate QR Code

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `format` (string): Output format
- `size` (number): Image width/height in pixels
- `text` (string, required): Content to encode in QR code

Output parameters:

- `encoding` (string): Encoding of the binary payload (base64).
- `error` (string): Error message when the call failed.
- `mimeType` (string): MIME type of the returned binary payload (e.g. image/png, application/pdf).
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `qr.generate_styled` (~228 tokens)

Generate Styled QR Code

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `backgroundColor` (string): Hex background color
- `cornerColor` (string): Hex color for finder pattern corners
- `dotColor` (string): Hex color for dots (e.g. #6366f1)
- `dotType` (string): Shape of QR modules
- `format` (string): Output format
- `gradientFrom` (string): Gradient start color (hex)
- `gradientTo` (string): Gradient end color (hex)
- `size` (number): Image width/height in pixels
- `text` (string, required): Content to encode in QR code

Output parameters:

- `encoding` (string): Encoding of the binary payload (base64).
- `error` (string): Error message when the call failed.
- `mimeType` (string): MIME type of the returned binary payload (e.g. image/png, application/pdf).
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `image.screenshot` (~210 tokens)

Capture Website Screenshot

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `darkMode` (boolean): Emulate prefers-color-scheme: dark
- `delay` (number): Wait ms after page load before capture
- `format` (string): Output image format
- `fullPage` (boolean): Capture full scrollable page
- `height` (number): Viewport height in pixels
- `selector` (string): CSS selector to capture specific element
- `url` (string, required): URL to screenshot
- `width` (number): Viewport width in pixels

Output parameters:

- `encoding` (string): Encoding of the binary payload (base64).
- `error` (string): Error message when the call failed.
- `mimeType` (string): MIME type of the returned binary payload (e.g. image/png, application/pdf).
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `dns.lookup` (~132 tokens)

DNS Lookup

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `domain` (string, required): Domain name to look up (e.g. example.com)

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `document.parse` (~151 tokens)

Parse Document

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `include_raw_text` (boolean): Include raw extracted text
- `output_schema` (string): Output schema type
- `url` (string, required): Public URL of HTML page or PDF to parse

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `security.screen` (~178 tokens)

Screen for Prompt Injection

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `redacted` (boolean): Redact flagged snippets in the response
- `sensitivity` (string): Detection sensitivity
- `source` (string): Origin of the text (user_input, email, form, etc.)
- `text` (string, required): Text to screen for prompt injection (max 50,000 chars)

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `email.validate` (~143 tokens)

Validate Email

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.

Input parameters:

- `_payment` (string): Base64-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 y…
- `checkSmtp` (boolean): Attempt an SMTP deliverability probe
- `email` (string, required): Email address to validate

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `document.render_pdf` (~170 tokens)

Render PDF

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `format` (string): Page size
- `html` (string): Raw HTML to render (provide html OR url)
- `landscape` (boolean): Landscape orientation
- `scale` (number): Render scale, 0.1-2
- `url` (string): Public URL to render (provide html OR url)

Output parameters:

- `encoding` (string): Encoding of the binary payload (base64).
- `error` (string): Error message when the call failed.
- `mimeType` (string): MIME type of the returned binary payload (e.g. image/png, application/pdf).
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `image.ocr` (~164 tokens)

Extract Text (OCR)

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

Input parameters:

- `_payment` (string): Base64-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 y…
- `format` (string): Output format
- `image` (string): Base64-encoded image data (provide url OR image)
- `language` (string): OCR language (ISO 639-3, e.g. eng)
- `url` (string): Public image URL to OCR (provide url OR image)

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `prospect.enrich` (~199 tokens)

Enrich Prospect

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.

Input parameters:

- `_payment` (string): Base64-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 y…
- `company_name` (string): Company name if known (optional)
- `domain` (string, required): Company domain, e.g. stripe.com
- `linkedin_url` (string): Known LinkedIn profile URL (optional hint)
- `name` (string, required): Full name of the prospect

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

### `community.wordstats` (~138 tokens)

Wordstats

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).

Input parameters:

- `_payment` (string): Base64-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 y…
- `text` (string, required): Parameter "text" forwarded to the x402 service.

Output parameters:

- `error` (string): Error message when the call failed.
- `network` (string): Settlement network for the x402 payment (base).
- `payment_required` (boolean): True when the call needs an x402 payment before it will run.
- `price_usdc` (string): Price charged for this call, in USDC on Base.
- `requirements`: x402 payment requirements (scheme, network, amount, payTo, asset) when payment_required is true.
- `result`: Raw JSON payload returned by the x402 service on a successful, paid call.
- `service` (string): Underlying x402tools service that handled the call.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/acrylicfiddle-x402tools/mcp#diagnostics

## Score history

- 2026-08-03: 69
- 2026-08-02: 69
- 2026-08-01: 69
- 2026-07-31: 69
- 2026-07-30: 65
- 2026-07-29: 65
- 2026-07-28: 65
- 2026-07-27: 65
- 2026-07-26: 59

## Links

- Remote endpoint: https://mcp.x402tools.xyz/mcp
- Website: https://x402tools.xyz/
- Changelog RSS feed: https://verifymcp.io/servers/acrylicfiddle-x402tools/mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/acrylicfiddle-x402tools/mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/acrylicfiddle-x402tools/mcp
