Skip to main content
Glama
rohith1125

sentinel

by rohith1125

Sentinel Execution MCP

CI License: MIT

Готовый к продакшену контур управления алгоритмической торговлей, представленный в виде MCP-сервера, — чтобы Claude мог управлять списками наблюдения, классифицировать рыночные режимы, проверять риски и отправлять бумажные заявки через естественный язык.


Что это

Sentinel — монорепозиторий из двух пакетов:

Пакет

Язык

Роль

packages/engine

Python 3.12 / FastAPI

Вся торговая логика: проверка рисков, классификация режимов, жизненный цикл заявок, журнал аудита, управление стратегиями

packages/mcp

TypeScript / Node 20

Тонкий MCP-сервер, который отправляет 40+ инструментов в движок через HTTP. Здесь нет никакой торговой логики.

Claude (или любой MCP-совместимый агент) общается с MCP-сервером. MCP-сервер общается с движком. Движок владеет базой данных и кэшем.


Related MCP server: Alpaca MCP Server

Архитектура

  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)

Если движок недоступен, каждый вызов инструмента MCP сразу возвращает ошибку. Никаких запасных механизмов или частичного выполнения не предусмотрено.


Быстрый старт (Docker — рекомендуется)

Самый быстрый способ начать работу. Требуются Docker и 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

Затем добавьте Sentinel в Claude Desktop (см. Подключение Claude Desktop ниже) и перезапустите Claude. Готово — все 40 инструментов активны.


Ручная настройка (без Docker)

Используйте этот вариант, если у вас локально уже запущены Postgres и Redis.

Предварительные требования:

Зависимость

Минимальная версия

Примечания

Python

3.12

Среда выполнения движка — проверьте командой python3 --version

Node.js

20

Среда выполнения MCP-сервера

PostgreSQL

15+

Основное хранилище данных

Redis

7+

Аварийный рубильник и кэш

1. Клонирование и настройка

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. Настройка движка

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

3. Запуск миграций базы данных

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

4. Запуск движка

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

Проверьте, что движок работает:

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

5. Сборка и запуск MCP-сервера

Откройте второй терминал:

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

Подключение Claude Desktop

Добавьте следующее в файл конфигурации Claude Desktop.

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

Получите правильный путь, выполнив в терминале:

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

Затем вставьте его в конфигурацию:

{
  "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"
      }
    }
  }
}

После сохранения перезапустите Claude Desktop. В поле ввода сообщения должен появиться значок молотка (🔨) — нажмите его, чтобы убедиться, что все 40 инструментов Sentinel загружены.


Справочник MCP-инструментов

Sentinel предоставляет 40+ инструментов, разделённых на девять категорий. Имя MCP-сервера — sentinel.

Категория

Инструмент

Описание

Watchlist

watchlist.add

Добавляет тикеры в торговый список наблюдения, при необходимости в указанную группу.

watchlist.remove

Удаляет тикеры; они больше не будут появляться при сканировании стратегий.

watchlist.list

Показывает активные тикеры, при необходимости отфильтрованные по группе.

watchlist.get

Возвращает данные по одному тикеру.

watchlist.groups

Выводит все именованные группы списка наблюдения.

watchlist.update

Обновляет заметки или группу для тикера.

Market Data

market.snapshot

Последние данные о котировках и сделках по одному или нескольким тикерам.

market.bars

История OHLCV-баров с настраиваемым таймфреймом.

market.quote

Спред bid/ask в реальном времени по тикеру.

market.health

Проверка доступности поставщика рыночных данных.

Regime

regime.evaluate

Классифицирует текущий рыночный режим с помощью ATR, ADX, RSI, ширины полос Боллинджера, показателя Хёрста, VWAP и ценовой эффективности.

regime.history

Показывает исторические снимки режимов для тикера.

Strategy

strategy.scan

Сканирует список наблюдения на сигналы по одной или нескольким стратегиям.

strategy.signal

Оценивает конкретный тикер по выбранной стратегии.

strategy.list

Выводит все зарегистрированные стратегии и их текущее состояние.

Risk / Kill Switch

risk.validate_trade

Выполняет все 13+ проверок риска по предлагаемой сделке перед её отправкой.

risk.kill_switch_status

Показывает текущее состояние всех аварийных рубильников (kill switch).

risk.kill_switch_enable

Включает аварийный рубильник глобально, для стратегии или для тикера.

risk.kill_switch_disable

Отключает аварийный рубильник (требуется указать причину).

risk.exposure

Сводка текущей валовой и чистой экспозиции.

risk.drawdown

Текущая дневная, просадка относительно заданных лимитов.

Portfolio

portfolio.status

Полный обзор счёта: стоимость, денежные средства, собственный капитал, P&L, покупательная способность.

portfolio.positions

Все открытые позиции с нереализованной прибылью/убытком (P&L).

portfolio.history

История закрытых позиций с реализации P&L.

Execution

execution.paper_order

Отправляет бумажную заявку: рыночную, лимитную, стоп или стоп-лимит.

execution.cancel_order

Отменяет ожидающую или частично исполненную заявку по идентификатору.

execution.get_order

Показывает текущее состояние конкретной заявки.

execution.list_orders

Выводит список заявок с фильтром по статусу, тикеру или диапазону дат.

execution.reconcile

Запускает ручную сверку данных движка и брокера.

Governance

governance.create_strategy

Регистрирует новую стратегию в статусе draft.

governance.promote_strategy

Продвигает стратегию по этапам: Draft → Research → Backtest → Paper → Live.

governance.suspend_strategy

Немедленно приостанавливает стратегию в статусе Live или Paper.

governance.list_strategies

Выводит все стратегии с их текущим жизненным циклом.

governance.evaluate_promotion

Проверяет, соответствует ли стратегия критериям для продвижения.

Audit

audit.explain_trade

Понятное человеку объяснение торгового решения по ID события аудита.

audit.recent_events

Последние события аудита с фильтром по тикеру или стратегии.

audit.trade_history

История завершённых сделок с результатами.

audit.decision_log

Сырые записи журнала решений за временной период.

audit.stats

Сводная статистика: процент выигрышных сделок, средний P&L, прокси коэффициента Шарпа.

audit.export

Экспорт записей аудита в CSV за диапазон дат.

Полная документация по инструментам со схемами параметров: docs/mcp-tools.md


Переменные окружения

Движок (packages/engine/.env)# Sentinel Execution MCP

CI License: MIT

Готовый к продакшену контур управления алгоритмической торговлей, предоставленный в виде MCP-сервера, — чтобы Claude мог управлять списками наблюдения, классифицировать рыночные режимы, проверять риски и отправлять бумажные заявки через естественный язык.


Что это

Sentinel — это монорепозиторий из двух пакетов:

Пакет

Язык

Роль

packages/engine

Python 3.12 / FastAPI

Вся торговая логика: проверка рисков, классификация режимов, жизненный цикл заявок, журнал аудита, управление стратегиями

packages/mcp

TypeScript / Node 20

Тонкий MCP-сервер, который направляет 40+ инструментов в движок через HTTP. Здесь нет никакой торговой логики.

Claude (или любой MCP-совместимый агент) взаимодействует с MCP-сервером. В свою очередь, MCP-сервер взаимодействует с движком. Движок владеет базой данных и кэшем.


Архитектура

  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)

Если движок недоступен, каждый вызов инструмента MCP немедленно возвращает ошибку. Никакого резервного механизма или частичного выполнения не предусмотрено.


Быстрый старт (Docker — рекомендуется)

Самый быстрый способ начать работу. Требуются Docker и 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

Затем добавьте Sentinel в Claude Desktop (см. Подключение Claude Desktop ниже) и перезапустите Claude. Всё — все 40 инструментов активны.


Ручная настройка (без Docker)

Используйте этот вариант, если у вас уже запущены Postgres и Redis локально.

Предварительные требования:

Зависимость

Минимальная версия

Примечания

Python

3.12

Среда выполнения движка — проверьте с помощью python3 --version

Node.js

20

Среда выполнения MCP-сервера

PostgreSQL

15+

Основное хранилище данных

Redis

7+

Аварийный рубильник и кэш

1. Клонирование и настройка

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. Настройка движка

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

3. Запуск миграций базы данных

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

4. Запуск движка

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

Проверьте, что он работает:

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

5. Сборка и запуск MCP-сервера

Откройте второй терминал:

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

Подключение Claude Desktop

Добавьте следующее в файл конфигурации Claude Desktop.

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

Получите правильный путь, выполнив это в терминале:

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

Затем вставьте его в конфигурацию:

{
  "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"
      }
    }
  }
}

После сохранения перезапустите Claude Desktop. В поле ввода чата появится значок молотка (🔨) — нажмите его, чтобы убедиться, что все 40 инструментов Sentinel загружены.


Справочник MCP-инструментов

Sentinel предоставляет более 40 инструментов в девяти категориях. Имя MCP-сервера — sentinel.

Категория

Инструмент

Описание

Watchlist

watchlist.add

Добавляет тикеры в торговый список наблюдения, возможно, в указанную группу.

watchlist.remove

Удаляет тикеры из списка наблюдения; они больше не появляются при сканировании стратегий.

watchlist.list

Показывает активные тикеры, опционально отфильтрованные по группе.

watchlist.get

Получает детапись по конкретному тикеру.

watchlist.groups

Показывает все именованные группы списка наблюдения.

watchlist.update

Обновляет заметки или привязку к группе для тикера.

Market Data

market.snapshot

Последние котировки и данные по сделкам для одного или нескольких тикеров.

market.bars

История OHLCV- баров с настраиваемым таймфреймом.

market.quote

Спред ask/bid в реальном времени по тикеру.

market.health

Проверка подключения к провайдеру рыночных данных.

Regime

regime.evaluate

Классифицирует текущий рыночный режим на основе ATR, ADX, RSI, ширины полос Боллинджера, показателя Херста, VWAP и ценовой эффективности.

regime.history

Получает исторические снимки режимов для тикера.

Strategy

strategy.scan

Сканирует список наблюдения на сигналы по одной или нескольким стратегиям.

strategy.signal

Оценивает конкретный тикер по конкретной стратегии.

strategy.list

Перечисляет все зарегистрированные стратегии и их текущее состояние.

Risk / Kill Switch

risk.validate_trade

Выполняет все 13+ проверок рисков для предлагаемой сделки перед её отправкой.

risk.kill_switch_status

Возвращает текущее состояние всех kill switch.

risk.kill_switch_enable

Включает kill switch глобально, для конкрет тех стратегий или для конкретного тикера.

risk.kill_switch_disable

Отключает kill switch (необходима явная причина).

risk.exposure

Сводка текущей валовой и чистой экспозиции.

risk.drawdown

Текущая дневная просадка относительно заданных лимитов.

Portfolio

portfolio.status

Полный обзор счёта: стоимость, денежные средства, капитал, прибыль/убыток, покупательная способность.

portfolio.positions

Все открытые позиции с нереализованным P&L.

portfolio.history

История закрытых позиций с реализованным P&L.

Execution

execution.paper_order

Отправляет бумажную торговую заявку (рыночную, лимитную, стоп- или стоп-лимит).

execution.cancel_order

Отменяет ожидающую или частично исполнённую заявку по ID.

execution.get_order

Возвращает текущее состояние конкретной заявки.

execution.list_orders

Список заявок с фильтрацией по статусу, тикеру или периоду времени.

execution.reconcile

Запускает ручную сверку состояний движка и брокера.

Governance

governance.create_strategy

Регистрирует новую стратегию в статусе draft.

governance.promote_strategy

Продвигает стратегию: Draft → Research → Backtest → Paper → Live

governance.suspend_strategy

Немедленно приостанавливает стратегию в статусе Live или Paper.

governance.list_strategies

Перечисляет все стратегии с их текущим статусом жизненного цикла.

governance.evaluate_promotion

Проверяет, соответствует ли стратегия условиям для повышения статуса.

Audit

audit.explain_trade

Полное, читаемое объяснение торгового решения по ID события аудита.

audit.recent_events

Самые последние события аудита с фильтром по тикеру или стратегии.

audit.trade_history

История завершённых сделок с результатами.

audit.decision_log

Сырые записи журнала решений за определённый период времени.

audit.stats

Сводная статистика: win rate, средний P&L, прокси Шарпа.

audit.export

Экспорт записей аудита в CSV за диапазон дат.

Полная документация с параметрами схем: docs/mcp-tools.md


Переменные окружения

Движок (packages/engine/.env)

Переменная

По умолчанию

Описание

APP_ENV

paper

development, paper, или live

DATABASE_URL

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

Строка подключения PostgreSQL

REDIS_URL

redis://localhost:6379/0

Строка подключения Redis

MARKET_DATA_PROVIDER

mock

mock (не требуются учетные данные) или alpaca

ALPACA_API_KEY

(empty)

Требуется, когда MARKET_DATA_PROVIDER=alpaca

ALPACA_API_SECRET

(empty)

Требуется, когда MARKET_DATA_PROVIDER=alpaca

ALPACA_BASE_URL

https://paper-api.alpaca.markets

Используйте https://api.alpaca.markets для реальной торговли

MAX_POSITION_PCT

0.05

Максимальный размер позиции как доля капитала счета (5%)

MAX_DAILY_DRAWDOWN_PCT

0.02

Жесткий дневной лимит убытков (2%); торговля останавливается при его превышении

MAX_GROSS_EXPOSURE_PCT

0.80

Максимальная валовая экспозиция по всем позициям (80%)

MAX_CONCURRENT_POSITIONS

10

Максимальное количество одновременно открытых позиций

MAX_TRADE_RISK_PCT

0.01

Максимальный риск на одну сделку (1%)

PAPER_FILL_LATENCY_MS

50

Имитируемая задержка исполнения в режиме бумажной торговли

SLIPPAGE_BPS

5

Имитируемое проскальзывание в базисных пунктах

SENTINEL_AUTH_ENABLED

true

Установите false только для локальной разработки

SENTINEL_MASTER_KEY

(empty)

Сгенерируйте с помощью python -m sentinel.auth.cli generate --name master --scopes admin

SENTINEL_API_KEYS_JSON

(empty)

JSON-массив дополнительных записей клиентских ключей

MCP-сервер (packages/mcp/.env)

Переменная

По умолчанию

Описание

ENGINE_BASE_URL

http://localhost:8100

Базовый URL работающего сервиса движка

Смотрите .env.example в корне репозитория для полной аннотированной справки.


Пример рабочего процесса (бумажная торговля)

# 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-...")

Запуск тестов

Движок (Python)

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

MCP-сервер (TypeScript)

cd packages/mcp
pnpm test

Полный CI (линт + проверка типов + тесты)

# From repo root
make check

Структура репозитория

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

Предупреждение о безопасности

Это программное обеспечение предназначено только для бумажной торговли и исследований, если вы полностью не понимаете каждый компонент. Установка APP_ENV=live с реальными учетными данными Alpaca приведет к размещению реальных заказов на реальные деньги. Жестко заданные лимиты риска являются консервативными значениями по умолчанию — убедитесь, что они соответствуют вашей собственной толерантности к риску перед использованием. Авторы не несут ответственности за финансовые потери.


Лицензия

MIT. См. 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