The Upbit MCP Server enables interaction with the Upbit cryptocurrency exchange, providing comprehensive market data access and trading capabilities.
Public Tools (no authentication required):
Retrieve latest ticker data for specified markets
Fetch orderbook snapshots
Access recent trade histories
Private Tools (requires API keys and UPBIT_ENABLE_TRADING=true
):
Account Management: Get account balances
Order Management: Create, list, cancel, and retrieve specific order details with filtering options (market, state, pagination)
Withdrawal Operations: List withdrawal addresses, initiate withdrawals, retrieve withdrawal details and history, cancel withdrawals
Deposit Operations: Check deposit possibilities, generate and retrieve deposit addresses, list deposit history
Security: Uses Upbit JWT authentication with API key requirements and IP allowlisting for secure access to private functions.
Upbit MCP Server (TypeScript)
Fast MCP server for interacting with Upbit. Provides public market data tools and optional private trading tools.
Requirements
- Node.js 18+
- pnpm 8+
Install
Environment
Copy and edit .env
:
.env.example
:
Private tools require UPBIT_ACCESS_KEY
, UPBIT_SECRET_KEY
, and UPBIT_ENABLE_TRADING=true
.
Security & permissions
- Keep your
UPBIT_SECRET_KEY
private and IP-allowlist your server in Upbit. - Set
UPBIT_ENABLE_TRADING=true
only when you intend to place/cancel orders or create withdrawals/deposit addresses. - Upbit permission mapping (high-level):
- Orders: create/cancel → 주문하기, query/list → 주문조회
- Accounts/balances → 자산조회
- Withdrawals: create/cancel → 출금하기, query/list/address list → 출금조회
- Deposits: create deposit address → 입금하기, query/list/chance/address read → 입금조회
- Auth follows Upbit JWT with
query_hash
(sorted URL-encoded params). POSTs send JSON bodies and are signed based on that body. - See docs: 인증, 주문 생성, 출금/입금 레퍼런스
- Auth: docs.upbit.com/kr/reference/auth
- Orders: docs.upbit.com/kr/reference/new-order
- Withdrawals: list-withdrawal-addresses, withdraw
- Deposits: available-deposit-information, create-deposit-address
Where to get Upbit API keys
Before you begin, you need to get your Upbit API keys:
- Create an account on Upbit if you don't already have one
- Go to the Upbit Developer Center
- Create a new API key
- Make sure to set appropriate permissions (read, trade, withdraw as needed)
- Store your API keys(
UPBIT_ACCESS_KEY
,UPBIT_SECRET_KEY
) in the.env
file (see Installation section) setUPBIT_ENABLE_TRADING=true
to enable private tools.
Build & Run
For easier testing use this (in project root):
If installed globally or via npx, you can also run the bin:
Runs over stdio for MCP clients.
Tools
Public:
GET_TICKER
— latest ticker for a market. Params:{ "market": "KRW-BTC" }
GET_ORDERBOOK
— orderbook snapshot. Params:{ "market": "KRW-BTC" }
GET_TRADES
— recent trades. Params:{ "market": "KRW-BTC" }
Private (requires env and enable flag):
GET_ACCOUNTS
GET_ORDERS
—{ market?, state?, page?, limit? }
GET_ORDER
—{ uuid? , identifier? }
CREATE_ORDER
—{ market, side, ord_type, volume?, price? }
CANCEL_ORDER
—{ uuid }
LIST_WITHDRAWAL_ADDRESSES
CREATE_WITHDRAWAL
—{ currency, amount, address, net_type, secondary_address? , transaction_type? }
GET_WITHDRAWAL
—{ uuid }
LIST_WITHDRAWALS
—{ currency?, state?, page?, limit? }
CANCEL_WITHDRAWAL
—{ uuid }
GET_DEPOSIT_CHANCE
—{ currency, net_type? }
CREATE_DEPOSIT_ADDRESS
—{ currency, net_type }
GET_DEPOSIT_ADDRESS
—{ currency, net_type }
LIST_DEPOSIT_ADDRESSES
GET_DEPOSIT
—{ uuid }
LIST_DEPOSITS
—{ currency?, state?, page?, limit? }
All tool outputs are JSON strings for easy display.
Examples
License
MIT
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Enables interaction with the Upbit cryptocurrency exchange through public market data tools and optional private trading tools. Supports getting ticker data, orderbooks, trades, account information, and executing trading operations through natural language.
Related MCP Servers
- AsecurityAlicenseAqualityInteract with Upbit cryptocurrency exchange services to retrieve market data, manage accounts, and execute trades. Simplify your trading experience with tools for order management, deposits, withdrawals, and technical analysis.Last updated -1013MIT License
- AsecurityFlicenseAqualityEnables programmatic access to Bitpanda cryptocurrency exchange features including trades, wallets, and transactions via the Model Context Protocol.Last updated -81
- -securityAlicense-qualityA server that enables interaction with Upbit cryptocurrency exchange API through Server-Sent Events, allowing users to access market data, manage accounts, execute trades, and perform technical analysis.Last updated -1MIT License
- AsecurityFlicenseAqualityEnables cryptocurrency trading on Bybit exchange through comprehensive market data access, account management, and automated trading operations. Features smart position validation, trailing stop losses, and risk management tools with demo mode support for safe testing.Last updated -21