Binance MCP server setup
Figures on this page are as of 2026-10. Fees, limits and margin tiers change — check the venue's own docs.
This guide covers the community project
AnalyticAce/binance-mcp-server,
not an inventory of Binance’s official integrations. The README snapshot at
commit df3cd39 was checked on 2026-10-25. It lists create_order and does not
document a read-only switch. This is a documentation review, not a live-account
test or a guarantee about every release’s exposed tools.
Install
pip install binance-mcp-server
# or
uv add binance-mcp-server
Credentials:
BINANCE_API_KEY
BINANCE_API_SECRET
BINANCE_TESTNET # optional, default false
These unpinned install commands follow that README; they do not ensure that a
future package matches the reviewed commit. Record the installed version and
inspect its documentation and tool list before providing credentials. Set
BINANCE_TESTNET=true explicitly and verify the selected host. No orders were
submitted for this review.
What it exposes
The reviewed README lists six categories:
| Category | Tools |
|---|---|
| Account & portfolio | 4 |
| Market data & analysis | 3 |
| Trading operations | 2 — includes create_order |
| Performance & analytics | 2 |
| Wallet & transfers | 3 — deposit address and deposit/withdrawal history |
| Risk management | 1 |
Two things to notice.
create_order appears in the documented tool list. Do not infer a runtime
permission boundary from a missing setting. Inspect the installed server’s
tools/list and enforce least privilege independently at the exchange and client.
A category name is not a capability. The three listed wallet tools retrieve a deposit address, deposit history and withdrawal history; none is documented as a transfer or withdrawal command. Do not conclude that this server moves funds from the heading alone.
Enforce the exchange-side permissions
Do not rely on an undocumented server setting. The Binance API key’s permissions provide an exchange-enforced boundary alongside the client’s tool restrictions and approval policy.
Start read-only. A key with enableReading and nothing else cannot place an
order regardless of what the server exposes or how the model is prompted.
Verify rather than remember. For production keys, Binance documents this signed permission query:
GET /sapi/v1/account/apiRestrictions
It returns ipRestrict, createTime, enableReading, enableWithdrawals,
enableInternalTransfer, enableMargin, enableFutures,
enableSpotAndMarginTrading and permitsUniversalTransfer. Check the permissions
needed for the intended product and disable others. A failed query does not
establish that the key was revoked. Spot Testnet does not provide the same
/sapi/* surface; do not point test credentials at production for this check.
Verify withdrawals and transfers are disabled. The permission documentation requires IP restriction before withdrawals can be enabled. That does not make an unrestricted or trade-enabled key safe: trading itself can lose funds. See disabling withdrawals on a Binance API key.
Permission changes are one possible failure cause. Check current account notices and flags rather than treating a historical 90-day rule as a universal diagnosis. The original announcement was not reverified in this review. Use the diagnostic checks for -2015 to separate key, environment, source-IP and permission problems.
Set the testnet flag while learning
The README documents BINANCE_TESTNET=true for testing.
Binance’s Spot Testnet documentation
identifies its REST host separately from production. Verify the installed
server actually uses that environment before connecting it. Separate keys help
detect a mismatch; they do not substitute for checking the host and flags.
What testnet will not reproduce: production symbol availability, filters and minimum order sizes, or rate limits under real pressure. See Binance testnet API keys.
Two things to get right around it
Rate limits are weight-based, not count-based. A model answering “how is my
portfolio doing” can fan out into many calls, and Binance meters by request
weight per endpoint. Exceeding it returns -1003, and severe violations
escalate to an IP ban signalled by HTTP 418. Reserve headroom for cancels —
see Binance API rate limits.
Never blindly retry an ambiguous order. A timeout leaves execution unknown. Reconcile it against order history and positions before submitting again; see the full explanation. The current Spot trading documentation describes the client-order-ID acceptance rule; it is not a permanent idempotency guarantee.
FAQ
Is there an official Binance MCP server?
This page reviews one explicitly unofficial project. It does not establish whether Binance currently offers an official integration. Check Binance’s own developer channels before choosing a server.
Can I stop a Binance MCP server from placing orders?
The reviewed README does not document a read-only switch. Inspect the installed tool list and use a key without trade, withdrawal or unnecessary transfer permissions. Tool discovery and an instruction telling a model not to trade are not exchange-enforced permission controls.
How do I check what my key is allowed to do?
For production keys, the signed GET /sapi/v1/account/apiRestrictions query
returns current flags when it succeeds. Compare them with the permissions your
workflow requires. It is not available on Spot Testnet, and a failed query
does not identify the cause by itself.
Why did my Binance MCP setup stop being able to trade?
Check environment, source IP, current key permissions and account notices. Reads succeeding while orders fail can suggest a product-specific permission problem, but the error alone does not prove expiry. Do not expand permissions or submit a live test order to diagnose it.