Prepare the server locally
Run this once before adding it to Claude Code.
git clone https://github.com/adhinugroho1711/mcp-indodax.git
cd mcp-indodax
pip install -r requirements.txtRegister it in Claude Code
claude mcp add -e "INDODAX_API_KEY=${INDODAX_API_KEY}" -e "INDODAX_API_SECRET=${INDODAX_API_SECRET}" mcp-indodax -- uv --directory /ABSOLUTE/PATH/TO/mcp-indodax run server.pyReplace any placeholder paths in the command with the real path on your machine.
INDODAX_API_KEYINDODAX_API_SECRETMake your agent remember this setup
mcp-indodax's config, env vars, and the gotchas you hit — recalled in every future Claude Code, Cursor, and Codex session.
npx conare@latestFree · one command · indexes the sessions already on disk. Set up in the browser instead →
What it does
- Exposes Indodax Private and Public REST APIs as MCP tools
- Supports real-time market price retrieval for trading pairs
- Enables automated buy and sell order execution
- Provides account balance and information management
- Allows management of active orders including cancellation
Tools 5
tickerGet the current market price for a specific trading pair.tradeExecute a buy or sell order for a cryptocurrency.open_ordersRetrieve a list of currently active orders.cancel_orderCancel an existing order by its ID.get_infoRetrieve account information and balances.Environment Variables
INDODAX_API_KEYrequiredYour Indodax API keyINDODAX_API_SECRETrequiredYour Indodax API secretTry it
Original README from adhinugroho1711/mcp-indodax
Indodax MCP Server 🚀
Expose semua Private REST API Indodax sebagai MCP tools (bisa dipakai Claude Code atau agen AI lain). Fokus: cepat dipakai, mudah dipahami.
1. Persiapan Cepat
# clone & masuk repo
git clone https://github.com/adhinugroho1711/mcp-indodax.git
cd mcp-indodax
# (opsional) buat virtual-env
python -m venv .venv && source .venv/bin/activate
# install paket
pip install -r requirements.txt
2. Isi Kredensial
Buat .env (file ini tidak akan ke-push):
INDODAX_API_KEY=YOUR_API_KEY
INDODAX_API_SECRET=YOUR_SECRET
3. Jalankan
python server.py # mode stdio (default MCP)
# atau HTTP:
uvicorn server:mcp.app --reload
4. Contoh Pakai Tool
from server import get_info, trade
import asyncio, json
async def demo():
print(json.dumps(await get_info(), indent=2))
# order beli BTC 50k IDR
# await trade("btc_idr", "buy", price=500000000, idr=50000)
asyncio.run(demo())
5. Integrasi Editor (Claude Code)
- VS Code: letakkan
mcp_servers.jsondi root ➜ Command Palette ➜Claude: Start MCP Server. - JetBrains: taruh
mcp_servers.jsondi root atau.claude/➜ Tools ➜ Claude ➜ Start MCP Server. - Neovim: simpan
mcp_servers.jsondi~/.config/claude/➜:ClaudeStartServer indodax.
Contoh mcp_servers.json:
{
"mcpServers": {
"indodax": {
"command": "uv",
"args": ["--directory", "/ABSOLUTE/PATH/TO/mcp-indodax", "run", "server.py"]
}
}
}
Struktur Singkat
server.py # semua MCP tools
requirements.txt # dependensi
mcp_servers.json # config runner (contoh)
Integrasi Editor / Claude Code
Berikut cara mendaftarkan MCP server di beberapa editor / plugin umum. Pastikan mcp_servers.json Anda sudah berisi path absolut proyek.
VS Code (Claude Code Extension)
- Install extension "Claude Code".
- Letakkan
mcp_servers.jsondi root proyek, contoh:{ "mcpServers": { "indodax": { "command": "uv", "args": [ "--directory", "/ABSOLUTE/PATH/TO/mcp-indodax", "run", "server.py" ] } } } - Buka Command Palette →
Claude: Start MCP Server…→ pilihindodax.
JetBrains IDE (IntelliJ / PyCharm) + Plugin Claude Code
- Taruh
mcp_servers.jsondi direktori.claude/atau root proyek. - Tools → Claude → Start MCP Server → pilih
indodax.
Neovim (`claude.nvim`)
- Simpan
mcp_servers.jsondi$HOME/.config/claude/. - Jalankan
:ClaudeStartServer indodax.
CLI Langsung
uv --directory /ABSOLUTE/PATH/TO/mcp-indodax run server.py # atau python server.py
Contoh Pemanggilan Alat
1. Mengecek Harga Kripto
import asyncio
from server import ticker, ticker_all
async def check_prices():
# Dapatkan semua ticker yang tersedia
all_tickers = await ticker_all()
# Dapatkan harga BTC/IDR
btc_price = await ticker("btcidr")
print(f"Harga BTC/IDR: {int(btc_price['last']):,}")
# Dapatkan harga XRP/IDR
xrp_price = await ticker("xrpidr")
print(f"Harga XRP/IDR: {int(xrp_price['last']):,}")
asyncio.run(check_prices())
2. Mengecek Saldo dan Membuat Order
import asyncio, json
from server import get_info, trade
async def main():
# Dapatkan info akun
info = await get_info()
print("Saldo IDR:", info['return']['balance']['idr'])
# Contoh order beli BTC senilai 50.000 IDR
# res = await trade("btc_idr", "buy", price=500000000, idr=50000)
# print(json.dumps(res, indent=2))
asyncio.run(main())
Cara Melakukan Trading
Daftar Perintah Trading
| Perintah | Deskripsi | Contoh Penggunaan |
|---|---|---|
ticker("btcidr") |
Melihat harga BTC/IDR terkini | ```python |
| from server import ticker | ||
| import asyncio |
async def main(): price = await ticker("btcidr") print(f"Harga BTC: {int(price['last']):,} IDR")
asyncio.run(main())
| `trade("btcidr", "buy", idr=50000, price=500000000)` | Membeli kripto dengan IDR | ```python
from server import trade
async def beli_btc():
await trade("btcidr", "buy", idr=50000, price=500000000)
``` |
| `trade("xrpidr", "sell", xrp=100, price=40000)` | Menjual kripto | ```python
from server import trade
async def jual_xrp():
await trade("xrpidr", "sell", xrp=100, price=40000)
``` |
| `open_orders()` | Melihat daftar order aktif | ```python
from server import open_orders
async def cek_order():
orders = await open_orders()
print(orders)
``` |
| `cancel_order(order_id=12345)` | Membatalkan order | ```python
from server import cancel_order
async def batal_order():
await cancel_order(order_id=12345)
``` |
### 1. Membuat Order Beli/Jual
```python
import asyncio
from server import trade, get_info
async def place_order():
# Dapatkan info akun terlebih dahulu
info = awai