fibx
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIBX_SESSION_SECRET | No | Encryption key for session storage in CI/Docker environments |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
fibx is a multi-chain EVM DeFi toolkit for Base, HyperEVM, and Monad. You can:
Open the FibX app (open_fibx) — wallet, balances, signing policy and a swap form with the Fibrous route, rendered as MCP Apps UI where the host supports it
Get price quotes without authentication (get_quote — no wallet needed)
Check auth status and configure custom RPC URLs per chain
Query native and ERC-20 token balances on any supported chain
View cross-chain portfolio with USD values and Aave V3 DeFi positions
Execute token swaps via Fibrous DEX aggregator with optimal routing
Send native and ERC-20 tokens across chains
Supply, borrow, repay, withdraw on Aave V3 (Base only)
Monitor Aave V3 health factors and market rates (APY, TVL, LTV)
RULES:
For anything about the wallet, a balance, a quote or a swap, call open_fibx FIRST — before get_auth_status, get_balance, get_policy or get_quote. One call returns all of them in one snapshot, and in a host that renders MCP Apps UI it shows the user the FibX app, where they press Simulate and Swap themselves. It executes nothing, so call it even when you would decline to execute a swap yourself. Pass from/to/amount to open it pre-filled. Use the single-value tools below only for something the snapshot does not carry, or after the user has asked you to act headlessly.
get_quote, get_tx_status, get_aave_markets, list_tokens and open_fibx do NOT require authentication; use get_quote when you need only a price.
Before a transactional tool you call yourself (swap_tokens, send_tokens, aave_action), read the session from open_fibx's auth field or get_auth_status; do not call get_connect_status without a pairingId from connect_wallet.
For swaps, swap_tokens handles approvals and wrap/unwrap automatically.
Aave V3 is ONLY available on Base — do NOT attempt Aave operations on other chains.
Use "max" as amount for full repay/withdraw on Aave.
Config tool manages custom RPC URLs to avoid rate limits.
All write tools are destructive — confirm with the user before executing.
Use simulate=true on transactional tools for a no-broadcast preview; gas estimates are returned only where available.
Always call get_aave_markets before Aave supply/borrow operations.
get_portfolio provides cross-chain overview including DeFi positions.
A local signing policy may refuse a transaction regardless of which tool sent it — get_policy explains what is set, and a refusal names the rule that blocked it.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_auth_statusA | Check authentication status and Fibrous API health. open_fibx already returns this as its auth field; call this on its own only when you need the session state and nothing else, or before a transactional tool you are calling yourself. |
| config_actionA | View and modify fibx RPC configuration. Use 'set-rpc' to set a custom RPC URL for a chain (helps avoid rate limits), 'get-rpc' to view the current RPC for a chain, 'reset-rpc' to reset a chain's RPC to default (omit chain to reset all), or 'list' to show all custom RPC settings. |
| connect_walletA | Start a WalletConnect pairing so the user can sign with their own wallet (MetaMask, Rabby, Rainbow, Phantom). Returns a URI and a QR image immediately — show the QR to the user, then poll get_connect_status until it reports connected. |
| get_connect_statusA | Poll a pairing started by connect_wallet. Returns pending, connected, failed, or unknown. |
| logoutA | Log out: end any WalletConnect pairing and clear the local session. The user will need to authenticate again before signing anything. |
| get_balanceA | Get native token and all ERC-20 token balances for the active wallet on a specific chain. Only returns tokens with non-zero balances. |
| send_tokensA | Send native tokens (ETH, cBTC, HYPE, MON) or ERC-20 tokens to a recipient address. If token is omitted, the chain's native token is used. Set simulate=true for a no-broadcast preview; a gas estimate is returned where available. |
| get_tx_statusA | Check the on-chain status and receipt of a transaction by its hash. Returns confirmation status, block number, gas used, and addresses. |
| get_portfolioA | Get a complete cross-chain portfolio overview with USD valuations for all token holdings across Base, HyperEVM, and Monad. Includes DeFi positions (Aave V3). Returns total net worth. |
| get_quoteA | Get a price quote for a token swap without authentication. Shows expected output amount, exchange rate, and route info. No wallet or session required — use this to check prices before committing to a swap. Supported chains: Base, HyperEVM, Monad. Returns both a readable summary and a |
| swap_tokensA | Swap tokens using Fibrous aggregator for optimal routing. Handles ERC-20 approvals and wrap/unwrap automatically. Supported chains: Base, HyperEVM, Monad. Set simulate=true for a no-broadcast preview; a gas estimate is returned where it can be calculated safely. |
| get_aave_statusA | Get Aave V3 position health on Base: health factor, total collateral, total debt, and available borrows in USD. |
| get_aave_marketsA | List all Aave V3 reserve markets on Base with supply/borrow APY, total supply, total borrow, and LTV. Always call this before Aave supply/borrow operations. No wallet required. |
| aave_actionA | Execute an Aave V3 action on Base: supply, borrow, repay, or withdraw. ETH supply/repay can auto-wrap and ETH withdraw can auto-unwrap; borrowing the ETH market returns WETH. Use 'max' as amount to repay or withdraw the full balance. Set simulate=true for a no-broadcast operation preview. |
| get_policyA | Read the local signing policy that bounds every transaction fibx signs. Returns active with its rules, absent when nothing is set, or unreadable when a file is present but cannot be parsed — which refuses everything. |
| set_policy_ruleA | Set one rule on the local signing policy. Rules: expiry, allowedChains, .maxValue, .allowedDestinations. Lists are comma-separated. maxValue caps the native value of one transaction and does not bound token amounts — an ERC-20 transfer carries value 0 — so use allowedDestinations to bound where tokens may go. |
| clear_policy_ruleA | Remove one rule from the local signing policy with |
| open_fibxA | Open the FibX app: wallet, balances, signing policy, and a swap form with the Fibrous route. Call this FIRST for anything about the wallet, a balance, a quote, or a swap — it returns the session, balances, policy and quote in one snapshot, so get_auth_status, get_balance, get_policy and get_quote are not needed before it. It executes nothing; where the host renders MCP Apps UI the user sees the app and presses Simulate and Swap themselves. Pass from/to/amount to open it pre-filled with a quote. Supported chains: Base, HyperEVM, Monad. If the host does not render UI, the result is still a complete JSON snapshot you can read and summarise. |
| list_tokensA | List the tokens Fibrous supports on a chain, with symbol, name, address, decimals and USD price where known. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| ui://fibx/app.html |
TDQS
Scored across 19 tools
Several tools overlap: get_auth_status, get_connect_status and open_fibx all return session state; get_balance and get_portfolio both return holdings; get_quote duplicates what open_fibx returns. Descriptions explicitly referee these cases ('call this only when...', 'not needed before open_fibx'), which rescues the set from outright ambiguity, but an agent must still read carefully to pick correctly.
Most tools follow a clean verb_noun pattern (get_balance, send_tokens, swap_tokens, set_policy_rule, clear_policy_rule, connect_wallet). A few deviate: aave_action and config_action are noun_action dispatchers, and logout is a bare verb. Minor, readable inconsistency rather than chaos.
19 tools spans several sub-domains (wallet, auth/pairing, Aave, swaps, policy, RPC config), so the breadth is earned, but it sits at the heavy end. Several tools (get_auth_status, get_policy, get_quote) are explicitly redundant when open_fibx is used, suggesting some consolidation was possible.
Strong lifecycle coverage: wallet connect/poll/logout, send/swap with simulation, full Aave supply/borrow/repay/withdraw plus markets and health, and policy get/set/clear. Gaps are modest — no ERC-20 approval inspection/revocation and no transaction history — but agents can work around these.