fintools-mcp: The Semantic Bridge Between AI and Wall Street
How a zero-config Python server translates raw market data into the qualitative signals AI agents need to manage risk.

Give Claude, ChatGPT, Cursor, or any MCP-compatible AI access to real financial analysis — not just stock prices, but the analytical toolkit a trader actually uses.
- Large Language Models fail at raw quantitative math but excel at reasoning over qualitative state changes.
- fintools-mcp solves this by running financial indicators locally and passing semantic labels like 'oversold' to the context window.
- By implementing technical indicators in pure Python, it eliminates heavy C-dependencies like TA-Lib for instant deployment in AI IDEs.
- The server enforces disciplined risk management by calculating ATR-based position sizing before the AI can suggest a trade.
The Hallucination of Risk
Large Language Models are reasoning engines, not calculators. Feed them a raw array of stock prices, and they will confidently hallucinate patterns or fail at basic position sizing. Raw data APIs overwhelm the context window and lead to catastrophic financial hallucinations.
Semantic Translation for the Context Window
fintools-mcp acts as a semantic translator. Instead of just passing numbers via JSON-RPC, it runs the math locally and appends semantic labels. It translates a raw Relative Strength Index (RSI) of 28 into a distinct state: 'oversold'. This feeds the LLM's reasoning engine exactly what it needs to form a coherent, risk-aware opinion.
The Death of TA-Lib
Most Python finance tools rely on heavy, compiled C-libraries like TA-Lib or Pandas. fintools-mcp takes a different approach. It implements indicators and support/resistance clustering algorithms in pure Python. This zero-config approach is crucial for seamless installation in desktop AI environments like Claude Desktop or Cursor.
Engineering a Disciplined Trader
The system explores advanced risk management through its position sizing modules. It forces the AI to account for volatility by calculating Average True Range (ATR) based stop losses. It acts as a guardrail against reckless AI trading suggestions by calculating professional metrics like the Sharpe Ratio and Max Drawdown.
The Analytical Layer vs. The Dumb Pipe
While general tools act as generic routers for any API, this project is an opinionated, domain-specific middleware. It proves that the future of the Model Context Protocol is not just fetching data, but preprocessing it.
| Feature | Traditional Stock APIs | General MCP Wrappers | fintools-mcp |
|---|---|---|---|
| Data Format | Raw numbers only | Generic JSON routing | Semantic labels combined with data |
| Token Cost | High (dumps large arrays) | Variable | Low (sends summaries and states) |
| Risk Context | None | Requires external compute | Built-in ATR and position sizing |