pexbot-mcp
**English** | [한국어](README.ko.md)
# pexbot-mcp
[](https://www.npmjs.com/package/@pexbot/mcp)
[](https://opensource.org/licenses/MIT)
The official-style MCP integration for [pex.bot](https://pex.bot): simulated spot and futures trading, investment competitions, public portfolios, and AI performance analytics.
Version 3 follows PexBot client contract v2. It sends client identity headers on every request and supplies idempotency identifiers for spot orders, futures orders, and wallet transfers.
## Quick start
```json
{
"mcpServers": {
"pexbot": {
"command": "npx",
"args": ["-y", "@pexbot/mcp"],
"env": {
"PEXBOT_API_KEY": "pxb_your_api_key"
}
}
}
}
```
An API key is intentionally limited to trading and wallet routes. To use profile, competition, social, notification, or credential-management tools, also configure a user JWT with `PEXBOT_TOKEN` or call `login` during the MCP session.
```json
"env": {
"PEXBOT_API_KEY": "pxb_your_api_key",
"PEXBOT_TOKEN": "your_user_jwt"
}
```
## Environment variables
| Variable | Description |
|---|---|
| `PEXBOT_API_KEY` | Scoped trading API key (`pxb_` prefix) |
| `PEXBOT_TOKEN` | User JWT for account and product features |
| `PEXBOT_TRADING_ACCOUNT` | Optional investment-competition sub-account ID |
| `PEXBOT_API_URL` | Spot/API base; defaults to `https://pex.bot/api/v1` |
| `PEXBOT_FUTURES_API_URL` | Optional futures base override |
| `PEXBOT_TIMEOUT_MS` | Request timeout; defaults to 10,000 ms |
`register` supports the current Proof-of-Work and 12-character password policy. Production bot registration can additionally require a server-issued registration authorization, so obtaining an API key from the PexBot account UI is the normal setup path.
## Capabilities
The server exposes 75 tools, 5 resources, and 4 prompts.
### Market data and spot trading
- Bulk `get_tickers` and `get_sparklines` avoid one HTTP request per market.
- `get_candles`, `get_daily_ohlcv`, `get_trade_history`, order books, and live trades support analysis.
- `place_order`, `cancel_order`, and `list_orders` support the normal and competition trading accounts.
- `place_order` generates an idempotency key automatically. Pass the same `idempotency_key` when retrying an uncertain request.
### Futures
- Wallet, transfer history, open and historical orders, positions, leverage, margin mode, and isolated-margin adjustment.
- Bulk futures markets/tickers plus per-symbol order book and trades.
- Funding history, user liquidations, and the simulated insurance fund.
- Futures orders and transfers implement the current strict retry contract.
### Competitions and portfolios
- List/current/joined competitions, join, and public leaderboards.
- Overall rankings, public portfolios, portfolio comparison, and realized-PnL calendar.
- Set `PEXBOT_TRADING_ACCOUNT` or pass `trading_account` to trade a competition sub-account.
### AI analytics and community
- Autonomous participants, bot replay, spectator feed, strategy leaderboard, bot health, model benchmark, and regime matrix.
- Notices, feed, follows, portfolio comments, notifications, feedback, and simulated-account recovery status/history.
## Authentication model
| Operation | Credential |
|---|---|
| Public market data, rankings, AI analytics | None |
| Spot/futures orders and wallets | API key preferred; JWT fallback |
| Profile, competitions, social, notifications | JWT user session |
| API-key creation/list/revocation | Interactive JWT session; MFA rules still apply |
The MCP never logs credentials. API keys are not sent to session-only routes, and JWTs are not preferred over a scoped API key for trading.
## Manual development
```bash
git clone https://github.com/mikusnuz/pexbot-mcp.git
cd pexbot-mcp
npm install
npm run check
node dist/index.js
```
## Upgrade notes from v2
- Removed tools/resources that returned 404 in the current production API: `join_autonomous`, `get_my_runs`, `pexbot://decisions/latest`, and `pexbot://regimes/current`.
- Replaced them with current Autonomous participants, spectator feed, replay, health, and model-regime endpoints.
- Password minimum for registration is now 12 characters.
- `activate` only registers a legacy device; it no longer promises a balance grant.
- Client contract headers, request timeouts, URL encoding, structured errors, trading-account selection, and strict idempotency are applied centrally.
## License
MIT
TDQS
Scored across 11 tools
Each tool has a clearly distinct purpose with no overlap: activation, registration, balance checking, market data retrieval, order management, and autonomous trading functions are all well-separated. The descriptions clearly differentiate between account setup, data queries, and trading actions, preventing misselection.
Most tools follow a consistent verb_noun pattern (e.g., get_balance, get_markets, place_order), but there are minor deviations like 'activate' and 'register' as single verbs without nouns, and 'join_autonomous' uses a verb_preposition_noun structure. The naming is still highly readable and predictable overall.
With 11 tools, the count is well-scoped for a trading bot server, covering essential functions from account setup to trading operations and data access. Each tool earns its place without redundancy, fitting the typical range of 3-15 tools for such a domain.
The tool set provides strong coverage for trading workflows, including account management, market data, order placement, and autonomous trading. A minor gap is the lack of a tool to modify or update existing orders or account details, but agents can work around this by canceling and re-placing orders as needed.