# hogswap-mcp

**Category:** 💰 Finance & Fintech  
**Repository:** https://github.com/LiquiHog/hogswap-mcp  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/hogswap-mcp

## Description
Pay any Algorand x402 invoice with any asset, plus DEX swap quotes and unsigned builds.

## Claude Desktop Quick Installation
Heuristic fallback — verify the package name and runner against the repository README before running it. Uses `npx` (confidence: low):

```json
"mcpServers": {
  "hogswap-mcp": {
    "command": "npx",
    "args": ["-y","hogswap-mcp"]
  }
}
```

## Documentation & 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.

