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.

7 min read · slimbiggins007/fintools-mcp

A vintage mechanical ticker tape machine feeds a continuous paper strip into a glowing, intricately geared mechanical brain, passing through magnifying lenses that distill the chaotic numbers into clean geometric symbols. This illustrates the extraction of semantic meaning from raw financial data.
Raw data is cheap. Structured analytical context is what makes an AI model useful.

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.

Jett Magnuson, Author · fintools-mcp v0.1.0
Key Takeaways

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 pipeline transforms raw numerical arrays into LLM-optimized context.

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.

Two contrasting tools resting on a workbench. On the left, a bulky, tangled machine covered in rusted bolts representing bloated legacy software. On the right, a sleek, perfectly engineered multi-tool representing native Python implementations.
Native Python implementations remove the friction of complex C-dependencies.

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.

A WSJ hedcut-style portrait of Jett Magnuson.

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.

FeatureTraditional Stock APIsGeneral MCP Wrappersfintools-mcp
Data FormatRaw numbers onlyGeneric JSON routingSemantic labels combined with data
Token CostHigh (dumps large arrays)VariableLow (sends summaries and states)
Risk ContextNoneRequires external computeBuilt-in ATR and position sizing