io.github.groundhogday2011-byte/a2apay

Official registry Productivity

Pay-per-call AI query and versioned task memory for agents. No account, no API key, via x402.

What can you do with io.github.groundhogday2011-byte/a2apay?

  • ask() returns a real AI-generated answer.
  • remember() stores a flat key/value record with optional tags — this is
  • Falls back to a real payment only when the free tier returns a 402;
  • Payment signing uses eth-account (maintained by the Ethereum

Install

Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).

PYPI package a2apay-io
Claude Code
claude mcp add a2apay -e 'A2APAY_PRIVATE_KEY=<your a2apay_private_key>' -- uvx a2apay-io==0.1.0
JSON configuration (Claude Desktop, Cursor, VS Code)
{
    "mcpServers": {
        "a2apay": {
            "command": "uvx",
            "args": [
                "a2apay-io==0.1.0"
            ],
            "env": {
                "A2APAY_PRIVATE_KEY": "<your a2apay_private_key>"
            }
        }
    }
}

Environment variables

  • A2APAY_PRIVATE_KEY secret Base mainnet wallet private key, only needed once the free tier (5 calls/day) is used up. Never required for free-tier-only usage.

Documentation

From the project's README on GitHub, refreshed weekly. Links open on GitHub.

Contents
  1. a2apay
  2. Quick start (free tier, zero setup)
  3. With real payment (once the free tier is used up)
  4. Checkpoint / resume (task memory)
  5. What this honestly does and doesn't do
  6. MCP server
  7. Full API reference

a2apay

Python client for a2apay.io — pay-per-call AI answers and persistent memory for autonomous agents. No account, no API key.

pip install a2apay-io          # free-tier only
pip install "a2apay-io[paid]"  # adds real payment support (eth-account)

(The PyPI distribution is named a2apay-io — an unrelated package already holds the bare a2apay name. The importable module is still a2apay.)

Quick start (free tier, zero setup)

Every call tries the free tier first automatically — 5 requests/day per caller, no wallet needed:

from a2apay import Agent

agent = Agent()
answer = agent.ask("What's 7 times 8?")
print(answer)

agent.remember("last_task", "processed invoice #4471", tags=["billing"])

With real payment (once the free tier is used up)

from a2apay import Agent

agent = Agent(private_key="0x...")  # or set A2APAY_PRIVATE_KEY
answer = agent.ask("What's 7 times 8?")

The wallet needs a small USDC balance on Base mainnet ($0.028/call). The private key is used only to sign a payment authorization locally — it is never sent anywhere.

Checkpoint / resume (task memory)

Write versioned, task-scoped state and read it back later — even from a different process. Each checkpoint() to the same key adds a new version rather than overwriting, and resume() always returns the latest.

from a2apay import Agent

agent = Agent(private_key="0x...")
agent.checkpoint("invoice-batch-7", key="status", value="processed rows 1-400")

# ...process dies, or a second process picks up later...

agent2 = Agent(private_key="0x...")  # same wallet
records = agent2.resume("invoice-batch-7")
print(records[0]["value"])  # "processed rows 1-400"

resume() always requires payment ($0.014/call) — there's no free tier for reads yet, so it needs a configured wallet even for your first call. checkpoint() follows the same free-tier-then-paid behavior as remember().

What this honestly does and doesn't do

  • ask() returns a real AI-generated answer.
  • remember() stores a flat key/value record with optional tags — this is simple text storage, not a document database. Values are stored as text.
  • Falls back to a real payment only when the free tier returns a 402; if no private_key is configured at that point, it raises a clear A2ApayError rather than failing silently.
  • Payment signing uses eth-account (maintained by the Ethereum Foundation ecosystem), implementing the real x402 "exact" EVM scheme per the x402 protocol spec.

MCP server

An MCP server (mcp_server.py) exposes ask and remember as MCP tools for any MCP-aware agent or framework (Claude Desktop, etc.):

pip install "a2apay-io[mcp]"
python mcp_server.py

Add to an MCP client config:

{
  "mcpServers": {
    "a2apay": {
      "command": "python",
      "args": ["/absolute/path/to/mcp_server.py"],
      "env": {"A2APAY_PRIVATE_KEY": "0x..."}
    }
  }
}

Honest scope note: remember is write-only — there's no memory read-back tool because the live API doesn't have a read-back route yet.

Full API reference

See a2apay.io/openapi.yaml for the underlying HTTP API this wraps.

Frequently asked questions

What is io.github.groundhogday2011-byte/a2apay?

Pay-per-call AI query and versioned task memory for agents. No account, no API key, via x402.

How do I install io.github.groundhogday2011-byte/a2apay?

It runs on your machine. In Claude Code: claude mcp add a2apay -e 'A2APAY_PRIVATE_KEY=<your a2apay_private_key>' -- uvx a2apay-io==0.1.0. For other clients, paste the JSON configuration from this page into their MCP settings.

Does io.github.groundhogday2011-byte/a2apay need an API key?

Yes. It expects A2APAY_PRIVATE_KEY, which you set in its configuration.

Is io.github.groundhogday2011-byte/a2apay open source?

Its code is public on GitHub, but the repository does not declare a standard license.

Who maintains io.github.groundhogday2011-byte/a2apay?

It is published by groundhogday2011-byte. AI.tn lists it but does not maintain or endorse it.

From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.