io.github.LiquiHog/hogswap-mcp
Pay any Algorand x402 invoice with any asset, plus DEX swap quotes and unsigned builds.
Open source Repository Open in the app JSON README (API)
About
Pay any Algorand x402 invoice with any asset, plus DEX swap quotes and unsigned builds.
Details
- Kind
- MCP servers
- Topic
- Finance & crypto
- Publisher
- liquihog
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.4.0
- Last push
- 2026-08-11T10:03:43Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 03:02:01
- Updated
- 2026-08-29 03:02:01
- Origin id
io.github.LiquiHog/hogswap-mcp
README
# hogswap-mcp MCP server exposing [HOGSWAP](https://hogswap-v1.liquihog.dev) to AI agents: DEX-aggregated quotes, unsigned swap builds, zero-human API-key self-registration, and the star — **`pay_x402_invoice`**: pay any Algorand-settled x402 invoice with any 1–4 assets you hold, via an exact-out router swap. API reference: [hogswap-v1.liquihog.dev/reference](https://hogswap-v1.liquihog.dev/reference). Building an app rather than an agent? Official SDKs: [`hogswap-js-sdk`](https://github.com/LiquiHog/hogswap-js-sdk) (npm) and [`hogswap-py-sdk`](https://github.com/LiquiHog/hogswap-py-sdk) (PyPI). Strictly non-custodial: every transaction-producing tool returns **unsigned** groups; you sign with your own wallet tooling and submit yourself. Never give any tool a mnemonic or private key. ## Run (stdio) ```sh npm install HOGSWAP_API_KEY=hsk_... node src/index.mjs # key optional ``` Claude Code: `claude mcp add hogswap -e HOGSWAP_API_KEY=hsk_... -- node <abs-path>/src/index.mjs` | Env | Meaning | |---|---| | `HOGSWAP_API_URL` | API base (default `https://hogswap-v1.liquihog.dev`) | | `HOGSWAP_API_KEY` | `hsk_` bearer key; self-issue via the `register_agent` / `verify_registration` tools | ## Tools Free (no key): `list_payable_assets`, `get_quote`, `register_agent`, `verify_registration`. `get_quote` takes optional `max_legs` (1–16) to cap total route legs, splits included — for replaying the route under your own resource budget. 🔑 Require a HOGSWAP API key (set `HOGSWAP_API_KEY`, or self-issue one with `register_agent` → sign → `verify_registration`): `build_swap`, `pay_x402_invoice`, `get_credit_offer`, `get_balance`, plus the watch tools `set_watch` / `list_watches` / `delete_watch` (standing server-side price/target alerts — free of charge, but namespaced by key). Without a key these return an auth error, not a build. Watch fires are numbers-only hints — re-quote with `get_quote` when one fires. From MCP, poll `list_watches`; outside MCP the server pushes events over SSE at `GET /watches/stream`. `pay_x402_invoice` returns two groups (swap, then payment) — sign all txns in one pass, submit the groups in order; the swap's on-chain floor guarantees the payment is funded. A HOGSWAP credit top-up's 402 offer is itself an x402 invoice: feed its `accepts[0]` (with the `note` nonce) straight into `pay_x402_invoice` to buy credits with any asset. ## Remote (no local process) The same 12 tools are served over MCP Streamable HTTP at `https://hogswap-v1.liquihog.dev/mcp/` — hosted by the HOGSWAP API itself, no local process needed. **Use the trailing slash** — the bare `/mcp` 307-redirects to `/mcp/`, costing an extra round trip per call. Point any remote-capable MCP client at it; pass your key as `Authorization: Bearer hsk_...` (the Claude API connector's `authorization_token` does exactly this). ## Smoke tests ```sh HOGSWAP_API_KEY=hsk_... \ SMOKE_PAY_TO=<any USDC-opted addr> node test/smoke.mjs # stdio HOGSWAP_API_KEY=hsk_... \ SMOKE_PAY_TO=<any USDC-opted addr> node test/smoke-remote.mjs # remote ``` Both default to the live API; set `HOGSWAP_API_URL` (stdio) or `MCP_URL` (remote) to point them at another instance. Read-only + build-only; nothing is signed or broadcast.