# Fuse Network

> MCP server for Fuse Network: balances, tokens, staking, DeFi data, swaps and on-chain transactions.

- name: io.fuse/mcp
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 76/100 flags: no-repository
- quality: 73/100 (needs work)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.fuse%2Fmcp
- tools: https://api.protogrid.dev/v1/servers/io.fuse%2Fmcp/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "fuse": {
      "type": "http",
      "url": "https://mcp.fuse.io/mcp"
    }
  }
}
```


## Trust

- hygiene: 80
- liveness: 100
- freshness: 65
- provenance: 55
- drivers: +dns-namespace +website +reachable +uptime-100% ~updated-114d-ago -no-repository
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 73/100 (needs work)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 71 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- fail `tools.annotations`: no tool declares readOnlyHint or destructiveHint, so clients cannot tell safe calls from risky ones
- fail `tools.directory_hints`: no tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: fuse_read_contract (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); fuse_list_wallet_tokens (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); fuse_list_wallet_nfts (readOnlyHint, destructiveHint, idempotentHint, openWorldHint); …
- pass `tools.token_cost`: about 7,092 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump

### stability: 75 (weight 15)

- warn `stability.changes`: 300 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 50, about 7,092 tokens to load them all
- tool set hash: 735e8179dc7a2338f2d2b95279628dff
- tools last changed: 2026-10-20T05:21:33.529Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.fuse/mcp.svg)](https://protogrid.dev/servers/io.fuse/mcp)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-20 `fuse_smart_unstake_token` added
  - Submits an ERC-4337 UserOperation that unstakes a token via Fuse's staking module.
- 2026-10-20 `fuse_smart_stake_token` added
  - Submits an ERC-4337 UserOperation that stakes a token using Fuse's staking module. List options first with `fuse_get_staking_options`.
- 2026-10-20 `fuse_smart_swap_tokens` added
  - Submits an ERC-4337 UserOperation executing a swap on Fuse via the Fusebox trade engine. Quote a swap first with `fuse_get_trade_quote` to preview the route.
- 2026-10-20 `fuse_smart_execute_batch` added
  - Submits a single ERC-4337 UserOperation that executes a sequence of contract calls atomically. Failed sub-calls revert the whole batch.
- 2026-10-20 `fuse_smart_call_contract` added
  - Submits an ERC-4337 UserOperation invoking arbitrary calldata on a contract from the configured smart wallet. Use when you need full control over the encoded call.
- 2026-10-20 `fuse_smart_approve_and_call` added
  - Atomically approves a token and invokes a follow-up call on the spender from the configured smart wallet. Common DeFi pattern.
- 2026-10-20 `fuse_smart_approve_nft` added
  - Submits an ERC-4337 UserOperation calling `approve(spender, tokenId)` on an NFT contract from the configured smart wallet.
- 2026-10-20 `fuse_smart_approve_token` added
  - Submits an ERC-4337 UserOperation calling `ERC20.approve(spender, amount)` from the configured smart wallet.
- 2026-10-20 `fuse_smart_transfer_nft` added
  - Submits an ERC-4337 UserOperation transferring an NFT (ERC-721 / ERC-1155) from the configured smart wallet to a recipient.
- 2026-10-20 `fuse_smart_transfer_token` added
  - Submits an ERC-4337 UserOperation transferring a token (native FUSE or ERC-20) from the configured smart wallet. Gasless when `FUSE_USE_PAYMASTER=true`.

Full history: https://api.protogrid.dev/v1/servers/io.fuse%2Fmcp/changes

## Remotes

- https://mcp.fuse.io/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (50)

- `fuse_deploy_contract`: Signs and submits a contract-deployment transaction using the server's signer. Returns the transaction hash, and the deployed contract address when `waitForReceipt: true`.
- `fuse_explorer_query`: Generic dispatcher for the Fusebox Explorer API (`/api/v0/explorer/`). Pass `module` + `action` + any additional query params. Covers all 40+ etherscan-compatible endpoints including balances, logs, transactions, contract ABI/source, and the five contract-verify POST routes.
- `fuse_get_account_abstraction_info`: Reads ERC-4337 state for a smart account on Fuse: deployment status, EntryPoint nonce, and the account's deposit balance at the EntryPoint. Paymaster eligibility is not evaluated in v0.1.
- `fuse_get_balance`: Returns the native FUSE balance for an address, or an ERC-20 token balance when `tokenAddress` is supplied.
- `fuse_get_gas_price`: Returns the current Fuse network gas price (in wei and gwei) along with EIP-1559 fee suggestions when available.
- `fuse_get_receipt`: Fetches the receipt for a mined transaction (status, gasUsed, logs). Returns null if the transaction is pending or unknown.
- `fuse_get_signer_address`: Returns the EOA address controlled by the server's configured `FUSE_PRIVATE_KEY`. Use this before any write tool to confirm which account will pay gas and send transactions.
- `fuse_get_staked_tokens`: Returns the active staking positions for a wallet — staked amount, USD value, earned rewards, and APR per position. Powered by the Fusebox SDK StakingModule.
- `fuse_get_staking_options`: Lists every staking option supported by Fuse — token, APR, TVL, expiry, and the matching unstake token. Powered by the Fusebox SDK StakingModule.
- `fuse_get_token_metadata`: Reads name, symbol, decimals, and totalSupply for an ERC-20 token deployed on Fuse.
- `fuse_get_token_price`: Returns the current USD price for an ERC-20 token tracked by Fusebox. Powered by the Fusebox SDK TradeModule.
- `fuse_get_token_price_change`: Returns the 24-hour percentage price change for an ERC-20 token tracked by Fusebox. Powered by the Fusebox SDK TradeModule.
- `fuse_get_token_price_history`: Returns OHLC / interval price stats for an ERC-20 token over a week, month, or year. Powered by the Fusebox SDK TradeModule.
- `fuse_get_trade_quote`: Quotes a token swap on Fuse — expected output amount, route, and price impact. Read-only: returns the quote without submitting a trade. Powered by the Fusebox SDK TradeModule.
- `fuse_get_transaction`: Fetches a transaction by hash. Returns null if the transaction is not found.
- `fuse_get_user_operations`: Returns the ERC-4337 UserOperation history for a smart account on Fuse, indexed via the Fusebox GraphQL service. Powered by the Fusebox SDK GraphQLModule.
- `fuse_list_supported_tokens`: Returns the catalogue of ERC-20 tokens tracked by Fusebox (tradable, indexed, priced). Powered by the Fusebox SDK TradeModule.
- `fuse_list_wallet_nfts`: Lists all NFTs (ERC-721 / ERC-1155 collectibles) owned by a wallet on Fuse. Powered by the Fusebox SDK BalancesModule.
- `fuse_list_wallet_tokens`: Lists all ERC-20 tokens held by a wallet on Fuse, enriched with Fusebox metadata (symbol, decimals, USD value). Powered by the Fusebox SDK BalancesModule.
- `fuse_notification_add_addresses`: Add one or more EVM addresses to a webhook's listening scope. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_notification_create_webhook`: Create a Fusebox Notification webhook for a project. Requires `FUSEBOX_SECRET_API_KEY` (Notification API endpoints authenticate with both apiKey and API-SECRET).
- `fuse_notification_delete_webhook`: Permanently delete a Fusebox Notification webhook. Destructive — the webhook stops receiving events. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_notification_get_webhook`: Retrieve details of a single Fusebox Notification webhook. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_notification_list_addresses`: List every EVM address monitored by a given webhook. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_notification_list_project_webhooks`: List every Fusebox Notification webhook configured for a given project. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_notification_remove_addresses`: Remove EVM addresses from a webhook's listening scope. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_notification_update_webhook`: Update a Fusebox Notification webhook's URL or event type. Requires `FUSEBOX_SECRET_API_KEY`.
- `fuse_read_contract`: Calls a view/pure function on a Fuse contract. ABI is auto-fetched from the verified Fuse explorer when not supplied.
- `fuse_resolve_ens`: Resolves an ENS name to its EVM address. ENS is not deployed on Fuse — resolution requires `ENS_RPC_URL` to be configured (typically pointing at Ethereum mainnet). Plain hex addresses are passed through.
- `fuse_send_erc20`: Submits a signed `ERC20.transfer(to, amount)` from the server's signer. Decimals are auto-fetched from the token; use `unit: "base"` to skip scaling.
- `fuse_send_native`: Submits a signed transaction transferring native FUSE from the server's signer to a recipient. Returns the transaction hash; use `fuse_get_receipt` to confirm inclusion.
- `fuse_sign_message`: Signs a message with the server's signer using EIP-191 (`personal_sign`). Returns the 65-byte signature as hex. No on-chain transaction is submitted.
- `fuse_sign_typed_data`: Signs a structured EIP-712 payload with the server's signer. Returns the 65-byte signature as hex. No on-chain transaction is submitted.
- `fuse_smart_approve_and_call`: Atomically approves a token and invokes a follow-up call on the spender from the configured smart wallet. Common DeFi pattern.
- `fuse_smart_approve_nft`: Submits an ERC-4337 UserOperation calling `approve(spender, tokenId)` on an NFT contract from the configured smart wallet.
- `fuse_smart_approve_token`: Submits an ERC-4337 UserOperation calling `ERC20.approve(spender, amount)` from the configured smart wallet.
- `fuse_smart_call_contract`: Submits an ERC-4337 UserOperation invoking arbitrary calldata on a contract from the configured smart wallet. Use when you need full control over the encoded call.
- `fuse_smart_execute_batch`: Submits a single ERC-4337 UserOperation that executes a sequence of contract calls atomically. Failed sub-calls revert the whole batch.
- `fuse_smart_get_info`: Returns the ERC-4337 smart-wallet address derived from the configured signer, plus whether the Fuse paymaster (gasless mode) is enabled.
- `fuse_smart_stake_token`: Submits an ERC-4337 UserOperation that stakes a token using Fuse's staking module. List options first with `fuse_get_staking_options`.
- `fuse_smart_swap_tokens`: Submits an ERC-4337 UserOperation executing a swap on Fuse via the Fusebox trade engine. Quote a swap first with `fuse_get_trade_quote` to preview the route.
- `fuse_smart_transfer_nft`: Submits an ERC-4337 UserOperation transferring an NFT (ERC-721 / ERC-1155) from the configured smart wallet to a recipient.
- `fuse_smart_transfer_token`: Submits an ERC-4337 UserOperation transferring a token (native FUSE or ERC-20) from the configured smart wallet. Gasless when `FUSE_USE_PAYMASTER=true`.
- `fuse_smart_unstake_token`: Submits an ERC-4337 UserOperation that unstakes a token via Fuse's staking module.
- `fuse_smart_wallet_authenticate`: Exchange an EIP-191 signature for a JWT used as Bearer auth on Smart Wallet API calls (e.g. `fuse_smart_wallet_get_actions`). Signing happens client-side; this tool only submits the signed payload.
- `fuse_smart_wallet_get_actions`: List the paginated action history (transfers, contract calls) of an authenticated smart wallet. The JWT comes from `fuse_smart_wallet_authenticate`.
- `fuse_trade_indicative_price`: Returns an indicative price + route for a swap on Fuse (0x-style response). One of `sellAmount` / `buyAmount` must be provided.
- `fuse_trade_liquidity_sources`: Returns the liquidity sources currently enabled for Fuse-chain trades (e.g. voltage.finance, sub-pools).
- `fuse_trade_price_change_over_duration`: Returns a token's price change over a custom day-count window (`{ priceChange, currentPrice, previousPrice }`).
- `fuse_write_contract`: Signs and submits a state-mutating contract call from the server's signer. ABI is auto-fetched from the Fuse explorer when not supplied. Returns the transaction hash.
