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 (8 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
propose_swap ~224

Propose an EVM CoW swap. Autonomous agents: fetches and binds a quote inline (default), or pass previewQuoteId from preview_swap_quote for a two-step review. confirm always signs the bound quote — same principle as FortFi Assist. Human session MCP: confirm requires passkey in the app.

NameTypeReqDescription
amountUsdstringyesSell amount in USD
buySymbolstringyesHuman-readable symbol of buy token, e.g. ETH
buyTokenAddressstringyesToken contract address to buy (0x…)
fromWalletIdstringyesSource wallet id (must be EVM, CoW-supported chain)
previewQuoteIdstring–Optional — from preview_swap_quote for explicit quote review before propose
sellSymbolstringyesHuman-readable symbol of sell token, e.g. USDC
sellTokenAddressstringyesToken contract address to sell (0x…)
slippagePercentnumber–Optional slippage tolerance 0–50 (default 0.5)

No output schema declared.

No examples provided.

propose_token_approve ~97

Propose max ERC-20 approval for CoW or Fusion spenders. Returns proposalId: call confirm_proposal before swap/bridge. API keys on a passkey account cannot approve the Fusion (bridge) spender: fusion_bridge returns OWNER_PASSKEY_REQUIRED.

NameTypeReqDescription
flowstringyes–
fromWalletIdstringyesEVM wallet id
tokenAddressstringyesToken to approve (0x…)

No output schema declared.

No examples provided.

propose_transfer ~249

Transfer USDC to an allowlisted recipient, OR pay a FortFi invoice by public pid (paymentRequestPid + fromWalletId — amount optional for partial pay). Recipient path requires allowlist approval. Invoice path binds settlement to the pid (Delegated Access / agent accounts execute server-side when configured).

NameTypeReqDescription
amountUsdcstring–Amount in USDC as a decimal string, e.g. '5.00'. Required for recipient sends; optional for invoice pay (defaults to remaining balance).
fromWalletIdstringyesSource wallet id from list_wallets
memostring–Optional transfer note (max 256 chars)
networkChainIdstring–Optional. Send from the same EVM address on another supported mainnet (e.g. 'arbitrum-mainnet' for USDC withdrawn from Hyperliquid). Recipient must be allowlisted on that network. Omit to use the wal…
paymentRequestPidstring–Public invoice pid from checkout URL — pays merchant vault with pid-bound settlement
recipientIdstring–Allowlisted recipient id (omit when using paymentRequestPid)

No output schema declared.

No examples provided.

propose_yield_deposit ~121

Propose Morpho vault deposit, then call confirm_proposal. With Delegated Access / agent key this executes server-side when policy permits. Use list_yield_markets for vaultAddress.

NameTypeReqDescription
amountUsdstringyesUSDC amount e.g. 100.00
assetSymbolstring––
fromAccountQuerystring–Wallet nickname (alternative to fromWalletId)
fromWalletIdstring–FortFi wallet id
vaultAddressstringyesMorpho vault contract (0x…)

No output schema declared.

No examples provided.

propose_yield_withdraw ~95

Propose Morpho vault withdraw, then call confirm_proposal. With Delegated Access this executes server-side when policy permits. Use list_yield_positions for vaultAddress.

NameTypeReqDescription
amountDisplaystringyes–
assetSymbolstring––
fromAccountQuerystring––
fromWalletIdstring––
vaultAddressstringyes–
vaultNamestring––

No output schema declared.

No examples provided.

rank_hyperliquid_markets ~154

Rank Hyperliquid perp markets by 24h volume, pctChange, or funding. Returns dex + assetClass tags. Default scope=core; pass scope=all for HIP-3. Cheap filter only — use screen_hyperliquid_markets for breakout TA.

NameTypeReqDescription
assetClass––Filter asset classes. Comma-separated string or array.
dex––Filter dex ids. Comma-separated string or array.
directionstring–Default desc
includeAllDesksboolean–When true, same as scope=all
limitnumber–Default 20
scopestring–Default core
sortstring–Default volume

No output schema declared.

No examples provided.

rank_polymarket_markets ~43

Rank Polymarket markets by volume, liquidity, or 24h volume.

NameTypeReqDescription
limitnumber––
sortBystring––

No output schema declared.

No examples provided.

rank_tokens ~237

Two-stage token ranking: run the cheap screen, then concurrently fetch deterministic chart evidence only for the strongest candidates. Quick charts 5 candidates over month+3months; standard charts 10 over day+month+3months+year; deep charts 20 and requires explicit opt-in. Returns evidence for user review and never creates a proposal.

NameTypeReqDescription
candidateLimitnumber–Override merged candidate cap, max 100
chainsarrayyes–
chartCandidateLimitnumber–Override chart cap, max 20
deepOptInboolean–Required when mode=deep
includeUnverifiedboolean–Default false
minMarketCapUsdnumber–Default 5000000
minVolume1dUsdnumber–Default 50000
modestring––
periodsarray––
sortsarray–Defaults to gainers_30d + volume_1d. Optional supplements: gainers_1d, gainers_90d, gainers_365d, market_cap.
verifiedOnlyboolean–Default true

No output schema declared.

No examples provided.

rank_yield_markets ~196

Batch-rank Morpho markets using current net APY, APY median/average/range/volatility, TVL trend/drawdown, vault age, curation, instant-withdrawal liquidity, warnings, and current-user execution eligibility. Results are ordered by current net APY, which is a spot rate that spikes: re-rank on evidence.apy.medianPercent before acting, since a vault printing 12% today commonly pays under 5% tomorrow. Runs evidence requests concurrently and never creates a proposal.

NameTypeReqDescription
apyDaysnumber–Default 30
assetstring–Asset symbol, default USDC
chainIdstring–FortFi chain id or all
limitnumber–Default 10, max 25
minTvlUsdnumber–Default 500000
tvlDaysnumber–Default 90

No output schema declared.

No examples provided.

rebalance_strategy_now ~44

Run a strategy's rebalance now instead of waiting for its schedule. Returns the run outcome.

NameTypeReqDescription
idstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

register_backup_governance_wallet ~121

Register (or replace) a single backup governance wallet — the agentic equivalent of a backup passkey. Either the funding wallet or this backup can authorize future governance. GOVERN action: sign the challenge with your CURRENT funding wallet (challengeId + walletSignature); applies immediately once signed. Max one backup.

NameTypeReqDescription
challengeIdstring–Governance challengeId from the first call
walletAddressstringyesThe backup wallet address (0x…) to register
walletSignaturestring–CURRENT funding-wallet signature over the challenge message

No output schema declared.

No examples provided.

reject_cosigner_action ~38

Reject a pending action as co-signer.

NameTypeReqDescription
pendingApprovalIdstringyes–
reasonstring–Optional rejection reason

No output schema declared.

No examples provided.

remove_backup_governance_wallet ~80

Remove the registered backup governance wallet. GOVERN action: sign with your funding wallet (challengeId + walletSignature); applies immediately once signed. After removal, only the funding wallet may authorize governance.

NameTypeReqDescription
challengeIdstring–Governance challengeId from the first call
walletSignaturestring–Funding-wallet signature over the challenge message

No output schema declared.

No examples provided.

remove_cosigner ~100

Remove an active co-signer from this account. GOVERN action (it shrinks the approver set): via an agent key, sign a challenge with your funding wallet (challengeId + walletSignature); applies immediately once signed.

NameTypeReqDescription
challengeIdstring–Governance challengeId from the first call
membershipIdstringyesMembership id from list_cosigner_memberships
walletSignaturestring–Funding-wallet signature over the challenge message

No output schema declared.

No examples provided.

remove_recipient ~67

Remove a recipient from the FortFi allowlist (tightening policy — no funding-wallet GOVERN). Human developer key, session, or agent treasury key. Re-sync Turnkey policies in the app so the enclave matches.

NameTypeReqDescription
recipientIdstringyesRecipient id from list_recipients

No output schema declared.

No examples provided.

replay_merchant_webhook_delivery ~61

Replay a dead-lettered or failed webhook delivery after fixing your endpoint. Re-sends the same event id and body for idempotent handlers.

NameTypeReqDescription
deliveryIdstringyesDelivery row id from list_merchant_webhook_deliveries

No output schema declared.

No examples provided.

resend_claim_link ~52

Resend the dashboard claim email to contactEmail (MCP agent API key only; keys:manage scope). Use when the original link expired (72h) or was lost. Rate limit: 3/hour.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

resume_strategy ~47

Resume a paused strategy. An API key can only resume a strategy it started; others need the owner in the app.

NameTypeReqDescription
idstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

review_portfolio ~120

Read-only treasury review: allocation buckets (cash, yield, tokens), top holdings, and optional drift vs target weights. Safe for cron — no proposals created.

NameTypeReqDescription
driftThresholdPercentnumber–Hysteresis band in percentage points (default 5)
minLegUsdnumber–Minimum USD for rebalance legs (default 1)
targetsarray–Optional target allocation. Each row: { label, weightPercent, kind: cash|yield|token|symbol, symbol? }. Weights must sum to 100.

No output schema declared.

No examples provided.

revoke_cosigner_invite ~40

Revoke a pending outbound co-signer invite before it is accepted.

NameTypeReqDescription
inviteIdstringyesInvite id from the invite you sent

No output schema declared.

No examples provided.

revoke_vault_credential ~44

Revoke a vault-scoped credential (treasury + keys:manage). Idempotent if already revoked.

NameTypeReqDescription
credentialIdstringyesVault credential id

No output schema declared.

No examples provided.

run_hyperliquid_research_backtest ~235

Run an out-of-sample backtest on Hyperliquid perp OHLCV stored in FortFi research Postgres (hl_research_candles). Returns IS/OOS metrics and a pass/fail verdict. Read-only; uses synced historical data, not live HL API for bars. Strategies: momentum_cross (default).

NameTypeReqDescription
coinsarray–Optional fixed symbol list (e.g. BTC, ETH). Omit for volume-filtered universe
holdBarsnumber–Hold period in bars. Default 24
intervalstring–Candle interval in research DB. Default 1h
legsPerSidenumber–Long/short leg count. Default 6
lookbackBarsnumber–Trailing return lookback. Default 336 on 1h (~14d)
minDayVolumeUsdnumber–Universe liquidity floor when coins omitted. Default 1000000
oosFractionnumber–Out-of-sample tail fraction. Default 0.35
strategystring–Default momentum_cross

No output schema declared.

No examples provided.

run_hyperliquid_research_backtest_spec ~243

Run an out-of-sample backtest from a Strategy Spec JSON (universe + rank factor or named pattern + portfolio rules). Deterministic; reads hl_research_* Postgres. Agent should translate natural-language strategy ideas into the spec object before calling. Pass presetId instead of spec to get a FortFi house preset (crypto-majors, core-momentum, mag7, semis, memory, ai-compute, pre-ipo, ...) with its frozen spec and published OOS, walk-forward, drawdown and leverage scenarios; add rerun:true to recompute it live.

NameTypeReqDescription
presetIdstring–House preset id. Returns the spec plus published stats.
prodboolean–Use production Supabase (default false in dev)
rerunboolean–With presetId, rerun the preset spec live instead of returning published stats
specobject–Strategy Spec: name, universe {dex, minDayVolumeUsd, includeCoins, excludeCoins, maxSymbols}, interval, signal {type rank|pattern, factor|pattern, params}, portfolio, costs, validation

No output schema declared.

No examples provided.

screen_hyperliquid_markets ~233

Breakout screener for Hyperliquid perps: min volume filter, rank, HL candle TA (RSI, MACD, Bollinger). Returns dex + assetClass tags and long/short/neutral bias. Default scope=core; scope=all for HIP-3. Never creates proposals.

NameTypeReqDescription
assetClass––Filter asset classes. Comma-separated string or array.
chartLimitnumber–TA depth, default 10
dex––Filter dex ids. Comma-separated string or array.
directionstring–desc=gainers, asc=losers/short ideas
includeAllDesksboolean–When true, same as scope=all
includeChartsboolean––
indicatorsarray––
intervalstring–Default 1h
limitnumber–Default 40
minDayVolumeUsdnumber–Default 1000000
scopestring–Default core
sideBiasstring––
sortstring–Default pctChange

No output schema declared.

No examples provided.

screen_tokens ~207

Batch cheap-screen tokens across requested chains. Defaults to verified assets, $5M market cap, $50K daily volume, top 30-day performers plus volume leaders, stablecoin removal, and cross-chain deduplication. Returns no proposal.

NameTypeReqDescription
candidateLimitnumber–Override merged candidate cap, max 100
chainsarrayyes–
deepOptInboolean–Required when mode=deep
includeUnverifiedboolean–Default false; unverified results are labeled and need execution opt-in
minMarketCapUsdnumber–Default 5000000
minVolume1dUsdnumber–Default 50000
modestring––
sortsarray–Defaults to gainers_30d + volume_1d. Add gainers_1d, gainers_90d, gainers_365d, or market_cap when requested.
verifiedOnlyboolean–Default true

No output schema declared.

No examples provided.

search_credentials ~156

Parent-treasury key-centric credential search (treasury credential + keys:manage + wallets:read). Complements search_vaults. Never returns raw bearer keys.

NameTypeReqDescription
accessstring––
credentialKindstring––
cursorstring–Pagination cursor
externalCustomerIdstring–Exact external customer id
limitnumber–Page size (default 50, max 100)
metadataKeystring–Exact metadata key (requires metadataValue)
metadataValuestring–Exact metadata value (requires metadataKey)
querystring–Free-text search
statusstring––
walletIdstring–Filter by vault wallet id

No output schema declared.

No examples provided.

search_polymarket_markets ~37

Search Polymarket markets by question text.

NameTypeReqDescription
limitnumber––
querystringyesSearch text

No output schema declared.

No examples provided.

search_vaults ~175

Parent-treasury vault inventory search (treasury credential + keys:manage + wallets:read). Matches nicknames, wallet IDs, addresses, external customer IDs, credential names, and prefixes. Never returns raw bearer keys.

NameTypeReqDescription
chainIdstring–Exact chain filter
credentialAccessstring–Filter by linked credential access mode
credentialStatusstring–Filter by linked credential status
cursorstring–Pagination cursor from prior response
externalCustomerIdstring–Exact external customer id
limitnumber–Page size (default 50, max 100)
metadataKeystring–Exact metadata key (requires metadataValue)
metadataValuestring–Exact metadata value (requires metadataKey)
querystring–Free-text search

No output schema declared.

No examples provided.

send_merchant_webhook_test ~30

Send a signed webhook.test event to an endpoint.

NameTypeReqDescription
endpointIdstringyes–

No output schema declared.

No examples provided.

set_wallet_loss_cap ~158

Add a loss cap to a Hyperliquid wallet, or lower the one it has. If the wallet loses maxLossPct from the balance at the moment the cap is set, FortFi cancels its open orders, closes its positions and blocks new trades on it until the owner resets the cap in the app. An API key can only add or tighten a cap: raising, removing or resetting it needs the owner's passkey in the app. The cap is also measured from when it is set, so set it before trading.

NameTypeReqDescription
maxLossPctnumberyesMax loss in percent of the balance when set, 1 to 90 (whole numbers)
walletIdstringyeshyperliquid-mainnet wallet id

No output schema declared.

No examples provided.

start_copy_trade ~276

Copy another Hyperliquid account on one of your wallets. Every hour FortFi reads their book, keeps their largest positions until 95% of their exposure is covered (at most 10 names), scales to your equity and leverage cap, and trades only when a position drifts more than 10% from target. Leverage cap 1 or 2; 3 and 5 are high risk and need acceptHighRisk: true. Same rails, caps and key re-checks as start_strategy.

NameTypeReqDescription
acceptHighRiskboolean–Required for a 3x or 5x cap: you accept it can lose most of the money in this wallet.
addressstringyes0x address to copy
leveragenumberyesLeverage cap: 1, 2, 3 or 5 (3 and 5 need acceptHighRisk)
maxAllocationUsdstring–Optional cap on equity used, e.g. "500"
maxLossPctinteger–Optional loss cap, whole percent (1-90). If the strategy's P&L since start falls this far below the money it runs on, FortFi stops it and closes its positions. Checked every 5 minutes.
walletIdstringyeshyperliquid-mainnet wallet id

No output schema declared.

No examples provided.

start_strategy ~263

Start a house preset on a hyperliquid-mainnet wallet and place its first orders. Leverage must be one of the preset's testedLeverage or highRiskLeverage levels; high-risk levels need acceptHighRisk: true. Requires the owner to have turned on autonomous trading and confirmed perps eligibility. One strategy per wallet. Every order is an ActionIntent under this key's caps and co-sign rules; the key is re-checked every run and the strategy pauses if it is revoked.

NameTypeReqDescription
acceptHighRiskboolean–Required for a highRiskLeverage level: you accept it can lose most of the money in this wallet.
leveragenumberyesOne of the preset's testedLeverage or highRiskLeverage levels
maxAllocationUsdstring–Optional cap on equity the strategy sizes against, e.g. "500"
maxLossPctinteger–Optional loss cap, whole percent (1-90). If the strategy's P&L since start falls this far below the money it runs on, FortFi stops it and closes its positions. Checked every 5 minutes.
presetIdstringyesFrom list_strategy_presets
walletIdstringyeshyperliquid-mainnet wallet id

No output schema declared.

No examples provided.

stop_strategy ~45

Stop a strategy and close every position it opened (cash out). Positions it did not open are left alone.

NameTypeReqDescription
idstringyes–
walletIdstringyes–

No output schema declared.

No examples provided.

update_cosigner_rules ~138

Set cosigner quorum rules (send + swap USD bands). Tightening rules works with the agent key alone. WEAKENING them (lower required cosigners / raise the amount floor) is a GOVERN action: sign a challenge with your funding wallet (challengeId + walletSignature); applies immediately once signed (same as passkey in the UI). Amounts use USDC micro-units (1 USDC = 1000000).

NameTypeReqDescription
challengeIdstring–Governance challengeId (only needed when weakening rules)
rulesarrayyes–
walletSignaturestring–Funding-wallet signature over the challenge message

No output schema declared.

No examples provided.

update_strategy ~204

Resize a strategy or copy trade: raise or lower its leverage (offered levels only) or allocation cap. Moving into a high-risk level needs acceptHighRisk: true. The loss cap can be added or lowered, never raised or removed (OWNER_PASSKEY_REQUIRED).

NameTypeReqDescription
acceptHighRiskboolean–Required when the new leverage is a high-risk level you have not already accepted.
autoStopsboolean–Copy trades only: keep a full-size stop on every copied position (on by default). API keys may turn it on, never off.
idstringyes–
leveragenumber–New leverage (higher or lower)
maxAllocationUsdstring–New allocation cap in USD (higher or lower), e.g. "800"
maxLossPctinteger–New loss cap, whole percent. API keys may add a cap or lower it, never raise or remove it.
walletIdstringyes–

No output schema declared.

No examples provided.

update_vault_credential ~94

Atomically replace a vault credential's name, access mode, grants, and expiry (treasury + keys:manage). Revoked credentials cannot be updated.

NameTypeReqDescription
accessstringyes–
credentialIdstringyesVault credential id
expiresAtstring–ISO-8601 expiry, or null to clear
namestringyes–
vaultGrantsarrayyes–

No output schema declared.

No examples provided.

update_wallet_metadata ~92

Propose updating wallet metadata tags (flat string key/value pairs; replaces existing tags on confirm). Returns proposalId; call confirm_proposal to apply. Not a money-moving action.

NameTypeReqDescription
accountIdstringyesWallet id from list_wallets
metadataobjectyesFull metadata object, e.g. { "customer_id": "cust_123", "agent_id": "ag_1" }

No output schema declared.

No examples provided.

validate_payout_manifest ~75

Preview batch payroll/payout (max 50 lines). Each line: { recipientId, amountUsdc, memo? }. All recipients must be allowlisted, same chain as fromWalletId, and past cooldown.

NameTypeReqDescription
fromWalletIdstringyesWallet id from list_wallets
linesarrayyes–

No output schema declared.

No examples provided.

validate_recipient_manifest ~55

Preview a batch recipient import (max 50 rows). Each row: { address, chainId, nickname? }. Returns ready_new, already_exists, or invalid per line. Read-only.

NameTypeReqDescription
recipientsarrayyes–

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.