open-fin-mcp
# open-fin-mcp
A FastMCP server for financial data, company context, market information,
financial modelling, and valuation. It includes a deterministic sample provider,
so all 15 tools can be exercised before a live data source is connected.
## Tools
| Group | Tools |
| --- | --- |
| Data | `get_income_statement`, `get_balance_sheet`, `get_cashflow_statement`, `get_financial_metrics`, `get_segment_financials` |
| Context | `get_management_guidance`, `get_concall_summary`, `get_company_events` |
| Market | `get_market_data`, `get_capital_structure` |
| Modelling | `project_financials`, `validate_financial_model` |
| Valuation | `calculate_wacc`, `calculate_dcf`, `dcf_sensitivity` |
## Setup
Python 3.11 or newer is required.
```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e ".[dev]"
```
## Run
Start the default STDIO transport for local MCP clients:
```bash
open-fin-mcp
```
Start Streamable HTTP for development:
```bash
OPEN_FIN_MCP_TRANSPORT=http open-fin-mcp
```
The MCP endpoint is then available at `http://127.0.0.1:8000/mcp`.
Host and port can be changed with `OPEN_FIN_MCP_HOST` and
`OPEN_FIN_MCP_PORT`.
FastMCP's CLI can also use the included project configuration:
```bash
fastmcp run
```
## Test
```bash
pytest
ruff check .
```
## Connect Live Data
The sample implementation lives in `src/open_fin_mcp/providers.py`.
Implement the `FinanceProvider` protocol there, then pass the new provider to
`create_server()` in `src/open_fin_mcp/server.py`. Modelling and valuation code
is provider-independent.
TDQS
Scored across 15 tools
Most tools target clearly distinct data areas (income statement, balance sheet, cash flow, segments, guidance, events). Minor overlap exists between get_capital_structure and get_balance_sheet, and between get_financial_metrics and get_capital_structure, but descriptions are specific enough to avoid serious confusion.
The set largely follows a clear get_* / calculate_* / project_* / validate_* snake_case pattern, making tool purposes predictable. The one noticeable deviation is 'dcf_sensitivity', which would fit better as 'calculate_dcf_sensitivity' to match the other calculate_* tools.
At 15 tools, the server sits right at the upper edge of the ideal range, and each tool covers a meaningful part of the financial analysis and valuation workflow. No tool feels redundant or trivial.
The server covers the core financial-statement data, key metrics, management insights, and the full DCF modeling chain from projection through sensitivity. Minor gaps exist, such as no direct analyst-estimate tool or historical price series, but agents can still complete typical valuation workflows.