AI-controlled algorithmic trading engine exposing 40 MCP tools across 9 namespaces.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A production-grade algorithmic trading control plane exposed as an MCP server β so Claude can manage watchlists, classify market regimes, validate risk, and submit paper orders through natural language.
Sentinel is a two-package monorepo:
| Package | Language | Role |
|---|---|---|
packages/engine | Python 3.12 / FastAPI | All trading logic: risk checks, regime classification, order lifecycle, audit journal, strategy governance |
packages/mcp | TypeScript / Node 20 | Thin MCP server that routes 40+ tools to the engine via HTTP. Zero trading logic lives here. |
Claude (or any MCP-compatible agent) talks to the MCP server. The MCP server talks to the engine. The engine owns the database and cache.
If the engine is unavailable, every MCP tool call returns an error immediately. There is no fallback or partial execution.
The fastest way to get running. Requires Docker and Node.js 20+.
Then add Sentinel to Claude Desktop (see Connect Claude Desktop below) and restart Claude. That's it β all 40 tools are live.
Use this if you have Postgres and Redis already running locally.
Prerequisites:
| Dependency | Minimum version | Notes |
|---|---|---|
| Python | 3.12 | Engine runtime β check with python3 --version |
| Node.js | 20 | MCP server runtime |
| PostgreSQL | 15+ | Primary data store |
| Redis | 7+ | Kill switch and cache |
Verify it is running:
Open a second terminal:
Add the following to your Claude Desktop configuration file.
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Get the correct path by running this in your terminal:
Then paste it into the config:
Restart Claude Desktop after saving. You should see a hammer icon (π¨) in the chat input β click it to confirm Sentinel's 40 tools are loaded.
Sentinel exposes 40+ tools across nine categories. The MCP server name is sentinel.
| Category | Tool | Description |
|---|---|---|
| Watchlist | watchlist.add | Add symbols to the trading watchlist, optionally assigned to a group |
watchlist.remove | Remove symbols; they will no longer appear in strategy scans | |
watchlist.list | List active symbols, optionally filtered by group | |
watchlist.get | Get details for a single symbol | |
watchlist.groups | List all named watchlist groups | |
watchlist.update | Update notes or group assignment for a symbol | |
| Market Data | market.snapshot | Latest quote and trade data for one or more symbols |
market.bars | OHLCV bar history with configurable timeframe | |
market.quote | Real-time bid/ask spread for a symbol | |
market.health | Check market data provider connectivity | |
| Regime | regime.evaluate | Classify current market regime using ATR, ADX, RSI, Bollinger Width, Hurst Exponent, VWAP, and Price Efficiency |
regime.history | Retrieve historical regime snapshots for a symbol | |
| Strategy | strategy.scan | Scan the watchlist for signals across one or more strategies |
strategy.signal | Evaluate a single symbol against a specific strategy | |
strategy.list | List all registered strategies and their current state | |
| Risk / Kill Switch | risk.validate_trade | Run all 13+ risk checks against a proposed trade before submission |
risk.kill_switch_status | Get the current state of all kill switches | |
risk.kill_switch_enable | Enable a kill switch globally, per-strategy, or per-symbol | |
risk.kill_switch_disable | Disable a kill switch (requires explicit reason) | |
risk.exposure | Current gross and net exposure summary | |
risk.drawdown | Current daily drawdown against configured limits | |
| Portfolio | portfolio.status | Full account overview: value, cash, equity, P&L, buying power |
portfolio.positions | All open positions with unrealized P&L | |
portfolio.history | Closed position history with realized P&L | |
| Execution | execution.paper_order | Submit a paper trading order (market, limit, stop, stop-limit) |
execution.cancel_order | Cancel a pending or partially filled order by ID | |
execution.get_order | Get the current state of a specific order | |
execution.list_orders | List orders filtered by status, symbol, or date range | |
execution.reconcile | Trigger a manual reconciliation between engine state and broker | |
| Governance | governance.create_strategy | Register a new strategy in draft state |
governance.promote_strategy | Advance a strategy: Draft β Research β Backtest β Paper β Live | |
governance.suspend_strategy | Suspend a live or paper strategy immediately | |
governance.list_strategies | List all strategies with their current lifecycle state | |
governance.evaluate_promotion | Check whether a strategy meets criteria for promotion | |
| Audit | audit.explain_trade | Full human-readable explanation for a trade decision by audit event ID |
audit.recent_events | Most recent audit events, filterable by symbol or strategy | |
audit.trade_history | Completed trade history with outcomes | |
audit.decision_log | Raw decision log entries for a time window | |
audit.stats | Aggregate statistics: win rate, average P&L, Sharpe proxy | |
audit.export | Export audit records as CSV for a date range |
Full tool documentation with parameter schemas: docs/mcp-tools.md
packages/engine/.env)| Variable | Default | Description |
|---|---|---|
APP_ENV | paper | development, paper, or live |
DATABASE_URL | postgresql+asyncpg://sentinel:sentinel@localhost:5432/sentinel | PostgreSQL connection string |
REDIS_URL | redis://localhost:6379/0 | Redis connection string |
MARKET_DATA_PROVIDER | mock | mock (no credentials needed) or alpaca |
ALPACA_API_KEY | (empty) | Required when MARKET_DATA_PROVIDER=alpaca |
ALPACA_API_SECRET | (empty) | Required when MARKET_DATA_PROVIDER=alpaca |
ALPACA_BASE_URL | https://paper-api.alpaca.markets | Use https://api.alpaca.markets for live trading |
MAX_POSITION_PCT | 0.05 | Maximum position size as a fraction of account equity (5%) |
MAX_DAILY_DRAWDOWN_PCT | 0.02 | Hard daily loss limit (2%); trading halts if breached |
MAX_GROSS_EXPOSURE_PCT | 0.80 | Maximum gross exposure across all positions (80%) |
MAX_CONCURRENT_POSITIONS | 10 | Maximum number of simultaneously open positions |
MAX_TRADE_RISK_PCT | 0.01 | Maximum risk per individual trade (1%) |
PAPER_FILL_LATENCY_MS | 50 | Simulated fill latency in paper trading mode |
SLIPPAGE_BPS | 5 | Simulated slippage in basis points |
SENTINEL_AUTH_ENABLED | true | Set to false for local development only |
SENTINEL_MASTER_KEY | (empty) | Generate with python -m sentinel.auth.cli generate --name master --scopes admin |
SENTINEL_API_KEYS_JSON | (empty) | JSON array of additional client key records |
packages/mcp/.env)No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/sentinel-execution-mcp)<a href="https://allmcps.com/mcp/sentinel-execution-mcp"><img src="https://allmcps.com/api/badge/sentinel-execution-mcp?style=directory" alt="Sentinel Execution MCP on AllMCPs" /></a>