Skip to main content
ClaudeWave
danielarif26 avatar
danielarif26

penniless-data-utilities

View on GitHub

Nine deterministic x402-paid data utilities for AI agents (USDC on Base), served over both REST and MCP on Cloudflare Workers

MCP ServersOfficial Registry0 stars0 forksJavaScriptUpdated today
ClaudeWave Trust Score
62/100
· OK
Passed
  • Actively maintained (<30d)
  • Clear description
  • Documented (README)
Flags
  • !No standard license detected
Last scanned: 9/17/2026
Install in Claude Code / Claude Desktop
Method: NPX · wrangler
Claude Code CLI
claude mcp add penniless-data-utilities -- npx -y wrangler
claude_desktop_config.json (Claude Desktop)
{
  "mcpServers": {
    "penniless-data-utilities": {
      "command": "npx",
      "args": ["-y", "wrangler"]
    }
  }
}
1. Run the command above in your terminal (Claude Code), or paste the JSON config into claude_desktop_config.json (Claude Desktop).
2. Replace any <placeholder> values with your API keys or paths.
3. Restart Claude. The MCP server and its tools appear automatically.
Use cases

MCP Servers overview

# Penniless Data Utilities

Nine deterministic data and lookup tools for AI agents, paid per call in USDC.
REST advertises both native MPP and [x402](https://x402.org); MCP uses x402 v2. No accounts, no API keys, no rate-limit
tiers. Every tool is pure computation or a keyless public lookup — none of them
call another AI model, so results are reproducible.

- Live endpoint (MCP): https://penniless-json-repair.sjaman.workers.dev/mcp
- Live endpoint (REST): https://penniless-json-repair.sjaman.workers.dev
- Discovery: `/health`, `/openapi.json`, `/llms.txt`, `/.well-known/x402`

## Pricing

`$0.001` USDC per call. REST advertises native MPP plus x402 v2 (`eip155:8453`, scheme `exact`); MCP uses x402 v2.

Base x402 settlements are verified by the free-tier [PayAI](https://facilitator.payai.network) facilitator. Native MPP is negotiated by `mppx`. Recipient (`payTo`): `0x3D98800c64C345950E1eAaa076D88C12d1BF5F37`.

## Connect over MCP

Any MCP client that speaks streamable HTTP can connect directly:

```json
{
  "mcpServers": {
    "penniless-data-utilities": {
      "type": "http",
      "url": "https://penniless-json-repair.sjaman.workers.dev/mcp"
    }
  }
}
```

The transport is stateless — no session id is issued or required, and every
request is independent. `initialize` and `tools/list` are free. An unpaid
`tools/call` returns an x402 payment-required payload in `result.content[0].text`
(and `result.structuredContent`); attach the signed payment as
`params._meta["x402/payment"]` and repeat the call.

If you use an x402-aware MCP client, `@x402/mcp` handles that exchange for you.

## Tools

| MCP name           | REST path               | Arguments                          | Returns |
| ------------------ | ----------------------- | ---------------------------------- | ------- |
| `repair_json`      | `POST /repair/json`     | `{input}`                          | repaired JSON + which fixes applied |
| `yaml_to_json`     | `POST /yaml/tojson`     | `{input}`                          | parsed value + warnings |
| `cron_next_run`    | `POST /cron/nextrun`    | `{expr, after?}`                   | next UTC fire time |
| `text_diff`        | `POST /diff`            | `{old, new, context?}`             | unified diff + counts |
| `text_extract`     | `POST /text/extract`    | `{input, numbers?, codeBlocks?}`   | text, title, headings, links, URLs, emails |
| `domain_whois`     | `POST /domain/whois`    | `{domain}`                         | registrar, statuses, expiry, nameservers, DNSSEC |
| `dns_lookup`       | `POST /dns/lookup`      | `{domain, type?}`                  | DoH answers for A/AAAA/CNAME/MX/TXT/NS/SOA/PTR/SRV/CAA |
| `github_repo_stats`| `POST /github/repo-stats`| `{repo}`                          | stars, forks, open issues, language, license |
| `email_validate`   | `POST /email/validate`  | `{email}`                          | syntax + live MX deliverability |

`POST /diagnose` is free: it classifies what is wrong with a malformed JSON
payload without returning the repaired output, so a caller can check whether
paying is worthwhile before paying.

### Example (REST + x402 client)

Any x402 v2 client works. With the reference TypeScript client and a viem account:

```js
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(key), networks: ["eip155:8453"] });
const pay = wrapFetchWithPayment(fetch, client);

const res = await pay("https://penniless-json-repair.sjaman.workers.dev/repair/json", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({ input: "{foo: 'bar',}" }),
});
// -> { ok: true, repaired: { foo: "bar" }, applied: ["unquoted-keys","single-quotes","trailing-commas"] }
```

`wrapFetchWithPayment` handles the 402 round-trip: it receives the requirement,
signs the USDC authorization, retries, and only returns a `200` once the
facilitator has settled.

## Development

```bash
npm install
npm test        # 133 tests, runs fully offline (facilitator + upstream are injected)
npx wrangler dev
npx wrangler deploy
```

Environment (set in `wrangler.toml`): `X402_NETWORK`, `X402_FACILITATOR`,
`X402_PRICE`, `X402_PAY_TO`. Production also has an encrypted Cloudflare secret
`MPP_SECRET_KEY` used only to authenticate MPP challenges. Wallet private keys are
never deployed to the Worker.

## Maintainer

GitHub: [@danielarif26](https://github.com/danielarif26)

What people ask about penniless-data-utilities

What is danielarif26/penniless-data-utilities?

+

danielarif26/penniless-data-utilities is mcp servers for the Claude AI ecosystem. Nine deterministic x402-paid data utilities for AI agents (USDC on Base), served over both REST and MCP on Cloudflare Workers It has 0 GitHub stars and its last recorded update is dated 2026-09-16.

How do I install penniless-data-utilities?

+

You can install penniless-data-utilities by cloning the repository (https://github.com/danielarif26/penniless-data-utilities) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.

Is danielarif26/penniless-data-utilities safe to use?

+

Our security agent has analyzed danielarif26/penniless-data-utilities and assigned a Trust Score of 62/100 (tier: OK). See the full breakdown of passed checks and flags on this page.

Who maintains danielarif26/penniless-data-utilities?

+

danielarif26/penniless-data-utilities is maintained by danielarif26. The last recorded GitHub activity is dated 2026-09-16, with 1 open issues.

Are there alternatives to penniless-data-utilities?

+

Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.

Deploy penniless-data-utilities to your cloud

Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.

Maintain this repo? Add a badge to your README

Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.

Featured on ClaudeWave: danielarif26/penniless-data-utilities
[![Featured on ClaudeWave](https://claudewave.com/api/badge/danielarif26-penniless-data-utilities)](https://claudewave.com/repo/danielarif26-penniless-data-utilities)
<a href="https://claudewave.com/repo/danielarif26-penniless-data-utilities"><img src="https://claudewave.com/api/badge/danielarif26-penniless-data-utilities" alt="Featured on ClaudeWave: danielarif26/penniless-data-utilities" width="320" height="64" /></a>