# Trader MCP - Project ## Purpose Trader MCP runs strategies, persists strategy state, and keeps the public surface small enough for Hermes and operators to use safely. ## Architecture - FastAPI app - FastMCP mounted at `/mcp` using SSE at `/mcp/sse` - app logic under `src/trader_mcp/*` - strategies under `strategies/*` - state persistence via SQLite - logs under `./logs/` ## MCP surface - `list_strategies` - `get_strategy` - `update_strategy` - `control_strategy` - `set_strategy_policy` - `get_capabilities` ## Notes - `get_strategy()` returns compact identity/control data plus `report` by default. - `report().fit` is the Hermes-facing fit block. - `set_strategy_policy()` stores `risk_posture`, `priority`, and optional metadata. - policy is reapplied on reconcile and instance creation. - quote-currency notionals are the canonical sizing unit for directional and defensive strategies. - directional strategies should use `trade_side` when they need long-only or short-only behavior. - `control_strategy()` handles `start`, `pause`, `resume`, `stop`, and `reconcile`. ## Upgrade plans The next phase should focus on Hermes compatibility and operational clarity: - keep the strategy taxonomy small and orthogonal - make `report()` the canonical Hermes read path - keep policy meta-level, not trading-mechanics level - map policy to strategy-local parameters inside each strategy - reduce dashboard clutter and keep render panels useful - add new strategies only when the contract stays stable ## Routes - `GET /` minimal landing page - `GET /health` liveness - `GET /mcp/sse` MCP SSE endpoint