UP

Upbit MCP Server for Real-Time Market Data

Access real-time Upbit cryptocurrency prices, market summaries, and asset listings with an MCP server for instant market data.

Quick Install
npx -y @solangii/upbit-mcp-server

Overview

This MCP (Model Context Protocol) server provides instant access to Upbit market data — including live price ticks, market summaries, and lists of available assets — packaged as an MCP-compatible data source. It acts as a lightweight bridge between Upbit’s public API and applications or LLMs that expect the MCP wire format, allowing consumers to request contextual market information or subscribe to real-time updates with minimal integration work.

For developers building trading dashboards, alerting systems, or LLM agents that need up-to-date cryptocurrency prices, the server simplifies data retrieval and streaming. Rather than polling Upbit directly or writing custom parsers, you can run this server locally or in a container and query a consistent set of endpoints (REST and/or WebSocket) that expose market lists, summaries, and live ticks formatted for immediate ingestion.

Features

  • Real-time price ticks proxied from Upbit public endpoints
  • Market summaries (24h change, volume, high/low) for requested markets
  • Asset and market listings (all markets supported by Upbit)
  • MCP-compatible HTTP and/or streaming interfaces for model context integration
  • Local and containerized deployment options
  • Simple configuration via environment variables

Installation / Configuration

Clone the repository and run locally or via Docker. The examples below use common Node/Docker commands — adapt to the language/runtime in the repository if different.

Clone the repo:

git clone https://github.com/solangii/upbit-mcp-server.git
cd upbit-mcp-server

Install dependencies (Node.js example):

# using npm
npm install

# or using yarn
yarn install

Create a .env file (example variables):

# HTTP server port
PORT=3000

# Base URL for Upbit (defaults to public Upbit API)
UPBIT_BASE_URL=https://api.upbit.com

# Optional: enable WebSocket stream
ENABLE_WS=true

# Log level (debug|info|warn|error)
LOG_LEVEL=info

Start the server:

# development
npm run start

# or with environment variables inline
PORT=4000 npm run start

Docker usage:

# build and run
docker build -t upbit-mcp-server .
docker run -p 3000:3000 --env-file .env upbit-mcp-server

# or using docker-compose (example)
docker-compose up -d

Notes:

  • Upbit public market endpoints generally do not require API keys for market data. Private account/endpoints do. If you plan to extend the server to broker authenticated requests, add credential configuration and secure them (e.g., secrets manager).
  • The repository exposes configurable endpoints and a toggleable streaming interface; consult the project code for exact endpoint paths if you need to tailor requests.

Available Tools / Resources

  • GitHub repository: https://github.com/solangii/upbit-mcp-server
  • Upbit API docs: https://docs.upbit.com (official Upbit REST/WebSocket references)
  • MCP (Model Context Protocol) reference: check the MCP spec or the repo README for protocol details
  • Useful client libraries:
    • HTTP: curl, axios, fetch
    • WebSocket: ws (Node), websocket APIs in browsers

Common endpoints (typical examples)

PathMethodDescription
/marketsGETReturns list of markets/assets listed on Upbit
/ticker?markets=KRW-BTC,KRW-ETHGETCurrent price/tick data for requested markets
/summary?market=KRW-BTCGET24h summary: change, volume, high, low
/stream (WebSocket)WSSubscribe to live ticks / updates for markets

Example Response (ticker):

[
  {
    "market": "KRW-BTC",
    "trade_price": 45000000,
    "change_rate": 0.0123,
    "acc_trade_volume_24h": 120.45,
    "timestamp": 1672531200000
  }
]

Use Cases

  • LLM-driven trading assistants: Feed the MCP server output directly into a model context window to let an agent reason about current prices and market context before generating recommendations or actions.

    • Example: Fetch /summary?market=KRW-BTC and include the returned JSON as context before asking an agent to generate trade rationale.
  • Real-time dashboards: Use the WebSocket /stream endpoint to push updates to a UI with low latency. The MCP server normalizes Upbit feeds so the dashboard can consume a consistent schema across markets.

    • Example: Subscribe to KRW-BTC and KRW-ETH ticks and render last price, 24h change, and volume.
  • Alerting and automation: Periodically poll /ticker for markets of interest and trigger alerts or automated workflows when price thresholds or unusual volume patterns occur.

    • Example: Poll /ticker every 15 seconds; if change_rate > 0.05 within 1 minute, send notification.
  • Backtesting and research: Use the server as a reproducible source of historical snapshots (if the server supports caching or replay) for model training or strategy analysis.

Quick Examples

Fetch current markets list:

curl http://localhost:3000/markets

Get tick data for BTC and ETH:

curl "http://localhost:3000/ticker?markets=KRW-BTC,KRW-ETH"

Subscribe via WebSocket (JavaScript example):

const ws = new WebSocket('ws://localhost:3000/stream');
Tags:finance