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.
Provides access to real-time ticker data, orderbook snapshots, and trading operations for Bitcoin (KRW-BTC) on the Upbit exchange.
Enables access to market data, account balances, and order execution for Ethereum (KRW-ETH) on the Upbit platform.
Allows retrieval of real-time ticker data and recent trade history for XRP (KRW-XRP) on the Upbit exchange.
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
π Overview
Fast MCP server for interacting with Upbit, South Korea's largest cryptocurrency exchange. This server provides comprehensive access to public market data and optional private trading tools including order management, deposits, and withdrawals.
By implementing the Model Context Protocol (MCP), this server allows Large Language Models (LLMs) to access real-time ticker data, orderbooks, trade history, and execute trading operations directly through their context window.
Related MCP server: MCP Bitpanda Server
β¨ Features
Public Market Data: Access real-time ticker data, orderbook snapshots, and recent trades for any Upbit market.
Account Management: View account balances and positions (requires API key).
Order Management: Create, query, and cancel orders with support for limit, market, and price order types.
Deposit Operations: Check deposit eligibility, create deposit addresses, and track deposit history.
Withdrawal Operations: Create withdrawals, manage withdrawal addresses, and track withdrawal history.
π¦ Installation
π Using npx (Recommended)
To use this server without installing it globally:
π§ Build from Source
β‘ Running with an MCP Client
Add the following configuration to your MCP client settings (e.g., claude_desktop_config.json).
π Minimal Configuration (Public Data Only)
βοΈ Full Configuration (With Trading Enabled)
π Configuration (Environment Variables)
Variable | Required | Description | Default |
| No | Upbit API server URL |
|
| For trading | Your Upbit API access key | - |
| For trading | Your Upbit API secret key | - |
| For trading | Enable private trading tools |
|
π Where to Get 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
Set appropriate permissions (read, trade, withdraw as needed)
Store your API keys in the environment variables
π 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:
Orders: create/cancel β μ£Όλ¬ΈνκΈ°, query/list β μ£Όλ¬Έμ‘°ν
Accounts/balances β μμ°μ‘°ν
Withdrawals: create/cancel β μΆκΈνκΈ°, query/list/address list β μΆκΈμ‘°ν
Deposits: create deposit address β μ κΈνκΈ°, query/list/chance/address read β μ κΈμ‘°ν
Documentation:
π‘ Usage Examples
π Market Data
"What is the current price of Bitcoin on Upbit (KRW-BTC)?"
"Show me the orderbook for Ethereum (KRW-ETH)."
"Get the recent trades for XRP (KRW-XRP)."
πΌ Account & Orders (Requires API Key)
"What are my current account balances?"
"Place a limit buy order for 0.01 BTC at 50,000,000 KRW."
"Cancel my pending order with UUID xyz123."
"Show me my open orders for KRW-BTC."
π³ Deposits & Withdrawals (Requires API Key)
"Create a deposit address for BTC."
"List my recent deposits."
"Withdraw 1 ETH to my wallet address."
"Check the status of my withdrawal."
π οΈ MCP Tools
CANCEL_ORDER
Cancel an existing Upbit order (requires private API)
Parameter | Type | Required | Description |
| string | β |
CANCEL_WITHDRAWAL
Cancel a digital asset withdrawal by UUID (requires private API)
Parameter | Type | Required | Description |
| string | β |
CREATE_DEPOSIT_ADDRESS
Request creation of a deposit address (requires private API)
Parameter | Type | Required | Description |
| string | β | |
| string | β |
CREATE_ORDER
Create an Upbit order (requires private API)
Parameter | Type | Required | Description |
| string | β | |
| string | β | |
| string | β | |
| string | ||
| string | ||
| string | ||
| string | ||
| string |
CREATE_WITHDRAWAL
Request a digital asset withdrawal (requires private API)
Parameter | Type | Required | Description |
| string | β | |
| string | β | |
| string | β | |
| string | β | |
| string | ||
| string |
GET_ACCOUNTS
Get Upbit account balances (requires private API enabled)
No parameters
GET_DEPOSIT
Get a single deposit by UUID (requires private API)
Parameter | Type | Required | Description |
| string | β |
GET_DEPOSIT_ADDRESS
Get a single deposit address for a currency and net_type (private)
Parameter | Type | Required | Description |
| string | β | |
| string | β |
GET_DEPOSIT_CHANCE
Get deposit availability information for a currency (private)
Parameter | Type | Required | Description |
| string | β | |
| string |
GET_ORDER
Get a single Upbit order (requires private API)
Parameter | Type | Required | Description |
| string | ||
| string |
GET_ORDERBOOK
Get orderbook snapshot for a given market
Parameter | Type | Required | Description |
| string | β | Upbit market code, e.g., KRW-BTC |
GET_ORDERS
List Upbit orders (requires private API)
Parameter | Type | Required | Default | Description |
| string | |||
| string | "wait" | ||
| integer | 1 | ||
| integer | 100 |
GET_TICKER
Get the latest ticker data from Upbit for a single market
Parameter | Type | Required | Description |
| string | β | Upbit market code, e.g., KRW-BTC |
GET_TRADES
Get recent trades for a market
Parameter | Type | Required | Description |
| string | β | Upbit market code, e.g., KRW-BTC |
GET_WITHDRAWAL
Get a single withdrawal by UUID (requires private API)
Parameter | Type | Required | Description |
| string | β |
LIST_DEPOSIT_ADDRESSES
List deposit addresses for all currencies (requires private API)
No parameters
LIST_DEPOSITS
List deposits (requires private API)
Parameter | Type | Required | Default | Description |
| string | |||
| string | |||
| integer | 1 | ||
| integer | 50 |
LIST_WITHDRAWAL_ADDRESSES
List registered withdrawal-allowed addresses (requires private API)
No parameters
LIST_WITHDRAWALS
List withdrawals (requires private API)
Parameter | Type | Required | Default | Description |
| string | |||
| string | |||
| integer | 1 | ||
| integer | 50 |
π¨βπ» Development
ποΈ Build Project
ποΈ Development Mode (Watch)
β Linting & Formatting
π§ͺ Testing with MCP Inspector
π Project Structure
src/tools/: Individual tool definitionssrc/lib/: Configuration, HTTP client, and authentication utilitiessrc/index.ts: Server entry point
π Resources
β οΈ Disclaimer
This project interacts with the Upbit cryptocurrency exchange API. Trading in cryptocurrencies involves significant risk. Users should exercise caution and verify all data independently. The authors are not responsible for any financial losses incurred through the use of this software.