traderspost-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@traderspost-mcpshow my recent trades"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TradersPost MCP Server
An MCP (Model Context Protocol) server that gives Claude direct access to TradersPost webhook trading.
Send trade signals, inspect strategy configs, query trade history, and monitor positions — all without leaving Claude Code or Claude Desktop.
Why this exists: TradersPost doesn't expose a full REST management API. This MCP server wraps their webhook system and, optionally, a local prop_futures_relay installation to give Claude a complete trading management interface.
What It Does
17 MCP tools covering the full trading workflow:
Category | Tools |
Strategy management |
|
Signal submission |
|
Trade history (SQLite) |
|
Position state |
|
Health & status |
|
Control (destructive) |
|
Response envelope
Every tool returns one shape. ok reflects semantic success, not the HTTP status —
a TradersPost HTTP 200 with success: false is a rejection and returns ok: false.
// success
{ "ok": true, "data": { /* result */ }, /* ...extras */ }
// failure
{ "ok": false, "code": "machine_code", "detail": "human readable", /* ... */ }Plus two MCP resources:
traderspost://signal-format— webhook payload referencetraderspost://active-accounts— account config summary
Related MCP server: tradier-mcp
Modes
Relay mode (recommended)
Point RELAY_DIR at a local prop_futures_relay installation. The server reads account_config.yaml, state JSON files, and trading_system.db for full functionality.
Standalone mode
Set TP_WEBHOOK_<STRATEGY> env vars directly. Signal sending works; strategy management and trade history tools return empty results.
Installation
Requirements: Python 3.10+
git clone https://github.com/AdairBear/traderspost-mcp.git
cd traderspost-mcp
pip install -r requirements.txtOr install dependencies directly:
pip install "mcp[cli]" httpx pyyaml python-dotenvConfiguration
Claude Code (.claude/settings.json)
Relay mode — with a local prop_futures_relay installation:
{
"mcpServers": {
"traderspost": {
"command": "python",
"args": ["/path/to/traderspost-mcp/traderspost_mcp.py"],
"env": {
"RELAY_DIR": "/path/to/prop_futures_relay"
}
}
}
}Standalone mode — webhook URLs only:
{
"mcpServers": {
"traderspost": {
"command": "python",
"args": ["/path/to/traderspost-mcp/traderspost_mcp.py"],
"env": {
"TP_WEBHOOK_MY_STRATEGY": "https://traderspost.io/trading/webhook/...",
"RELAY_URL": "https://relay.yourdomain.app"
}
}
}
}Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json)
{
"mcpServers": {
"traderspost": {
"command": "python",
"args": ["/path/to/traderspost-mcp/traderspost_mcp.py"],
"env": {
"RELAY_DIR": "/path/to/prop_futures_relay"
}
}
}
}Environment Variables
Variable | Required | Description |
| No | Path to a local |
| Yes (per strategy) | TradersPost webhook URLs. In relay mode, the strategy's |
| No | Base URL of your running relay (e.g. |
Copy .env.example to .env and fill in your values:
cp .env.example .envThe server auto-loads .env from RELAY_DIR first, then from its own directory.
Tool Reference
tp_list_strategies
List all configured strategies with their status, ticker, account, and webhook configuration.
Returns: JSON with strategy list, account summary, and aliases.
Note: webhook URLs are never exposed — only whether they're configured.tp_get_strategy
Get full configuration for a specific strategy including account rules and session window.
Args:
strategy (str): Strategy key, e.g. "sil_crusher_tradovate_44942793"tp_toggle_strategy
Enable or disable a strategy in account_config.yaml.
Args:
strategy (str): Full strategy key
enabled (bool): True to enable, False to disable
Note: Modifies local config only — restart or redeploy the relay for changes to take effect.tp_send_signal ⚠️
Send a trade signal to TradersPost. Dry-run by default — pass live=True to place a real order.
Args:
strategy (str): Strategy key (or standalone env var suffix)
ticker (str): Instrument — "MNQ", "SIL", "MGC", "ES", etc.
action (str): "buy", "sell" (entries), "exit", "cancel" (exits)
quantity (int): Number of contracts (default: 1)
sentiment (str, optional): "bullish", "bearish", or "flat"
order_type (str, optional): "market", "limit", or "stop"
take_profit (float, optional): Take profit price level
stop_loss (float, optional): Stop loss price level
live (bool): True = REAL order. Default False = dry-run preview only.
test (bool, optional): Force dry-run. If True, overrides live=True (safety wins).Replay safety: every attempt is logged to a JSONL audit file (TP_ATTEMPT_LOG)
before the POST. An identical live entry (buy/sell) within TP_DEDUP_WINDOW_SEC
(default 30s) is refused to prevent a timeout-retry duplicate order.
Exits are sacred: exit/cancel are never deduplicated, fire even on a disabled
strategy, and a rejected exit always fails loud (ok: false).
tp_get_recent_trades
Query recent trade signals and TradersPost HTTP responses from SQLite.
Args:
limit (int): Max records 1-100, default 20
strategy (str, optional): Filter by strategy
account_id (str, optional): Filter by account
days (int, optional): Lookback window in daystp_get_fills
Query actual fill data (execution prices, slippage) from the fills table.
Args: Same as tp_get_recent_tradestp_get_trade_stats
Aggregate statistics: signal success rates, slippage summary, per-strategy breakdown.
Args:
strategy (str, optional): Filter by strategy
account_id (str, optional): Filter by account
days (int): Lookback period, default 30tp_get_positions
Get current position state from relay state JSON files, or falls back to relay API.
Returns: Per-strategy state: FLAT / IN_POSITION / PENDING_ENTRY / PENDING_EXIT / HALTEDtp_get_daily_pnl
Get today's estimated P&L from the relay's daily loss tracker.
Returns: Per-account estimated P&L and remaining loss budget.
Note: Estimated from signals, not confirmed broker fills.tp_get_relay_health
Check relay health via the /health endpoint.
Requires: RELAY_URL env var
Returns: Relay version, uptime, component statustp_get_strategy_health
Get per-strategy status (signal counts, last signal time, halts) from the running relay.
Requires: RELAY_URL env var
Returns: Per-strategy status from /health/strategiesUsage Examples
Check what's configured
"Show me all configured strategies and which ones have webhooks set up"
→ Claude calls tp_list_strategies()Dry-run a signal
"Send a test buy signal for SIL, 1 contract, to the sil_crusher_tradovate_44942793 strategy"
→ Claude calls tp_send_signal(strategy="sil_crusher_tradovate_44942793", ticker="SIL",
action="buy", quantity=1, test=True)Monitor performance
"How many signals has sil_crusher sent this week and what's the success rate?"
→ Claude calls tp_get_trade_stats(strategy="sil_crusher_tradovate_44942793", days=7)Emergency disable
"Disable the MNQ strategy immediately"
→ Claude calls tp_toggle_strategy(strategy="coord_mnq_gmr_tradovate_44942793", enabled=False)Check positions and P&L
"What positions are currently open and what's today's P&L?"
→ Claude calls tp_get_positions() and tp_get_daily_pnl()Security Notes
Webhook URLs are read from environment variables and never appear in tool responses or logs
tp_send_signalis markeddestructiveHint: true— Claude will confirm before calling ittest=Truereturns the TradersPost trade plan without executing any orders — use it firsttp_toggle_strategyonly modifies local config — the running relay is not affected until redeployed
Architecture
Claude (MCP client)
↓ stdio
traderspost_mcp.py (MCP server)
├── account_config.yaml (strategy config — RELAY_DIR mode)
├── data/state/*.json (position state — RELAY_DIR mode)
├── trading_system.db (trade history — RELAY_DIR mode)
├── TP_WEBHOOK_* env vars (webhook URLs — always)
└── RELAY_URL/health (live relay status — optional)
↓ httpx POST
TradersPost webhook
↓
Broker (Tradovate, etc.)Requirements
Python 3.10+
mcp[cli]>= 1.0 (FastMCP)httpx>= 0.24pyyaml>= 6.0python-dotenv>= 1.0 (optional, for .env auto-loading)
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/AdairBear/traderspost-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server