Penniless Data Utilities

io.github.danielarif26Published by GitHub account danielarif26v3.1.0Updated Oct 24, 2026

Ten x402-paid tools for JSON, YAML, cron, diff, text, DNS, WHOIS, GitHub, crypto, and email.

VerifiedStreamable HTTPWeb executableWeb Search & ScrapingDeveloper Tools

Overview

AI-generated overview

Remote MCP server offering nine small data utilities — JSON repair, YAML conversion, cron, diff, text extraction, DNS, WHOIS, GitHub stats and email checks — at

What you can do
Repair malformed JSON and convert YAML to JSON, reporting which fixes or warnings applied. Compute the next UTC run time of a cron expression and produce unified diffs between two texts. Extract text, titles, headings, links, URLs and emails from HTML or plain text. Look up DNS records over DoH and structured WHOIS/RDAP data for a domain. Fetch public GitHub repository stats and validate an email's syntax and domain MX records.
When to use it
Useful when an assistant needs quick, deterministic data chores — cleaning up broken JSON from a model, converting YAML, checking a cron schedule, diffing text, scraping text out of HTML, or doing keyless DNS, WHOIS, GitHub and email lookups — without wiring up separate services.
Requirements
A remote streamable HTTP endpoint; no account, API key or header is needed. Each tool call costs $0.001 USDC on Base, paid through the x402 protocol, so the client needs an x402-capable MCP client or wallet signer; initialize and tools/list are free.
Before you install
Every tool call spends real money ($0.001 USDC on Base per call), so an assistant that retries or loops can incur charges. Payment requires signing a USDC authorization with a wallet key; keep that key in the client, not in prompts. Inputs such as domains, emails and text are sent to a third-party endpoint, and DNS/WHOIS/email results reflect live public lookups.

Installation

In SourceWeft

  1. Open Penniless Data Utilities in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.danielarif26%2Fpenniless-data-utilities/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

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

README

Penniless Data Utilities

Nine deterministic data and lookup tools for AI agents, paid per call in USDC. REST advertises both native MPP and x402; 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.

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 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 nameREST pathArgumentsReturns
repair_jsonPOST /repair/json{input}repaired JSON + which fixes applied
yaml_to_jsonPOST /yaml/tojson{input}parsed value + warnings
cron_next_runPOST /cron/nextrun{expr, after?}next UTC fire time
text_diffPOST /diff{old, new, context?}unified diff + counts
text_extractPOST /text/extract{input, numbers?, codeBlocks?}text, title, headings, links, URLs, emails
domain_whoisPOST /domain/whois{domain}registrar, statuses, expiry, nameservers, DNSSEC
dns_lookupPOST /dns/lookup{domain, type?}DoH answers for A/AAAA/CNAME/MX/TXT/NS/SOA/PTR/SRV/CAA
github_repo_statsPOST /github/repo-stats{repo}stars, forks, open issues, language, license
email_validatePOST /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 installnpm test        # 133 tests, runs fully offline (facilitator + upstream are injected)npx wrangler devnpx 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

Source: README.md at commit 3137a15

Tools

9

repair_json

Penniless JSON Repair

Repairs malformed LLM JSON: strips Markdown fences and prose wrappers, fixes trailing commas, converts Python literals (True/False/None) and single/unquoted keys, removes comments, recovers balanced JSON from truncated output. Body {input} -> {ok, repaired, applied}. Costs $0.001 USDC on Base per call.

Parametersinputrequired

yaml_to_json

Penniless YAML to JSON

Converts a YAML subset (block maps, sequences, nested indentation, scalars, comments) into JSON with no runtime dependency. Body {input} -> {ok, value, warnings}. Costs $0.001 USDC on Base per call.

Parametersinputrequired

cron_next_run

Penniless Cron Next Run

Computes the next UTC fire time for a 5-field cron expression (supports steps, ranges, lists, and month/weekday names). Body {expr, after?} -> {ok, next, epochMs}. Costs $0.001 USDC on Base per call.

Parametersexprrequiredafter

text_diff

Penniless Text Diff

Produces a unified diff plus added/removed counts between two texts (LCS line diff, configurable context lines). Body {old, new, context?} -> {ok, identical, added, removed, hunks, unified}. Costs $0.001 USDC on Base per call.

Parametersnewrequiredoldrequiredcontext

text_extract

Penniless Text Extract

Extracts clean text, title, headings, links, URLs, and emails from HTML or plain text. Body {input, numbers?, codeBlocks?} -> {ok, source, title, headings, links, urls, emails, text}. Costs $0.001 USDC on Base per call.

ParametersinputrequirednumberscodeBlocks

domain_whois

Penniless WHOIS Lookup

Structured WHOIS via RDAP for any domain: registrar, IANA id, statuses, expiry/registration dates, nameservers, DNSSEC. Body {domain} -> {ok, found, domain, registrar, status[], events{}, nameservers[], dnssec}. Costs $0.001 USDC on Base per call.

Parametersdomainrequired

dns_lookup

Penniless DNS Lookup

JSON DNS-over-HTTPS lookup for A, AAAA, CNAME, MX, TXT, NS, SOA, PTR, SRV, CAA. Body {domain, type?} -> {ok, domain, type, status, answers[]}. Costs $0.001 USDC on Base per call.

Parameterstypedomainrequired

github_repo_stats

Penniless GitHub Repo Stats

Popularity and metadata for any public GitHub repo: stars, forks, open issues, watchers, language, license, topics, last push. Body {repo} -> {ok, found, stars, forks, openIssues, language, license, pushedAt}. Costs $0.001 USDC on Base per call.

Parametersreporequired

email_validate

Penniless Email Validate

Email deliverability check: RFC-style syntax plus live MX probe of the domain. Body {email} -> {ok, valid, formatValid, domainHasMx, mx[]}. Costs $0.001 USDC on Base per call.

Parametersemailrequired

Version history

1
  1. v3.1.0LatestSep 17, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.