Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

FortFi Treasury MCP

REMOTE · FORTFIAPP.COM

Policy-gated MCP treasury for AI agents — x402 subscribe, 50+ tools, multi-chain.

Available components

+27 this week 62 Trust /100

Last scanned (7 hours ago)

Scores higher than 44% of remote servers

Reachable. Last reached 5 Nov 2026.

Category Finance and Payments

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security66
  • The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
  • Authorisation not fully verified: no authorisation is required to call this server, and 139 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. See how to fix → View diagnostics → Unverified
  • HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
  • The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
  • DNSSEC is configured correctly; the domain's records validate against the full chain to the root. View diagnostics → Pass
Transport & Reachability100
Schema Quality & AI Usability68
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 15209 tokens (~109/item across 139 items; 139 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management3
  • Stability observed for 1 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage93
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 78% of tool parameters carry a description.Partial
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 12 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "remove_recipient" implies "remove" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 139 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities20
  • Spec-recency check failed: implements MCP spec 2024-11-05; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 0
    • Stability: unverified → 0.03 ▲ functional
    • New tool “get_hyperliquid_order_book” functional
    • New tool “get_hyperliquid_predicted_funding” functional
    • “update_strategy” added an optional parameter “autoStops” cosmetic
  • 4 Nov 26 +26
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Authorization: Authorisation not fully verified: no authorisation is required to call this server, and 137 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe. security
    • Tool “approve_recipient” rewrote its description, which is the text the model reads security
    • Tool “get_policy_limits” rewrote its description, which is the text the model reads security
    • Tool “get_yield_market_detail” rewrote its description, which is the text the model reads security
    • Tool “list_audit_log” rewrote its description, which is the text the model reads security
    • Tool “list_wallets” rewrote its description, which is the text the model reads security
    • Tool “list_yield_positions” rewrote its description, which is the text the model reads security
    • Tool “propose_bridge” rewrote its description, which is the text the model reads security
    • Tool “propose_token_approve” rewrote its description, which is the text the model reads security
    • Tool “propose_transfer” rewrote its description, which is the text the model reads security
    • Tool “rank_yield_markets” rewrote its description, which is the text the model reads security
    • Tool “update_wallet_metadata” rewrote its description, which is the text the model reads security
    • MCP protocol: unverified → fail ▼ functional
    • Schema quality: pass → fail ▼ functional
    • Endpoint reachability: not serving MCP → reachable ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • First check of Destructive annotations: 0 functional
    • New tool “cancel_hyperliquid_orders” functional
    • New tool “create_checkout_session” functional
    • New tool “create_customer” functional
    • New tool “create_merchant_webhook” functional
    • New tool “create_payment_product” functional
    • New tool “get_copy_trade_wallet” functional
    • New tool “get_hyperliquid_balances” functional
    • New tool “get_hyperliquid_cross_section” functional
    • New tool “get_hyperliquid_history” functional
    • New tool “get_hyperliquid_market” functional
    • New tool “get_hyperliquid_outcome_market” functional
    • New tool “get_hyperliquid_research_data_stats” functional
    • New tool “get_hyperliquid_trading_desk” functional
    • New tool “get_hyperliquid_user_fills” functional
    • New tool “get_payment_product” functional
    • New tool “get_polymarket_market” functional
    • New tool “get_strategy” functional
    • New tool “get_treasury_context” functional
    • New tool “get_usage_balance” functional
    • New tool “get_wallet_loss_cap” functional
    • New tool “get_wallet_scoreboard” functional
    • New tool “list_activity_report” functional
    • New tool “list_copy_trade_leaders” functional
    • New tool “list_hyperliquid_markets” functional
    • New tool “list_hyperliquid_open_orders” functional
    • New tool “list_hyperliquid_outcome_markets” functional
    • New tool “list_hyperliquid_positions” functional
    • New tool “list_hyperliquid_symbol_master” functional
    • New tool “list_merchant_webhook_deliveries” functional
    • New tool “list_merchant_webhooks” functional
    • New tool “list_payment_products” functional
    • New tool “list_payment_purchases” functional
    • New tool “list_payment_sales” functional
    • New tool “list_polymarket_markets” functional
    • New tool “list_polymarket_positions” functional
    • New tool “list_strategies” functional
    • New tool “list_strategy_presets” functional
    • New tool “pause_strategy” functional
    • New tool “pay_payment_request_x402” functional
    • New tool “propose_hyperliquid_deposit” functional
    • New tool “propose_hyperliquid_outcome_order” functional
    • New tool “propose_hyperliquid_perp_close” functional
    • New tool “propose_hyperliquid_perp_modify” functional
    • New tool “propose_hyperliquid_perp_open” functional
    • New tool “propose_hyperliquid_send_asset” functional
    • New tool “propose_hyperliquid_spot_to_perp” functional
    • New tool “propose_hyperliquid_withdraw” functional
    • New tool “propose_polymarket_buy” functional
    • New tool “propose_polymarket_redeem” functional
    • New tool “propose_polymarket_sell” functional
    • New tool “rank_hyperliquid_markets” functional
    • New tool “rank_polymarket_markets” functional
    • New tool “rebalance_strategy_now” functional
    • New tool “replay_merchant_webhook_delivery” functional
    • New tool “resume_strategy” functional
    • New tool “run_hyperliquid_research_backtest” functional
    • New tool “run_hyperliquid_research_backtest_spec” functional
    • New tool “screen_hyperliquid_markets” functional
    • New tool “search_polymarket_markets” functional
    • New tool “send_merchant_webhook_test” functional
    • New tool “set_wallet_loss_cap” functional
    • New tool “start_copy_trade” functional
    • New tool “start_strategy” functional
    • New tool “stop_strategy” functional
    • New tool “update_strategy” functional
    • “add_recipient” added an optional parameter “fromWalletId” cosmetic
    • “list_audit_log” added an optional parameter “cursor” cosmetic
    • “list_audit_log” added an optional parameter “view” cosmetic
    • “list_audit_log” added an optional parameter “walletId” cosmetic
    • “list_wallets” added an optional parameter “cursor” cosmetic
    • “list_wallets” added an optional parameter “limit” cosmetic
    • “propose_transfer” added an optional parameter “networkChainId” cosmetic
    • “propose_transfer” added an optional parameter “paymentRequestPid” cosmetic
    • “propose_transfer” reworded the description of “amountUsdc” cosmetic
    • “add_recipient” reworded the description of “chainId” cosmetic
    • “propose_create_account” reworded the description of “chainId” cosmetic
    • “propose_transfer” reworded the description of “recipientId” cosmetic
    • “propose_transfer” made “amountUsdc” optional cosmetic
    • “propose_transfer” made “recipientId” optional cosmetic
  • 3 Nov 26 +1
    • DNSSEC: fail → pass ▲ security
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 26 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 11 Aug 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 7 Aug 26 0
    • Endpoint reachability: reachable → not serving MCP ▼ security
    • Stability: 0.30 → unverified ▼ security
    • Authorization: Authorisation not fully verified: no authorisation is required to connect, but we couldn't read the whole tool list to see what that exposes. security
    • Capabilities: fail → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://fortfiapp.com/api/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=fortfiapp.com CN=YE1,O=Let's Encrypt,C=US 23 Sept 2026 22 Dec 2026 ECDSA 256 ECDSA-SHA384 5b47055fa1f80935b7b139be7982227214f
SANs: *.fortfiapp.com, fortfiapp.com
CN=YE1,O=Let's Encrypt,C=US (CA) CN=Root YE,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 ECDSA 384 ECDSA-SHA384 5ddd70dd31f801c85c186a7a04b80afe
CN=Root YE,O=ISRG,C=US (CA) CN=ISRG Root X2,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 ECDSA-SHA384 872165fc34b6e5fba8add5b3705fb53a
CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 ECDSA 384 SHA256-RSA 6c8f1dc727c7117f7baf853ac980f9cd

Background: What to check on a remote MCP endpoint →

DNSSEC secure

Validation of fortfiapp.com. — Secure

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
fortfiapp.com. present 2371 13 Verified
fortfiapp.com. Verified address RRset verified with the apex keys
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains; preload
x-content-type-options nosniff
x-frame-options DENY
referrer-policy strict-origin-when-cross-origin
permissions-policy camera=*, microphone=*, accelerometer=*, gyroscope=*, payment=*, geolocation=()

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://fortfiapp.com/api/mcp Verified 200
http (plaintext) http://fortfiapp.com/api/mcp HTTPS enforced 301 https://fortfiapp.com/api/mcp
MCP tools · 139 exposed · ~15,209 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
list_activity_report ~76

Treasury activity timeline (JSON) for reconciliation: normalized labels, USD hints, vault scope, and categories. Optional walletId narrows to one vault. Requires reporting:read (or account:read).

NameTypeReqDescription
categorystring–Filter timeline category (default all)
walletIdstring–Filter to one wallet mapping id

No output schema declared.

No examples provided.

list_audit_log ~240

Recent account activity: one row per money move (sends, swaps, bridges), blocked attempt, or account change (keys, recipients). Money rows and blocked rows carry a confirmationNumber (FF-XXXX-XXXX) the owner can quote to FortFi support. Blocked rows carry the reasons. Pass view: 'full' for every internal step. Optional walletId filters to one vault's history. Pass cursor (from a previous page's nextCursor, even as an empty string on the first call) to switch the response to { items, nextCursor } and page back through full history instead of only the most recent entries.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous page's nextCursor. Passing this key (even as '') switches the response to { items, nextCursor }.
limitnumber–Max entries to return (default 20, max 100)
viewstring–activity (default): one row per money move, blocked attempt, or account change. full: every audit step, including internal ones.
walletIdstring–Filter to audit entries for one wallet id

No output schema declared.

No examples provided.

list_copy_trade_leaders ~120

Top Hyperliquid accounts by profit over a window (week, month, allTime), from Hyperliquid's public leaderboard. Only accounts over $25k that traded this month and are profitable all-time. Use get_copy_trade_wallet before copying one.

NameTypeReqDescription
pagenumber–0-based page, default 0
pageSizenumber–1 to 50, default 20
querystring–Address prefix (0x...) or display name fragment
windowstring–Default month

No output schema declared.

No examples provided.

list_cosigner_memberships ~19

Active co-signers on this account.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_funding_wallet_agents ~47

List all FortFi agent accounts funded by the same payment wallet as this agent. Use to discover agentLabel / userId when renewing or spawning siblings (treasury multi-agent setups).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_governance_requests ~39

List open governance requests on this account: pending (awaiting signature) and legacy scheduled rows. Use to monitor for unexpected loosening attempts.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_hyperliquid_markets ~86

List Hyperliquid perpetual markets with live mark/mid/oracle prices, funding, open interest, and 24h volume. Public data; no proposal.

NameTypeReqDescription
limitnumber–Page size (default 30, max 100)
offsetnumber–Pagination offset (default 0)
searchstring–Filter by coin symbol

No output schema declared.

No examples provided.

list_hyperliquid_open_orders ~36

List resting Hyperliquid orders including SL/TP triggers for a wallet.

NameTypeReqDescription
walletIdstringyes–

No output schema declared.

No examples provided.

list_hyperliquid_outcome_markets ~109

List Hyperliquid HIP-4 outcome markets on the same account as perps. Prices are quote-micro (650000 = $0.65) from exchange mids. volumeUsd is 0 because outcomeMeta does not publish volume.

NameTypeReqDescription
cursorstring–marketId from the previous page nextCursor
limitnumber–Page size, default 50, max 300
qstring–Search question, name, or description

No output schema declared.

No examples provided.

list_hyperliquid_positions ~60

List open Hyperliquid perp positions and margin summary for a hyperliquid-mainnet wallet (its address is used on the L1 order book).

NameTypeReqDescription
walletIdstringyesFortFi wallet id on hyperliquid-mainnet

No output schema declared.

No examples provided.

list_hyperliquid_symbol_master ~158

Security master for Hyperliquid perps: symbol, dex, desk label, short symbol, display name, asset class (crypto/equity/commodity/fx/index/pre_ipo), plus live volume and funding. Default scope=core; pass scope=all for HIP-3.

NameTypeReqDescription
assetClass––Filter asset classes. Comma-separated string or array.
dex––Filter dex ids (core, xyz, io, para). Comma-separated string or array.
includeAllDesksboolean–When true, same as scope=all
limitnumber–Max rows by 24h volume (default all, max 500)
scopestring–Default core

No output schema declared.

No examples provided.

list_incoming_cosigner_invites ~45

List pending co-signer invites sent TO this account (where this account is the invitee). Use to discover accounts you can become a co-signer for.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_merchant_webhook_deliveries ~86

List webhook delivery log. Use status=failed for dead-letter queue rows. Filter by paymentRequestId to find deliveries for one checkout.

NameTypeReqDescription
endpointIdstring––
limitnumber–Max rows (default 50, max 200)
paymentRequestIdstring–Internal payment request UUID
statusstring––

No output schema declared.

No examples provided.

list_merchant_webhooks ~22

List registered webhook endpoints (secrets are never returned).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_payment_products ~18

List persistent product checkout links for the account.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_payment_purchases ~66

Buyer view: FortFi checkouts your vaults paid (what you bought). Matches settlements by payer wallet address across your fleet.

NameTypeReqDescription
limitnumber–Max rows (default 200, max 500)
walletMappingIdstring–Optional payer vault filter

No output schema declared.

No examples provided.

list_payment_requests ~36

List payment requests for the authenticated account.

NameTypeReqDescription
statusstring––
walletMappingIdstring–Optional vault filter

No output schema declared.

No examples provided.

list_payment_sales ~49

Merchant view: paid and partially paid invoices on your collection vaults (what you sold). Includes payer, method, and settlement details.

NameTypeReqDescription
walletMappingIdstring–Optional collection vault filter

No output schema declared.

No examples provided.

list_pending_cosigner_approvals ~51

Pending actions that require this account's co-signer approval. Use when this agent is a co-signer on another account.

NameTypeReqDescription
limitnumber–Max entries (default 10)

No output schema declared.

No examples provided.

list_polymarket_markets ~117

List active Polymarket prediction markets on Polygon with volume, liquidity, and outcome prices.

NameTypeReqDescription
afterCursorstring–Pagination cursor from a prior list response
limitnumber–Max markets (default 25)
minLiquidityUsdnumber–Minimum liquidity USD (default 10000)
searchstring–Optional question/slug filter
sortBystring–volume_24hr (default), volume, liquidity, or end_date
sortDirectionstring––

No output schema declared.

No examples provided.

list_polymarket_positions ~41

List Polymarket outcome token positions for a Polygon wallet. walletId is required.

NameTypeReqDescription
walletIdstringyesFortFi Polygon wallet id

No output schema declared.

No examples provided.

list_recipients ~39

List all allowlisted recipients. Includes cooldown status: `cooldownActive: true` means the recipient cannot yet receive funds (24-hour gate).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_strategies ~84

List strategies running on your Hyperliquid accounts (presets and copy trades): status, leverage, cap, next rebalance, and whether an API key started it. Stopped strategies are hidden unless includeStopped is true.

NameTypeReqDescription
includeStoppedboolean–Include stopped strategies
walletIdstring–Optional: only this hyperliquid-mainnet wallet

No output schema declared.

No examples provided.

list_strategy_presets ~80

List FortFi autonomous Hyperliquid strategies (house presets) with their published backtest: out-of-sample return, Sharpe and drawdown at 1x, walk-forward windows, every leverage scenario, tested leverage (start_strategy accepts these), high-risk leverage (owner passkey only), and the minimum account size per leverage. Read-only.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_token_spender_grants ~41

List active ERC-20 token approvals (spender grants) on this account. Useful before proposing a swap to confirm the CoW vault is approved.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

list_wallets ~165

List FortFi wallets for this account: chain, address, nickname, metadata tags, and default flag. Optional metadataKey/metadataValue filter (exact match). Pass cursor and/or limit to page through large fleets — response becomes { items, nextCursor } when either is set; omit both for the plain array of all wallets.

NameTypeReqDescription
cursorstring–Opaque cursor from a previous page's nextCursor. Passing this (even empty) switches the response to { items, nextCursor }.
limitnumber–Page size when paginating (default 50, max 200)
metadataKeystring–Filter wallets that include this metadata key (optional)
metadataValuestring–When set with metadataKey, require an exact value match

No output schema declared.

No examples provided.

list_yield_markets ~187

Open Morpho yield discovery by chain with discovered, policyEligible, manuallyCurated, executionReady, and eligibilityReasons. Default minimum TVL is $500K everywhere (listing, policy, Turnkey). executionReady means TVL qualifies and you have a wallet on that chain; POLICY_SYNC_RECOMMENDED is advisory only.

NameTypeReqDescription
assetstring–Asset symbol filter, default USDC
chainIdstring–FortFi chain id or omit for all yield chains
limitnumber–Max vaults (default 15, max 25)
minTvlUsdnumber–Minimum vault TVL in USD (default 500000)
sortBystring–net_apy (default) or tvl
verifiedOnlyboolean–If true, only FortFi curated vaults; default false = open discovery

No output schema declared.

No examples provided.

list_yield_positions ~90

Active Morpho yield positions with per-vault valueUsd, earnedUsd (Morpho pnlUsd), netApy, and a summary block. summary.cumulativeEarnedUsd matches Morpho pnl on the open vaults when the ledger cannot explain the balance. A deposit missing from the ledger is principal, not earnings. Use at the start of every yield desk run to report standing P&L.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

pause_strategy ~37

Pause a strategy. Positions stay open; no more orders until resumed.

NameTypeReqDescription
idstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

pay_payment_request_x402 ~87

Pay an open FortFi invoice via x402 EIP-3009 from a governed Turnkey vault. Requires Delegated Access on human developer keys or an agent account. Base mainnet first.

NameTypeReqDescription
fromWalletIdstringyesPayer vault id (must match invoice chain)
paymentRequestPidstringyesPublic invoice pid from checkout URL or create_payment_request

No output schema declared.

No examples provided.

plan_rebalance ~135

Read-only rebalance planner toward target weights. Returns suggested legs (swap, yield_deposit, yield_withdraw) without executing. Use propose_* + confirm_proposal to act.

NameTypeReqDescription
driftThresholdPercentnumber–Ignore drift below this % (default 5)
minLegUsdnumber–Minimum leg size in USD (default 1)
targetsarrayyesTarget allocation. Each row: { label, weightPercent, kind: cash|yield|token|symbol, symbol? }. Example: 40% cash, 10% yield, 30% UNI, 20% other tokens.

No output schema declared.

No examples provided.

preview_bridge_quote ~91

Optional advanced step: fetch a cross-chain bridge quote (Fusion+ or deBridge) and return previewQuoteId. Omit previewQuoteId on propose_bridge to bundle quote+proposal in one call.

NameTypeReqDescription
amountUsdstringyes–
buySymbolstringyes–
fromWalletIdstringyes–
sellSymbolstringyes–
toWalletIdstringyes–

No output schema declared.

No examples provided.

preview_swap_quote ~212

Optional advanced step: fetch a same-chain swap quote (CoW on EVM, Jupiter on Solana) and return previewQuoteId. Omit previewQuoteId on propose_* to bundle quote+proposal in one call. Does not execute or move funds.

NameTypeReqDescription
amountUsdstringyesApproximate sell amount in USD
buyMintstring–Solana buy mint — omit for EVM
buySymbolstringyes–
buyTokenAddressstring–EVM buy token (0x…) — omit for Solana
fromWalletIdstringyesSource wallet id
sellMintstring–Solana sell mint — omit for EVM
sellSymbolstringyes–
sellTokenAddressstring–EVM sell token (0x…) — omit for Solana
slippagePercentnumber–Optional Jupiter slippage 0–50
toWalletIdstring–Optional Solana receive wallet

No output schema declared.

No examples provided.

propose_bridge ~242

Propose a Fusion+ or deBridge cross-chain swap. FortFi resolves chain-specific verified token contracts from sellSymbol/buySymbol; optional token addresses are mismatch assertions, never routing overrides. Inline quote by default, or use previewQuoteId for two-step review. Agent wallets execute on confirm_proposal. API keys on a passkey account cannot bridge: this returns OWNER_PASSKEY_REQUIRED, and the owner bridges in the FortFi app with their passkey (preview_bridge_quote still works).

NameTypeReqDescription
amountUsdstringyesBridge amount in USD
buySymbolstringyesBuy token symbol
buyTokenAddressstring–Optional expected destination token contract; proposal fails if it differs from FortFi's verified chain resolution
fromWalletIdstringyesSource wallet id
previewQuoteIdstring–Optional — from preview_bridge_quote for explicit quote review before propose
sellSymbolstringyesSell token symbol
sellTokenAddressstring–Optional expected source token contract; proposal fails if it differs from FortFi's verified chain resolution
toWalletIdstringyesDestination wallet id (different chain)

No output schema declared.

No examples provided.

propose_create_account ~130

Create a new wallet on a supported chain. Optional metadata tags (e.g. customer_id). Then call confirm_proposal with the returned proposalId. Agent accounts execute server-side when no cosigners are configured.

NameTypeReqDescription
chainIdstringyesFortFi chain id, e.g. base-mainnet, robinhood-mainnet, solana-mainnet
metadataobject–Optional flat string tags (max 20 keys), e.g. { "customer_id": "cust_123" }
walletNamestringyesDisplay name for the new wallet (2–64 chars)

No output schema declared.

No examples provided.

propose_hyperliquid_deposit ~100

Propose moving HyperEVM USDC into Hyperliquid perp margin (top up). Set perpDex for HIP-3 desks (xyz, io, para). Returns proposalId; execute with confirm_proposal (server-side when Delegated Access or agent credential).

NameTypeReqDescription
amountUsdstringyes–
perpDexstring–core | xyz | io | para (default core)
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_outcome_order ~181

Propose a HIP-4 buy or sell on the Hyperliquid account. size is micro-USDC collateral (10000000 = $10). limitPrice is quote-micro. Runs outcome policy (no leverage, max notional) before any signature. Confirm with confirm_proposal.

NameTypeReqDescription
limitPricestring–Quote-micro. Required for limit. 650000 is $0.65.
marketIdstringyesOutcome id, e.g. 9802
orderTypestringyes–
outcomeIdstringyesSide id outcomeId:sideIndex, e.g. 9802:0
sidestringyes–
sizestringyesCollateral in micro-USDC. Minimum 10000000 ($10).
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_perp_close ~73

Propose closing a Hyperliquid perp position (reduce-only). Omit size to close the whole position. Returns a proposalId for confirm_proposal.

NameTypeReqDescription
sizestring–Optional; omit to close all
symbolstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_perp_modify ~259

Propose modifying an open Hyperliquid perp position: its stop-loss / take-profit and/or its leverage. Only the exit you pass is replaced: changing stopLoss keeps the resting take-profit(s), and vice versa. leverage changes the open position's leverage in place (keeps its cross / isolated mode, size unchanged). Raising leverage runs FortFi perp policy (max leverage) and the wallet loss cap; lowering it needs enough margin on Hyperliquid. Returns a proposalId for confirm_proposal.

NameTypeReqDescription
leverageinteger–New leverage for the open position (whole number, up to the market max and the owner's policy max). Must differ from the current leverage.
stopLossstring–New stop-loss trigger for the whole position. Replaces the resting stop only.
symbolstringyes–
takeProfitstring–New take-profit trigger. Replaces the resting take-profit(s) only.
takeProfitSizePercentinteger–Close only this % of the position at takeProfit (e.g. 50 to bank half at 2R and let the rest run). Default 100. The stop keeps covering the full position.
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_perp_open ~398

Propose opening a Hyperliquid perp position. Runs FortFi perp policy (max leverage, max notional) and rejects non-hyperliquid-mainnet wallets. Optional marginMode picks cross or isolated margin. Returns a proposalId for confirm_proposal.

NameTypeReqDescription
acknowledgePriceImpactboolean–Set true only after a HYPERLIQUID_PRICE_IMPACT_CONFIRM_REQUIRED error, to accept >=1% book impact on a market order. Prefer limitPrice or a smaller size.
leveragenumber––
limitPricestring–Optional resting limit price (GTC). Must be within 5% of mid when it crosses the book. Omit for a market order.
marginModestring–Optional. cross shares the wallet's margin across positions; isolated caps the loss at the margin put into this position. Omit for cross (isolated on isolated-only markets). An already-open position…
sidestringyes–
sizestring–Coin-unit size (string). Use sizeUsd instead for USD notional.
sizeUsdstring–USD notional target (min $10 on HL). Preferred for agents.
stopLossstring–Optional stop-loss trigger. With limitPrice it attaches to the order (normalTpsl) and arms once it fills, validated against the limit price.
symbolstringyese.g. BTC, ETH, xyz:TSLA, xyz:GOLD
takeProfitstring–Optional take-profit trigger. With limitPrice it attaches to the order (normalTpsl) and arms once it fills, validated against the limit price.
timeInForcestring–Limit orders only. Gtc (default), Alo (post only, rejected if it would cross), Ioc.
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_send_asset ~135

Move USDC between Hyperliquid margin desks without HyperEVM (any perp book: core, xyz, io, para, mkts, …, or spot → any perp desk). Use list_hyperliquid_balances perpDesks[].dex for valid dex ids.

NameTypeReqDescription
amountUsdstringyes–
destinationDexstringyescore | or any HIP-3 builder dex (not spot)
sourceDexstringyescore | spot | or any HIP-3 builder dex (xyz, io, para, mkts, …)
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_spot_to_perp ~75

Propose moving USDC from HL Spot into core perps margin (required after MoonPay HyperCore on-ramp). Returns proposalId; human confirms via Perps Deposit to tradable balance or confirm_proposal.

NameTypeReqDescription
amountUsdstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

propose_hyperliquid_withdraw ~95

Propose moving Hyperliquid perp USDC to the owner's own HyperEVM wallet (same address; perp to HL Spot, then sendAsset to the USDC system address). Funds cannot go to any other recipient. Returns proposalId; human confirms with passkey via Perps Withdraw to HyperEVM or confirm_proposal.

NameTypeReqDescription
amountUsdstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

propose_payout_manifest ~72

Execute a validated payout manifest sequentially (one ActionIntent per line). Requires Delegated Access or agent wallet. Set dryRun:true to validate only.

NameTypeReqDescription
dryRunboolean–If true, validate only — no sends
fromWalletIdstringyes–
linesarrayyes–

No output schema declared.

No examples provided.

propose_polymarket_buy ~116

Propose buying Polymarket outcome shares, then call confirm_proposal. Requires Polygon wallet.

NameTypeReqDescription
conditionIdstringyesMarket condition id from list_polymarket_markets
fromAccountQuerystring––
fromWalletIdstring––
outcomeIndexnumberyes0-based outcome index
pricestringyesLimit price 0-1 (e.g. 0.52)
sizeDisplaystringyesShare count (e.g. 10)

No output schema declared.

No examples provided.

propose_polymarket_redeem ~72

Propose redeeming winning shares from a resolved Polymarket market (CTF on Polygon), then call confirm_proposal.

NameTypeReqDescription
conditionIdstringyes–
fromAccountQuerystring––
fromWalletIdstring––
outcomeIndexnumber––

No output schema declared.

No examples provided.

propose_polymarket_sell ~79

Propose selling Polymarket outcome shares (redeem collateral), then call confirm_proposal.

NameTypeReqDescription
conditionIdstringyes–
fromAccountQuerystring––
fromWalletIdstring––
outcomeIndexnumberyes–
pricestringyes–
sizeDisplaystringyes–

No output schema declared.

No examples provided.

propose_recipient_manifest ~54

Apply a validated recipient manifest (human/developer key). Adds new allowlist rows with normal 24h cooldown. Agent keys: use add_recipient per row (GOVERN).

NameTypeReqDescription
recipientsarrayyes–

No output schema declared.

No examples provided.

propose_rename_account ~56

Rename a wallet (account nickname), then call confirm_proposal with the returned proposalId.

NameTypeReqDescription
accountIdstringyesWallet id from list_wallets
nicknamestringyesNew nickname (2–64 characters)

No output schema declared.

No examples provided.

propose_solana_swap ~188

Propose a Solana Jupiter swap. Autonomous agents: inline quote by default, or previewQuoteId for two-step review. confirm signs the bound quote.

NameTypeReqDescription
amountUsdstringyesSell amount in USD
buyMintstringyesMint address of token to buy
buySymbolstringyesHuman-readable buy symbol
fromWalletIdstringyesSolana wallet id to sell from
previewQuoteIdstring–Optional — from preview_swap_quote for explicit quote review before propose
sellMintstringyesMint address of token to sell
sellSymbolstringyesHuman-readable sell symbol
slippagePercentnumber–Optional slippage tolerance 0–50 (default 0.5)
toWalletIdstringyesSolana wallet id to receive (can be same as fromWalletId)

No output schema declared.

No examples provided.

Install

How do I install the FortFi Treasury MCP server?

FortFi Treasury MCP is a hosted endpoint at https://fortfiapp.com/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · fortfiapp.com

# add to Claude Code
claude mcp add --transport http rebelartists-fortfi-treasury-mcp 'https://fortfiapp.com/api/mcp'
Common questions

What is the FortFi Treasury MCP server?

FortFi Treasury MCP is listed in the public MCP registry as io.github.rebelArtists/fortfi-treasury-mcp. Policy-gated MCP treasury for AI agents, x402 subscribe, 50+ tools, multi-chain. This page covers its hosted endpoint (https://fortfiapp.com/api/mcp).

Is the FortFi Treasury MCP server safe to use?

FortFi Treasury MCP scores 62 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the FortFi Treasury MCP server expose?

FortFi Treasury MCP exposes 139 tools: get_mcp_guide, get_treasury_context, list_wallets, list_recipients, list_audit_log, and 134 more. Their descriptions and schemas cost roughly 15,209 tokens of context every time the server is loaded.

Does the FortFi Treasury MCP server require authentication?

No. We connected to FortFi Treasury MCP without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the FortFi Treasury MCP server still maintained?

FortFi Treasury MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.