
FibX
finance.fibrousPublished by fibrous.financev0.10.2Updated Nov 7, 2026
Swap, transfer, portfolio and Aave V3 on Base, HyperEVM and Monad, with the FibX app as MCP Apps UI.
Overview
Local MCP server and CLI that lets an assistant quote, swap, transfer and track a DeFi portfolio, plus Aave V3 lending, on Base, HyperEVM and Monad.
- What you can do
- Quote swap prices and list tokens without authentication
- Swap tokens and send native or ERC-20 transfers, with optional simulation before broadcasting
- View balances, cross-chain portfolio with USD values, and DeFi positions
- Manage Aave V3 on Base: supply, borrow, repay, withdraw and browse markets
- Open the FibX app inline in MCP Apps hosts, and manage wallet sessions and the local signing policy
- When to use it
- Useful when you want an assistant to check prices or execute DeFi trades and transfers on Base, HyperEVM or Monad, or to manage an Aave V3 position on Base, with every write previewable first.
- Requirements
- Node.js 18 or newer; runs locally over stdio, started with the fibx mcp-start command. A wallet is needed for anything beyond quotes: WalletConnect pairing, email OTP login through a Privy server wallet, or an imported private key. Privy operations need a running fibx-server instance, configurable via FIBX_API_URL. Optional FIBX_SESSION_SECRET and FIBX_WC_PROJECT_ID.
Installation
In SourceWeft
- Open FibX in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
FibX
A command-line tool and MCP server for DeFi operations on Base, HyperEVM, and Monad, powered by Fibrous aggregation. Sign with your own wallet over WalletConnect, with a Privy server wallet, or with an imported key — every path bounded by a signing policy that lives on your machine.
Features
- Multi-Chain Support: Base, HyperEVM, and Monad
- Portfolio: Cross-chain portfolio overview with USD valuations and DeFi positions
- Token Swaps: Optimal routing via Fibrous aggregation with auto-slippage
- Transfers: Send ETH or any ERC-20 token
- Aave V3: Supply, borrow, repay, withdraw, and browse markets on Base
- MCP Server: Built-in AI agent integration for Cursor, Claude Desktop, and Antigravity (19 tools)
- The FibX app, in the chat: in hosts that render MCP Apps UI such as Claude Desktop,
open_fibxshows the wallet, balances, signing policy and a swap form with the Fibrous route inline — the model opens it, and you press Simulate and Swap - Agent Skills: Prompt-based AI skills via fibx-skills
- Your own wallet: Pair over WalletConnect and approve every transaction on your phone
- Privy Server Wallets: Server-side signing — the CLI receives signed transaction payloads or signatures, not Privy app credentials or raw keys
- Private Key Import: Use an existing wallet with AES-256-GCM encrypted local storage
- Local signing policy: A file you own — native value cap per chain, allowed chains, allowed destinations, expiry — enforced before every signature on all three paths (Privy adds its own server-side policy on top)
- Preflight Checks: Transaction flows validate or estimate execution where the underlying RPC supports it
- Dry‑Run Mode:
--simulatepreviews write operations without broadcasting; gas estimates are included where available - JSON Output:
--jsonflag for scripting and pipelines - Zero-Dependency Install: Single-file bundle via tsup —
npx fibxruns near-instantly
Supported Chains
Installation
Run directly with npx (no install needed):
Or install globally:
Requirements
- Node.js >= 18
- A running fibx-server instance (required for Privy wallet operations; not needed for private key imports)
Quick Start — First Swap in 3 Minutes
Step 1: Get a Price Quote (no auth needed)
Try FibX instantly — no sign-up, no wallet, no keys:
Step 2: Authenticate (pick one)
Option A — Email Login (Privy Server Wallet, no keys to manage):
Option B — Import Private Key (use an existing wallet):
Step 3: Execute
That's it. Three steps from zero to first swap.
Usage
Choosing how FibX signs
Run fibx auth setup and it will ask. The three paths differ on one thing:
Keeping your own wallet and having FibX act unattended needs ERC-7715, which
wallets do not yet expose over WalletConnect. fibx auth setup explains the
closest options.
Security: When using
auth import, your private key is encrypted at rest with AES-256-GCM. The encryption key is auto-generated per machine and stored in the OS config directory (e.g.~/.config/fibx-nodejs/encryption-keyon Linux). You can also set theFIBX_SESSION_SECRETenvironment variable for CI/Docker environments.
Connect your own wallet
Pairs FibX with a wallet you already have — MetaMask, Rabby, Rainbow, Phantom — over WalletConnect. A QR code appears in the terminal; scan it with your phone. Every transaction is then approved in your wallet, so the keys never leave it.
The chain you trade on must already be in your wallet, and it is approved when
you pair. If you try to sign on a chain the session does not carry, FibX stops
before contacting the wallet and names the chain: add it in your wallet, then run
npx fibx auth connect again so the new chain is included.
With --json, output is NDJSON — one JSON document per line, not one document
for the whole run: the pairing URI prints first as {"uri":"wc:..."} so a
script can act on it while it waits, then the result prints as its own compact
JSON line once the wallet approves.
npx fibx auth logout ends the connection on both sides: it tells your wallet to
drop the session, so FibX stops appearing in its connected-apps list, and removes
the pairing keys from disk along with the session.
A shared WalletConnect project id ships in the published bundle, so this works
with no setup. It is public by necessity — a CLI has no origin to allowlist — so
its only real exposure is quota consumed by third parties. If pairing starts
failing on quota, create a free project at
cloud.reown.com and set FIBX_WC_PROJECT_ID to your
own id.
auth login (email OTP) and auth import (private key) are unchanged and remain
available.
Signing policy
fibx policy bounds what FibX is allowed to sign, on top of whichever path
from the table above holds the key — a client-side cap evaluated before every
local-key, Privy, or WalletConnect transaction:
A local policy guarding a local key is advisory: anything that can read the key can edit the policy, so this is worth nothing against malware. What it does bound is the agent — a model that misbehaves, or a prompt injection telling it to.
Know what each rule bounds, because they are not the same:
maxValuecaps the native value of a single transaction — ETH on Base, HYPE on HyperEVM, MON on Monad. It does not bound tokens. An ERC-20 transfer reaches the policy as a call to the token's contract carryingvalue: 0, so the amount is invisible to it:base.maxValue 0.05places no limit onfibx send 50000 USDC 0xsomewhere, on the token side of a trade, or on an Aave borrow. A token-value cap needs decimals and a token registry, and is not in this release.allowedDestinationsis the rule that bounds tokens, by bounding where anything may go. It is the one to set if the worry is an agent moving your holdings somewhere. Note that allowlisting a token's contract so a trade can approve it also permits transfers of that token.allowedChainsandexpirydo exactly what they say. A lapsed or unparseable policy refuses everything rather than permitting it.
Global Options
Balance
Portfolio
Consolidated cross-chain portfolio view with USD valuations:
Shows all token holdings across Base, HyperEVM, and Monad with USD values. Includes DeFi positions (Aave V3 collateral/debt) and total portfolio net worth. Token prices are sourced live from Fibrous.
Send
Quote
Get swap prices without authentication:
No wallet or authentication required. Use
quoteto explore prices, thentradeto execute.
Swap
Options: --slippage <n> (default: 0.5%), --approve-max, --simulate, --json
Note: The
tradecommand automatically detects Wrap (Native -> Wrapped) and Unwrap (Wrapped -> Native) operations and executes them directly via contract calls, bypassing aggregator routing to save gas.
Transaction Status
Wallet Info
Aave V3 (Base)
Note:
supply,repay, andwithdrawsupport automatic ETH <-> WETH wrapping/unwrapping on Base.
Configuration
Set custom RPC URLs to avoid rate limits on public endpoints:
Hot-reload: Config changes are picked up automatically — no need to restart the CLI or MCP server.
AI Agent Integration
MCP Server
fibx includes a built-in MCP server for AI editors like Cursor, Claude Desktop, and Antigravity. See MCP.md for setup and available tools.
The MCP server exposes 19 tools: the FibX app (open_fibx, list_tokens), read-only queries, three transactional tools, and session and policy management. All write operations support a simulate=true preview that does not broadcast; gas estimates are returned only where available.
In a host that renders MCP Apps UI — Claude Desktop today — open_fibx is the entry point: ask about your wallet, a balance, a price or a swap and the whole app opens inline, pre-filled from the conversation. It executes nothing on its own; Simulate and Swap are buttons you press. In a text-only host the same call returns a JSON snapshot the model can summarise, and the headless tools do the rest.
Agent Skills
For prompt-based agent integration (Claude Code, Cursor, etc.), see the fibx-skills repository.
Security
Letting an AI agent operate a wallet requires controls outside the model. fibx combines signing-layer policies, server-side validation, client hints, and explicit previews. These controls reduce risk, but the server credentials, MCP client configuration, and deployment policy remain part of the trust boundary:
Wallet policy limits are configured per deployment — see the fibx-server wallet policy docs.
Note: policies are attached when a wallet is created. Wallets provisioned before policies were introduced keep signing without them until migrated.
Architecture
This repository is the CLI and MCP server. Three sibling repositories complete the stack:
The widget is built by Vite into a single HTML document and embedded in
dist/index.js by tsup, so the published package is still one file with no
runtime dependencies.
Development
pnpm dev:ui:bridge runs the same host against the real MCP server; a Swap
there is a real swap.
Related Links
- Fibrous Finance — DEX aggregator powering swaps
- FibX agent docs
- npm package
- MCP registry listing —
finance.fibrous/fibx
License
Source: README.md at commit a742b16
Tools
0Version history
2- v0.10.2LatestNov 7, 2026
- v0.10.1Sep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts