CLI
MCP server & agent security
The CLI ships a standardized stdio MCP server for Claude, Cursor, Gemini and autonomous trading agents — 25 tools, each carrying the same live/simulated label the terminal uses, with spend policies and human-approval gates enforced before value moves.
Simulated settlement, disclosed up front
furlpay_settle_invoice responses are explicitly labeled SIMULATED / LOCAL_SIMULATION and move no real value. Stellar order flow and unauthenticated balance data are simulated the same way. What is real and signed: Hyperliquid perpetual execution, HLP vault operations and live market data.Connect a client
Start the server with a delegated agent wallet:
furlpay mcp --wallet agent-alphaThen register it in your MCP configuration (claude_desktop_config.json, Cursor, or any MCP client):
{
"mcpServers": {
"furlpay-execution": {
"command": "furlpay",
"args": [
"mcp",
"--wallet",
"agent-alpha"
]
}
}
}Delegated agent keys
The MCP server acts through a delegated session key — never your primary keystore. The key carries a spending policy the server enforces before every gated tool call:
furlpay wallet agent-keygen \
--name agent-alpha \
--daily-limit 50.00 \
--allowed-assets USDC,JQQQ,FOBXX \
--expiry 7d- Daily spend cap — enforced atomically: validate-and-record happens under the policy lock, so concurrent tool calls cannot both pass against a stale spent-today snapshot.
- Allowed assets — anything outside the list is rejected by policy.
- Expiry — the key stops working at the configured time, not whenever someone remembers to rotate it.
- Fail closed — no policy on disk means simulation-only mode: gated calls never move value.
The tool surface
Every tool below exists in the v0.4.0 release — no invented parameters. Human-approval tools are marked with anthropic/requiresUserInteraction in the server's tool metadata and cannot be exercised silently by an autonomous agent.
Market data
| Tool | Does | Status |
|---|---|---|
furlpay_list_chains | Supported chains and venues (Hyperliquid, Stellar, EVM L2s, Solana). | LIVE |
furlpay_list_exchanges | Connected venues, fee tiers, supported market types. | LIVE |
furlpay_market_search | Search tradeable pairs by ticker, name or chain. | LIVE |
furlpay_get_market_data | Real-time price, mark, funding, 24h volume for an asset. | LIVE |
furlpay_get_orderbook | L2 book with depth at 10/25/50 bps and micro-price. | LIVE |
furlpay_get_funding | Funding rates, next funding time, open interest. | LIVE |
furlpay_compare_markets | Liquidity and spread comparison across venues. | LIVE |
Analysis & quotes
| Tool | Does | Status |
|---|---|---|
furlpay_get_quote | Optimal routing quote across SDEX and Soroban AMMs. A quote is not an execution (Stellar flow is simulated). | SIMULATED |
furlpay_get_market_analysis | Microstructure metrics: depth-weighted micro-price, OFI, VWS, slippage. | LIVE |
furlpay_preview_trade | Full trade preview — fees, slippage, margin, liquidation estimate — without submitting. | LIVE |
Portfolio & balances
| Tool | Does | Status |
|---|---|---|
furlpay_positions | Open perp positions: mark, entry, liquidation price, unrealized PnL. | LIVE |
furlpay_open_orders | Resting orders on connected exchanges. | LIVE |
furlpay_portfolio_risk | Portfolio exposure, margin utilization, risk concentration. | LIVE |
furlpay_balance | Balances across Stellar assets, Hyperliquid USDC and RWAs — sample fixtures (simulated: true) when unauthenticated. | SIMULATED |
Execution
| Tool | Does | Status |
|---|---|---|
furlpay_trade_perp | Hyperliquid L1 perpetual order. Real and signed; requires the environment signer and fails closed without it. | LIVE (SIGNED) |
furlpay_trade | Stellar limit order / path payment / AMM swap. Local simulation — nothing is broadcast. | SIMULATED |
furlpay_execute_traderequires human approval | Submit an approved trade to the execution engine. | LIVE (SIGNED) |
furlpay_cancel_orderrequires human approval | Cancel a resting order. | LIVE (SIGNED) |
furlpay_emergency_stoprequires human approval | Trigger the kill switch: blocks new trades, cancels active orders. | LIVE (SIGNED) |
Payments & yield
| Tool | Does | Status |
|---|---|---|
furlpay_settle_invoice | Resolve an x402 challenge with Agent Trust policy checks (OFAC/SDN, velocity, spend caps). Settlement is simulated — no live facilitator. | SIMULATED |
furlpay_payrequires human approval | A2A transfer or invoice payment with signed-mandate validation. | SIMULATED |
furlpay_sweep_treasury | Sweep idle USDC into yield: HLP target is real and signed; FOBXX target is simulated (no Benji contract call). | SIMULATED |
furlpay_get_hlp_yield | Live HLP vault performance; unreported fields come back null, never fabricated. | LIVE |
Tokenized assets
| Tool | Does | Status |
|---|---|---|
furlpay_get_rwa_assets | Supported tokenized equities and money market funds (JQQQ, FOBXX, Securitize NVDA). | NOT IMPLEMENTED |
furlpay_get_rwa_quote | Real-time quote for tokenized assets on Stellar. A quote, not an execution. | SIMULATED |
Agent Trust Engine
Before a payment-shaped tool call executes, the server runs policy checks: OFAC/SDN screening, velocity limits and the delegated spend caps above. A rejected call fails closed with the policy reason — the agent does not get a retry-until-it-passes loop.
Credentials and environment
- Hyperliquid execution reads
HYPERLIQUID_PRIVATE_KEY(orETH_PRIVATE_KEY) from the environment — never from argv — and fails closed without a signer. - Wallet imports and
login --keyaccept secrets on stdin only. - The MCP server transmits nothing anywhere on your behalf except the operations you can see in its responses; there are no invented approval-server URLs in the registry.
CLI MCP server vs the hosted FurlPay MCP endpoint
furlpay mcp). The hosted endpoint at furlpay.com/api/mcp is a different surface — it connects your web account with scoped, consented read tools and cannot execute payments. See Claude Connector and For AI Agents.