Finance MCP Server
Financial market data and brokerage tools featuring a local execution dashboard.
Data last scanned today · Reviewed today
Overview
Finance MCP facilitates AI-assisted market research and order drafting across various brokerage platforms including Webull, Saxo, and Interactive Brokers. It provides access to a comprehensive suite of 38 tools for pulling data from sources like the SEC EDGAR, BLS, and the Federal Reserve, alongside market analytics like options math and earnings reports. The system enforces a strict separation between data access and execution. AI agents can perform research and queue order drafts, but final execution requires manual confirmation via a dedicated local Streamlit dashboard. This design aims to isolate the market-facing order path from the AI client's interaction.
Our verdict
This server carries a high risk level with a security score of 38/100, primarily because the authentication methods and read-only mode protections remain unreviewed by external auditors. While the architecture enforces manual dashboard intervention for order execution, users must be aware that the Saxo and Interactive Brokers adapters are unexecuted and based solely on API references. It is recommended for advanced users who can independently audit the code and are comfortable with the limited real-world testing of brokerage integrations.
- Supports 28 tools for market data without requiring broker credentials.
- Includes 1,431 tests for code validation during development.
- Zero direct dependencies minimize the software supply chain surface.
- Isolated local dashboard prevents AI models from placing market orders.
- Brokerage adapters for Saxo and IBKR lack live execution testing.
- Authentication and access control mechanisms have not undergone independent review.
- Maintainer is an individual contributor rather than an official brokerage vendor.
Tools
| Tool | Description | Risk |
|---|---|---|
| get_account_info | Fetches general account information. | low |
| get_open_positions | Retrieves the list of currently held open positions. | low |
| get_open_orders | Retrieves the list of currently resting open orders. | low |
| draft_order | Drafts a trade order for review. | medium |
| preview_order | Previews a draft order to check rules and buying power. | low |
| cancel_order | Cancels a resting order. | high |
| calculate_position_size | Calculates the appropriate position size based on risk and ATR. | low |
| get_portfolio_risk | Analyzes portfolio risk metrics. | low |
| saxo_corporate_actions | Retrieves corporate action data like dividends and splits for Saxo accounts. | low |
| ibkr_market_scanner | Performs an exchange-side market scan for IBKR accounts. | low |
Compatibility
| Client | Local | Docker | Remote | Read-only |
|---|---|---|---|---|
| Claude Desktop | ||||
| Cursor | ||||
| VS Code | ||||
| Windsurf | ||||
| ChatGPT |
Frequently asked questions
›Do I need a brokerage account to use this MCP server?
No, you can use the server without any brokerage credentials to access 28 of the 38 tools, including SEC filings, macroeconomic data, indicators, and options mathematics.
›Which brokerage platforms are supported?
The server supports Webull, Saxo, and Interactive Brokers. Please note that only the Webull adapter has been tested against a live account, while Saxo and IBKR are built from API references.
›Can the AI assistant place trades on my behalf?
No, the assistant can only draft orders to a local queue. Execution requires a broker preview and manual confirmation via the dashboard, as there is no execution path available to the tools themselves.
›Are there specific Python version requirements?
The server requires Python 3.10 or 3.12.
›How should I handle brokerage credentials?
You should use a read-scoped API key if your broker offers one, as nothing outside of the dashboard requires write access.
›How can I verify that live data sources are functioning correctly?
You can run the live source verification test by executing the command 'FINANCE_LIVE_SOURCES=1 pytest tests/test_live_sources.py' in your terminal.
Alternatives
Changelog
- Security
- Improved
Badge
Maintain this server? Add the live badge to your README.