MCP server for the BTSE Futures API to query market data and manage trades.
btse-mcp
MCP server for the BTSE Futures API. Enables AI agents (Claude Desktop, Cursor, LangChain) to query market data, manage positions, and place orders on BTSE via natural language.
Prerequisites
- Python 3.11 or higher — check with
python --version - pip — check with
pip --version - A BTSE account (testnet or live)
Step 1 — Get API keys from BTSE
Testnet (recommended first)
- Register at https://testnet.btse.io
- Go to Account → API tab → New API
- Save the API Key and Passphrase — the passphrase is shown only once and is your
api_secret - Set permissions: Read + Trading (add Transfer if needed)
Live
Same steps at https://btse.com
Step 2 — Install
pip install btse-mcp
# Verify
btse-mcp --help
Multiple Python versions (Anaconda etc): use the full path explicitly:
/usr/local/bin/python3.14 -m pip install btse-mcp
Step 3 — Configure accounts
Testnet
btse-mcp config --account-id testnet
# Prompts:
# API Key → paste your API key
# API Secret → paste your passphrase (input is hidden)
# Use testnet? [y/N] → y
# Verify the connection — should print BTC-PERP last price
btse-mcp test testnet
Live (when ready)
btse-mcp config --account-id main
# Same prompts — answer 'n' to testnet
# See all configured accounts
btse-mcp list
Credentials are stored encrypted at ~/.config/btse-mcp/accounts.enc.
Unified Futures Wallet: If your BTSE account has been upgraded to the Unified Futures Wallet (all accounts from late 2024 onwards), account endpoints automatically use the v2.2 API. No action needed.
Step 4 — Connect to Claude Desktop
btse-mcp install-claude
This auto-writes the correct config for your OS and creates the file if it doesn't exist. Then restart Claude Desktop.
Manual alternative: if the command fails, add this to your config file directly:
OS Path macOS ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows %APPDATA%\Claude\claude_desktop_config.jsonLinux ~/.config/Claude/claude_desktop_config.json{ "mcpServers": { "btse": { "command": "/full/path/to/btse-mcp", "args": ["start"] } } }Find the full path with:
which btse-mcp
Open a new chat in Claude Desktop — you should see a tools icon (🔧) in the input bar.
Test it:
"What is the BTC-PERP mark price on BTSE using account testnet?"
Step 5 — Connect to Cursor
Open Cursor → Settings → MCP → Add Server and enter:
{
"name": "btse",
"command": "btse-mcp",
"args": ["start"]
}
Then use natural language in Cursor chat:
"Show my open BTSE positions" "Place a limit buy on BTC-PERP at 60000 size 1 using account testnet"
Alternative: run from source
# Clone the repo
git clone https://github.com/xbotlive/btse-mcp.git
cd btse-mcp
# Install in editable mode
pip install -e .
# Start
python -m btse_mcp start
Tool list
| Tool | Description |
|---|---|
btse_get_market_summary |
Market summary for one or all symbols |
btse_get_price |
Mark / index / last price |
btse_get_orderbook |
L2 orderbook snapshot |
btse_get_trades |
Recent public trade fills |
btse_get_ohlcv |
OHLCV candlestick data |
btse_get_funding_history |
Historical funding rates |
btse_get_wallet_balance |
Futures wallet balance |
btse_get_positions |
Open positions |
btse_get_account_fees |
Maker / taker fee rates |
btse_get_leverage |
Current leverage for a market |
btse_create_order |
Place LIMIT / MARKET / OCO order (supports TP/SL) |
btse_cancel_order |
Cancel by order ID, or cancel all for a symbol |
btse_get_open_orders |
List open orders |
btse_get_order |
Single order detail |
btse_get_trade_history |
User trade history |
btse_amend_order |
Amend price / size / trigger price |
btse_close_position |
Close position at market or limit |
btse_set_leverage |
Set leverage (isolated or cross) |
btse_get_risk_limit |
Get risk limit tier |
All tools accept an optional account_id parameter (defaults to "default").
Pass "account_id": "testnet" to route to your testnet account.
Multi-account usage
btse-mcp list # list all configured accounts
btse-mcp test main # test a specific account
In prompts, specify the account explicitly:
"Using account testnet, show my BTC-PERP position"
Symbol naming
Use new-style perpetual names: BTC-PERP, ETH-PERP, SOL-PERP, etc.
Auth
BTSE uses HMAC-SHA384. The signature is:
HMAC-SHA384(api_secret, url_path + nonce + request_body)
Sent via headers: request-api, request-nonce, request-sign.
See docs/integration.md for full details
Tools (19)
btse_get_market_summaryMarket summary for one or all symbolsbtse_get_priceMark / index / last pricebtse_get_orderbookL2 orderbook snapshotbtse_get_tradesRecent public trade fillsbtse_get_ohlcvOHLCV candlestick databtse_get_funding_historyHistorical funding ratesbtse_get_wallet_balanceFutures wallet balancebtse_get_positionsOpen positionsbtse_get_account_feesMaker / taker fee ratesbtse_get_leverageCurrent leverage for a marketbtse_create_orderPlace LIMIT / MARKET / OCO order (supports TP/SL)btse_cancel_orderCancel by order ID, or cancel all for a symbolbtse_get_open_ordersList open ordersbtse_get_orderSingle order detailbtse_get_trade_historyUser trade historybtse_amend_orderAmend price / size / trigger pricebtse_close_positionClose position at market or limitbtse_set_leverageSet leverage (isolated or cross)btse_get_risk_limitGet risk limit tierConfiguration
{"mcpServers": {"btse": {"command": "btse-mcp", "args": ["start"]}}}