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.
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., "@Upbit MCP Serverwhat's the current price of Bitcoin in KRW?"
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.
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+
Related MCP server: MCP Bitpanda Server
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_KEYprivate and IP-allowlist your server in Upbit.Set
UPBIT_ENABLE_TRADING=trueonly 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: 인증, 주문 생성, 출금/입금 레퍼런스
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.envfile (see Installation section) setUPBIT_ENABLE_TRADING=trueto 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_ACCOUNTSGET_ORDERS—{ market?, state?, page?, limit? }GET_ORDER—{ uuid? , identifier? }CREATE_ORDER—{ market, side, ord_type, volume?, price? }CANCEL_ORDER—{ uuid }LIST_WITHDRAWAL_ADDRESSESCREATE_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_ADDRESSESGET_DEPOSIT—{ uuid }LIST_DEPOSITS—{ currency?, state?, page?, limit? }
All tool outputs are JSON strings for easy display.
Examples
License
MIT