npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

miniframe-tools-mcp

v1.2.0

Published

MCP server for Brazilian data and document tools: Pix BR Codes, CEP and CNPJ lookup, web capture and PDF compression. Pay-per-call in USDC on Base via x402 — no signup, no API key.

Readme

MiniFrame Tools

The Brazilian toolkit for AI agents — plus the web and document work agents can't do inside a sandbox.

Ask your agent to generate a Pix payment code, resolve a CEP to a full address, or pull a company's record from the CNPJ registry. Point it at a JavaScript-heavy page and get clean Markdown, a screenshot or a PDF back.

A CNPJ lookup costs $0.01 — billed per call, with no monthly plan, no contract and no minimum, which is unusual for Brazilian data APIs.

Tools

  • pix_brcode — Generate a Brazilian Pix payment code (BR Code / "Copia e Cola" string) plus a QR PNG. $0.01 per call.
  • cep_lookup — Resolve a Brazilian postal code (CEP) to a full street address. $0.005 per call.
  • cnpj_lookup — Look up a Brazilian company by its CNPJ number in the public registry. $0.01 per call.
  • empresa_profile — Consolidated Brazilian company profile to qualify a lead: registry + address completed via CEP + derived flags (active, headquarters, age, MEI/Simples, size, risk). $0.02 per call.
  • url_to_markdown — Fetch a JavaScript-rendered web page and return clean Markdown for an LLM. $0.02 per call.
  • screenshot_url — Take a screenshot of a web page and return it as PNG or JPEG. $0.03 per call.
  • url_to_pdf — Render a web page as a PDF. $0.03 per call.
  • extract — Extract the structured data a page exposes (JSON-LD, Open Graph, meta, tables, links) plus any fields you pass as CSS selectors. $0.02 per call.
  • compress_pdf — Compress a PDF file with Ghostscript. $0.02 per call.

Each tool maps to an HTTP endpoint of the same service:

| Tool | Endpoint | |---|---| | pix_brcode | POST /pix/brcode | | cep_lookup | POST /cep | | cnpj_lookup | POST /cnpj | | empresa_profile | POST /empresa | | url_to_markdown | POST /url-to-markdown | | screenshot_url | POST /screenshot | | url_to_pdf | POST /url-to-pdf | | extract | POST /extract | | compress_pdf | POST /compress-pdf |

What makes these worth paying for

Brazilian sources, handled properly. CEP lookups hit BrasilAPI first and fall back to ViaCEP automatically, so a single upstream outage doesn't break your agent. Both sources come back through one normalized, English-keyed shape — your prompt never has to know which one answered.

Pix codes built to spec, locally. The BR Code follows the Central Bank's EMV layout, CRC16 and all, generated on our side with no third-party payment provider in the path. The key you send is used to build the code and is not stored.

Privacy taken seriously. CNPJ responses carry the company record — legal name, trade name, status, main activity, address — with personal fields left out by design.

Rendering that doesn't become an attack surface. The web tools run real Chromium, so JavaScript pages resolve, and they refuse private and internal addresses (SSRF guard) before a page is ever loaded.

Nothing to install for the hard parts. Ghostscript and a headless browser are the kind of dependency an agent sandbox doesn't have and can't install. That is exactly what this is for — anything an agent already does well on its own (parsing a CSV, reading a spreadsheet) is not sold here.

Use it as an MCP server

Works with Claude Desktop, Claude Code, Cursor, Windsurf, Cline and any MCP client.

{
  "mcpServers": {
    "miniframe-tools": {
      "command": "npx",
      "args": ["-y", "miniframe-tools-mcp"],
      "env": {
        "EVM_PRIVATE_KEY": "0xyour_private_key"
      }
    }
  }
}

Restart the client and the seven tools appear. Then just ask:

"Generate a Pix code for R$ 50 to key [email protected], name Maria Silva, city Recife"

"What's the address for CEP 01310-100?"

"Look up CNPJ 00.000.000/0001-91 and tell me if the company is active"

"Turn https://example.com into Markdown so I can summarise it"

Use it as a plain HTTP API

No MCP needed — every tool is a normal endpoint:

curl -i -X POST https://tools.miniframe.com.br/cep \
  -H "Content-Type: application/json" \
  -d '{"cep":"01310100"}'

Paying

Calls are billed per request in USDC on Base, using the x402 protocol: the endpoint answers 402 with the price, your client signs the payment and repeats the request. Most agent runtimes handle this for you.

For MCP, set EVM_PRIVATE_KEY to a wallet funded with a few dollars of USDC — use a dedicated low-balance wallet, never your main one. The key stays on your machine and signs locally; it is never sent to the API.

| Variable | Required | Default | |---|---|---| | EVM_PRIVATE_KEY | yes | — | | MINIFRAME_API_URL | no | https://tools.miniframe.com.br |

Over plain HTTP, wrap your client with any x402 library — see examples/ for a runnable Node script.

License

MIT