AlgoVoi MCP Server
io.github.chopmob-cloud/algovoi-mcp-server
Documentation
AlgoVoi MCP Server
An MCP (Model Context Protocol) server that exposes AlgoVoi's payment infrastructure as tools any MCP client can call — Claude Desktop, Claude Code, Cursor, Windsurf, or any other MCP-compatible assistant.
Ships as two packages:
| Package | Install | Command |
|---|---|---|
| TypeScript | npm i -g @algovoi/mcp-server | npx -y @algovoi/mcp-server |
| Python | pip install algovoi-mcp | uvx algovoi-mcp or algovoi-mcp |
Both packages now expose all 21 tools (13 Tier 1 + 8 Tier 2 standing-authority recurring tools, both shipped at v1.3.0). Pick whichever runtime your MCP client / deployment stack prefers — same surface, same JSON Schema definitions, same Pydantic-strict / extra-forbid validation.
Tools
Payment tools
| # | Tool | What it does |
|---|---|---|
| 1 | create_payment_link | Hosted-checkout URL for a given amount + chain |
| 2 | verify_payment | Verify a checkout token (optionally with a tx_id) |
| 3 | prepare_extension_payment | In-page wallet-flow params (Algorand / VOI) |
| 4 | verify_webhook | HMAC-SHA256 signature check for AlgoVoi webhooks |
| 5 | list_networks | Supported chains + asset IDs (offline, no API call) |
Protocol challenge tools
| # | Tool | What it does |
|---|---|---|
| 6 | generate_mpp_challenge | IETF MPP 402 WWW-Authenticate headers + challenge_id |
| 7 | verify_mpp_receipt | Verify an MPP on-chain receipt (direct indexer, no API call) |
| 8 | verify_x402_proof | Verify an x402 base64 payment proof (direct indexer) |
| 9 | generate_x402_challenge | x402 X-Payment-Required 402 headers + payload |
| 10 | generate_ap2_mandate | AP2 v0.1 PaymentMandate for AI agent payment flows |
| 11 | verify_ap2_payment | Verify an AP2 mandate payment receipt (direct indexer) |
A2A agent tools (new in v1.2.0)
| # | Tool | What it does |
|---|---|---|
| 12 | fetch_agent_card | GET {agent_url}/.well-known/agent.json — discover an A2A agent's capabilities and payment requirements before calling it |
| 13 | send_a2a_message | POST {agent_url}/message:send — call a payment-gated A2A v1.0 agent; returns the task result on 200, or challenge_headers on 402 so Claude can pay and retry |
A2A pay-and-call flow
1. fetch_agent_card("https://agent.example.com")
→ see agent costs $0.01, accepts MPP on Algorand
2. send_a2a_message(agent_url, "What is the price of ALGO?")
→ payment_required: true, challenge_headers: {WWW-Authenticate: ...}
3. generate_mpp_challenge(...) ← use tool #6
→ user pays on-chain
4. send_a2a_message(agent_url, text, payment_proof="<proof>")
→ task result returned
Supported networks: Algorand, VOI, Hedera, Stellar (USDC on all four + native ALGO/VOI/HBAR/XLM).
Tier 2 — Standing-authority recurring tools (new in v1.3.0 — both TS and Python)
Tier 2 is "customer signs ONCE, AlgoVoi auto-pulls per cycle" — the subscription / agent-bound spending pattern. Each chain uses its native authorisation primitive (no custom escrow contracts on the merchant side):
| # | Tool | What it does |
|---|---|---|
| 14 | create_recurring_authority | Open a new standing authority. Returns chain-specific customer_signing_payload for the customer's wallet to sign |
| 15 | get_authority | Read current state (status, cycles_pulled, cap_remaining, etc.) |
| 16 | list_authorities | List all authorities for this tenant; filter by status / subscription_id |
| 17 | confirm_authority | Mark active after on-chain landing (most flows skip this — webhook does it) |
| 18 | revoke_authority | Chain-side revocation (customer's wallet signs the revoke tx) |
| 19 | pause_authority | Off-chain pause (no chain action) |
| 20 | resume_authority | Off-chain resume |
| 21 | manual_pull | Tenant-initiated catch-up / proration pull |
Per-chain authorisation primitives
| Chain | Primitive |
|---|---|
| Algorand / VOI | SpendingCapVault (6-action atomic group) |
| Base / Tempo | ERC-20 approve (single tx) |
| Solana | SPL Token Approve + facilitator delegate |
| Hedera | HTS AccountAllowanceApproveTransaction |
| Stellar | Soroban auth_entry (smart-contract authorisation) |
Subscription flow
1. create_recurring_authority(subscription_id, chain, customer_wallet,
cap_amount_minor, cap_period_seconds,
per_cycle_amount_minor)
→ customer_signing_payload returned
2. Hand template to wallet (Pera / Defly / MetaMask / Phantom /
HashPack / Freighter / etc.)
→ customer signs the chain-native authorisation tx
3. confirm_authority(authority_id, on_chain_address)
→ status: 'pending' → 'active'
4. AlgoVoi cycle reaper auto-pulls per cap_period_seconds.
Each pull emits subscription.charged or subscription.payment_failed
webhooks (verify with verify_webhook).
5. Lifecycle: revoke_authority / pause_authority / resume_authority /
manual_pull as needed.
Per-chain wallet-side integration: see ../Recurr/<chain>/README.md for
each chain's customer-side flow.
Supported networks: all 14 (7 mainnets + 7 testnets) — Algorand, VOI, Base, Tempo, Solana, Hedera, Stellar.
Two ways to connect
Option A — AlgoVoi Cloud (recommended)
AlgoVoi Cloud is the control plane for all your integrations — WooCommerce, Zapier, n8n, and MCP all in one dashboard. Point ALGOVOI_API_BASE at https://cloud.algovoi.co.uk and your single algv_... API key covers every integration — no tenant ID or payout addresses needed (they're stored in the dashboard).
{
"mcpServers": {
"algovoi": {
"command": "npx",
"args": ["-y", "@algovoi/mcp-server"],
"env": {
"ALGOVOI_API_KEY": "algv_...",
"ALGOVOI_API_BASE": "https://cloud.algovoi.co.uk"
}
}
}
}
Every payment Claude creates appears in your Cloud dashboard alongside payments from every other platform. One place to see everything.
Sign up free at dash.algovoi.co.uk.
Option B — AlgoVoi direct
Connect straight to the AlgoVoi API with your algv_... key and tenant ID.
Both packages read the same env vars:
| Var | Required | Purpose |
|---|---|---|
ALGOVOI_API_KEY | ✅ | algv_... API key from the AlgoVoi dashboard |
ALGOVOI_TENANT_ID | ✅ | Tenant UUID from the AlgoVoi dashboard |
ALGOVOI_PAYOUT_ALGORAND | ✅* | Algorand payout wallet address |
ALGOVOI_PAYOUT_VOI | ✅* | VOI payout wallet address |
ALGOVOI_PAYOUT_HEDERA | ✅* | Hedera payout account (e.g. 0.0.123456) |
ALGOVOI_PAYOUT_STELLAR | ✅* | Stellar payout address (G...) |
ALGOVOI_PAYOUT_ADDRESS | — | Universal fallback if per-chain vars are not set |
ALGOVOI_WEBHOOK_SECRET | — | For verify_webhook |
ALGOVOI_API_BASE | — | Override the AlgoVoi API base URL (default: https://cloud.algovoi.co.uk) |
* At least one per-chain address (or ALGOVOI_PAYOUT_ADDRESS as fallback) is required.
Auth is env-var only. Secrets never pass through tool arguments — the MCP client never sees the API key.
Sign up at www.algovoi.co.uk to get your API key and tenant ID.
{
"mcpServers": {
"algovoi": {
"command": "npx",
"args": ["-y", "@algovoi/mcp-server"],
"env": {
"ALGOVOI_API_KEY": "algv_...",
"ALGOVOI_TENANT_ID": "...",
"ALGOVOI_PAYOUT_ALGORAND": "<your-algorand-address>",
"ALGOVOI_PAYOUT_VOI": "<your-voi-address>",
"ALGOVOI_PAYOUT_HEDERA": "0.0.<your-account>",
"ALGOVOI_PAYOUT_STELLAR": "G<your-stellar-address>"
}
}
}
}
For the Python package, swap "command": "uvx", "args": ["algovoi-mcp"].
Config file locations:
- Claude Desktop:
~/Library/Application Support/Claude/claude_desktop_config.json(macOS),%APPDATA%\Claude\claude_desktop_config.json(Windows) - Claude Code:
~/.claude.json - Cursor:
~/.cursor/mcp.json
Testing
# TypeScript unit tests (77/77)
cd typescript && npm test
# Python unit tests (85/85)
cd python && pytest
# Stdio integration smoke — boots both servers and confirms all 13 tools list
python smoke_stdio.py
Licensed under the Business Source License 1.1.
