|
|
3 veckor sedan | |
|---|---|---|
| src | 3 veckor sedan | |
| .env.example | 1 månad sedan | |
| .gitignore | 1 månad sedan | |
| Dockerfile | 3 veckor sedan | |
| PROJECT.md | 3 veckor sedan | |
| README.md | 3 veckor sedan | |
| discover_swissquote_api.py | 1 månad sedan | |
| docker-compose.yml | 3 veckor sedan | |
| killserver.sh | 1 månad sedan | |
| main.py | 3 veckor sedan | |
| metals-mcp_first_idea.md | 1 månad sedan | |
| requirements.txt | 1 månad sedan | |
| restart.sh | 1 månad sedan | |
| run.sh | 1 månad sedan | |
| swissquote_pairs.json | 1 månad sedan | |
| test_metals.py | 3 veckor sedan | |
| test_swissquote_api.py | 1 månad sedan | |
| tests.sh | 1 månad sedan |
FastMCP-based metals market data server backed by a Swissquote poller and local candle store.
/mcp/mcp/sse/mcp/messages//rpc compatibility pathsource .venv/bin/activate
pip install -r requirements.txt
./run.sh
Default URL base: http://127.0.0.1:8515
docker compose up -d --build
The compose file persists data/ and logs/ into the project directory, binds the server to 0.0.0.0, and keeps the candle DB bounded.
Reload is off by default in container runs, so the poller won't trigger watcher loops.
GET / → health + tool listGET /health → health + cache/store statsget_priceget_ohlcvget_last_candleget_market_snapshotget_indicatorget_top_moversget_capabilitiesget_regimecrypto-mcp tool names, with get_last_candle kept as a small metals-specific convenience.get_price fetches live Swissquote quotes for metals like XAU.XAU/USD, XAG/USD, XPT/USD, and XPD/USD by default.get_market_snapshot and get_regime now provide the useful metals context in crypto-style naming.METALS_CANDLE_RETENTION_DAYS (default 30), with periodic pruning to keep the DB bounded.get_indicator, get_market_snapshot, get_top_movers, and get_regime as more metals behavior becomes useful to Argus.crypto-mcp where practical.8515../tests.sh
./run.sh
./killserver.sh stops stale listeners on the configured port./restart.sh chains kill and run