Gogi
Server Details
Unified financial infrastructure connecting AI agents directly to trade live/demo brokerage accounts, Web3 non-custodial wallets, real-time market data across equities, ETFs, crypto, forex, options, DeFi swaps, and prediction markets, institutional research feeds, and algorithmic strategy backtesters.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 39 tools
Most tools are cleanly separated by resource+action, and descriptions actively disambiguate near-neighbors (get_positions 'is narrower than get_portfolio', start_instance 'does not replace activate_algo', get_market_data vs analyze_chart_structure vs get_data_feed). The main residual ambiguity is the algo lifecycle family — create_algo vs create_and_start_algo vs create_instance + activate_algo vs update_linked_algo vs update_algo — where an agent must reason carefully about which path composes correctly.
Every tool is snake_case verb_noun (list_*, get_*, create_*, update_*, delete_*, cancel_*, close_*, execute_*), consistently using get_ for single reads and list_ for collections. The one compound name, create_and_start_algo, is still readable and follows the same verb style.
39 tools is heavy for a single surface, though the domain (brokers, algos, instances, portfolio, backtests, prediction markets, data feeds, files) is genuinely broad. Some redundancy exists — create_and_start_algo composes three other tools, and log_event/read_file/get_platform_disclosure are peripheral to the core trading surface.
Coverage is strong: full algo and instance CRUD, activation/deactivation, portfolio/positions/history reads, pending-trade lifecycle, backtests, prediction search+execute, and data feeds. Minor gaps remain on the periphery, e.g. no file upload/delete alongside read_file, and no tool to view or cancel an already-executed prediction position.
Publisher details
- Operator
- Gogi
- Operator website
- https://www.gogi.ai
- Vendor relationship
- Not applicable
- Documentation
- https://github.com/gogiai/gogi-mcp
- Restrictions
- Paid plan · Publisher source
Available Tools
39 toolsactivate_algoActivate AlgorithmADestructiveInspect
Link an algorithm to a trading instance with capital allocation and start live trading. algo_id is the saved algo id (from create_algo / list_my_algos), not LinkedAlgo id. instance_id is from create_instance / list_instances. ALWAYS ask the user for capital_allocation — never invent a dollar amount. Capital is from broker buying power; the cumulative sum across this agent's live algos (allocated AI Trading Power) must stay ≤ policy max_total_capital. First call with confirm_allocation=false; server returns allocation_requires_confirm with broker_equity, allocation_pct_of_equity, and warning_level (high≥50%, critical≥90%). Show those to the user with risk settings; after explicit OK retry with confirm_allocation=true (acknowledge_capital_risk still accepted as alias). capital > equity is hard-blocked. Optional risk_preset override: conservative|moderate|aggressive|custom. On success check engine_started (or utml_started), is_live, symbols, timeframe, and capital vs equity.
Inputs: algo_id (required), instance_id (required), capital_allocation (required), risk_preset, +2 more. Returns: Structured result. Error responses include error and message.
analyze_chart_structureAnalyze Chart StructureBRead-onlyIdempotentInspect
Chart patterns, S/R, Fibonacci, and indicators. Default overlay=patterns. Summarize steps performed when presenting results. Use get_market_data for quotes.
Inputs: symbol (required), feature, lookback, overlays, +1 more. Returns: Structured result. Error responses include error and message.
cancel_pending_tradeCancel Pending TradeADestructiveInspect
Cancel a pending trade before in-app confirmation. This cannot cancel an already executed, expired, or previously resolved trade.
Inputs: pending_trade_id (required). Returns: Structured result. Error responses include error and message.
close_positionsClose PositionsADestructiveInspect
Close open positions on a Connections account (all asset classes, all brokers). ONE call closes every matching position or ticket: omit symbol to flatten the account, or pass symbol to close every ticket for it (e.g. all TradeLocker XAUUSD tickets). Never loop over tickets one at a time to close a stack. If the agent requires confirmation (HITL) and several positions match, the first call returns status=confirmation_required with positions_to_close: show them, then repeat the call with confirm_close_all=true. Fully autonomous agents (AITL) close in the first call. Use position_id only when the user wants ONE specific ticket. May return pending_confirmation when HITL is on.
Inputs: side, symbol, quantity, position_id, +2 more. Returns: Structured result. Error responses include error and message.
create_algoCreate AlgorithmAInspect
Create a trading algorithm strategy with full technical parameters, multi-condition entry/exit blocks, and risk settings. Supports all indicators (SMA, EMA, WMA, LWMA, SMMA, VWMA, DEMA, TEMA, HMA, KAMA, RSI, MACD, Bollinger Bands, VWAP, ADX, STOCH, ATR, CCI, WILLR, MFI, OBV, ROC, KC, DC, ICHIMOKU, PSAR, SUPERTREND, Price, Value). You can send the full strategy block EITHER inside strategy_params (object or JSON string) OR via flat top-level fields (strategy_type, indicators, buy_conditions, sell_conditions, buy_exit_conditions, sell_exit_conditions, stop_loss_percentage, take_profit_percentage, risk_percentage, max_drawdown, trailing_stop_enabled, trailing_stop_amount, allow_pyramiding, max_pyramid_positions, close_on_bias_flip, trade_direction). Use the strategy the user (or this conversation) specified. If indicators/entry conditions were not specified, ASK — do NOT invent EMA 9/21 or any favorite indicator pair. Only pick a concrete template when the user explicitly invites you (e.g. 'you pick', 'surprise me'); then prefer diverse types such as RSI(14), MACD, SMA 50/200, or EMA 12/26 — never always the same MA pair.
Inputs: symbols (required), name, timeframe, indicators, +25 more. Returns: Structured result. Error responses include error and message.
create_and_start_algoCreate and Start AlgorithmADestructiveInspect
Create algo + instance + start live trading on broker_account_id (account_ref from list_brokers; prefer paper/demo). Use the strategy the user (or this conversation) specified. If indicators/entry conditions were not specified, ASK — do NOT invent EMA 9/21 or any favorite indicator pair. Only pick a concrete template when the user explicitly invites you (e.g. 'you pick', 'surprise me'); then prefer diverse types such as RSI(14), MACD, SMA 50/200, or EMA 12/26 — never always the same MA pair. Ask for capital_allocation; keep cumulative live capital ≤ policy max_total_capital. Prefer user risk numbers in strategy_params.risk; optional risk_preset otherwise. First call confirm_allocation=false; after user OK retry confirm_allocation=true. On success present Instance Setup Details.
Inputs: symbols (required), timeframe (required), broker_account_id (required), capital_allocation (required), +32 more. Returns: Structured result. Error responses include error and message.
create_instanceCreate Trading InstanceAInspect
Create a trading instance for broker_account_id (account_ref from list_brokers). Prefer paper/demo unless user chooses live. Default status pending; start_immediately=true only when user wants live now.
Inputs: name (required), broker_account_id (required), description, start_immediately. Returns: Structured result. Error responses include error and message.
deactivate_algoDeactivate AlgorithmAInspect
Deactivate and unlink an algorithm from a trading instance, stopping that linked strategy without deleting the saved algorithm. Use this before delete_algo; it is reversible with activate_algo, but inspect open positions first because deactivation does not automatically flatten broker exposure.
Inputs: algo_id (required), instance_id (required). Returns: Structured result. Error responses include error and message.
delete_algoArchive Saved AlgorithmADestructiveInspect
Archive a saved algorithm owned by the user. Requires confirm=true. An algorithm linked to a trading instance cannot be archived until it is deactivated, preventing accidental disruption or loss of execution history.
Inputs: algo_id (required), confirm (required). Returns: Structured result. Error responses include error and message.
delete_instanceDelete Trading InstanceADestructiveInspect
Permanently delete a trading instance and free a slot (max 10 per user). Stop ≠ delete. For live instances pass force=true. If open positions exist, the tool returns error_type=open_positions_require_confirm with open_positions — show them to the user, warn that delete will close all open positions, then retry with confirm_close_positions=true after explicit user OK.
Inputs: instance_id (required), force, confirm_close_positions. Returns: Structured result. Error responses include error and message.
execute_predictionExecute Prediction OrderADestructiveInspect
Money-moving Kalshi/Polymarket order (may be irreversible). Policy and in-app confirmation still apply when enabled. Use search_predictions to find contracts when the ticker is unknown.
Inputs: side (required), ticker (required), contracts (required), platform, +2 more. Returns: Structured result. Error responses include error and message.
execute_tradeExecute TradeADestructiveInspect
Money-moving broker trade (may place a real order). Optional instance_id for algo-tracked live instance; omit for on-demand on broker_account_id/default. If mcp_require_confirm, returns pending_confirmation — Confirm in Gogi Activity. Use close_positions to flatten rather than inventing a sell quantity. order_type limit/stop/stop_limit need limit_price and/or stop_price; supported types depend on the broker (Alpaca all; TradeLocker market/limit/stop; Coinbase, Kraken, OANDA, Schwab market/limit; others market) — unsupported types are refused, never sent as market. Pass a unique client_order_id so a retried call cannot place a second order. Forex/CFD quantity is in lots.
Inputs: side (required), symbol (required), quantity (required), stop_loss, +9 more. Returns: Structured result. Error responses include error and message.
get_algoGet Saved AlgorithmARead-onlyIdempotentInspect
Retrieve one saved algorithm owned by the user by ID. Use list_my_algos first when the ID is unknown; use get_linked_algo for an instance-specific runtime copy.
Inputs: algo_id (required). Returns: Structured result. Error responses include error and message.
get_backtest_runGet Backtest RunARead-onlyIdempotentInspect
Get details for a backtest run by run_id (must belong to this user's agent).
Inputs: run_id (required). Returns: Structured result. Error responses include error and message.
get_creditsGet CreditsARead-onlyIdempotentInspect
Free. This agent's Gogi credits today: used, limit, remaining, status (ok/low/exhausted), when they reset (user's local midnight), and how to add a +100 credit pack. Check before long or expensive runs; tell the user when low.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
get_data_feedGet Data FeedARead-onlyIdempotentInspect
Query a subscribed marketplace data feed by feed_id. Pass a ticker in query (e.g. AAPL). Returns FMP-backed data for financials/insider/congress feeds, or a text preview for uploaded file feed ids.
Inputs: feed_id (required), query. Returns: Structured result. Error responses include error and message.
get_linked_algoGet Linked AlgorithmARead-onlyIdempotentInspect
Read a LinkedAlgo on a live instance owned by this agent: parameters, capital, symbols, mcp_require_confirm (null=inherit), and effective_confirm.
Inputs: instance_id (required), linked_algo_id (required). Returns: Structured result. Error responses include error and message.
get_market_dataGet Market DataAIdempotentInspect
FMP quote + full technicals (EMAs, stoch, MACD, RSI, ADX) + chart structure (patterns, S/R, fib) for stocks/crypto/FX/commodities/indices. No broker required. Optional timeframe (default 1day). Use get_data_feed for marketplace SKUs; analyze_chart_structure for other overlays/lookbacks.
Inputs: symbol (required), timeframe. Returns: Structured result. Error responses include error and message.
get_pending_trade_statusGet Pending Trade StatusARead-onlyIdempotentInspect
Check status of a pending MCP trade awaiting in-app Confirm (pending, executed, cancelled, expired, failed).
Inputs: pending_trade_id (required). Returns: Structured result. Error responses include error and message.
get_platform_disclosureGet Platform DisclosureAIdempotentInspect
Return Gogi's trading/MCP risk disclosure (optional; also summarized in initialize). User controls permissions; no investment advice; losses are the user's.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
get_policyGet Trading PolicyARead-onlyIdempotentInspect
Fetch this agent's global policy constraints plus per-live-instance HITL/AITL overrides (instance_overrides). mcp_require_confirm on policy is the default; LinkedAlgo overrides apply only to that live binding. Returns agent_id/agent_name/bound_key (the agent this key is bound to — compare with the agent the user has open in Gogi) and enabled_accounts (brokers execute_trade will actually allow).
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
get_portfolioGet PortfolioARead-onlyIdempotentInspect
Get account-level balances, equity, buying power, positions, and Web3 wallet holdings across connected brokers and wallets. Read each account's pnl_summary for equity, balance, unrealized_pnl and daily_pnl: a null value means the broker did not report it (say 'unknown', never assume 0 or break-even); partial_errors says which call failed. Accounts in equity_unavailable_for are excluded from the totals. Use get_positions when you only need normalized open exposure. Label each account by its display_label (broker · environment · •••••last5 of the broker's own account number); never call an account by broker_account_id, which is Gogi-internal. Each position has attribution: 'this_agent' or 'outside_this_agent'. Read policy_context before judging risk: the agent's policy (incl. max_daily_loss, measured on the agent's own realized P&L) does not apply to positions the user opened outside this agent — never call those a policy breach.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
get_positionsGet Open PositionsARead-onlyIdempotentInspect
Get normalized current open positions and exposure across connected brokers. This is narrower than get_portfolio and does not replace account balances or wallet holdings. Label each account by its display_label (broker · environment · •••••last5 of the broker's own account number); never call an account by broker_account_id, which is Gogi-internal. Each position has attribution: 'this_agent' or 'outside_this_agent'. Read policy_context before judging risk: the agent's policy (incl. max_daily_loss, measured on the agent's own realized P&L) does not apply to positions the user opened outside this agent — never call those a policy breach.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
get_trade_historyGet Trade HistoryARead-onlyIdempotentInspect
Recent FILLS as the broker reports them: the broker's own side (buy/sell) for each order, fill price, quantity, and entry_or_exit from the broker's open/close flag. Use this — not activity notices — to establish what actually happened (e.g. whether a ticket was closed and in which direction). If journal_side_mismatch is true, Gogi's journal disagrees with the broker: report the broker's side. Label accounts by display_label.
Inputs: days, limit, symbol, broker_account_id. Returns: Structured result. Error responses include error and message.
list_backtest_runsList Backtest RunsARead-onlyIdempotentInspect
List recent completed or running backtest runs for this agent across MCP, chat, voice, and API. Use get_backtest_run for one run's details; use run_backtest to start a new run.
Inputs: limit. Returns: Structured result. Error responses include error and message.
list_brokersList Broker AccountsARead-onlyIdempotentInspect
List all connected broker accounts and wallets (not Alpaca-only). Each row has display_label (broker · paper|live · •••••last5) and integer id for broker_account_id. Prefer paper/demo; never invent IDs. If none connected: https://gogi.ai/voice-agent.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
list_data_feedsList Data FeedsARead-onlyIdempotentInspect
List all available data feeds (plan, marketplace subs, user uploads).
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
list_instancesList Trading InstancesARead-onlyIdempotentInspect
List trading instances (id, name, status, is_live, broker). Stopped/pending still count toward the max-10 slot limit until deleted.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
list_my_algosList Saved AlgorithmsARead-onlyIdempotentInspect
List saved algorithms (algo_id, strategy, symbols, timeframe, archived). Use when the user names an algo rather than supplying its ID.
Inputs: include_inactive. Returns: Structured result. Error responses include error and message.
list_pending_tradesList Pending TradesARead-onlyIdempotentInspect
List pending trades for this agent awaiting in-app Confirm.
Inputs: no named parameters. Returns: Structured result. Error responses include error and message.
log_eventLog Agent EventAInspect
Log and persist a custom activity event. Writes a permanent, non-idempotent event record to Gogi's backend database (retained indefinitely) which is displayed to the user in the UI Activity Feed / agent timeline. Repeated calls with the same details will create duplicate timeline records.
WHEN TO USE: Streaming inner thoughts, reasoning steps, heartbeat signals, current status, or execution milestones to provide an audit trail of the agent's thinking process. WHEN NOT TO USE: Do NOT use this tool for reporting trades, orders, or portfolio/position queries. Standard action tools (e.g., execute_trade, close_positions, execute_prediction) automatically emit their own rich timeline events; logging them again is redundant and creates database spam.
Inputs: event_type (required), payload, description. Returns: Structured result. Error responses include error and message.
read_fileRead Uploaded FileARead-onlyIdempotentInspect
Read a user-uploaded file owned by this agent. Returns metadata plus a UTF-8 text preview (capped); binary files return metadata only.
Inputs: file_id (required). Returns: Structured result. Error responses include error and message.
run_backtestRun BacktestAInspect
Run a policy-aware historical backtest for this agent. Results appear in the agent's Backtesting tab and Activity feed. Requires Backtesting Pro.
Inputs: symbols (required), end_date (required), start_date (required), algo_id, +9 more. Returns: Structured result. Error responses include error and message.
search_predictionsSearch Prediction MarketsARead-onlyIdempotentInspect
Search public prediction markets (Kalshi and Polymarket). No connected Kalshi/Polymarket broker account required. To place a bet, use execute_prediction with a connected account.
Inputs: query (required), platform. Returns: Structured result. Error responses include error and message.
start_instanceStart Trading InstanceADestructiveInspect
Start automated execution for a stopped/pending instance (can enable live trading). Does not replace activate_algo or create_instance.
Inputs: instance_id (required). Returns: Structured result. Error responses include error and message.
stop_instanceStop Trading InstanceAInspect
Stop automated execution for a running instance (reversible via start_instance). Does not flatten positions — use close_positions when the user wants that.
Inputs: instance_id (required). Returns: Structured result. Error responses include error and message.
update_algoUpdate Saved AlgorithmAInspect
Update a saved algorithm owned by the user (and sync any linked instances). Only supplied fields change. Accepts strategy updates via strategy_params OR flat top-level fields (indicators, buy_conditions, sell_conditions, buy_exit_conditions, sell_exit_conditions, stop_loss_percentage, take_profit_percentage, etc.).
Inputs: algo_id (required), name, symbols, timeframe, +26 more. Returns: Structured result. Error responses include error and message.
update_instanceUpdate Trading InstanceADestructiveInspect
Update an owned trading instance's name or runtime settings. This does not replace activate_algo or update_linked_algo; setting is_live=true can start live execution and requires explicit user intent.
Inputs: instance_id (required), name, is_live, auto_restart, +2 more. Returns: Structured result. Error responses include error and message.
update_linked_algoUpdate Linked AlgorithmAInspect
Update this agent's LinkedAlgo on an instance (parameters and/or mcp_require_confirm). Changing mcp_require_confirm overrides global Agent Policy for THAT live instance only — first call returns loop_mode_requires_confirm with disclosure; after user Continue, retry with confirm_loop_mode=true. New instances inherit policy until changed.
Inputs: instance_id (required), linked_algo_id (required), name, parameters, +3 more. Returns: Structured result. Error responses include error and message.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
AI agents backtest, paper trade and live trade via your broker. Free to connect; OAuth.
Connect brokerage accounts to AI assistants: holdings, orders, asset lookup, and approved trading.
Build, backtest, and deploy quantitative trading strategies from your AI agent.
The data and trading platform for AI: decades of US market data, backtests in seconds.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceConnects AI agents to real-time market data, options analysis, broker order staging, and automated alerts and workflows.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access real-time financial data including crypto, equities, on-chain, prediction markets, and macro via a single API key.MIT

Gogi MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceEnables AI assistants in MCP clients to query real-time market data, inspect portfolio and Web3 wallet balances across brokers, place protected equity/ETF, crypto, forex, options, DeFi swap, and prediction market orders, and run backtests.MIT- AlicenseNot gradedqualityBmaintenanceEnables AI agents to execute stock trading operations with built-in risk controls and human approval workflows. Supports paper trading simulation, real brokerage integration (Alpaca, Tradier), backtesting, sentiment analysis, and portfolio management while maintaining strict separation between AI intelligence and trade execution.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.