Fetch trade executions from Interactive Brokers. Returns individual trade executions with fills, commissions, and realized P&L, plus aggregated summary by symbol. Uses live API (~7 days history) by default, or FlexReport for full history when token and query ID are provided. Requires TWS or IB Ga...
AI agents call ib_trades_history to retrieve information from Trading Skills without modifying anything — typically the context-gathering step in research, monitoring, and reporting workflows, before the agent takes action elsewhere.
This tool only retrieves historical trade execution data from Interactive Brokers. It does not initiate trades, move money, or modify any data. However, severity is medium because it exposes sensitive financial account data including trade history, commissions, and P&L across potentially multiple accounts.
From the tool's definition Fetch trade executions from Interactive Brokers... Returns individual trade executions with fills, commissions, and realized P&L
Documented attack patterns abuse exactly the kind of access ib_trades_history gives an agent:
PolicyLayer is an MCP gateway — it sits between your AI agents and Trading Skills, and nothing reaches the server without passing your rules. This is the rule we recommend for ib_trades_history:
{
"version": "1",
"default": "deny",
"tools": {
"ib_trades_history": {}
}
} ib_trades_history is read-only, so it stays allowed — but everything else on the server is denied unless you say otherwise.
Free to start. No card required.
Fetch trade executions from Interactive Brokers. Returns individual trade executions with fills, commissions, and realized P&L, plus aggregated summary by symbol. Uses live API (~7 days history) by default, or FlexReport for full history when token and query ID are provided. Requires TWS or IB Gateway running locally. Args: port: IB port (7496 for live, 7497 for paper) account: Specific account ID (optional, fetches all if not specified) symbol: Filter trades by symbol (e.g., AAPL) start_date: Start date in YYYY-MM-DD format (default: Jan 1 of current year) end_date: End date in YYYY-MM-DD format (default: today) flex_token: FlexReport token for extended history beyond ~7 days flex_query_id: FlexReport query ID (required with flex_token). Pass a list of IDs to merge and deduplicate results from multiple queries — useful for spans exceeding the FlexReport 365-day per-query limit. It is categorised as a Read tool in the Trading Skills MCP Server, which means it retrieves data without modifying state.
Register the Trading Skills MCP server in PolicyLayer and add a rule for ib_trades_history: allow, deny, rate-limit, or require approval. Point your MCP client at the PolicyLayer proxy URL and the rule is enforced on every call, before it reaches Trading Skills. Nothing to install.
ib_trades_history is a Read tool with low risk. Read-only tools are generally safe to allow by default.
Yes. Add a rate_limit block to the ib_trades_history rule in your PolicyLayer policy. For example, setting max: 10 and window: 60 limits the tool to 10 calls per minute. Rate limits are tracked per agent session and reset automatically.
Set action: deny in the PolicyLayer policy for ib_trades_history. The AI agent will receive a policy violation error and cannot call the tool. You can also include a reason field to explain why the tool is blocked.
ib_trades_history is provided by the Trading Skills MCP server (staskh/trading_skills). PolicyLayer sits as a proxy in front of this server to enforce policies before tool calls reach the server.
Deterministic rules across all 35 Trading Skills tools. Per-identity grants. Full audit log. Live in minutes. Nothing to install.
Free to start. No card required.
35 Trading Skills tools catalogued and risk-classified — across an index of 42,500+ MCP servers.