# @ironwallet/mcp-server

Non-custodial IronWallet MCP: local signing, balances, transfers, and swaps.

- **Type:** MCP server
- **Trust:** 65/100 (B), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 1.1.0
- **Author:** io.ironwallet
- **License:** MIT
- **npm:** @ironwallet/mcp-server
- **Source:** https://github.com/ironwallet/ironwallet-agent-kit
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

65/100 (B), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: suspicious script found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** warnings
- **Scanned:** 2026-08-29T09:00:13.448Z
- **Version scanned:** 1.1.0
- **CVEs:** none found by OSV at scan time
**Findings**
- injection-shaped content (warning) in the `send_transfer` tool: Exfiltration-shaped instruction

## Tools

15 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `list_wallets` — List the wallets in the local keystore with their addresses per network. Each wallet includes policy ({ enabled: false } when unset). Never returns private keys
- `accept_mcp_consent` — Record that the user accepted the MCP risk disclaimer in chat. Call only after showing the full consent text (from a previous create_wallets needs_consent respo
- `create_wallets` — Generate one or more brand-new wallets (BIP-39). Requires a current MCP consent (accept_mcp_consent in chat, or the local wallet manager). Returns names and add
- `open_wallet_manager` — Open a local browser form to add/import/create wallets or back them up (reveal the recovery phrase). Returns a localhost URL for the user to open. Seed phrases 
- `set_wallet_policy`
- `get_deposit_qr` — PNG QR to receive funds (generated on the fly; IW mark, address under the code). Pass network for one chain; omit it for one QR per unique address. Does not mov
- `get_balance` — Get the balance for a wallet on a network. Optionally pass a token contract address; omit for the native coin.
- `estimate_transfer` — Estimate fees for a transfer without sending. Returns fees and the number of transactions that would be signed.
- `send_transfer` — Send a transfer: sign locally with the wallet's key and broadcast via the IronWallet forward relay (estimate -> sign -> forward) for EVM, Tron, Bitcoin, Litecoi
- `get_operation_status` — Poll the state of a forward operation by its operation id.
- `list_swap_networks` — List networks available for swaps. Use before listing swap assets.
- `list_swap_assets` — List tradable assets. direction=from lists sell assets; direction=to requires fromNetwork/fromSymbol (and fromAddress for tokens) and lists buy assets. Enriches
- `estimate_swap` — Get a swap quote (amounts, fees, operationId). Quote can expire — prefer execute_swap for sending (it re-estimates). Amount is a decimal string; set maxMode=tru
- `execute_swap` — Execute a swap: fresh estimate → create → local sign → execute. Does NOT use the transfer relay. Irreversible once submitted — no second confirmation. Returns o
- `get_swap_status` — Poll swap order/operation status by operationId.

## Install

**Verdict: do-not-install** — Do not install: 1 injection-shaped pattern found in this entry's own text — it may try to steer the model that loads it.
**Blocking**
- 1 injection-shaped pattern found in this entry's own text — it may try to steer the model that loads it. — tool:send_transfer: Exfiltration-shaped instruction
**Client configuration withheld.** Client configs are withheld because this entry has a blocking finding. Show the warnings below to the person installing it.
If they have seen the findings and still want to proceed, request the plan again with acknowledge_warnings=true.

## Blast radius

Contained to moderate — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs on your machine; read-only tool surface.
- Floor 13, ceiling 31 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40ironwallet%2Fmcp-server
- Install plan: https://forgeregistry.com/api/v1/packages/%40ironwallet%2Fmcp-server/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40ironwallet%2Fmcp-server
- HTML page: https://forgeregistry.com/registry/%40ironwallet%2Fmcp-server
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
