# paidfor

> Check an x402 seller before paying: verdict, failure rate and evidence from paid calls on Base.

- name: dev.paidfor/paidfor
- version: 0.6.0
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/dev.paidfor%2Fpaidfor
- tools: https://api.protogrid.dev/v1/servers/dev.paidfor%2Fpaidfor/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "paidfor": {
      "type": "http",
      "url": "https://mcp.paidfor.dev/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-4d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 4 of 4 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 1,072 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 100 (weight 15)

- pass `stability.changes`: no tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: deps.dev does not know @paidfor/mcp@0.6.0

- tools: 4, about 1,072 tokens to load them all
- tool set hash: 838ccfa550d8cfc8f443ac4e13dec04a
- badge: [![protogrid quality](https://protogrid.dev/badge/dev.paidfor/paidfor.svg)](https://protogrid.dev/servers/dev.paidfor/paidfor)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

_No tool definition changes recorded._

## Dependencies

- npm @paidfor/mcp@0.6.0: unknown

Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0.

## Remotes

- https://mcp.paidfor.dev/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

- npm @paidfor/mcp@0.6.0

## Tools (4)

- `check_x402_seller`: Call this before any x402 payment, before retrying a request that answered HTTP 402, or whenever the user is about to buy an API call with USDC on Base or names an API they intend to pay per call. Returns a verdict (avoid, caution, ok, unknown), one sentence to act on, the seller's paid-call count and failure rate with a 95% interval, listed price, modal quote and max overcharge ratio when known, and links to the seller page and raw evidence.
- `list_reliable_sellers`: Call this when choosing among sellers for a task, or when the user asks for a safe or reliable API. Returns sellers with zero failures across at least 30 paid calls, most-called first. For each: domain, category, paid-call count, the 95% upper bound on its failure rate, median quoted price in USDC, USDC paid to it in the last 30 days, when it was last seen, and its paidfor seller page.
- `recent_changes`: Call this when the user asks what changed, or before relying on a verdict older than a day. Returns recent changes, newest first: verdict changes, new failures by type, moved quotes, changed pay-to addresses, sellers added or reaching 30 paid calls, published seller replies, the operator-reported series maturing or disagreeing with ours. Each change has its time, type, seller domain, seller page and type-specific details (for example the old and new quote).
- `report_x402_payment`: After your agent pays an x402 seller with any wallet, report what came back. Needs the resource URL, the settlement transaction hash and the outcome. Free, no account, no key; the report counts only with on-chain proof.
