TradingAgents MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FRED_API_KEY | No | Free API key that adds US macro data such as rates, CPI, and yields. | |
| ANTHROPIC_API_KEY | No | API key that, together with the model settings, turns on the full TradingAgents pipeline. | |
| TA_MCP_KEEP_AWAKE | No | Set to 0 to disable keeping the server awake with caffeinate while a job runs. | 1 |
| SEC_EDGAR_USER_AGENT | No | Your name and email for SEC EDGAR requests. SEC asks callers to identify themselves. | |
| TRADINGAGENTS_ENV_FILE | No | Path to an environment file whose settings are loaded first. Codex uses .env.codex. | |
| TRADINGAGENTS_FRONTEND | No | Frontend identifier. The Codex install command sets this to Codex. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Market data, memory and report tools from TradingAgents. Use the trading-analysis skill to run a full multi-agent analysis. Pass the same as_of date to every dated tool in one analysis. Research only: never present output as financial advice; these tools cannot place trades.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| instrument_profileA | Identify the instrument: company name and classification, the exact ticker to use, and whether it is a stock or crypto. Call this first, and give the result to every agent so none of them confuse the company with another. Args: ticker: Yahoo Finance symbol with exchange suffix, e.g. NVDA, RELIANCE.NS, 0700.HK, AZN.L, BTC-USD. as_of: Analysis date YYYY-MM-DD (default today). |
| market_snapshotA | Verified market snapshot: the latest OHLCV row on or before as_of, common indicators (moving averages, RSI, MACD, Bollinger, ATR) and recent closes. Treat it as the source of truth for any exact price or indicator figure you state. |
| price_historyB | Daily OHLCV prices from start_date (YYYY-MM-DD) up to as_of. |
| technical_indicatorsA | Daily values of technical indicators over the look-back window ending at as_of. Choose up to 8 that complement each other (avoid redundant pairs): close_50_sma, close_200_sma (trend); close_10_ema (short-term momentum); macd, macds, macdh (momentum, crossovers, divergence); rsi (overbought/oversold, 70/30); boll, boll_ub, boll_lb (volatility bands, breakouts); atr (volatility, stop distances); vwma (volume-confirmed trend); mfi (money flow). |
| fundamentalsB | Company fundamentals as of the date: valuation, profitability, growth, balance sheet strength. US filers come from SEC EDGAR as originally filed. |
| financial_statementC | One financial statement as it stood on as_of (no later restatements or filings). |
| insider_transactionsC | Insider buys and sells. Withheld for past dates, since they are dated by trade rather than by filing. |
| company_newsC | News about the company from the |
| global_newsB | Global macro and market news from the |
| social_sentimentA | Recent StockTwits messages and Reddit posts about the ticker from the |
| macro_indicatorB | A macro series from FRED up to as_of. Aliases: cpi, core_pce, unemployment, fed_funds_rate, 10y_treasury, yield_curve, real_gdp, vix, ecb_deposit_rate, euro_hicp, eur_usd, or any raw FRED series ID. Needs FRED_API_KEY (free). |
| prediction_marketsB | Polymarket implied probabilities for events matching the topic, e.g. 'Fed rate cut', 'recession 2026', or a company event. |
| options_overviewA | Options market overview, computed in code from Yahoo's live chains: implied volatility term structure, market-implied move per expiry (from the at-the-money straddle), 25-delta skew, put/call open interest, max pain, recent realized volatility and the next earnings date. Today only; mostly US listings. |
| options_chainA | One expiry in detail: the near-the-money strikes (bid/ask, IV, Black-Scholes delta, open interest, volume for calls and puts), implied move, 25-delta skew, put/call ratios, the biggest open-interest strikes and max pain. Default expiry: the first at least 21 days out. Today only. |
| options_strategyA | Price an options position from the live chain and compute its payoff at expiry in code: net debit/credit, max profit, max loss, breakevens, probability of profit and net delta. Use it for every structure you propose; never do this math yourself. legs: list of {"type": "call"|"put"|"stock", "side": "buy"|"sell", "strike": number (options), "expiry": "YYYY-MM-DD" (options), "quantity": contracts for options or shares for stock (default 1), "price": optional per-share override}. All option legs must share one expiry. Examples: covered call = buy 100 stock + sell 1 call; bull call spread = buy call K1 + sell call K2; cash-secured put = sell 1 put. Prices default to the mid quote (else last trade). |
| memory_lessonsB | Lessons from past decisions to give the Portfolio Manager: recent decisions on this ticker plus lessons from other tickers, limited to outcomes known by as_of. |
| past_decisionsB | The raw memory log: past decisions and, once settled, their realised return, alpha and reflection. Optionally filtered to one ticker. |
| unsettled_decisionsA | Logged decisions whose holding window has now traded, with their realised raw return and alpha against the regional benchmark. For each, write a short reflection (what the call got right or wrong, and the lesson) and record it with settle_decision. Decisions still inside their window are listed as waiting. |
| settle_decisionA | Record a decision's outcome and your reflection in the memory log. Returns are recomputed here from prices, so only the reflection comes from you. Keep it to a few sentences: was the call right, why, and the lesson for next time. |
| save_analysisA | Save a finished analysis as TradingAgents' report tree (markdown sections plus one complete_report.html page) and log the decision to the memory log so it is scored once its holding window has traded. Pass each agent's full text in markdown. final_decision is the Portfolio Manager's write-up, starting with the rating line. options_analysis, options_strategy and fact_check add the Options and Fact Check sections when given. |
| annotate_reportA | Add or replace the Options and Fact Check sections of a saved report, such as one the API pipeline wrote (pipeline_report gives its report_id). Sections not passed are kept as they are. Updates both complete_report.md and .html. |
| list_reportsA | List saved analysis reports, newest first, from both engines (the trading-analysis skill and the API pipeline), with ticker, date and rating. Read one with read_report. |
| read_reportA | Read a saved report (from list_reports) in full: every analyst report, the bull/bear debate, the trader plan, the risk debate and the final decision. |
| backtest_resultsA | Backtests run with run_backtest. Without run_id, lists them with their cell counts. With run_id, returns the scorecard: per rating, how often it called the direction and its mean alpha against the benchmark. Reading costs nothing; to settle cells whose window has since traded, run run_backtest again with the run_id. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Most tools target clearly distinct resources or analysis stages, and descriptions make boundaries explicit. There is some overlap between market_snapshot, price_history, and technical_indicators, and between fundamentals and financial_statement, but these are differentiated enough for an agent to choose correctly.
All names use snake_case, so the casing convention is consistent. However, the naming style is mixed between noun phrases such as market_snapshot and fundamentals and verb_noun actions such as list_reports and save_analysis, so there is no single predictable verb_noun pattern.
The 24-tool surface is broad and mostly justified by the trading-analysis domain, but it is heavy and includes several related data-access tools that could be consolidated. It sits at the borderline where the count starts to feel large for one server.
The set covers the full trading-analysis workflow: instrument identification, market and technical data, fundamentals, statements, news, social sentiment, macro data, options analysis and strategy pricing, report saving/annotation, backtest review, and decision memory/settlement. No major dead ends are apparent for the stated purpose, with portfolio or order execution likely out of scope.