financetoolkit 2.1.2__tar.gz → 2.1.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/.gitignore +3 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/PKG-INFO +37 -25
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/README.md +36 -24
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/helpers.py +1 -1
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/historical_model.py +4 -2
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/config.yaml +24 -0
- financetoolkit-2.1.3/financetoolkit/mcp_server/mcpb/LICENSE +21 -0
- financetoolkit-2.1.3/financetoolkit/mcp_server/mcpb/build-mcpb.sh +69 -0
- financetoolkit-2.1.3/financetoolkit/mcp_server/mcpb/manifest.json +178 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/mcpb/pyproject.toml +2 -2
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/registry_controller.py +0 -1
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/tools_model.py +0 -1
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/models_controller.py +269 -89
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/performance/performance_controller.py +1 -1
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/helpers.py +1 -1
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/ratios_controller.py +214 -87
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/risk_model.py +2 -2
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/pyproject.toml +2 -1
- financetoolkit-2.1.2/financetoolkit/mcp_server/mcpb/build-mcpb.sh +0 -45
- financetoolkit-2.1.2/financetoolkit/mcp_server/mcpb/manifest.json +0 -178
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/LICENSE.txt +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/currencies_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/discovery/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/discovery/discovery_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/discovery/discovery_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/economics/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/economics/economics_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/economics/gmdb_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/economics/oecd_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/bond_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/derivative_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/ecb_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/euribor_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/fed_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/fixedincome_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/fred_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fixedincome/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fmp_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/fundamentals_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/__main__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/auth_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/cache_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/coercion_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/formatting_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/inspection_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/mcp_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/mcpb/.mcpbignore +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/mcpb/README.md +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/mcpb/finance_toolkit_icon.png +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/provider_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/mcp_server/setup_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/altman_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/dupont_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/enterprise_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/growth_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/intrinsic_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/piotroski_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/models/wacc_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/balance.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/balance_yf.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/cash.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/cash_yf.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/income.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/income_yf.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization/statistics.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/normalization_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/binomial_trees_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/black_scholes_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/greeks_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/options_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/options/options_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/performance/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/performance/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/performance/performance_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/config.yaml +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/example_datasets/example_portfolio.csv +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/example_datasets/example_portfolio.xlsx +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/overview_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/portfolio_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/portfolio/portfolio_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/efficiency_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/liquidity_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/profitability_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/solvency_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/ratios/valuation_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/cvar_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/evar_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/garch_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/risk_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/risk/var_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/__init__.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/breadth_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/helpers.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/momentum_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/overlap_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/statistic_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/technicals_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/technicals/volatility_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/toolkit_controller.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/utilities/cache_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/utilities/error_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/utilities/logger_model.py +0 -0
- {financetoolkit-2.1.2 → financetoolkit-2.1.3}/financetoolkit/yfinance_model.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: financetoolkit
|
|
3
|
-
Version: 2.1.
|
|
3
|
+
Version: 2.1.3
|
|
4
4
|
Summary: Transparent and Efficient Financial Analysis
|
|
5
5
|
Author: Jeroen Bouma
|
|
6
6
|
License: MIT
|
|
@@ -58,18 +58,14 @@ Beyond Equities, it supports Options, Currencies, Cryptocurrencies, ETFs, Mutual
|
|
|
58
58
|
Complementing this is the [Finance Database 🌎](https://github.com/JerBouma/FinanceDatabase), a database featuring 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets. By utilising both, it is possible to do a fully-fledged competitive analysis with the tickers found from the FinanceDatabase inputted into the FinanceToolkit.
|
|
59
59
|
|
|
60
60
|
___
|
|
61
|
-
**🔌 The Finance Toolkit is also available as
|
|
61
|
+
**🔌 The Finance Toolkit is also available as an [MCP Server](https://www.jeroenbouma.com/projects/financetoolkit/mcp)**
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Query 200+ metrics from Claude, Copilot, Cursor, Windsurf or any MCP-compatible client without writing code.
|
|
64
64
|
|
|
65
|
-
`https://financetoolkit.jeroenbouma.com/mcp`
|
|
65
|
+
- **Hosted:** connect to `https://financetoolkit.jeroenbouma.com/mcp` — OAuth handles the rest on first use.
|
|
66
|
+
- **Local:** `uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup` — sets up your client config and API key automatically. See [MCP Server Documentation](https://www.jeroenbouma.com/projects/financetoolkit/mcp#local-clients) for manual setup.
|
|
66
67
|
|
|
67
|
-
|
|
68
|
-
* **⚡ No Local Installation Required:** The server runs completely in the cloud.
|
|
69
|
-
* **🔐 Secure OAuth:** Authenticates safely on your very first connection.
|
|
70
|
-
* **📊 Conversational Data:** Query over 200+ financial metrics naturally.
|
|
71
|
-
|
|
72
|
-
Also available on [Smithery](https://smithery.ai/servers/jer-bouma/financetoolkit), [Glama](https://glama.ai/mcp/servers/JerBouma/FinanceToolkit),[ MCP Servers](https://mcpservers.org/servers/jerbouma/financetoolkit) and more.
|
|
68
|
+
Also on [Smithery](https://smithery.ai/servers/jer-bouma/financetoolkit), [Glama](https://glama.ai/mcp/servers/JerBouma/FinanceToolkit), [MCP Servers](https://mcpservers.org/servers/jerbouma/financetoolkit) and more.
|
|
73
69
|
___
|
|
74
70
|
|
|
75
71
|
# Table of Contents
|
|
@@ -3124,32 +3120,48 @@ This returns a rather large DataFrame so to keep it concise, only the first 5 ti
|
|
|
3124
3120
|
|
|
3125
3121
|
# MCP Server
|
|
3126
3122
|
|
|
3127
|
-
The Finance Toolkit MCP Server exposes 200+ financial metrics, models, and economic indicators directly to any AI assistant that supports the Model Context Protocol
|
|
3123
|
+
The Finance Toolkit MCP Server exposes 200+ financial metrics, models, and economic indicators directly to any AI assistant that supports the [Model Context Protocol](https://modelcontextprotocol.io) (MCP). Ask questions in plain English — the AI fetches live financial data on your behalf, backed by the transparent, open-source calculation methods of the Finance Toolkit.
|
|
3128
3124
|
|
|
3129
|
-
|
|
3125
|
+
See an example of the Finance Toolkit MCP server in action in Claude Desktop below:
|
|
3130
3126
|
|
|
3131
|
-
|
|
3132
|
-
<b><div align="center">MCP Server URL: <code>https://financetoolkit.jeroenbouma.com/mcp</code></div></b>
|
|
3133
|
-
___
|
|
3127
|
+
https://github.com/user-attachments/assets/96ad5288-d83d-4497-a345-1841c48c29d5
|
|
3134
3128
|
|
|
3129
|
+
### Remote server
|
|
3135
3130
|
|
|
3136
|
-
|
|
3131
|
+
Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com/mcp`. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key; enter it once and the server handles authentication from there.
|
|
3137
3132
|
|
|
3138
|
-
|
|
3139
|
-
|
|
3140
|
-
|
|
3133
|
+
| Client | Steps |
|
|
3134
|
+
|:---|:---|
|
|
3135
|
+
| **Claude Desktop** | Customize → Connectors → Add custom connector → paste the URL |
|
|
3136
|
+
| **Claude.ai** | Customize → Connectors → Add custom connector → paste the URL |
|
|
3137
|
+
| **Claude Code** | `claude mcp add --transport http finance-toolkit https://financetoolkit.jeroenbouma.com/mcp` |
|
|
3138
|
+
| **VS Code** | Command Palette → MCP: Add Server → HTTP → paste the URL |
|
|
3139
|
+
| **Cursor** | Settings → Features → MCP Servers → Add new → http → paste the URL |
|
|
3140
|
+
| **Windsurf** | Settings → MCP Servers → Add Server → Remote/HTTP → paste the URL |
|
|
3141
3141
|
|
|
3142
|
-
|
|
3142
|
+
### Local installation
|
|
3143
3143
|
|
|
3144
|
-
|
|
3144
|
+
Run the setup wizard — it locates your client's config file and writes the MCP entry automatically, including the API key:
|
|
3145
|
+
|
|
3146
|
+
```bash
|
|
3145
3147
|
uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup
|
|
3146
3148
|
```
|
|
3147
3149
|
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3150
|
+
For manual config, add the following to your client's MCP config file (e.g. `claude_desktop_config.json`, `.cursor/mcp.json`, `.vscode/mcp.json`):
|
|
3151
|
+
|
|
3152
|
+
```json
|
|
3153
|
+
{
|
|
3154
|
+
"mcpServers": {
|
|
3155
|
+
"finance-toolkit": {
|
|
3156
|
+
"command": "uvx",
|
|
3157
|
+
"args": ["--from", "financetoolkit[mcp]", "financetoolkit-mcp"],
|
|
3158
|
+
"env": { "FINANCIAL_MODELING_PREP_API_KEY": "YOUR_API_KEY_HERE" }
|
|
3159
|
+
}
|
|
3160
|
+
}
|
|
3161
|
+
}
|
|
3162
|
+
```
|
|
3151
3163
|
|
|
3152
|
-
https://github.com/
|
|
3164
|
+
Alternatively, download the [Finance Toolkit MCPB bundle](https://github.com/JerBouma/FinanceToolkit/releases/latest/download/financetoolkit.mcpb) and open it with Claude Desktop. An installation dialog will prompt for your FMP API key.
|
|
3153
3165
|
|
|
3154
3166
|
# Questions & Answers
|
|
3155
3167
|
|
|
@@ -24,18 +24,14 @@ Beyond Equities, it supports Options, Currencies, Cryptocurrencies, ETFs, Mutual
|
|
|
24
24
|
Complementing this is the [Finance Database 🌎](https://github.com/JerBouma/FinanceDatabase), a database featuring 300.000+ symbols containing Equities, ETFs, Funds, Indices, Currencies, Cryptocurrencies and Money Markets. By utilising both, it is possible to do a fully-fledged competitive analysis with the tickers found from the FinanceDatabase inputted into the FinanceToolkit.
|
|
25
25
|
|
|
26
26
|
___
|
|
27
|
-
**🔌 The Finance Toolkit is also available as
|
|
27
|
+
**🔌 The Finance Toolkit is also available as an [MCP Server](https://www.jeroenbouma.com/projects/financetoolkit/mcp)**
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
Query 200+ metrics from Claude, Copilot, Cursor, Windsurf or any MCP-compatible client without writing code.
|
|
30
30
|
|
|
31
|
-
`https://financetoolkit.jeroenbouma.com/mcp`
|
|
31
|
+
- **Hosted:** connect to `https://financetoolkit.jeroenbouma.com/mcp` — OAuth handles the rest on first use.
|
|
32
|
+
- **Local:** `uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup` — sets up your client config and API key automatically. See [MCP Server Documentation](https://www.jeroenbouma.com/projects/financetoolkit/mcp#local-clients) for manual setup.
|
|
32
33
|
|
|
33
|
-
|
|
34
|
-
* **⚡ No Local Installation Required:** The server runs completely in the cloud.
|
|
35
|
-
* **🔐 Secure OAuth:** Authenticates safely on your very first connection.
|
|
36
|
-
* **📊 Conversational Data:** Query over 200+ financial metrics naturally.
|
|
37
|
-
|
|
38
|
-
Also available on [Smithery](https://smithery.ai/servers/jer-bouma/financetoolkit), [Glama](https://glama.ai/mcp/servers/JerBouma/FinanceToolkit),[ MCP Servers](https://mcpservers.org/servers/jerbouma/financetoolkit) and more.
|
|
34
|
+
Also on [Smithery](https://smithery.ai/servers/jer-bouma/financetoolkit), [Glama](https://glama.ai/mcp/servers/JerBouma/FinanceToolkit), [MCP Servers](https://mcpservers.org/servers/jerbouma/financetoolkit) and more.
|
|
39
35
|
___
|
|
40
36
|
|
|
41
37
|
# Table of Contents
|
|
@@ -3090,32 +3086,48 @@ This returns a rather large DataFrame so to keep it concise, only the first 5 ti
|
|
|
3090
3086
|
|
|
3091
3087
|
# MCP Server
|
|
3092
3088
|
|
|
3093
|
-
The Finance Toolkit MCP Server exposes 200+ financial metrics, models, and economic indicators directly to any AI assistant that supports the Model Context Protocol
|
|
3089
|
+
The Finance Toolkit MCP Server exposes 200+ financial metrics, models, and economic indicators directly to any AI assistant that supports the [Model Context Protocol](https://modelcontextprotocol.io) (MCP). Ask questions in plain English — the AI fetches live financial data on your behalf, backed by the transparent, open-source calculation methods of the Finance Toolkit.
|
|
3094
3090
|
|
|
3095
|
-
|
|
3091
|
+
See an example of the Finance Toolkit MCP server in action in Claude Desktop below:
|
|
3096
3092
|
|
|
3097
|
-
|
|
3098
|
-
<b><div align="center">MCP Server URL: <code>https://financetoolkit.jeroenbouma.com/mcp</code></div></b>
|
|
3099
|
-
___
|
|
3093
|
+
https://github.com/user-attachments/assets/96ad5288-d83d-4497-a345-1841c48c29d5
|
|
3100
3094
|
|
|
3095
|
+
### Remote server
|
|
3101
3096
|
|
|
3102
|
-
|
|
3097
|
+
Connect directly to the hosted server at `https://financetoolkit.jeroenbouma.com/mcp`. Nothing needs to be installed locally. On first connection your client opens an OAuth consent page asking for your FMP API key; enter it once and the server handles authentication from there.
|
|
3103
3098
|
|
|
3104
|
-
|
|
3105
|
-
|
|
3106
|
-
|
|
3099
|
+
| Client | Steps |
|
|
3100
|
+
|:---|:---|
|
|
3101
|
+
| **Claude Desktop** | Customize → Connectors → Add custom connector → paste the URL |
|
|
3102
|
+
| **Claude.ai** | Customize → Connectors → Add custom connector → paste the URL |
|
|
3103
|
+
| **Claude Code** | `claude mcp add --transport http finance-toolkit https://financetoolkit.jeroenbouma.com/mcp` |
|
|
3104
|
+
| **VS Code** | Command Palette → MCP: Add Server → HTTP → paste the URL |
|
|
3105
|
+
| **Cursor** | Settings → Features → MCP Servers → Add new → http → paste the URL |
|
|
3106
|
+
| **Windsurf** | Settings → MCP Servers → Add Server → Remote/HTTP → paste the URL |
|
|
3107
3107
|
|
|
3108
|
-
|
|
3108
|
+
### Local installation
|
|
3109
3109
|
|
|
3110
|
-
|
|
3110
|
+
Run the setup wizard — it locates your client's config file and writes the MCP entry automatically, including the API key:
|
|
3111
|
+
|
|
3112
|
+
```bash
|
|
3111
3113
|
uvx --from "financetoolkit[mcp]" financetoolkit-mcp-setup
|
|
3112
3114
|
```
|
|
3113
3115
|
|
|
3114
|
-
|
|
3115
|
-
|
|
3116
|
-
|
|
3116
|
+
For manual config, add the following to your client's MCP config file (e.g. `claude_desktop_config.json`, `.cursor/mcp.json`, `.vscode/mcp.json`):
|
|
3117
|
+
|
|
3118
|
+
```json
|
|
3119
|
+
{
|
|
3120
|
+
"mcpServers": {
|
|
3121
|
+
"finance-toolkit": {
|
|
3122
|
+
"command": "uvx",
|
|
3123
|
+
"args": ["--from", "financetoolkit[mcp]", "financetoolkit-mcp"],
|
|
3124
|
+
"env": { "FINANCIAL_MODELING_PREP_API_KEY": "YOUR_API_KEY_HERE" }
|
|
3125
|
+
}
|
|
3126
|
+
}
|
|
3127
|
+
}
|
|
3128
|
+
```
|
|
3117
3129
|
|
|
3118
|
-
https://github.com/
|
|
3130
|
+
Alternatively, download the [Finance Toolkit MCPB bundle](https://github.com/JerBouma/FinanceToolkit/releases/latest/download/financetoolkit.mcpb) and open it with Claude Desktop. An installation dialog will prompt for your FMP API key.
|
|
3119
3131
|
|
|
3120
3132
|
# Questions & Answers
|
|
3121
3133
|
|
|
@@ -315,7 +315,7 @@ def enrich_historical_data(
|
|
|
315
315
|
historical_data["Cumulative Return"] = pd.Series(np.nan).astype(float)
|
|
316
316
|
|
|
317
317
|
historical_data.loc[start:end, "Cumulative Return"] = (
|
|
318
|
-
1.0 + adjusted_return
|
|
318
|
+
1.0 + adjusted_return.fillna(0)
|
|
319
319
|
).cumprod()
|
|
320
320
|
|
|
321
321
|
return historical_data
|
|
@@ -374,7 +374,7 @@ def convert_daily_to_other_period(
|
|
|
374
374
|
period_historical_data["Adj Close"]
|
|
375
375
|
/ period_historical_data["Adj Close"].shift()
|
|
376
376
|
- 1
|
|
377
|
-
)
|
|
377
|
+
).replace([np.inf, -np.inf], np.nan)
|
|
378
378
|
|
|
379
379
|
# Volatility is calculated as the daily volatility multiplied by the
|
|
380
380
|
# square root of the number of trading days (252)
|
|
@@ -404,7 +404,9 @@ def convert_daily_to_other_period(
|
|
|
404
404
|
adjusted_return = period_historical_data.loc[start:end, "Return"].copy()
|
|
405
405
|
adjusted_return.iloc[0] = 0
|
|
406
406
|
|
|
407
|
-
period_historical_data["Cumulative Return"] = (
|
|
407
|
+
period_historical_data["Cumulative Return"] = (
|
|
408
|
+
1 + adjusted_return.fillna(0)
|
|
409
|
+
).cumprod()
|
|
408
410
|
period_historical_data["Cumulative Return"] = period_historical_data[
|
|
409
411
|
"Cumulative Return"
|
|
410
412
|
].fillna(1)
|
|
@@ -490,6 +490,30 @@ tool_groups:
|
|
|
490
490
|
use_direct_methods: true
|
|
491
491
|
|
|
492
492
|
|
|
493
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
494
|
+
# Utility tools (search / discovery helpers — not router groups)
|
|
495
|
+
# These are registered by UtilityToolRegistry in tools_model.py.
|
|
496
|
+
# Listed here so build-mcpb.sh can include them in the manifest without
|
|
497
|
+
# hard-coding them in the build script.
|
|
498
|
+
#
|
|
499
|
+
# summary (optional on any tool): Short description used in the mcpb
|
|
500
|
+
# marketplace listing. Falls back to description if absent. description is
|
|
501
|
+
# the AI-facing prompt hint and may be verbose.
|
|
502
|
+
# ──────────────────────────────────────────────────────────────────────────────
|
|
503
|
+
utility_tools:
|
|
504
|
+
- tool_name: "search_categories"
|
|
505
|
+
description: "List all available metric categories with tool counts and descriptions."
|
|
506
|
+
|
|
507
|
+
- tool_name: "search_by_category"
|
|
508
|
+
description: "List all metrics within a specific category by name."
|
|
509
|
+
|
|
510
|
+
- tool_name: "search_metrics"
|
|
511
|
+
description: "Fuzzy keyword search across all 200+ available metrics."
|
|
512
|
+
|
|
513
|
+
- tool_name: "search_instruments"
|
|
514
|
+
description: "Look up ticker symbols by company name, ISIN, CIK, CUSIP, or keyword."
|
|
515
|
+
|
|
516
|
+
|
|
493
517
|
# ──────────────────────────────────────────────────────────────────────────────
|
|
494
518
|
# Blocked period values per tool
|
|
495
519
|
# Some tool groups cannot meaningfully compute results at "daily" granularity
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Jeroen Bouma
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Builds financetoolkit.mcpb and places it in dist/.
|
|
3
|
+
set -euo pipefail
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
+
BUNDLE_DIR="$SCRIPT_DIR"
|
|
7
|
+
REPO_ROOT="$(cd "$SCRIPT_DIR/../../.." && pwd)"
|
|
8
|
+
OUTPUT_DIR="$REPO_ROOT/dist"
|
|
9
|
+
|
|
10
|
+
# Read version from the root pyproject.toml — single source of truth.
|
|
11
|
+
VERSION=$(python3 -c "
|
|
12
|
+
import tomllib
|
|
13
|
+
with open('$REPO_ROOT/pyproject.toml', 'rb') as f:
|
|
14
|
+
print(tomllib.load(f)['project']['version'])
|
|
15
|
+
")
|
|
16
|
+
echo "Version: $VERSION"
|
|
17
|
+
|
|
18
|
+
OUTPUT_FILE="$OUTPUT_DIR/financetoolkit.mcpb"
|
|
19
|
+
|
|
20
|
+
# Stamp version into pyproject.toml (package version + pinned dependency).
|
|
21
|
+
python3 -c "
|
|
22
|
+
import re, pathlib
|
|
23
|
+
p = pathlib.Path('$BUNDLE_DIR/pyproject.toml')
|
|
24
|
+
content = p.read_text()
|
|
25
|
+
content = re.sub(r'(?m)^version = \".*\"', 'version = \"$VERSION\"', content)
|
|
26
|
+
content = re.sub(r'\"financetoolkit\[mcp\]==.*\"', '\"financetoolkit[mcp]==$VERSION\"', content)
|
|
27
|
+
p.write_text(content)
|
|
28
|
+
"
|
|
29
|
+
|
|
30
|
+
# Regenerate manifest.json from config.yaml — single source of truth.
|
|
31
|
+
# Reads tool_groups and utility_tools; stamps version; writes manifest.json.
|
|
32
|
+
echo "Syncing manifest.json from config.yaml..."
|
|
33
|
+
CONFIG_YAML="$REPO_ROOT/financetoolkit/mcp_server/config.yaml" \
|
|
34
|
+
MANIFEST_JSON="$BUNDLE_DIR/manifest.json" \
|
|
35
|
+
VERSION="$VERSION" \
|
|
36
|
+
uv run --with pyyaml --no-project python3 << 'PYEOF'
|
|
37
|
+
import json, os, pathlib, yaml
|
|
38
|
+
|
|
39
|
+
config = yaml.safe_load(pathlib.Path(os.environ["CONFIG_YAML"]).read_text())
|
|
40
|
+
mpath = pathlib.Path(os.environ["MANIFEST_JSON"])
|
|
41
|
+
manifest = json.loads(mpath.read_text())
|
|
42
|
+
|
|
43
|
+
def _entry(group):
|
|
44
|
+
return {
|
|
45
|
+
"name": group["tool_name"],
|
|
46
|
+
"description": group.get("summary", group["description"]),
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
tools = [_entry(g) for g in config.get("tool_groups", [])]
|
|
50
|
+
tools += [_entry(u) for u in config.get("utility_tools", [])]
|
|
51
|
+
|
|
52
|
+
manifest["version"] = os.environ["VERSION"]
|
|
53
|
+
manifest["tools"] = tools
|
|
54
|
+
mpath.write_text(json.dumps(manifest, indent=2) + "\n")
|
|
55
|
+
print(f" {len(tools)} tools written, version {os.environ['VERSION']}.")
|
|
56
|
+
PYEOF
|
|
57
|
+
|
|
58
|
+
mkdir -p "$OUTPUT_DIR"
|
|
59
|
+
|
|
60
|
+
cd "$BUNDLE_DIR"
|
|
61
|
+
mcpb pack .
|
|
62
|
+
BUNDLE_FILE=$(ls "$BUNDLE_DIR"/*.mcpb 2>/dev/null | head -1)
|
|
63
|
+
mv "$BUNDLE_FILE" "$OUTPUT_FILE"
|
|
64
|
+
|
|
65
|
+
echo ""
|
|
66
|
+
echo "Bundle written to $OUTPUT_FILE"
|
|
67
|
+
echo ""
|
|
68
|
+
echo "To install: open $OUTPUT_FILE with Claude Desktop."
|
|
69
|
+
echo "To publish: attach $OUTPUT_FILE to a GitHub release."
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
{
|
|
2
|
+
"manifest_version": "0.4",
|
|
3
|
+
"name": "finance-toolkit",
|
|
4
|
+
"display_name": "Finance Toolkit",
|
|
5
|
+
"version": "2.1.3",
|
|
6
|
+
"description": "Give AI assistants access to 200+ financial metrics calculated transparently from raw financial statements, not pulled from third-party endpoints.",
|
|
7
|
+
"long_description": "The Finance Toolkit gives AI assistants access to 200+ financial metrics calculated transparently from raw financial statements. This includes financial statements, historical prices, analyst estimates, 80+ fundamental ratios, 30+ technical indicators, 20+ risk and performance metrics, and 50+ macro and fixed income indicators.\n\nA Financial Modeling Prep API key is required to access 30+ years of financial data. Obtain one at [jeroenbouma.com/fmp](https://jeroenbouma.com/fmp). Authenticate once via OAuth, no key is stored on the server. Rate limit fallback to Yahoo Finance is built in, and macro databases from OECD and GMDB are accessed independently.",
|
|
8
|
+
"author": {
|
|
9
|
+
"name": "Jeroen Bouma",
|
|
10
|
+
"email": "jer.bouma@gmail.com",
|
|
11
|
+
"url": "https://www.jeroenbouma.com"
|
|
12
|
+
},
|
|
13
|
+
"icon": "finance_toolkit_icon.png",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "https://github.com/JerBouma/FinanceToolkit"
|
|
17
|
+
},
|
|
18
|
+
"homepage": "https://www.jeroenbouma.com/projects/financetoolkit/mcp",
|
|
19
|
+
"documentation": "https://www.jeroenbouma.com/projects/financetoolkit/mcp",
|
|
20
|
+
"support": "https://github.com/JerBouma/FinanceToolkit/issues",
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"keywords": [
|
|
23
|
+
"finance",
|
|
24
|
+
"financial",
|
|
25
|
+
"stocks",
|
|
26
|
+
"equities",
|
|
27
|
+
"ratios",
|
|
28
|
+
"economics",
|
|
29
|
+
"indicators",
|
|
30
|
+
"options",
|
|
31
|
+
"fixed-income",
|
|
32
|
+
"technical-analysis",
|
|
33
|
+
"risk",
|
|
34
|
+
"performance",
|
|
35
|
+
"esg"
|
|
36
|
+
],
|
|
37
|
+
"server": {
|
|
38
|
+
"type": "uv",
|
|
39
|
+
"entry_point": "financetoolkit/mcp_server/mcp_controller.py",
|
|
40
|
+
"mcp_config": {
|
|
41
|
+
"command": "uv",
|
|
42
|
+
"args": [
|
|
43
|
+
"run",
|
|
44
|
+
"--directory",
|
|
45
|
+
"${__dirname}",
|
|
46
|
+
"-m",
|
|
47
|
+
"financetoolkit.mcp_server.mcp_controller"
|
|
48
|
+
],
|
|
49
|
+
"env": {
|
|
50
|
+
"FINANCIAL_MODELING_PREP_API_KEY": "${user_config.api_key}"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"user_config": {
|
|
55
|
+
"api_key": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"title": "Financial Modeling Prep API Key",
|
|
58
|
+
"description": "Obtain a key at https://www.jeroenbouma.com/fmp",
|
|
59
|
+
"required": true,
|
|
60
|
+
"sensitive": true
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"tools": [
|
|
64
|
+
{
|
|
65
|
+
"name": "efficiency",
|
|
66
|
+
"description": "Pre-computed efficiency ratios (asset turnover, inventory turnover, days sales outstanding, days payable outstanding, cash conversion cycle). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "liquidity",
|
|
70
|
+
"description": "Pre-computed liquidity ratios (current ratio, quick ratio, cash ratio, working capital). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date."
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"name": "profitability",
|
|
74
|
+
"description": "Pre-computed profitability ratios (gross margin, operating margin, net margin, ROE, ROA, ROIC, ROCE). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date."
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "solvency",
|
|
78
|
+
"description": "Pre-computed solvency ratios (debt-to-equity, interest coverage, debt-to-assets, net debt to EBITDA). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date."
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
"name": "valuation",
|
|
82
|
+
"description": "Pre-computed valuation ratios (P/E, EPS, EV/EBITDA, EV/EBIT, P/B, P/S, PEG, dividend yield, FCF yield, market cap). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Use instead of raw financial statements. Supports quarterly=true and start_date/end_date."
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"name": "breadth",
|
|
86
|
+
"description": "Market breadth technical indicators (McClellan Oscillator, OBV, Advance/Decline Line, Chaikin). Applied to price data automatically \u2014 no need to fetch prices first. Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers."
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "momentum",
|
|
90
|
+
"description": "Momentum technical indicators (RSI, MACD, Stochastic Oscillator, Williams %R, Aroon). Applied to price data automatically \u2014 no need to fetch prices first. Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers."
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "overlap",
|
|
94
|
+
"description": "Overlap technical indicators (SMA, EMA, Bollinger Bands, Keltner Channels). Applied to price data automatically \u2014 no need to fetch prices first. Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers."
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "volatility",
|
|
98
|
+
"description": "Volatility technical indicators (ATR, True Range). Applied to price data automatically \u2014 no need to fetch prices first. Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers."
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "models",
|
|
102
|
+
"description": "Pre-computed financial models (WACC, DuPont analysis, Altman Z-Score, Piotroski F-Score, intrinsic value/DCF). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Supports quarterly=true and start_date/end_date."
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "performance",
|
|
106
|
+
"description": "Pre-computed risk-adjusted performance metrics (Sharpe ratio, Sortino ratio, Alpha, Beta, CAPM, Fama-French factors). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Does NOT support period='daily'; use weekly, monthly, quarterly, or yearly instead."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "risk",
|
|
110
|
+
"description": "Pre-computed risk metrics (VaR, CVaR, GARCH volatility, max drawdown, skewness, kurtosis). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers. Does NOT support period='daily'; use weekly, monthly, quarterly, or yearly instead."
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "options",
|
|
114
|
+
"description": "Option pricing and Greeks (Black-Scholes model, binomial tree, delta, gamma, theta, vega, rho, implied volatility). Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "government",
|
|
118
|
+
"description": "Government fiscal metrics by country (debt, deficit, expenditure, revenue, tax revenue, trust in government). Requires countries='United States' \u2014 use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date and quarterly=true."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "macroeconomics",
|
|
122
|
+
"description": "Macroeconomic indicators by country (GDP, CPI, inflation rate, trade balance, imports, exports, investment, consumption, business/consumer confidence, house prices, rent prices, exchange rates). Requires countries='United States' \u2014 use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date and quarterly=true."
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"name": "environment",
|
|
126
|
+
"description": "Environmental and ESG data. For ESG scores (E, S, G ratings) use tickers='AAPL'. For carbon footprint and renewable energy data use countries='United States'. This is the only tool that accepts BOTH tickers= and countries= depending on the indicator."
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "jobs",
|
|
130
|
+
"description": "Labour and social metrics by country (unemployment rate, labour productivity, population statistics, poverty rate, income inequality). Requires countries='United States' \u2014 use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date and quarterly=true."
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"name": "rates",
|
|
134
|
+
"description": "Interest rate data (central bank policy rates, short/long-term rates, government bond yields, ICE BofA corporate bond series, EURIBOR, ECB rates, Federal Reserve rates). Requires countries='United States' \u2014 use comma-separated values for multiple countries. Do NOT use tickers= for this tool. Supports start_date/end_date and quarterly=true."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "fixed_income",
|
|
138
|
+
"description": "Bond and derivative valuation calculations (bond duration, present value, yield-to-maturity, derivative pricing). No tickers or countries needed \u2014 provide bond/derivative parameters (e.g. face_value, coupon_rate, maturity) directly as arguments."
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "discovery",
|
|
142
|
+
"description": "Market discovery tools (lists of stocks/ETFs/cryptocurrencies, stock screener, gainers, losers, sector performance, earnings/dividend calendars). No tickers or countries needed."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "market_data",
|
|
146
|
+
"description": "Raw financial data (historical prices, income statement, balance sheet, cash flow statement, company profile, quotes, analyst estimates, dividend/earnings calendars, statistics). Use this ONLY for raw data needs \u2014 for pre-computed ratios, performance, risk, or model metrics use the dedicated tools instead. Requires tickers='AAPL' \u2014 use comma-separated values for multiple tickers."
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "search_categories",
|
|
150
|
+
"description": "List all available metric categories with tool counts and descriptions."
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "search_by_category",
|
|
154
|
+
"description": "List all metrics within a specific category by name."
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"name": "search_metrics",
|
|
158
|
+
"description": "Fuzzy keyword search across all 200+ available metrics."
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"name": "search_instruments",
|
|
162
|
+
"description": "Look up ticker symbols by company name, ISIN, CIK, CUSIP, or keyword."
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"compatibility": {
|
|
166
|
+
"platforms": [
|
|
167
|
+
"darwin",
|
|
168
|
+
"linux",
|
|
169
|
+
"win32"
|
|
170
|
+
],
|
|
171
|
+
"runtimes": {
|
|
172
|
+
"python": ">=3.10"
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
"privacy_policies": [
|
|
176
|
+
"https://site.financialmodelingprep.com/privacy-policy"
|
|
177
|
+
]
|
|
178
|
+
}
|