Skip to main content
Glama
rohith1125

sentinel

by rohith1125

Sentinel Execution MCP

CI License: MIT

Un plano de control de trading algorítmico de nivel de producción expuesto como un servidor MCP — para que Claude pueda gestionar listas de seguimiento, clasificar regímenes de mercado, validar el riesgo y enviar órdenes de paper trading mediante lenguaje natural.


Qué Es

Sentinel es un monorepo de dos paquetes:

Paquete

Lenguaje

Función

packages/engine

Python 3.12 / FastAPI

Toda la lógica de trading: comprobaciones de riesgo, clasificación de régimen, ciclo de vida de órdenes, diario de auditoría y gobernanza de estrategias

packages/mcp

TypeScript / Node 20

Servidor MCP ligero que enruta más de 40 herramientas al motor mediante HTTP. Aquí no reside ninguna lógica de trading

Claude (o cualquier agente compatible con MCP) se comunica con el servidor MCP. El servidor MCP se comunica con el motor. El motor posee la base de datos y la caché.


Related MCP server: Alpaca MCP Server

Arquitectura

  Claude Desktop (or any MCP agent)
           │
           │  MCP protocol (stdio or SSE)
           ▼
  ┌─────────────────────────┐
  │   MCP Server            │  TypeScript · Zod validation · tool routing
  │   (packages/mcp)        │
  └────────────┬────────────┘
               │  HTTP REST (localhost:8100)
               ▼
  ┌─────────────────────────┐
  │   Engine API            │  Python · FastAPI · all trading logic
  │   (packages/engine)     │
  └──────────┬──────────────┘
             │
     ┌───────┴────────┐
     ▼                ▼
 PostgreSQL          Redis
 (orders,           (kill switch,
  positions,         rate limits,
  strategies,        cache)
  audit log)

Si el motor no está disponible, cada llamada a una herramienta MCP devuelve un error de inmediato. No hay respaldo ni ejecución parcial.


Inicio rápido (Docker — recomendado)

La forma más rápida de ponerse en marcha. Requiere Docker y Node.js 20+.

# 1. Clone and configure
git clone https://github.com/rohith1125/sentinel-execution-mcp.git
cd sentinel-execution-mcp
cp .env.example .env          # defaults work out of the box — no edits needed

# 2. Start Postgres + Redis + engine (runs migrations automatically)
docker compose -f docker/docker-compose.yml up -d db redis engine

# Wait ~10 seconds, then verify the engine is healthy:
curl http://localhost:8100/health
# {"status": "ok", "provider": "mock", ...}

# 3. Build the MCP server (one-time)
cd packages/mcp
npm install
npm run build

Añade Sentinel a Claude Desktop (consulta Conectar Claude Desktop más abajo) y reinicia Claude. Eso es todo: las 40 herramientas están operativas.


Configuración manual (sin Docker)

Usa esta opción si tienes Postgres y Redis ya corriendo localmente.

Prerrequisitos:

Dependencia

Versión mínima

Notas

Python

3.12

Entorno de ejecución del motor — comprueba con python3 --version

Node.js

20

Entorno de ejecución del servidor MCP

PostgreSQL

15+

Almacén de datos principal

Redis

7+

Interruptor de emergencia y caché

1. Clona y configura

git clone https://github.com/rohith1125/sentinel-execution-mcp.git
cd sentinel-execution-mcp
cp .env.example .env
# Default values work for local paper-trading development — no edits required

2. Configura el motor

cd packages/engine
python3.12 -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -e ".[dev]"

3. Ejecuta las migraciones de la base de datos

# From packages/engine with the venv active
alembic upgrade head

4. Arranca el motor

uvicorn sentinel.api:app --reload --port 8100

Verifica que está en marcha:

curl http://localhost:8100/health
# {"status": "ok", "env": "paper"}

5. Compila y arranca el servidor MCP

Abre un segundo terminal:

cd packages/mcp
npm install
npm run build
npm run dev     # stdio transport — for direct Claude Desktop integration

Conectar Claude Desktop

Añade lo siguiente al archivo de configuración de tu Claude Desktop.

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

Obtén la ruta correcta ejecutando esto en tu terminal:

echo "$(pwd)/packages/mcp/dist/index.js"

Luego pégalo en el archivo de configuración:

{
  "mcpServers": {
    "sentinel": {
      "command": "node",
      "args": ["/absolute/path/to/sentinel-execution-mcp/packages/mcp/dist/index.js"],
      "env": {
        "ENGINE_BASE_URL": "http://localhost:8100",
        "APP_ENV": "paper"
      }
    }
  }
}

Reinicia Claude Desktop después de guardar. Deberías ver un icono de martillo (🔨) en el campo de entrada del chat; haz clic en él para confirmar que las 40 herramientas de Sentinel están cargadas.


Referencia de herramientas MCP

Sentinel expone más de 40 herramientas en nueve categorías. El nombre del servidor MCP es sentinel.

Categoría

Herramienta

Descripción

Lista de seguimiento

watchlist.add

Añade símbolos a la lista de seguimiento, opcionalmente asignados a un grupo

watchlist.remove

Elimina símbolos; dejarán de aparecer en los análisis de estrategias

watchlist.list

Lista los símbolos activos, opcionalmente filtrados por grupo

watchlist.get

Obtiene los detalles de un único símbolo

watchlist.groups

Lista todos los grupos de la lista de seguimiento

watchlist.update

Actualiza las notas o la asignación de grupo de un símbolo

Datos de mercado

market.snapshot

Última cotización y datos de operaciones de uno o más símbolos

market.bars

Historial de barras OHLCV con marco temporal configurable

market.quote

Spread bid/ask en tiempo real para un símbolo

market.health

Comprueba la conectividad del proveedor de datos de mercado

Régimen

regime.evaluate

Clasifica el régimen de mercado actual mediante ATR, ADX, RSI, Bollinger Width, Hurst Exponent, VWAP y Price Efficiency

regime.history

Recupera instantáneas históricas del régimen de un símbolo

Estrategia

strategy.scan

Analiza la lista de seguimiento en busca de señales de una o más estrategias

strategy.signal

Evalúa un único símbolo contra una estrategia concreta

strategy.list

Lista todas las estrategias registradas y su estado actual

Riesgo / Interruptor de emergencia

risk.validate_trade

Ejecuta las más de 13 comprobaciones de riesgo sobre una operación propuesta antes de enviarla

risk.kill_switch_status

Obtiene el estado actual de todos los interruptores de emergencia

risk.kill_switch_enable

Activa un interruptor de emergencia a nivel global, por estrategia o por símbolo

risk.kill_switch_disable

Desactiva un interruptor de emergencia (requiere un motivo explícito)

risk.exposure

Resumen actual de la exposición bruta y neta

risk.drawdown

Drawdown diario actual en comparación con los límites configurados

Cartera

portfolio.status

Vista general de la cuenta: valor, efectivo, capital, P&L y poder de compra

portfolio.positions

Todas las posiciones abiertas con P&L no realizado

portfolio.history

Historial de posiciones cerradas con P&L realizado

Ejecución

execution.paper_order

Envía una orden de paper trading (market, limit, stop, stop-limit)

execution.cancel_order

Cancela una orden pendiente o parcialmente ejecutada por su ID

execution.get_order

Obtiene el estado actual de una orden específica

execution.list_orders

Lista órdenes filtradas por estado, símbolo o rango de fechas

execution.reconcile

Ejecuta una conciliación manual entre el estado del motor y el bróker

Gobernanza

governance.create_strategy

Registra una nueva estrategia en estado draft

governance.promote_strategy

Promueve una estrategia: Draft → Research → Backtest → Paper → Hidereokeriable

governance.suspend_strategy

Suspende al instante una estrategia en fase Live o Paper

governance.list_strategies

Lista todas las estrategias con su estado actual de ciclo de vida

governance.evaluate_promotion

Comprueba si una estrategia cumple los criterios para promocionarse

Auditaría

audit.explain_trade

Explicación completa legible para una decisión de trading mediante el ID del evento de auditoría

audit.recent_events

Eventos de auditoría más recientes, filtrables por símbolo o estrategia

audit.trade_history

Historial de operaciones completadas con sus resultados

audit.decision_log

Entradas del registro de decisiones en crudo para un intervalo de tiempo

audit.stats

Estadísticas agregadas: tasa de aciertos, P&L promedio, proxy de Sharpe

audit.export

Exporta los registros de auditoría como CSV para un rango de fechas

Documentación completa de herramientas con esquemas de parámetros:

docs/mcp-tools.md


Variables de entorno

Motor (packages/engine/.env)

Variable

Predeterminado

Descripción

APP_ENV

paper

development, paper o live

DATABASE_URL

postgresql+asyncpg://sentinel:sentinel@localhost:5432/sentinel

Cadena de conexión de PostgreSQL

REDIS_URL

redis://localhost:6379/0

Cadena de conexión de Redis

MARKET_DATA_PROVIDER

mock

mock (no se necesitan credenciales) o alpaca

ALPACA_API_KEY

(vacío)

Requerido cuando MARKET_DATA_PROVIDER=alpaca

ALPACA_API_SECRET

(vacío)

Requerido cuando MARKET_DATA_PROVIDER=alpaca

ALPACA_BASE_URL

https://paper-api.alpaca.markets

Usa https://api.alpaca.markets para operar en vivo

MAX_POSITION_PCT

0.05

Tamaño máximo de posición como fracción del capital de la cuenta (5%)

MAX_DAILY_DRAWDOWN_PCT

0.02

Límite diario de pérdidas (2%); el trading se detiene si se supera

MAX_GROSS_EXPOSURE_PCT

0.80

Exposición bruta máxima en todas las posiciones (80%)

MAX_CONCURRENT_POSITIONS

10

Número máximo de posiciones abiertas simultáneamente

MAX_TRADE_RISK_PCT

0.01

Riesgo máximo por operación individual (1%)

PAPER_FILL_LATENCY_MS

50

Latencia de ejecución simulada en modo de paper trading

SLIPPAGE_BPS

5

Deslizamiento simulado en puntos básicos

SENTINEL_AUTH_ENABLED

true

Establecer en false solo para desarrollo local

SENTINEL_MASTER_KEY

(vacío)

Generar con python -m sentinel.auth.cli generate --name master --scopes admin

SENTINEL_API_KEYS_JSON

(vacío)

Matriz JSON de registros de claves de cliente adicionales

Servidor MCP (packages/mcp/.env)

Variable

Predeterminado

Descripción

ENGINE_BASE_URL

http://localhost:8100

URL base del servicio del motor en ejecución

Consulta .env.example en la raíz del repositorio para la referencia anotada completa.


Flujo de trabajo de ejemplo (Paper Trading)

# 1. Add symbols
watchlist.add(symbols=["NVDA", "MSFT", "AAPL"], group="tech")

# 2. Classify regime
regime.evaluate(symbol="NVDA", timeframe="1Day")

# 3. Scan for signals
strategy.scan(group="tech", strategy="momentum_v1")

# 4. Validate before submitting
risk.validate_trade(symbol="NVDA", side="buy", qty=10, order_type="market")

# 5. Submit paper order
execution.paper_order(symbol="NVDA", side="buy", qty=10, order_type="market")

# 6. Review portfolio
portfolio.status()

# 7. Inspect the audit trail
audit.recent_events(symbol="NVDA", limit=1)
audit.explain_trade(audit_event_id="evt-...")

Ejecución de pruebas

Motor (Python)

cd packages/engine
source .venv/bin/activate
pytest tests/ -v

Servidor MCP (TypeScript)

cd packages/mcp
pnpm test

CI completo (lint + verificación de tipos + pruebas)

# From repo root
make check

Estructura del repositorio

sentinel-execution-mcp/
├── packages/
│   ├── engine/          # Python FastAPI trading engine
│   │   ├── sentinel/    # Application source
│   │   ├── tests/       # Pytest test suite
│   │   └── alembic/     # Database migrations
│   └── mcp/             # TypeScript MCP server
│       └── src/
│           └── tools/   # One file per tool category
├── docker/              # Dockerfiles and docker-compose
├── docs/                # Architecture, tool reference, risk model
├── scripts/             # Setup and reset helpers
└── .env.example         # Annotated environment variable reference

Descargo de responsabilidad de seguridad

Este software es solo para paper trading e investigación a menos que comprendas completamente cada componente. Establecer APP_ENV=live con credenciales reales de Alpaca realizará órdenes reales con dinero real. Los límites de riesgo codificados son valores predeterminados conservadores: verifica que coincidan con tu propia tolerancia al riesgo antes de usarlo. Los autores no aceptan ninguna responsabilidad por pérdidas financieras.


Licencia

MIT. Consulta LICENSE.

F
license - not found
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants like Claude to interact with Paper's trading platform API using natural language, allowing users to manage accounts, portfolios, trades, and access market data through conversational requests.
    23
    15
    23
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language trading operations through Alpaca's Trading API, supporting stocks, options, crypto, portfolio management, and real-time market data access through AI assistants like Claude.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to autonomously trade, analyze, and manage positions on Polymarket prediction markets with 45 comprehensive tools covering market discovery, analysis, trading execution, portfolio management, and real-time monitoring with enterprise-grade safety features.
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Provides 32 trading analysis tools for AI-powered market analysis, including real-time data, technical indicators, options Greeks, scanners, and Interactive Brokers portfolio management, all accessible via natural language in Claude Desktop.
    35
    328
    MIT

View all related MCP servers

Related MCP Connectors

  • Trade Robinhood through natural language in Claude Code.

  • Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude

  • Build, backtest, and deploy quantitative trading strategies from your AI agent.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rohith1125/sentinel-execution-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server