{"name":"trade.felix/mcp","slug":"felix-mcp","title":"Felix MCP","description":"Non-custodial trading infrastructure for AI agents across prediction markets, crypto, and options.","url":"https://mcp.market/server/felix-mcp","rating":null,"grade":"C","score":68,"certified":false,"status":"active","category":"finance","tags":["finance"],"presence":{"score":11,"stars":null,"forks":null,"downloads_week":48,"last_push_at":null,"license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":null,"website":"https://felix.trade/docs","version":"2.0.110","remotes":[],"packages":[{"registryType":"npm","identifier":"felix-mcp","version":"2.0.110","transport":{"type":"stdio"}}],"tools":[{"name":"add_withdrawal_address","description":"Authorize a withdrawal address immediately. Felix prepares the exact destination, signs it with the local owner key, and activates it in one call; there is no waiting period and the key never leaves this process.","write_action":false,"price_micros":0,"input_schema":null},{"name":"approve_polymarket_wallet","description":"Locally sign and relay only the fixed pUSD/CTF exchange approval batch for the caller-owned deposit wallet. Requires FELIX_OWNER_PRIVATE_KEY in single-user stdio mode.","write_action":false,"price_micros":0,"input_schema":null},{"name":"backtest","description":"Backtest a compiled or hand-written strategy on real historical data before deployment. Returns the chart-ready summary by default. Use start_backtest for large histories. Use get_strategy_guide or … for the code contract and working examples.","write_action":false,"price_micros":0,"input_schema":null},{"name":"bring_home","description":"Return venue collateral to the original verified owner wallet. Omit amount_usd for a full prediction-market sweep. Crypto returns are long-running (usually 3-15 minutes), emit progress, and must be retried only with the same idempotency key after a client timeout. Derive has no caller-selected destination; prediction-market and crypto returns require the owner key locally.","write_action":false,"price_micros":0,"input_schema":null},{"name":"cancel_exit_plan","description":"Cancel an armed exit plan. A plan already triggering cannot be cancelled.","write_action":true,"price_micros":0,"input_schema":null},{"name":"cancel_order","description":"Request cancellation of an open/resting order. Filled paper orders are not cancellable; close the returned position_id instead.","write_action":true,"price_micros":0,"input_schema":null},{"name":"close_position","description":"Close a caller-owned position by id. Derive closes use a durable asynchronous operation and bounded polling; never resubmit a pending close with a new key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete_hyperliquid_onboarding","description":"Submit the main wallet's exact approveAgent signature and verify the scoped API-wallet relationship on Hyperliquid.","write_action":true,"price_micros":0,"input_schema":null},{"name":"complete_wallet_onboarding","description":"Verify and relay the owner's locally validated exact Safe module-enable and fallback-handler signatures, then link the client-owned wallet. Follow ….","write_action":false,"price_micros":0,"input_schema":null},{"name":"confirm_withdrawal_address","description":"Re-authorize a legacy withdrawal-address entry immediately with the local owner key. New addresses need only add_withdrawal_address.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_support_ticket","description":"Open an encrypted two-way Felix support ticket. The ticket is account-scoped, idempotent, rate-limited, and readable only by this account and Felix support.","write_action":true,"price_micros":0,"input_schema":null},{"name":"deploy_polymarket_wallet","description":"Deploy the caller-owned Polymarket deposit wallet without sending an owner key or signature to Felix.","write_action":true,"price_micros":0,"input_schema":null},{"name":"deploy_wallet_onboarding","description":"Verify the owner's locally validated personal-sign challenge and activate the Safe policy wallet. Accepts a signature, never the owner key. Follow ….","write_action":true,"price_micros":0,"input_schema":null},{"name":"derive_api_key","description":"Explicit paper-mode helper. Requires a registered local launcher identity plus paper:true, then creates an isolated zero-fund sandbox with a least-privilege paper key. For cold start read …; for real money use create_account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fund_market","description":"Route funds from the client-owned main EOA to prediction markets, crypto, or Derive options. Native Polygon USDC is automatically converted to USDC.e only as needed, with hashes disclosed. Felix may cover required gas; the owner key signs locally and never reaches Felix.","write_action":false,"price_micros":0,"input_schema":null},{"name":"fund_polymarket_agent_wallet","description":"Set up the caller's distinct venue-scoped autonomous Polymarket wallet, then locally sign one exact pUSD transfer to it. Felix cannot redirect the destination and never receives the owner key. Use this before deploying a live Polymarket agent; direct client-signed orders continue using the client-owned wallet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"generate_strategy","description":"Turn a plain-English idea into a runnable def think(ctx) strategy. This uses the account's generation budget; get_strategy_guide or … always provides the complete manual authoring contract for free.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_backtest_operation","description":"Read progress or the terminal result for a durable asynchronous backtest without starting another computation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_balances","description":"Fast venue collateral snapshot plus Polygon cash and paper position count. Provider gaps are returned explicitly instead of hidden behind retries; set wait_for_complete:true to wait through the bounded Derive refresh cycle. This intentionally excludes marked Polymarket positions and owner-wallet balances on other chains; use get_money_map for canonical account-value and money-tracking decisions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_close_operation","description":"Poll a caller-owned asynchronous close operation by its idempotency UUID. This never submits or retries an order.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_custody_recovery_status","description":"Verify that guided onboarding created an encrypted local recovery file which authenticates to the currently installed owner and launcher identity. Returns status only; no key, recovery code, credential, or file contents are exposed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_deposit_address","description":"Client-owned Polygon deposit address. It accepts native USDC or bridged USDC.e; fund_market automatically converts native USDC locally when needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_derive_onboarding","description":"Read the current owner-signed Derive onboarding state. Never returns a private session key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_earnings_calendar","description":"Upcoming earnings dates and estimates from the delayed market-data feed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_equity_option_chain","description":"Delayed consolidated equity-option chain for stocks and ETFs. This is distinct from tradeable Derive crypto options.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_exit_plan","description":"Read the encrypted exit plan attached to one owned position.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_fee_balance","description":"Read prepaid execution-fee credit. Live Polymarket and Derive opens reserve this credit before submission; withdrawals never collect trading fees.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_feedback","description":"Get one feedback report belonging to this Felix account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_fills","description":"Entry/exit fills with prices, fees, and realized PnL.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_fundamentals","description":"Period-labelled company fundamentals. Live/TTM snapshots and filed figures are returned separately, never silently blended.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_funding","description":"Perp funding rate for an instrument.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_health","description":"Public liveness check. No key required.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_hyperliquid_onboarding","description":"Read and reconcile a caller-owned Hyperliquid API-wallet onboarding request.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_local_wallet","description":"Show the public address of the client-held launcher or deterministically derived child owner key. The private key is never returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_market_streaming_guide","description":"Return the bundled secure WebSocket protocol, subscription, reconnect, and backpressure contract without an API key or network request. The same guide is published as ….","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_metrics","description":"Authenticated guide to client-observable reliability fields: request ID, server latency, retry timing, and the public status URL. Process and platform diagnostics are not returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_money_map","description":"One call that answers 'where is my money': every wallet, venue, and open-position balance as one flat list, each entry saying what it is for and which call moves it. Defaults to a fast snapshot with explicit freshness; set wait_for_complete:true to wait through bounded venue refreshes. Sources that cannot be verified are listed as unavailable, never assumed zero. Prefer this over get_balances for ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_money_operation","description":"Read durable progress or the terminal result for an asynchronous money operation without starting or repeating a transfer.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_network_fee_status","description":"Inspect any active funding network-fee obligation, whether owner funds moved, and whether Felix can safely release it without payment.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_option_chain","description":"Option chain for BTC, ETH, SOL, etc: expiries, strikes, greeks, IV, quotes, and tightest_round_trip candidates ranked by quoted spread. Always use preview_order for an exact executable cost check before trading.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_order_status","description":"Poll a caller-owned Hyperliquid or Derive live-order intent after an ambiguous venue response. Retry only when safe_to_retry is true.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_orderbook","description":"Top-of-book/orderbook view for a tradeable instrument.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_pnl","description":"Realized/unrealized PnL, fees, net PnL, and open/closed counts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_polymarket_order_status","description":"Reconcile a client-signed Polymarket intent after an uncertain or delayed venue response.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_polymarket_wallet","description":"Read the caller-owned Polymarket deposit wallet and setup state without deploying, approving, signing, or spending gas. Pass account_id to inspect an owned child account instead of the active one.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_portfolio","description":"Portfolio summary: deployed paper capital and live balances.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_positions","description":"Open paper and live positions, scoped to the key's account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quote","description":"Price for one instrument. Listed equity tickers can resolve to a live equity-perpetual execution mark rather than the delayed cash share price; inspect product_type, price_role, venue, tradeable, and data_class before using it. research_market provides cash-equity historical context.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_status","description":"Fast public platform, local MCP, and current-key status. Set deep:true before onboarding or diagnosing funding to include the sanitized readiness result.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_strategy_guide","description":"Return the bundled think(ctx) API and hand-written strategy examples without an API key, network request, or generation quota. The same content is published as … and ….","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_wallet_onboarding","description":"Read a caller-owned Safe onboarding request status.","write_action":false,"price_micros":0,"input_schema":null},{"name":"init_hyperliquid_onboarding","description":"Prepare Hyperliquid approveAgent typed data for the caller-owned main wallet. Felix creates only a scoped API wallet that cannot withdraw or transfer funds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"init_wallet_onboarding","description":"Start advanced client-owned Safe onboarding. The owner key must be generated and retained outside Felix; only public addresses are sent. Read … before implementing the signing flow.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_exit_plans","description":"List this account's exit plans and trigger state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_feedback","description":"List feedback reports belonging to this Felix account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_markets","description":"Page deterministically through a venue's complete market catalog, including active, future, resolved, or inactive markets. Follow next_cursor until complete is true.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_recent_operations","description":"List durable local money operations for the active account, including progress, terminal results, and exact recovery instructions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_withdrawal_addresses","description":"List allowlisted withdrawal addresses and owner-authorization status. A launcher manage key may target one owned child with account_id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"make_market","description":"Reserved two-sided quote tool. Live use is disabled until compensated two-leg execution ships.","write_action":false,"price_micros":0,"input_schema":null},{"name":"migrate_wallet_to_v3","description":"Migrate a caller-owned legacy Safe to Felix V3 in one resumable local workflow: prove ownership, deploy only the V3 policy, locally execute enable/fallback/disable-V2, and confirm atomic account promotion.","write_action":false,"price_micros":0,"input_schema":null},{"name":"onboard_hyperliquid","description":"Complete Hyperliquid approveAgent onboarding for a child account (needed after the account is funded before it can trade). The owner key signs the approval locally and never reaches Felix.","write_action":false,"price_micros":0,"input_schema":null},{"name":"place_batch_orders","description":"Place orders in one explicit mode. mode:live executes real-money orders; mode:paper simulates every item. Mixed or implicit modes are rejected. The schema accepts up to 50 items, but the active tier's order-per-minute allowance applies to the entire batch (10 on free). Processing stops before later live items after the first failure.","write_action":false,"price_micros":0,"input_schema":null},{"name":"place_order","description":"Place a real-money order by default, optionally funding the selected venue first and attaching a server-monitored OCO exit plan. Set auto_fund:true for one-call local-signing fund-then-trade; it requires an idempotency_key and never exposes the owner key. Set paper:true explicitly to simulate. Leveraged Hyperliquid exposure is blocked unless allow_leverage:true is explicit.","write_action":true,"price_micros":0,"input_schema":null},{"name":"prepare_derive_onboarding","description":"Prepare exact Derive-chain transactions for the verified owner wallet to send. Felix never receives the owner key.","write_action":false,"price_micros":0,"input_schema":null},{"name":"prepare_polymarket_withdrawal_grant","description":"Build the exact fixed-home Polymarket withdrawal message for the client-owned wallet to sign. This never signs or moves funds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"prepare_wallet_policy","description":"Prepare an owner-signed Safe V3 pause, resume, renewal, or emergency lockdown. Lockdown atomically pauses the agent and revokes fixed Polymarket approvals.","write_action":false,"price_micros":0,"input_schema":null},{"name":"prepare_withdrawal","description":"Prepare an exact Safe withdrawal transaction after allowlist checks. USDC.e means bridged USDC.e on Polygon, which many centralized exchanges do not support; prefer a self-custody Polygon wallet and convert before an exchange deposit. Returns EIP-712 data for the owner to sign locally; no money moves yet.","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_fee_settlement","description":"Deprecated compatibility alias for preview_fee_top_up. It previews prepaid execution-fee credit and never exposes the collection address.","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_fee_top_up","description":"Preview an owner-signed execution-fee credit top-up without signing or exposing Felix's collection address. Nothing moves until top_up_fee_balance is called.","write_action":false,"price_micros":0,"input_schema":null},{"name":"preview_order","description":"Preview an order before placing it. No money moves; returns estimated fill, fees, live minimum, collateral, selected venue, and projected Hyperliquid leverage. Set auto_fund:true to include the exact owner-to-venue funding plan without executing it.","write_action":true,"price_micros":0,"input_schema":null},{"name":"reconcile_polymarket_order","description":"Resume the side-effect-free Felix commit/reconciliation step when Polymarket returned an order hash but the API response was interrupted. This never posts a venue order.","write_action":true,"price_micros":0,"input_schema":null},{"name":"reload_launcher_key","description":"Reload the current launcher API key and owner signer from macOS Keychain, validate their encrypted workflow journal, and explicitly leave any child account. No secret is returned.","write_action":false,"price_micros":0,"input_schema":null},{"name":"repair_derive_session","description":"Renew an expired or missing Derive session in one local, owner-signed workflow while preserving the existing subaccount and funds.","write_action":false,"price_micros":0,"input_schema":null},{"name":"report_feedback","description":"Report a Felix bug, product issue, or request. Content is encrypted at rest and never logged.","write_action":false,"price_micros":0,"input_schema":null},{"name":"research_market","description":"Real historical research cards and agent-ready market signals without using the strategy-generation token budget.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resolve_network_fee","description":"Resolve one exact funding-fee obligation. action=release is allowed only when Felix proves no owner funds moved; action=pay locally signs the fixed gas-wallet fee only after a verified owner-value funding transaction.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resume_backtest_operation","description":"Resume a durable backtest only after its operation lease expired, typically after an API restart. The encrypted original request is reused.","write_action":false,"price_micros":0,"input_schema":null},{"name":"resume_money_operation","description":"Resume an interrupted asynchronous money operation with its original encrypted arguments and idempotency key. When a prior send may have happened, confirm_reconciled:true is required.","write_action":false,"price_micros":0,"input_schema":null},{"name":"revoke_polymarket_withdrawal_grant","description":"Revoke the stored Polymarket fixed-home withdrawal authorization for the account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"route_funds","description":"Route live funds from the owner wallet to one venue. The six source_market/destination_market RFQ pairs are discoverable now but execute only after router capabilities report cross_venue_execution_ready:true. Until then they fail before moving money and direct agents to bring_home then fund_market. Felix asks approved LPs first; only owner-wallet funding may use the approved protocol fallback. The","write_action":false,"price_micros":0,"input_schema":null},{"name":"scan_options_flow","description":"Scan delayed consolidated equity-option chains for unusual volume/open-interest and premium. This is decision support, not tape-level sweep data.","write_action":false,"price_micros":0,"input_schema":null},{"name":"screen_markets","description":"Screen a bounded liquid stock/crypto universe by momentum, trend, RSI, volatility, and dollar volume.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_markets","description":"Search across stocks, crypto, perps, options, and prediction markets with one fuzzy query. Use list_markets for complete venue enumeration.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_api_key","description":"Set or replace the Felix API key for this running MCP session. The key is never echoed back.","write_action":false,"price_micros":0,"input_schema":null},{"name":"set_exit_plan","description":"Create or replace one encrypted, server-monitored OCO exit plan on an owned Hyperliquid or Derive position.","write_action":true,"price_micros":0,"input_schema":null},{"name":"settle_fees","description":"Deprecated compatibility alias for top_up_fee_balance. It adds prepaid credit; it does not settle debt and is never called by withdrawals.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_backtest","description":"Start a durable long-running backtest and return immediately with an operation_id. Poll get_backtest_operation; API restarts can be recovered with resume_backtest_operation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_bring_home","description":"Start a durable bring-home operation and return immediately with an operation_id. Use this for crypto and other routes that can take minutes; owner signing remains local and encrypted recovery state survives MCP restarts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"start_fund_market","description":"Start durable venue funding and return immediately with an operation_id. Prefer this for crypto and options bridges; poll get_money_operation while the owner-signed route settles.","write_action":false,"price_micros":0,"input_schema":null},{"name":"submit_derive_onboarding","description":"Verify the owner's exact prepared Derive transactions after a browser wallet broadcasts them, or relay exact CLI-signed raw transactions.","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_polymarket_withdrawal_grant","description":"Store an owner-signed, fixed-home Polymarket withdrawal grant for venue-scoped policy checks. Never accepts a private key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_wallet_policy","description":"Relay an exact owner-signed Safe V3 policy transaction. Accepts only the sealed policy token and canonical Safe signature.","write_action":true,"price_micros":0,"input_schema":null},{"name":"submit_withdrawal","description":"Relay an owner-signed Safe withdrawal prepared by prepare_withdrawal. Accepts only the request id and 65-byte signature, never a private key.","write_action":true,"price_micros":0,"input_schema":null},{"name":"swap_native_usdc","description":"Convert Polygon native USDC into USDC.e. This is owner-signed, same-chain, may receive gas assistance, and normally happens automatically inside fund_market.","write_action":false,"price_micros":0,"input_schema":null},{"name":"top_up_fee_balance","description":"Sign one bounded USDC.e transfer locally and credit it for live execution fees. By default this refuses to consume the recommended owner-wallet trading buffer. Orders reserve exact fees before submission; no fee debt is created.","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_wallet_policy","description":"Locally verify, sign, and relay a Safe V3 pause, resume, renewal, or emergency lockdown in one replay-safe workflow. Lockdown also revokes fixed Polymarket approvals.","write_action":true,"price_micros":0,"input_schema":null},{"name":"use_child_account","description":"Activate a previously created child account for this session by minting and installing its owner-signed live key. After this, fund_market/place_order/etc. operate on the child. The child owner key is derived locally and never reaches Felix.","write_action":false,"price_micros":0,"input_schema":null},{"name":"verify_custody","description":"Verify this account's Safe owner, threshold, enabled V3 module, immutable bindings, and policy against Polygon chain state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wait_for_operation","description":"Wait inside one MCP call for a money or backtest operation to finish, avoiding repeated LLM polling. Returns early on completion, failure, interruption, or reconciliation-required state.","write_action":false,"price_micros":0,"input_schema":null},{"name":"withdraw","description":"Withdraw from the funded policy Safe or owner Polygon wallet. USDC.e withdrawals deliver bridged USDC.e on Polygon; many centralized exchanges do not support it, so prefer a self-custody Polygon wallet and convert to native USDC before an exchange deposit. Felix prepares one exact intent; the local owner key signs and the result is confirmed on-chain without exposing key material.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":68,"grade":"C","scanned_at":"2026-09-20T16:19:47.598Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T16:19:47.559Z","components":{"code":{"score":25,"max":25,"notes":["23 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"packages":[{"registryType":"npm","identifier":"felix-mcp","version":"2.0.110","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-09-02T21:04:30.057Z","weeklyDownloads":48}],"repo":{"found":false},"icon":{"url":"https://felix.trade/launch-assets/felix-developer-mark-128.png","source":"registry","width":128,"height":128},"presence":{"stars":null,"forks":null,"downloadsWeek":48,"license":"MIT","lastPushAt":null,"score":11}}}},"grade_history":[],"reviews":[]}