TradingAgentStack
AI Trading Tools: the open list of tools that connect AI agents to markets
An open, sourced dataset of the broker MCP servers, market data APIs, agent frameworks and backtesters that let AI agents trade and research markets. Every entry links to an official source. Maintained by TradingAgentStack, where each tool has a full page with pricing, rate limits, paper vs live trading and safety controls.
41 tools · Last verified: 2026-10-16 · Data: data/tools.json · data/tools.csv · License: CC BY 4.0
📬 Get new tools and changes weekly: subscribe to the TradingAgentStack newsletter.
Not financial advice. Verify details with each vendor before connecting real money.
Contents
Related MCP server: EdgeDepth Research MCP Server
Broker MCP servers
Tool | Description | Type | Official / community | Details |
US stocks, ETFs, options, crypto, fixed income quotes. live and paper (ALPACA_PAPER_TRADE defaults to true/paper; paper with simulated $100K) | MCP | official | ||
Axi MT5 account instruments (live prices, candles, positions, orders). live and demo MT5 accounts; MT4 and Axi platform accounts view-only | MCP | official | ||
global multi-asset (account/portfolio, market data). live account | MCP | official | ||
quotes/depth, fundamentals, options, warrants. live trading tools (place/modify/cancel) | MCP | official | ||
quotes, portfolio, orders; HK, US, CN, SG, JP, MY markets (OpenAPI). live trading capability | MCP | official | ||
NinjaTrader account (contracts, quotes, orders, risk). Demo (simulated) and Live endpoints | MCP | official | ||
Public.com brokerage account. live (real money) | MCP | official | ||
equities (long), options, crypto. live, from a dedicated MCP account | MCP | official | ||
tastytrade account (orders, quotes). live; sandbox available | MCP | official | ||
TradeStation execution, market data, account APIs. live | MCP | official | ||
US stocks, options (single-leg and multi-leg). live and paper (PAPER_TRADING flag with your paper token) | MCP | official | ||
stocks, ETFs, options, futures, crypto, event contracts. live: creates order instructions (stocks, options, futures, crypto, event contracts, algo) that you confirm in the Webull app/desktop; plus account data, order history, market data | MCP | official |
Market data MCP servers
Tool | Description | Type | Official / community | Details |
stocks (20+ yrs history), quotes. data only | MCP | official | ||
Databento datasets. data only | MCP | community | ||
stocks, options, forex, crypto, futures, fundamentals, news. data only | MCP | official | ||
crypto, FX, equities, metals, rates, commodities, funding rates, NAVs. data only | MCP | official | ||
stocks, ETFs, forex, crypto, futures, indices, bonds, macro. no trading (watchlists/alerts only) | MCP | official |
Broker APIs
Tool | Description | Type | Official / community | Details |
US stocks, ETFs, options, crypto. live and paper | API | official | ||
global stocks, options, futures, forex. live and paper | API | official | ||
US stocks, options. live | API | official | ||
US stocks, options. live and paper (sandbox) | API | official |
Market data APIs
Tool | Description | Type | Official / community | Details |
stocks, ETFs, mutual funds, indices, options, forex, commodities, economic indicators, news & sentiment. data only | API | official | ||
US equities, US futures, US options, crypto, FX. data only | API | official | ||
prediction markets. live | API | official | ||
stocks, options, indices, forex. data only | API | official | ||
multi-provider wrapper. data only. Status: Company winding down (announced Aug 25, 2026). Code released under Apache 2.0 and maintained by the non-profit OpenBQ (github.com/openbq-org). | API | official | ||
prediction markets. live | API | official | ||
US filings/XBRL fundamentals. data only | API | official | ||
stocks, options, indices, interest rates. data only | API | official | ||
stocks, options chains. data only | API | community |
Agent frameworks
Tool | Description | Type | Official / community | Details |
n/a. n/a | Framework | official | ||
n/a. n/a | Framework | official | ||
n/a. n/a | Framework | official | ||
n/a. n/a | Framework | official |
Backtesting
Tool | Description | Type | Official / community | Details |
any (bring data). backtest only | Backtester | official | ||
multi-venue incl. IBKR and crypto. backtest and live | Backtester | official | ||
equities, forex, futures, options, crypto. backtest, paper, live | Backtester | official | ||
any (bring data). backtest/research only | Backtester | official |
Trading agents
Tool | Description | Type | Official / community | Details |
crypto, stocks. live benchmark | Agent | academic | ||
crypto. dry-run and live | Agent | official |
Security
Tool | Description | Type | Official / community | Details |
MCP servers (any). n/a | Security tool | third-party |
Use it from Claude or Cursor (MCP server)
Search this dataset straight from your AI client with the read-only TradingAgentStack MCP server: search_tools, get_tool, compare_brokers, list_categories.
Contributing
Know a tool we're missing, or spotted something out of date? See CONTRIBUTING.md, open an issue, or submit it on tradingagentstack.com.
License
The data is licensed under CC BY 4.0. Please credit TradingAgentStack (tradingagentstack.com).
Available Tools
4 toolscompare_brokersCompare two toolsBRead-only
Side-by-side comparison of two brokers/tools (safety controls, paper trading, pricing, rate limits).
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First tool slug or name | |
| b | Yes | Second tool slug or name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds which attributes get compared, but says nothing about behavior for unknown slugs, whether the comparison is symmetric, or how the result is presented.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the resource front-loaded ('Side-by-side comparison of two brokers/tools') and the scope in a compact parenthetical. Nothing redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the parenthetical list of comparison dimensions effectively previews what the agent gets back, and both required params are documented. Minor gap: no handling notes for invalid or identical inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% — both a/b are documented as 'First/Second tool slug or name.' The description implies the two arguments are brokers/tools but adds no format, slug, or ambiguity-resolution detail beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource: a side-by-side comparison of exactly two brokers/tools, and enumerates the dimensions compared (safety controls, paper trading, pricing, rate limits). It distinguishes itself implicitly from get_tool (single tool) by specifying two inputs, though it never names the sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description says what it compares but gives no guidance on when to choose it over get_tool (e.g. 'use get_tool for one tool, compare_brokers for two'). The 'two' arity hints at usage but no exclusions, prerequisites, or alternatives are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_toolGet tool detailsARead-only
Full sourced record for one tool: assets, live vs paper, order approval/safety controls, pricing, rate limits, source and last-checked date.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Tool slug or name, e.g. 'alpaca-mcp-server' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the safe read-only and closed-world profile, so the bar is lower. The description adds valuable uncovered context by listing what the record contains (assets, live vs paper, approval/safety controls, pricing, rate limits, source, last-checked date) and signals data provenance/freshness, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single dense sentence with the core purpose front-loaded and no filler. Every listed field contributes useful information about the return payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and a fully documented single parameter, the description does the necessary work of enumerating return fields. It is largely complete, though it does not describe the response shape or behavior when the slug is unknown.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one parameter, and schema coverage is 100% with an example value ('alpaca-mcp-server') in the schema itself. The description adds no additional parameter meaning, so the baseline of 3 is appropriate when the schema fully documents the input.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a clear verb+resource ('Full sourced record for one tool') and enumerates the record contents, so an agent knows this is a single-item detail lookup. It does not explicitly name the sibling it contrasts with (search_tools), but 'for one tool' implies the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the singular scope: fetch details for one identified tool. There is no explicit when-to-use guidance, no statement of prerequisites, and no routing to alternatives such as search_tools or compare_brokers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-only
List directory categories with tool counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description usefully adds that results include tool counts, but says nothing about ordering, pagination, or empty-state behavior, and there is no output schema to fall back on.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single eight-word sentence with no filler, front-loading the action and the resource immediately. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-argument listing tool with no output schema, the description conveys the essential return content (categories, each with a tool count). Ordering and pagination details are absent, but they are minor for a small taxonomy listing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4. The description correctly implies no filtering or input is needed, and there is no schema surface left unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (directory categories), plus the payload shape (with tool counts). It is clearly distinct from siblings like search_tools and get_tool, though it does not explicitly name or contrast them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: a zero-parameter enumeration tool named list_categories is self-evidently for browsing the category taxonomy. There is no explicit when-to-use statement, no mention of alternatives such as search_tools, and no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_toolsSearch AI trading toolsARead-only
Search the TradingAgentStack directory of broker MCP servers, broker/market-data APIs, agent frameworks, backtesters and security tools. Returns short summaries; use get_tool for full details.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Keywords, e.g. 'options paper trading' or 'crypto' | |
| category | No | Optional category filter (see list_categories) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=false, so safety profile is covered. The description adds that results are short summaries, which is useful. However it doesn't mention pagination behavior beyond the schema's limit, or result ordering, so it adds only modestly beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences, front-loaded with the resource scope, with the routing to get_tool in the second. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete enough for a read-only search tool with annotations covering safety and schema covering two of three parameters. The absence of an output schema means the return format is only loosely described ('short summaries'), leaving some inference to the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; query and category are documented in the schema, and the description reinforces semantics by describing the return type but adds no new parameter detail. Baseline 3 is appropriate since the schema does most of the lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Search) and a specific resource (the TradingAgentStack directory), and enumerates the content types it covers. An agent can immediately tell it apart from get_tool and list_categories.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the alternative: 'use get_tool for full details', establishing the summary-vs-detail split. It also directs the category filter to list_categories. Clear when-to-use-this vs siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
v0.1.0- First observed
compare_brokers - First observed
get_tool - First observed
list_categories - First observed
search_tools
TDQS
Scored across 4 tools
Each tool maps to a clearly distinct action and resource: search summaries, full record retrieval, pairwise comparison, and category listing. The only mild overlap is compare_brokers potentially involving 'tools' as well as brokers, but the description resolves this clearly.
All four names follow a consistent snake_case verb_noun pattern: search_tools, get_tool, compare_brokers, list_categories. The convention is predictable and readable throughout.
Four tools are well-scoped for a read-only directory/lookup server. Search, detail, comparison, and category listing cover the essential browsing workflow without redundancy.
The surface covers the core discovery workflow: finding tools, getting full details, comparing options, and listing categories. Minor gaps exist around direct browse-by-category, filters, or pagination, but agents can work around these via search.
Related MCP Connectors
Search MCP servers, MCP clients and AI agents, and retrieve listing details. Free, read-only access.
Search a curated directory of agent tools, MCP servers, APIs, protocols and skills. No auth.
Search and discover MCP servers and agent tools listed in the MCP Harbor directory.
21Read-only search of a curated directory of ISO 27001, SOC 2 and compliance services.
41
Related MCP Servers
- AlicenseAqualityBmaintenanceRead-only MCP server for Blocksize real-time market data: crypto VWAP, bid/ask, FX, metals and tokenized equities, with pricing, coverage and x402 endpoint lookup. Signed-in users of the Claude, ChatGPT and Cursor connectors get 30,000 free live-data credits every month (1 credit = $0.001); subscriptions from EUR 49/month.71MIT
- AlicenseAqualityBmaintenanceA read-only MCP server for EdgeDepth's market microstructure search engine, enabling users to query recorded crypto and TradFi perpetuals for market conditions, outcomes, and reproducibility-keyed evidence directly from MCP clients.10227 npm3MIT

LuxAlgo Library MCPofficial
AlicenseAqualityAmaintenanceRead-only, keyless MCP server for searching and retrieving trading concepts, indicator details, families, and source code from the LuxAlgo Library.4869 npm96MIT- AlicenseNot gradedqualityAmaintenanceEnables agents to search MCP servers ranked by measured handshake checks, tool lists, repository signals, and signed reports, with open data.193 npmApache 2.0