Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Beschreibung vom Entwickler (englisches Original)
Order limits, phone approvals and a kill switch in front of any broker or exchange MCP server.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein
{
"mcpServers": {
"tas-guard": {
"command": "npx",
"args": [
"-y",
"tas-guard",
"run",
"--config",
"your-value"
]
}
}
}Führe das in deinem Terminal aus
claude mcp add tas-guard -- npx -y tas-guard run --config your-valueDieser Server braucht Werte in seiner Befehlszeile, also kopier die Einstellungen und trag sie ein.
In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"tas-guard": {
"command": "npx",
"args": [
"-y",
"tas-guard",
"run",
"--config",
"your-value"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server braucht Werte in seiner Befehlszeile, also kopier die Einstellungen und trag sie ein.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"tas-guard": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"tas-guard",
"run",
"--config",
"your-value"
]
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026
Der Registry-Name wurde mit dem GitHub-Konto intoApex bestätigt, dem das Repo gehört
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet
Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen
Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.5.1) kam vor 8 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Node.js auf deinem Computer.
In derselben Kategorie: Spec Driven Development, Remote Desktop Commander, 御府和田玉 在售作品查询
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Live in-stock Hetian jade from Yufu, Shanghai: prices, monthly price guide, book a viewing.
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
Limits for bots and AI that trade your money. Put it between the software that trades for you (Claude, ChatGPT, Cursor, your own agent or bot) and your broker, exchange or wallet. It enforces per-order and daily limits, allow lists, human approvals, a kill switch and a tamper-evident audit log, before an order or transaction ever goes through. It runs on your own machine.
What it can't protect: custodial bots and apps that keep your keys on their own servers (most Telegram trading bots), and bots that call an exchange's API directly instead of going through the guard.
AI client ──► TAS Guard ──► Alpaca / CCXT / any trading MCP server ──► your account
│ ├─ blocks: over-limit orders, off-list symbols, withdrawals, leverage changes ├─ asks you: large orders, live money, "close everything" └─ logs: every decision, hash-chained
Zero dependencies. About 4,600 lines of plain JavaScript you can read in a few sittings.
New in 0.5.1: on Base, onchain mode tags eth_sendTransaction calls with TradingAgentStack's Builder Code: attribution only, no fee, off with TAS_GUARD_BASE_BUILDER_CODE=0.
New in 0.5: [Hyperliquid mode](#hyperliquid-mode). tas-guard hl trades Hyperliquid directly, with no other MCP server: your agent gets hl_ tools, and every order goes through the same caps, allow list, approvals, kill switch and audit log. It signs with a Hyperliquid API wallet, which can trade but can't withdraw. It adds a 0.02% builder fee that funds TradingAgentStack (details and opt-out).
Also new in 0.4: [Solana mode](#solana-mode). tas-guard sol-rpc simulates every transaction your Solana agent sends and blocks drainer patterns (hidden delegations, account takeovers), runaway priority fees and anything over your caps, including per-program caps such as "pump.fun: $20 per trade, $100 a day". Try it: npx tas-guard sol-demo.
Also: [onchain (EVM) mode](#onchain-evm-mode) for agents that hold their own EVM wallet: tas-guard rpc is a local JSON-RPC endpoint your agent uses as its RPC URL.
tas-guard demo runs the guard in front of a built-in paper broker with simulated prices. Add it to your AI app as an MCP server:
{ "mcpServers": { "tas-guard-demo": { "command": "npx", "args": ["-y", "tas-guard", "demo"] } } }
(On Windows use "command": "cmd", "args": ["/c", "npx", "-y", "tas-guard", "demo"].) Then ask your agent to buy 1 SPY at $580 (allowed), 2 SPY at $580 (held for your approval), 10 SPY (blocked: over the $2,000 per-order limit) or 1 TSLA (blocked: not on the allow list). Approve held orders with npx tas-guard approve .
Generic gateways decide per *tool*: "createOrder is critical, require approval." They can't tell a $50 order from a $50,000 one, so you end up approving everything or nothing.
TAS Guard reads the order itself. It knows that Alpaca's place_option_order has a 100x contract multiplier, that ccxt's cost is a quote-currency value while amount is base units, and that ccxt answers the first live order with a preview. That's what makes "allow small orders, ask for big ones, never exceed $2,000 a day" possible.
| Broker connector | What it does on its own | With TAS Guard |
|---|---|---|
| Alpaca MCP (TAS safety score 68) | AI can place orders directly; toolsets can limit it | Per-order and daily caps, symbol allowlist, approval above a threshold |
| CCXT MCP | Has its own caps and confirm step | One policy and one audit log across every exchange you use |
| Any other trading MCP | Varies | Heuristic profile; anything unrecognized is blocked |
Safety scores and order-gating facts: tradingagentstack.com.
~/tas-guard/alpaca.json (or run npx tas-guard init alpaca-mcp-server):{
"name": "alpaca", "profile": "alpaca-mcp-server", "upstream": { "command": "uvx", "args": ["alpaca-mcp-server"], "env": { "ALPACA_API_KEY": "${ALPACA_API_KEY}", "ALPACA_SECRET_KEY": "${ALPACA_SECRET_KEY}", "ALPACA_PAPER_TRADE": "true" } }, "policy": { "max_order_value": 500, "max_daily_value": 2000, "approve_over": 250, "symbols_allow": ["SPY", "QQQ", "AAPL", "MSFT"] } }
${VAR} is read from the environment, so keys don't have to live in the file.
claude_desktop_config.json):{
"mcpServers": { "alpaca": { "command": "npx", "args": ["-y", "tas-guard", "run", "--config", "/Users/you/tas-guard/alpaca.json"], "env": { "ALPACA_API_KEY": "...", "ALPACA_SECRET_KEY": "..." } } } }
For Claude Code: claude mcp add alpaca -- npx -y tas-guard run --config ~/tas-guard/alpaca.json
tas_guard_status to see the limits it's working under.No config file? npx tas-guard run --profile alpaca-mcp-server -- uvx alpaca-mcp-server uses the default policy.
Every tool is put in a class, from a verified connector profile or, for servers without one, from name heuristics and MCP annotations.
| Class | Examples | Default |
|---|---|---|
read | quotes, positions, balances | allow |
benign_write | watchlists | allow |
cancel, close | cancel one order, close one position | allow (also during kill switch) |
order | place an order | check limits |
modify, cancel_all, close_all, other_write | replace order, cancel everything (stop-losses too), exercise options | ask a human |
leverage, funds_out, account, raw_write, unknown | set leverage, withdraw, transfer, account settings, "call any endpoint", anything unrecognized | block (and hide from the agent) |
For order calls, in this order:
symbols_block, or not on symbols_allow (if set) → block. Globs work: "BTC/*".sides_allow (if set) → block.max_orders_per_minute or max_orders_per_day → block.max_order_value, or today's total would pass max_daily_value → block. These are hard limits; approval can't override them.approve_over, value unknown (market order by quantity, multi-leg), or live money with live_requires_approval → ask a human.Only orders the broker actually accepted count toward daily totals. Rejected orders and ccxt previews don't. Orders execute one at a time and limits are re-checked just before sending, so parallel calls can't slip past the daily cap.
{
"max_order_value": 500, // hard, per order, in the profile's quote currency "max_daily_value": 2000, // hard, sum of executed orders today (local time) "max_orders_per_day": 20, "max_orders_per_minute": 3, "approve_over": 250, // soft: above this, a human approves "symbols_allow": [], // empty = any symbol "symbols_block": [], "sides_allow": [], // e.g. ["buy"] for no selling "unknown_value": "approve", // allow | approve | block when the value can't be computed "live_requires_approval": true, // every live-money order needs a human "classes": { "close_all": "allow", "unknown": "approve" }, // override any class "hide_blocked_tools": true, "approval_ttl_minutes": 15 }
When an action needs approval, the guard asks you, never the agent.
npx tas-guard approve (or deny ), and the agent repeats the call. Each approval works once, for that exact call, within 15 minutes.Tested with Claude Desktop (Windows, October 2026) against an Alpaca paper account: Claude Desktop doesn't show the in-app prompt, so approvals there go through npx tas-guard approve . Claude relays the request id and waits for you.
npx tas-guard pending
npx tas-guard approve 3f9a1c
Get held actions on your phone with Approve and Deny buttons, alerts when an order is blocked, and a kill switch you can hit from anywhere. It uses your own Telegram bot, so nothing goes through our servers.
npx tas-guard telegram-setup --config ~/tas-guard/alpaca.json
It walks you through creating a bot with @BotFather, waits for you to press Start in your bot, then saves the bot token and your chat id into the guard config. Restart your AI app afterwards.
What you get:
wait_seconds) for your tap and then goes through in the same call. If you're slower, the agent is told to retry after you approve.notify_blocked, on by default) and, optionally, when an order is sent to the broker (notify_executed)./status (limits and today's usage), /pending (re-sends anything waiting), /kill, /resume."cli": false so tas-guard approve refuses requests from this guard. That closes the gap where an agent with shell access could run the approve command itself."approvals": {
"cli": false, "telegram": { "bot_token": "${TAS_TELEGRAM_BOT_TOKEN}", "chat_id": "123456789", "wait_seconds": 45, "notify_blocked": true, "notify_executed": false } }
Several guards can share one bot. Whichever one is listening handles the tap, and the others pick up the decision from the shared state.
npx tas-guard kill "market looks wrong" # every guard blocks new orders immediately
npx tas-guard resume
Reads, cancels and closing positions keep working while it's on, so you (or the agent) can still flatten.
Every decision is appended to ~/.tas-guard/audit.jsonl: tool, class, arguments (secrets redacted), decision, reason, order value, and whether it executed. Each line includes the hash of the previous line.
npx tas-guard log --tail 20
npx tas-guard verify-log # detects edited or deleted lines
A profile says what each tool of a server can do with money and where its order fields live. The schema is schema/connector-profile.v1.json. Built-in profiles are verified against each server's source code or official docs, with the commit or page recorded:
alpaca-mcp-server: alpacahq/alpaca-mcp-server @ 2a973a0ccxt-mcp-server: ccxt/ccxt mcp/ @ 310bf4brobinhood-trading-mcp: Robinhood's hosted Trading MCP, from the 94-tool table in Robinhood's "Trading with your agent" article (2026-10-21). The server is closed source and Robinhood publishes no argument names, so order values can't be read: every order needs approval, and a symbols_allow list blocks orders.Using a server without a profile? "profile": "auto" classifies tools by name and MCP annotations, and blocks anything it doesn't recognize. Profiles for more brokers are welcome as PRs.
For agents that sign and send their own transactions (AgentKit, viem, ethers, web3.py, your own bot), tas-guard rpc runs a local JSON-RPC endpoint. Point the agent's RPC URL at it instead of at your provider:
AI agent ──► http://1Nur der Anfang wird gezeigt; den Rest findest du im Repo