hogswap-mcp
This server provides non-custodial tools for interacting with the HOGSWAP DEX aggregator on Algorand. It allows you to:
List payable assets (
list_payable_assets): see which assets are accepted as swap/payment inputs.Get DEX swap quotes (
get_quote): fetch aggregated quotes across all Algorand DEXs with exact in/out modes, optional sender fee discounts, and route leg capping.Build unsigned swap transactions (
build_swap): create unsigned transaction groups from a quote ID, ready for your wallet.Pay x402 invoices (
pay_x402_invoice): settle any Algorand-settled x402 invoice using up to four of your held assets via automatic router swaps – even if you don't hold the demanded asset. Returns unsigned groups to sign and submit.Self-register for an API key (
register_agent+verify_registration): obtain a HOGSWAP API key through an on-chain challenge/sign/verify process with zero human interaction.Manage credits: generate a credit top-up x402 offer (
get_credit_offer) and check your current balance (get_balance).Monitor assets: set, list, and delete server-side price/target watches (
set_watch,list_watches,delete_watch) for alerts.
All transaction-producing tools return unsigned groups – signing always happens in your own wallet, ensuring full non-custodial control. Free tools include list_payable_assets, get_quote, register_agent, and verify_registration; others require an API key. The server is also remotely accessible via MCP Streamable HTTP.
Allows interaction with the Algorand blockchain via HOGSWAP, providing tools for getting DEX-aggregated quotes, building unsigned swap transactions, and paying x402 invoices with any held assets.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@hogswap-mcpGet me a quote to swap 100 USDC to ALGO"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
hogswap-mcp
MCP server exposing HOGSWAP 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.
Building an app rather than an agent? Official SDKs:
hogswap-js-sdk (npm)
and 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)
npm install
HOGSWAP_API_KEY=hsk_... node src/index.mjs # key optionalClaude Code: claude mcp add hogswap -e HOGSWAP_API_KEY=hsk_... -- node <abs-path>/src/index.mjs
Env | Meaning |
| API base (default |
|
|
Related MCP server: inflow
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
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 # remoteBoth 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.
Available Tools
8 toolsbuild_swapBInspect
Unsigned transaction group for a get_quote quote_id. Sign every txn with your own wallet and submit as one group. NEVER pass mnemonics or private keys to any tool — signing happens in YOUR wallet tooling, never on this server.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | hsk_ API key override; omit to use the HOGSWAP_API_KEY env config | |
| quote_id | Yes | ||
| user_address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of disclosure. It discloses a key behavioral trait: the output is unsigned and signing happens client-side, never on the server. However, it does not mention potential errors, return format, or other side effects, leaving gaps in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, with exactly two sentences: one stating the core purpose and one delivering a critical security warning. Every word earns its place, and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and no annotations, the description is too sparse. It explains what the tool does and mentions signing, but does not describe the return value structure, any prerequisites (e.g., how to obtain a quote), or possible failure modes. This is insufficient for an agent to fully understand the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), and the description only clarifies the role of quote_id (from get_quote). It does not explain user_address or api_key beyond what the schema provides, nor does it compensate for the lack of documentation on the two required parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as generating an unsigned transaction group for a given get_quote quote_id, distinguishing it from sibling tools like get_quote or pay_x402_invoice. However, it lacks an explicit verb like 'build' or 'create', making the action slightly implicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives implicit usage context (use after obtaining a quote) and provides clear instructions on signing and submitting the group. It does not explicitly state when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balanceBInspect
Current HOGSWAP credit balance for your API key.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | hsk_ API key override; omit to use the HOGSWAP_API_KEY env config |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. The phrase 'Current balance' implies a read-only operation, but it does not explicitly state that it has no side effects, nor does it mention api key validity or error behavior. It provides minimal but acceptable transparency for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It conveys the essential information efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple balance-check tool with one optional parameter and no output schema, the description is adequate. It identifies the resource (credit balance) and the scope (API key). It could mention the return format, but that is not critical for a straightforward getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter (api_key) with a description, and the tool description's reference to 'your API key' is redundant with the schema. With 100% schema coverage, the baseline of 3 applies, and the description adds no extra semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the current HOGSWAP credit balance for the API key, which is a specific resource and action. It is implicit that this is a retrieval operation, and it is distinct from siblings like get_quote or build_swap, though it doesn't explicitly name alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusion criteria. It is a bare statement of functionality without usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_credit_offerAInspect
Create a credit top-up and get the x402 offer (HTTP 402 IS the payment instruction, not an error). accepts[0] is a plain USDC transfer invoice — feed it straight into pay_x402_invoice (keep the note!) to pay with any asset. Credits land ~1 block after the payment confirms.
| Name | Required | Description | Default |
|---|---|---|---|
| api_key | No | hsk_ API key override; omit to use the HOGSWAP_API_KEY env config | |
| usdc_micro | Yes | top-up size in µUSDC (1 USDC = 1,000,000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the transparency burden. It discloses the non-obvious HTTP 402 behavior, describes that accepts[0] is an invoice, instructs to keep the note, and explains credit settlement timing (~1 block after payment). This is rich, useful behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the main action, then provide critical behavioral details. Every sentence adds value with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description explains the key response elements (accepts[0], the note), the unusual HTTP 402 semantics, and the post-payment timeline. It gives the agent enough to successfully invoke the tool and understand what to do with the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters (api_key and usdc_micro) are already described in the schema. The description does not add additional parameter-level detail beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: 'Create a credit top-up and get the x402 offer'. It clearly distinguishes this tool from siblings like get_quote or build_swap by focusing on the credit top-up and offer process.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clearly indicates the tool is used to create a top-up and obtain an offer, then directs the agent to feed the result into pay_x402_invoice. It gives clear context, though it does not explicitly mention alternatives or exclusions compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quoteAInspect
HOGSWAP swap quote across every Algorand DEX. Give amount (exact input) OR amount_out (exact output — minimum input is solved). Amounts are base units (µ); asset 0 = ALGO. Returns expected_out, route legs, and a quote_id for build_swap.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | No | exact input, base units | |
| sender | No | optional wallet address for sender-aware fee discounts | |
| asset_in | Yes | input asset id (0 = ALGO) | |
| asset_out | Yes | output asset id | |
| amount_out | No | exact output, base units (exact-out mode) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description must disclose behavioral details, and it does: amounts are in base units (µ), asset 0 = ALGO, and the two modes are exact-in or exact-out with minimum input solved. It stops short of stating side-effect freedom or error cases, but for a quote tool this is a solid disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only three sentences, each with a distinct purpose: scope, input modes, and output. It is front-loaded with the tool's main purpose and contains no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately covers the return values (expected_out, route legs, quote_id) and the core usage modes. It doesn't explicitly state that exactly one of amount/amount_out is required, but the 'OR' and examples imply it. For a routing quote tool of moderate complexity, this is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond schema by clarifying that amount and amount_out are alternative modes ('Give amount OR amount_out'), explaining base units, and linking the quote_id to build_swap. This exceeds the schema's per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a HOGSWAP swap quote across every Algorand DEX, with a specific verb ('get quote') and scope. It distinguishes itself from siblings like build_swap by mentioning it returns a quote_id for later swap execution, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains the two usage modes: exact input (amount) and exact output (amount_out), and notes that exact-out solves for minimum input. It connects to the downstream sibling build_swap via quote_id, providing clear context. It doesn't explicitly name alternatives or exclusions, but the mode selection and downstream linkage are strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_payable_assetsAInspect
Assets accepted as payment inputs for pay_x402_invoice and credit top-ups (price-confidence gated; ALGO and USDC always included). Asset metadata is on get_quote responses or GET /assets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the dynamic nature of the list ('price-confidence gated') and guarantees certain entries ('ALGO and USDC always included'). It also prevents false expectations by clarifying that metadata is not part of this response. It does not explicitly state read-only behavior, but the verb 'list' implicitly conveys this.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, about 35 words, and immediately front-loads the core purpose. The second sentence adds valuable cross-reference for metadata without redundancy. Every word earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-argument list tool, this description is complete: it states what the list includes, the gating behavior, the guaranteed entries, and where to retrieve metadata if needed. There is no output schema, but the description compensates by clarifying the nature of the response. The agent can confidently select and invoke this tool with no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the input schema is vacuous. Per the rubric, 0 params receives a baseline score of 4. The description adds context about what the returned list represents, but no parameter-specific guidance is needed. It appropriately references where to find metadata, which helps the agent understand the tool's output semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the resource and scope: 'Assets accepted as payment inputs for pay_x402_invoice and credit top-ups.' This uses a specific verb (implicitly 'list') and distinguishes it from siblings such as get_balance or get_quote. The qualifiers 'price-confidence gated' and 'ALGO and USDC always included' further specify the exact set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: to discover which assets are accepted for specific payment flows. It also provides a clear pointer for when not to use it: 'Asset metadata is on get_quote responses or GET /assets.' However, it does not explicitly name alternative tools for the same listing purpose or state 'use this when...' explicitly, so it falls short of a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pay_x402_invoiceAInspect
Pay ANY Algorand-settled x402 invoice with any 1-4 routable assets you hold, even if you hold none of the demanded asset. Pass the accepts entry you picked from the 402 response as invoice, plus your inputs (single input with no amount = minimum is solved for you). Returns UNSIGNED groups — sign everything in one pass, then submit the groups IN ORDER (swap first; its on-chain floor guarantees the payment is funded; if you already hold the demanded asset it is a single direct payment). Works for HOGSWAP credit top-up offers too: feed accepts[0] of the 402 straight in. EVM-settled invoices are not supported (no bridge). NEVER pass mnemonics or private keys to any tool — signing happens in YOUR wallet tooling, never on this server.
| Name | Required | Description | Default |
|---|---|---|---|
| inputs | Yes | ||
| api_key | No | hsk_ API key override; omit to use the HOGSWAP_API_KEY env config | |
| invoice | Yes | ||
| user_address | Yes | YOUR address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully carries the behavioral disclosure burden. It reveals return format ('Returns UNSIGNED groups'), execution order ('sign everything in one pass, then submit the groups IN ORDER'), special handling ('if you already hold the demanded asset it is a single direct payment'), and a critical security warning ('NEVER pass mnemonics or private keys to any tool'). This is exceptionally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place, covering purpose, usage, behavioral details, limitations, and security in a compact paragraph. It is front-loaded with the core action and structured logically from what to pass to what to expect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (nested invoice and inputs objects, no output schema), the description covers return behavior, signing and submission order, special cases (HOGSWAP top-ups, holding no demanded asset), and constraints (max 4 inputs, EVM not supported). It is complete enough for an agent to invoke correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema: it explains that `invoice` is the accepts entry from the 402 response, that a single `input` with no amount solves the minimum, that `inputs` can be any routable assets you hold even if not the demanded one, and that `api_key` is an override. With only 50% schema coverage, this fully compensates.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Pay ANY Algorand-settled x402 invoice with any 1-4 routable assets you hold' – a specific verb, resource, and scope that clearly distinguishes it from siblings like get_quote or build_swap. It also states what it does not do ('EVM-settled invoices are not supported'), further differentiating it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit context: 'Pass the accepts entry you picked from the 402 response as invoice' and notes it works for HOGSWAP top-ups. It gives an exclusion for EVM invoices but doesn't explicitly name alternative tools for when not to use this one, leaving a slight gap in direct sibling comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
register_agentAInspect
Self-service HOGSWAP API key, step 1 of 2 — zero human, zero email. Returns a challenge string; sign its exact bytes with the Algorand address's key IN YOUR OWN wallet tooling, then call verify_registration. NEVER pass mnemonics or private keys to any tool — signing happens in YOUR wallet tooling, never on this server.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Algorand address to bind the key to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully carries the behavioral disclosure burden. It explains the two-step challenge-response flow, that signing occurs off-server, and includes a critical security warning about secret handling—going well beyond the minimal schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with its purpose and is largely concise, but the final sentence partially restates the 'own wallet tooling' point from the second sentence, creating minor redundancy that prevents a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even without an output schema, the description explains the return value (challenge string), the required next step (verify_registration), and security boundaries, fully covering the tool's context given its simple one-parameter design.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already fully describes the address parameter (100% coverage). The description adds that the address's key is used for signing, reinforcing its purpose and binding semantics, though this is only marginally adds to the schema's 'bind the key to' phrasing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this is the first step of self-service HOGSWAP API key registration ('step 1 of 2', 'Returns a challenge string'), distinguishing it from the sibling verify_registration and making the tool's exact function unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit workflow guidance: sign the challenge 'IN YOUR OWN wallet tooling' then 'call verify_registration', and explicitly warns against passing mnemonics/private keys, giving clear when-to-use and when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_registrationAInspect
Self-service key issuance, step 2 of 2. Returns your hsk_ API key ONCE — store it yourself (e.g. set HOGSWAP_API_KEY); it is not recoverable and this server does not keep it.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | ||
| challenge | Yes | ||
| signature_b64 | Yes | base64 ed25519 signature over the exact challenge bytes (algosdk util.sign_bytes) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It explicitly discloses that the key is returned only once, is not recoverable, and is not stored by the server—critical behavior that prevents misuse or false expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the purpose and immediately delivers essential warnings about key retrievability, making every word earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description focuses on output behavior (one-time key, not recoverable) but ignores input requirements—what the address, challenge, and signature_b64 are and how to obtain them. Without an output schema or annotations, this leaves significant gaps for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only signature_b64 is described). The description text adds no meaning for the address or challenge parameters, failing to compensate for the low coverage and leaving users guessing about what these inputs are.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states this is step 2 of self-service key issuance and that it returns the hsk_ API key, giving a specific verb and resource. It distinguishes itself from sibling tools by its role as the final key-return step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides useful context by labeling the tool as 'step 2 of 2,' implying it follows a prior step, and warns that the key is shown only once. However, it does not explicitly name when to use this vs. alternatives or state prerequisites like needing a challenge from step 1.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
8 tool updates
v0.1.3- First observed
build_swap - First observed
get_balance - First observed
get_credit_offer - First observed
get_quote - First observed
list_payable_assets - First observed
pay_x402_invoice - First observed
register_agent - First observed
verify_registration
TDQS
Each tool targets a distinct action in the HOGSWAP workflow: listing assets, checking balance, getting quotes, building swaps, paying invoices, registering, verifying, and creating credit offers. The sequential dependencies (quote -> build -> pay; register -> verify) are clear, and no two tools appear to duplicate functionality.
All tool names follow a consistent verb_noun snake_case pattern: list_, get_, build_, pay_, register_, verify_. There is a minor mix of 'list' vs 'get' for retrieval operations, but it is semantically appropriate (listing a collection vs fetching a specific balance/quote), and the overall convention is uniform.
With 8 tools, the server is well-scoped for its purpose—covering authentication, asset discovery, quoting, swap construction, invoice payment, balance checking, and credit top-ups. Each tool earns its place, and the count sits comfortably within the ideal 3-15 range.
The tool surface fully covers the core lifecycle: registration (register_agent + verify_registration), credit management (get_balance, get_credit_offer, pay_x402_invoice), and swap execution (list_payable_assets, get_quote, build_swap). Transaction submission is intentionally external for security, so there are no dead ends in the workflow.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Non-custodial cross-chain crypto swap MCP — 1288+ assets, no KYC. Solana/EVM/Monero, RPC, oracle.
Multichain DEX router: free MCP tools for swap-quote prices, chains, catalog; paid via x402.
MCP server for Boson Protocol — on-chain agentic commerce for physical & digital goods.
MCP server with quote and live cryptocurrency price tools, local and cloud-deployed transports.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server providing cross-chain swaps between Solana and Base for AI agents paid for via x402 micropayments.3382MIT
- AlicenseNot gradedqualityBmaintenanceMCP server for agent-native and human-accessible payments using MPP and x402 protocols, enabling payment flows from CLI or agent hosts.10MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server for agentic commerce, enabling AI agents to discover services, make x402 payments with USDC across multiple chains, and manage crypto wallets and token swaps.3551MIT
- AlicenseAqualityCmaintenanceMCP server for non-custodial token swaps and honeypot/rug-pull safety checks across 8 blockchains, with free quotes and paid x402-based transaction builds and security screenings.6251MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/LiquiHog/hogswap-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server