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

@zettapay/mcp

v0.1.0

Published

Model Context Protocol (MCP) server for ZettaPay. Lets AI agents accept Bitcoin and USDC/USDT on Base in one tool call, against the user's own self-hosted, non-custodial listener. Runs locally — never holds keys or funds.

Downloads

169

Readme

@zettapay/mcp

Accept crypto from an AI agent in one tool call — non-custodial, self-hosted.

A Model Context Protocol server that lets an AI agent (Claude Desktop, Claude Code, or any MCP client) create and track crypto invoices through your own ZettaPay listener.

It runs on your machine and talks only to your local listener (http://localhost:8787 by default). It never holds a key, never holds funds, and never phones home. Payments settle straight to your wallet on-chain.

What it does

Three tools, mapped 1:1 onto the listener's HTTP API:

| Tool | Does | | --- | --- | | create_invoice | Create a BTC or USDC/USDT-on-Base invoice; returns the receive address + payment/QR URI. | | get_invoice_status | Poll an invoice: pending \| partial \| confirmed \| expired \| failed. | | list_supported_assets | List what the listener accepts: btc, usdc-base, usdt-base. |

Prerequisites

  1. A running ZettaPay listener you control:
    npm i -g @zettapay/listener
    zettapay-listener start
  2. Node.js >= 18.18.

Configure

The server reads two environment variables:

| Var | Default | Notes | | --- | --- | --- | | LISTENER_URL | http://localhost:8787 | Your local listener's base URL. | | ZETTAPAY_API_KEY | (none) | Sent as X-ZettaPay-Api-Key when your listener requires auth. |

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "zettapay": {
      "command": "npx",
      "args": ["-y", "@zettapay/mcp"],
      "env": {
        "LISTENER_URL": "http://localhost:8787",
        "ZETTAPAY_API_KEY": "sk_live_..."
      }
    }
  }
}

Claude Code

claude mcp add zettapay -- npx -y @zettapay/mcp

(Set LISTENER_URL / ZETTAPAY_API_KEY in the environment, or via your client's MCP env config.)

Any MCP client (stdio)

LISTENER_URL=http://localhost:8787 ZETTAPAY_API_KEY=sk_live_... npx -y @zettapay/mcp

The server speaks MCP over stdio. Diagnostic logs go to stderr so they never corrupt the JSON-RPC stream.

Example agent flow

"Create a $42 USDC invoice on Base and give me the address."

The agent calls create_invoice({ chain: "base", amount_usd: 42 }) and gets back the receive address, the exact amount, and an EIP-681 payment URI — then it can poll get_invoice_status({ invoice_id }) until the status flips to confirmed.

Non-custodial by construction

This package is a thin client for your listener. The agent never sees a private key or an xpub; it only ever receives a public receive address. All custody guarantees of the listener hold unchanged — ZettaPay never touches your money. No identity checks, no telemetry, no third party.

License

MIT