@nuno1026/bithumb-mcp 0.1.5 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1719,7 +1719,7 @@ function registerTradeTools() {
1719
1719
  {
1720
1720
  name: "trade_place_order",
1721
1721
  module: "trade",
1722
- description: '\uC8FC\uBB38\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4. Place a new spot order on Bithumb. Use when: user asks to buy/sell a single market at a specific price or quantity. Do NOT use: for multiple orders at once (use trade_batch_place); for time-weighted execution (use twap_place). Field: order_type \u2208 {limit, price, market}. limit: price+volume required. price(\uC2DC\uC7A5\uAC00 \uB9E4\uC218): only price (total KRW). market(\uC2DC\uC7A5\uAC00 \uB9E4\uB3C4): only volume (coin qty). CLI flag: --order-type (alias: --ord-type, deprecated). Response field `ord_type` is preserved as Bithumb upstream. Example call: {"market":"KRW-BTC","side":"bid","order_type":"limit","price":"50000000","volume":"0.0001"}',
1722
+ description: '\uC8FC\uBB38\uC744 \uC0DD\uC131\uD569\uB2C8\uB2E4. Place a new spot order on Bithumb. Use when: user asks to buy/sell a single market at a specific price or quantity. Do NOT use: for multiple orders at once (use trade_batch_place); for time-weighted execution (use twap_place). Field: order_type \u2208 {limit, price, market}. limit: price+volume required. price(\uC2DC\uC7A5\uAC00 \uB9E4\uC218): only price (total KRW). market(\uC2DC\uC7A5\uAC00 \uB9E4\uB3C4): only volume (coin qty). CLI flag: --order-type (alias: --ord-type, deprecated). Response field `ord_type` is preserved as Bithumb upstream. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user market, side, order_type, price, volume, and total notional, then wait for explicit approval. Do NOT place the order without user confirmation. Example call: {"market":"KRW-BTC","side":"bid","order_type":"limit","price":"50000000","volume":"0.0001"}',
1723
1723
  isWrite: true,
1724
1724
  inputSchema: {
1725
1725
  type: "object",
@@ -1774,7 +1774,7 @@ function registerTradeTools() {
1774
1774
  {
1775
1775
  name: "trade_cancel_order",
1776
1776
  module: "trade",
1777
- description: "\uC8FC\uBB38\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel an order by order_id or client_order_id.",
1777
+ description: "\uC8FC\uBB38\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel an order by order_id or client_order_id. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user the order details (uuid or client_order_id) and wait for explicit approval. Do NOT cancel without user confirmation.",
1778
1778
  isWrite: true,
1779
1779
  inputSchema: {
1780
1780
  type: "object",
@@ -1807,7 +1807,7 @@ function registerTradeTools() {
1807
1807
  {
1808
1808
  name: "trade_batch_place",
1809
1809
  module: "trade",
1810
- description: '\uB2E4\uAC74 \uC8FC\uBB38\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4. Place multiple orders in a single batch (max 20). Use when: user asks for multiple orders at once (e.g., grid orders, simultaneous BTC+ETH limit buys). Do NOT use: for a single order (use trade_place_order); for time-sliced execution (use twap_place). Each order item field: `order_type` (canonical). Legacy `ord_type` is auto-normalized to `order_type` by the CLI; MCP callers should always send `order_type`. Partial-failure semantics: each item may succeed or fail independently. Do NOT auto-retry failed items; surface them to the user. Example call: {"batch_orders":[{"market":"KRW-BTC","side":"bid","order_type":"limit","price":"50000000","volume":"0.0001"},{"market":"KRW-ETH","side":"bid","order_type":"limit","price":"4500000","volume":"0.001"}]}',
1810
+ description: '\uB2E4\uAC74 \uC8FC\uBB38\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4. Place multiple orders in a single batch (max 20). Use when: user asks for multiple orders at once (e.g., grid orders, simultaneous BTC+ETH limit buys). Do NOT use: for a single order (use trade_place_order); for time-sliced execution (use twap_place). Each order item field: `order_type` (canonical). Legacy `ord_type` is auto-normalized to `order_type` by the CLI; MCP callers should always send `order_type`. Partial-failure semantics: each item may succeed or fail independently. Do NOT auto-retry failed items; surface them to the user. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: read all orders back to the user (market, side, order_type, price, volume for each) and wait for explicit approval. Do NOT place any order without user confirmation. Example call: {"batch_orders":[{"market":"KRW-BTC","side":"bid","order_type":"limit","price":"50000000","volume":"0.0001"},{"market":"KRW-ETH","side":"bid","order_type":"limit","price":"4500000","volume":"0.001"}]}',
1811
1811
  isWrite: true,
1812
1812
  inputSchema: {
1813
1813
  type: "object",
@@ -1852,7 +1852,7 @@ function registerTradeTools() {
1852
1852
  {
1853
1853
  name: "trade_batch_cancel",
1854
1854
  module: "trade",
1855
- description: "\uB2E4\uAC74 \uC8FC\uBB38\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel multiple orders (max 30). Provide order_ids or client_order_ids.",
1855
+ description: "\uB2E4\uAC74 \uC8FC\uBB38\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel multiple orders (max 30). Provide order_ids or client_order_ids. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user all order IDs to be cancelled and wait for explicit approval. Do NOT cancel without user confirmation.",
1856
1856
  isWrite: true,
1857
1857
  inputSchema: {
1858
1858
  type: "object",
@@ -2121,7 +2121,7 @@ function registerTwapTools() {
2121
2121
  {
2122
2122
  name: "twap_place_order",
2123
2123
  module: "twap",
2124
- description: "TWAP \uC8FC\uBB38\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4. Place a TWAP (Time-Weighted Average Price) order.",
2124
+ description: "TWAP \uC8FC\uBB38\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4. Place a TWAP (Time-Weighted Average Price) order. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user market, side, price/volume, duration, frequency, and computed slice count (duration \xF7 frequency), then wait for explicit approval. Do NOT place the order without user confirmation.",
2125
2125
  isWrite: true,
2126
2126
  inputSchema: {
2127
2127
  type: "object",
@@ -2232,7 +2232,7 @@ function registerTwapTools() {
2232
2232
  {
2233
2233
  name: "twap_cancel_order",
2234
2234
  module: "twap",
2235
- description: "TWAP \uC8FC\uBB38\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel a TWAP order.",
2235
+ description: "TWAP \uC8FC\uBB38\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel a TWAP order. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user the TWAP order ID and wait for explicit approval. Do NOT cancel without user confirmation.",
2236
2236
  isWrite: true,
2237
2237
  inputSchema: {
2238
2238
  type: "object",
@@ -2532,7 +2532,7 @@ function registerWithdrawTools() {
2532
2532
  {
2533
2533
  name: "withdraw_krw",
2534
2534
  module: "withdraw",
2535
- description: "\uB4F1\uB85D\uB41C \uACC4\uC88C\uB85C \uC6D0\uD654\uB97C \uCD9C\uAE08\uD569\uB2C8\uB2E4. 2\uCC28 \uC778\uC99D(\uCE74\uCE74\uC624)\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. Withdraw KRW to registered bank account. Requires 2FA (Kakao).",
2535
+ description: "\uB4F1\uB85D\uB41C \uACC4\uC88C\uB85C \uC6D0\uD654\uB97C \uCD9C\uAE08\uD569\uB2C8\uB2E4. \uC774 \uC791\uC5C5\uC740 \uB418\uB3CC\uB9B4 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4. Withdraw KRW to registered bank account. This action is IRREVERSIBLE. Requires 2FA (Kakao). \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user the withdrawal amount and wait for explicit approval. Do NOT withdraw without user confirmation.",
2536
2536
  isWrite: true,
2537
2537
  inputSchema: {
2538
2538
  type: "object",
@@ -2565,7 +2565,7 @@ function registerWithdrawTools() {
2565
2565
  {
2566
2566
  name: "withdraw_cancel_coin",
2567
2567
  module: "withdraw",
2568
- description: "\uAC00\uC0C1 \uC790\uC0B0 \uCD9C\uAE08\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel a cryptocurrency withdrawal.",
2568
+ description: "\uAC00\uC0C1 \uC790\uC0B0 \uCD9C\uAE08\uC744 \uCDE8\uC18C\uD569\uB2C8\uB2E4. Cancel a cryptocurrency withdrawal. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user the withdrawal ID and wait for explicit approval. Do NOT cancel without user confirmation.",
2569
2569
  isWrite: true,
2570
2570
  inputSchema: {
2571
2571
  type: "object",
@@ -2770,7 +2770,7 @@ function registerDepositTools() {
2770
2770
  {
2771
2771
  name: "deposit_krw",
2772
2772
  module: "deposit",
2773
- description: "\uC6D0\uD654 \uC785\uAE08\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4. 2\uCC28 \uC778\uC99D(\uCE74\uCE74\uC624)\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. Request KRW deposit. Requires 2FA (Kakao).",
2773
+ description: "\uC6D0\uD654 \uC785\uAE08\uC744 \uC694\uCCAD\uD569\uB2C8\uB2E4. 2\uCC28 \uC778\uC99D(\uCE74\uCE74\uC624)\uC774 \uD544\uC694\uD569\uB2C8\uB2E4. Request KRW deposit. Requires 2FA (Kakao). \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user the deposit amount and wait for explicit approval. Do NOT request deposit without user confirmation.",
2774
2774
  isWrite: true,
2775
2775
  inputSchema: {
2776
2776
  type: "object",
@@ -2803,7 +2803,7 @@ function registerDepositTools() {
2803
2803
  {
2804
2804
  name: "deposit_generate_address",
2805
2805
  module: "deposit",
2806
- description: "\uC785\uAE08 \uC8FC\uC18C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. Generate a new deposit address.",
2806
+ description: "\uC785\uAE08 \uC8FC\uC18C\uB97C \uC0DD\uC131\uD569\uB2C8\uB2E4. Generate a new deposit address. \u26A0\uFE0F REQUIRES EXPLICIT USER CONFIRMATION before executing: show the user the currency and network type, then wait for explicit approval. Do NOT generate without user confirmation.",
2807
2807
  isWrite: true,
2808
2808
  inputSchema: {
2809
2809
  type: "object",
@@ -3218,10 +3218,10 @@ function getConfigPath(client) {
3218
3218
  return null;
3219
3219
  }
3220
3220
  }
3221
- var NPX_PACKAGE = "@bithumb-tradekit/mcp";
3221
+ var NPX_PACKAGE = "@nuno1026/bithumb-mcp";
3222
3222
  function buildEntry(client, args) {
3223
3223
  if (client === "vscode") {
3224
- return { type: "stdio", command: "bithumb-trade-mcp", args };
3224
+ return { type: "stdio", command: "bithumb-mcp", args };
3225
3225
  }
3226
3226
  return { command: "npx", args: ["-y", NPX_PACKAGE, ...args] };
3227
3227
  }
@@ -3255,7 +3255,7 @@ function mergeJsonConfig(configPath, serverName, entry) {
3255
3255
  }
3256
3256
  function printSetupUsage() {
3257
3257
  process.stdout.write(
3258
- `Usage: bithumb-trade-mcp setup --client <client> [--profile <name>] [--modules <list>]
3258
+ `Usage: bithumb setup --client <client> [--profile <name>] [--modules <list>]
3259
3259
 
3260
3260
  Clients:
3261
3261
  ` + SUPPORTED_CLIENTS.map((id) => ` ${id.padEnd(16)} ${CLIENT_NAMES[id]}`).join("\n") + `
@@ -3270,7 +3270,7 @@ function runSetup(options) {
3270
3270
  const { client } = options;
3271
3271
  const name = CLIENT_NAMES[client];
3272
3272
  const args = buildArgs(options);
3273
- const serverName = options.profile ? `bithumb-trade-mcp-${options.profile}` : "bithumb-trade-mcp";
3273
+ const serverName = options.profile ? `bithumb-mcp-${options.profile}` : "bithumb-mcp";
3274
3274
  if (client === "claude-code") {
3275
3275
  const claudeArgs = [
3276
3276
  "mcp",
@@ -3279,7 +3279,7 @@ function runSetup(options) {
3279
3279
  "stdio",
3280
3280
  serverName,
3281
3281
  "--",
3282
- "bithumb-trade-mcp",
3282
+ "bithumb-mcp",
3283
3283
  ...args
3284
3284
  ];
3285
3285
  process.stdout.write(`Running: claude ${claudeArgs.join(" ")}