mcp-finance
by jaknow01
README.md
# mcp-finance
FX rates, stock/index quotes, ticker search and daily price history as an
[MCP](https://modelcontextprotocol.io) server. All upstream sources are keyless.
| Tool | Source |
|---|---|
| `get_exchange_rate` | Frankfurter (ECB reference rates); base currency defaults to PLN |
| `get_stock_quote` | Yahoo Finance — stocks, indices, ETFs, futures; Warsaw shares end in `.WA` |
| `search_ticker` | Yahoo Finance symbol search, ranked by name similarity |
| `get_price_history` | this server's own daily series (FX vs PLN, S&P 500 and its PLN value, gold, silver) |
| `whoami` | which client your key belongs to |
Part of the Jarvis tool servers; built on
[jarvis-mcp-kit](https://github.com/jaknow01/jarvis-mcp-kit) (API keys, rate limits, logs).
## History
`get_price_history` reads the `observations` table — its own Postgres database with
`DATABASE_URL`, else `$MCP_FINANCE_DATA_DIR/observations.json`. Fill and keep it current with:
```bash
mcp-finance backfill --days 365 # once, after deploy (idempotent)
mcp-finance collect # daily, e.g. 23:00 (CronJob in deploy/kubernetes.yaml)
```
Watchlist: `OBSERVATIONS_FX` (default `USD,EUR,GBP,CHF`, quoted vs PLN),
`OBSERVATIONS_EQUITIES` (default `^GSPC`), `OBSERVATIONS_METALS` (default `GC=F,SI=F`),
`OBSERVATIONS_SP500_ETF` (default `SP5.PA`, used to derive `index:sp500_pln`).
## Run
```bash
cp .env.example .env
cp config/clients.example.yaml config/clients.yaml
uv run jarvis-mcp-keys new me --servers finance # paste the block into config/clients.yaml
uv run --env-file .env mcp-finance serve # http://localhost:8010/mcp/finance
```
## Connect
- **Claude Code:** `claude mcp add --transport http finance https://<host>/mcp/finance --header "Authorization: Bearer jvk_…"`
- **Claude app (custom connector):** URL `https://<host>/mcp/finance/jvk_…`
- **Jarvis:** an entry in its `config/subagents.yaml`.
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues