Finance Toolkit
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
作者提供的说明(英文原文)
AI-controlled algorithmic trading engine exposing 40 MCP tools across 9 namespaces.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"sentinel-execution": {
"command": "npx",
"args": [
"-y",
"sentinel-execution-mcp"
]
}
}
}在终端中运行这条命令
claude mcp add sentinel-execution -- npx -y sentinel-execution-mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"sentinel-execution": {
"command": "npx",
"args": [
"-y",
"sentinel-execution-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"sentinel-execution": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"sentinel-execution-mcp"
]
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 rohith1125 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.2)于8个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Finance Toolkit, SolidInvoice, Korea Tax Calculator
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
500+ transparent financial methods calculated from raw statements, not third-party endpoints.
Create and send invoices and quotes, manage clients, and track payments in SolidInvoice.
Korean tax calculation and tax-audit judgment MCP: 96 tools with statutory citations.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
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)
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+.
# 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
docker compose -f docker/docker-compose.yml up -d db redis engine
curl http://localhost:8100/health
cd packages/mcp npm install npm run build
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 |
git clone https://github.com/rohith1125/sentinel-execution-mcp.git
cd sentinel-execution-mcp cp .env.example .env
cd packages/engine
python3.12 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate pip install -e ".[dev]"
# From packages/engine with the venv active
alembic upgrade head
uvicorn sentinel.api:app --reload --port 8100
Verify it is running:
curl http://localhost:8100/health
Open a second terminal:
cd packages/mcp
npm install npm run build npm run dev # stdio transport — for direct Claude Desktop integration
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:
echo "$(pwd)/packages/mcp/dist/index.js"
Then paste it into the config:
{
"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" } } } }
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)| Variable | Default | Description |
|---|---|---|
ENGINE_BASE_URL | http://localhost:8100 | Base URL of the running engine service |
See .env.example at the repo root for the complete annotated reference.
# 1. Add symbols
watchlist.add(symbols=["NVDA", "MSFT", "AAPL"], group="tech")
regime.evaluate(symbol="NVDA", timeframe="1Day")
strategy.scan(group="tech", strategy="momentum_v1")
risk.validate_trade(symbol="NVDA", side="buy", qty=10, order_type="market")
execution.paper_order(symbol="NVDA", side="buy", qty=10, order_type="market")
portfolio.status()
audit.recent_events(symbol="NVDA", limit=1) audit.explain_trade(audit_event_id="evt-...")
cd packages/engine
source .venv/bin/activate pytest tests/ -v
cd packages/mcp
pnpm test
# 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
This software is for paper trading and research only unless you fully understand every component. Setting APP_ENV=live with real Alpaca credentials will place real orders with real money. The hard-coded risk li
只显示了开头部分;其余内容请在仓库中阅读