scjang01/tossinvest-mcp

๐Ÿ’ฐ Finance & Fintech
0 Views
0 Installs

๐Ÿ“‡ โ˜๏ธ - Toss Securities (ํ† ์Šค์ฆ๊ถŒ) Open API MCP server. Real-time quotes, orderbook, candles, holdings, buying power, and order management (create/modify/cancel).

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "scjang01-tossinvest-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "scjang01-tossinvest-mcp"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

tossinvest-mcp

MCP Badge

ํ”„๋กœ๊ทธ๋žจ ๊ฐœ์š”

tossinvest-mcp๋Š” ํ† ์Šค์ฆ๊ถŒ Open API(ํ˜„์žฌ๊ฐ€ ์กฐํšŒ, ์ฃผ๋ฌธ, ์ž”๊ณ  ์กฐํšŒ ๋“ฑ)๋ฅผ OpenAI ์„œ๋น„์Šค, Claude Desktop, Cursor ๊ฐ™์€ MCP ์ง€์› ์•ฑ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋กœ์ปฌ MCP ์„œ๋ฒ„์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด, ์ด ํ”„๋กœ๊ทธ๋žจ์„ MCP ํด๋ผ์ด์–ธํŠธ์— ๋“ฑ๋กํ•˜๋ฉด AI์—๊ฒŒ ๋‹ค์Œ์ฒ˜๋Ÿผ ์š”์ฒญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ผ์„ฑ์ „์ž ํ˜„์žฌ๊ฐ€๋ฅผ ์กฐํšŒํ•ด์ค˜.
๋‚ด ํ† ์Šค์ฆ๊ถŒ ๋ณด์œ  ์ฃผ์‹์„ ๋ณด์—ฌ์ค˜.
๋Œ€๊ธฐ ์ค‘์ธ ์ฃผ๋ฌธ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค˜.

์ด ํ”„๋กœ๊ทธ๋žจ์€ ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์—์„œ๋งŒ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ฃผ์˜์‚ฌํ•ญ

ํ† ์Šค์ฆ๊ถŒ Open API์—๋Š” ์ƒŒ๋“œ๋ฐ•์Šค๋‚˜ ๋ชจ์˜ํˆฌ์ž ํ™˜๊ฒฝ์ด ์—†์Šต๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผœ๋ฉด ์‹ค์ œ ๊ณ„์ขŒ์— ์‹ค์ œ ์ฃผ๋ฌธ์„ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒ˜์Œ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผœ์ง€ ๋ง๊ณ  ์กฐํšŒ ๊ธฐ๋Šฅ๋ถ€ํ„ฐ ํ™•์ธํ•˜์„ธ์š”.

๊ธฐ๋ณธ ์„ค์ •์—์„œ๋Š” ์ฃผ๋ฌธ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œ ๋„๊ตฌ๊ฐ€ ๋“ฑ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ ๋ฐ ํŠน์ง•

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผœ์ง€ ์•Š์•„๋„ ์•„๋ž˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ตญ๋‚ด/๋ฏธ๊ตญ ์ฃผ์‹ ํ˜„์žฌ๊ฐ€ ์กฐํšŒ
  • ํ˜ธ๊ฐ€ ์กฐํšŒ
  • ์ตœ๊ทผ ์ฒด๊ฒฐ ๋‚ด์—ญ ์กฐํšŒ
  • ์บ”๋“ค ์ฐจํŠธ ์กฐํšŒ
  • ์ƒํ•œ๊ฐ€/ํ•˜ํ•œ๊ฐ€ ์กฐํšŒ
  • ์ข…๋ชฉ ๊ธฐ๋ณธ ์ •๋ณด ์กฐํšŒ
  • ๋งค์ˆ˜ ์œ ์˜์‚ฌํ•ญ ์กฐํšŒ
  • ํ™˜์œจ ์กฐํšŒ
  • ๊ตญ๋‚ด/๋ฏธ๊ตญ ์žฅ ์šด์˜ ์‹œ๊ฐ„ ์กฐํšŒ
  • ๊ณ„์ขŒ ๋ชฉ๋ก ์กฐํšŒ
  • ๋ณด์œ  ์ฃผ์‹ ์กฐํšŒ
  • ๋งค์ˆ˜ ๊ฐ€๋Šฅ ๊ธˆ์•ก ์กฐํšŒ
  • ํŒ๋งค ๊ฐ€๋Šฅ ์ˆ˜๋Ÿ‰ ์กฐํšŒ
  • ๋งค๋งค ์ˆ˜์ˆ˜๋ฃŒ ์กฐํšŒ
  • ์ฃผ๋ฌธ ๋ชฉ๋ก ์กฐํšŒ
  • ์ฃผ๋ฌธ ์ƒ์„ธ ์กฐํšŒ

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผ  ๊ฒฝ์šฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ:

  • toss_create_order: ์ฃผ๋ฌธ ์ƒ์„ฑ
  • toss_modify_order: ์ฃผ๋ฌธ ์ •์ •
  • toss_cancel_order: ์ฃผ๋ฌธ ์ทจ์†Œ

ํŠน์ง•:

  • npx tossinvest-mcp๋กœ ์‹คํ–‰๋˜๋ฏ€๋กœ ๋ณ„๋„ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜ ๊ณผ์ •์ด ์งง์Šต๋‹ˆ๋‹ค.
  • API Key์™€ Secret Key๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • OAuth ํ† ํฐ์€ ๋‚ด๋ถ€์—์„œ ์ž๋™ ๋ฐœ๊ธ‰ํ•˜๊ณ , ๋งŒ๋ฃŒ 60์ดˆ ์ „์— ์ž๋™ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ„์ขŒ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ accountSeq 1๋ฒˆ ๊ณ„์ขŒ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณ„์ขŒ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ด๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ณ„์ขŒ๋ฅผ ์“ฐ๊ณ  ์‹ถ์œผ๋ฉด TOSSINVEST_ACCOUNT ๊ฐ’์œผ๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ๋ฌธ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œ ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ฃผ๋ฌธ ๊ธฐ๋Šฅ์„ ์ผœ๋„ ๊ธฐ๋ณธ๊ฐ’์—์„œ๋Š” confirmOrderAction: true ํ™•์ธ๊ฐ’์ด ์—†์œผ๋ฉด ์ฃผ๋ฌธ API๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์ฃผ๋ฌธ ํ•œ๋„, ๋งค๋„/์‹œ์žฅ๊ฐ€ ์ฐจ๋‹จ, ์ข…๋ชฉ ํ—ˆ์šฉ๋ชฉ๋ก, ์ผ์ผ ํ•œ๋„ ๊ฐ™์€ ๊ฐ€๋“œ๋ ˆ์ผ์„ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋กœ ์ผค ์ˆ˜ ์žˆ๊ณ , ๋ชจ๋“  ๊ฒ€์‚ฌ๋Š” ํ† ์Šค์ฆ๊ถŒ ์ฃผ๋ฌธ API ํ˜ธ์ถœ ์ „์— ์„œ๋ฒ„์—์„œ ๊ฐ•์ œ๋ฉ๋‹ˆ๋‹ค. (์•„๋ž˜ ๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ ์ฐธ๊ณ )

์ค‘์š”: toss_modify_order๋Š” ๊ธฐ์กด ์ฃผ๋ฌธ์„ ๊ทธ ์ž๋ฆฌ์—์„œ ์ˆ˜์ •ํ•˜๋Š” ๋‹จ์ˆœ PATCH๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํ† ์Šค์ฆ๊ถŒ API๋Š” ์›์ฃผ๋ฌธ์„ ๋Œ€์ฒดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ์ •์ • ํ›„ ์ƒˆ orderId๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ดํ›„ ์ฃผ๋ฌธ ์ƒ์„ธ ์กฐํšŒ, ์žฌ์ •์ •, ์ทจ์†Œ์—๋Š” ์ƒˆ๋กœ ๋ฐ›์€ orderId๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์„ค์น˜๋ฐฉ๋ฒ•

์•„๋ž˜ ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

1. Node.js ์„ค์น˜ ํ™•์ธ

ํ„ฐ๋ฏธ๋„ ๋˜๋Š” PowerShell์„ ์—ด๊ณ  ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

node -v

v20 ์ด์ƒ์ด ๋‚˜์˜ค๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๋ฉด ๋ฉ๋‹ˆ๋‹ค.

Node.js๊ฐ€ ์—†๊ฑฐ๋‚˜ ๋ฒ„์ „์ด ๋‚ฎ๋‹ค๋ฉด https://nodejs.org ์—์„œ LTS ๋ฒ„์ „์„ ์„ค์น˜ํ•œ ๋’ค ํ„ฐ๋ฏธ๋„์„ ์ƒˆ๋กœ ์—ด์–ด ๋‹ค์‹œ ํ™•์ธํ•˜์„ธ์š”.

2. ํ† ์Šค์ฆ๊ถŒ Open API Key ์ค€๋น„

ํ† ์Šค์ฆ๊ถŒ WTS์— ๋กœ๊ทธ์ธํ•œ ๋’ค Open API ์„ค์ • ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ ํ™”๋ฉด์—์„œ ์•„๋ž˜ ๊ฐ’์„ ๋ฐœ๊ธ‰๋ฐ›์•„ ๋‘ก๋‹ˆ๋‹ค.

  • API Key
  • Secret Key

์ด ๋‘ ๊ฐ’์€ MCP ์„ค์ •์— ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ๋žŒ์—๊ฒŒ ๊ณต์œ ํ•˜์ง€ ๋งˆ์„ธ์š”.

3. ํ—ˆ์šฉ IP ๋“ฑ๋ก

ํ† ์Šค์ฆ๊ถŒ Open API๋Š” ํ—ˆ์šฉ๋œ IP์—์„œ๋งŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์„ค์ •์ด ๋น ์ ธ ์žˆ์œผ๋ฉด ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ํ˜„์žฌ ์ปดํ“จํ„ฐ์˜ ๊ณต์ธ IP๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

PowerShell (Windows):

(Invoke-WebRequest -UseBasicParsing https://api.ipify.org).Content

macOS ๋˜๋Š” Linux ํ„ฐ๋ฏธ๋„:

curl https://api.ipify.org

๋‚˜์˜จ IP ์ฃผ์†Œ๋ฅผ ํ† ์Šค์ฆ๊ถŒ WTS์˜ Open API ์„ค์ • ํ™”๋ฉด์—์„œ ํ—ˆ์šฉ IP ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๋žต์ ์ธ ํ๋ฆ„:

  1. ํ† ์Šค์ฆ๊ถŒ WTS์— ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค.
  2. ์„ค์ • - Open API ๋ฉ”๋‰ด๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  3. ํ—ˆ์šฉ IP ๊ด€๋ฆฌ ์˜์—ญ์„ ์ฐพ์Šต๋‹ˆ๋‹ค.
  4. ์œ„์—์„œ ํ™•์ธํ•œ ๊ณต์ธ IP๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

4. MCP ํด๋ผ์ด์–ธํŠธ์— ๋“ฑ๋ก

MCP ํด๋ผ์ด์–ธํŠธ์˜ ์„ค์ • ํŒŒ์ผ ๋˜๋Š” MCP Servers ์„ค์ • ํ™”๋ฉด์— ์•„๋ž˜ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

{
  "mcpServers": {
    "tossinvest": {
      "command": "npx",
      "args": ["tossinvest-mcp"],
      "env": {
        "TOSSINVEST_API_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-API-Key",
        "TOSSINVEST_SECRET_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-Secret-Key"
      }
    }
  }
}

์„ค์ • ํ›„ MCP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

์ฒ˜์Œ ์‹คํ–‰ํ•  ๋•Œ npm์ด tossinvest-mcp ํŒจํ‚ค์ง€๋ฅผ ์ž๋™์œผ๋กœ ๋‚ด๋ ค๋ฐ›์Šต๋‹ˆ๋‹ค.

5. ๊ณ„์ขŒ๋ฒˆํ˜ธ ํ™•์ธ

์ฒ˜์Œ์—๋Š” TOSSINVEST_ACCOUNT๋ฅผ ๋„ฃ์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ accountSeq 1๋ฒˆ ๊ณ„์ขŒ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋งŒ ๊ณ„์ขŒ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ์ด๊ฑฐ๋‚˜ 1๋ฒˆ ๊ณ„์ขŒ๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ๊ณ„์ขŒ ๋ชฉ๋ก์„ ์กฐํšŒํ•˜์„ธ์š”.

MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ๋‹ค์Œ์ฒ˜๋Ÿผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.

ํ† ์Šค์ฆ๊ถŒ ๊ณ„์ขŒ ๋ชฉ๋ก์„ ์กฐํšŒํ•ด์ค˜.

์‘๋‹ต์—์„œ accountSeq ๊ฐ’์„ ์ฐพ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ณ„์ขŒ๋ฅผ ๊ธฐ๋ณธ ๊ณ„์ขŒ๋กœ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์„ค์ •์— ์•„๋ž˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๋ฐ”๊พธ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

"TOSSINVEST_ACCOUNT": "1"

์˜ˆ๋ฅผ ๋“ค์–ด accountSeq๊ฐ€ 2์ธ ๊ณ„์ขŒ๋ฅผ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด ์ด๋ ‡๊ฒŒ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

"TOSSINVEST_ACCOUNT": "2"

๊ณ„์ขŒ๋ฒˆํ˜ธ๋ฅผ ๋ช…์‹œํ•œ ์ „์ฒด ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
  "mcpServers": {
    "tossinvest": {
      "command": "npx",
      "args": ["tossinvest-mcp"],
      "env": {
        "TOSSINVEST_API_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-API-Key",
        "TOSSINVEST_SECRET_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-Secret-Key",
        "TOSSINVEST_ACCOUNT": "1"
      }
    }
  }
}

TOSSINVEST_ACCOUNT๋ฅผ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’ 1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ค์ •ํ•˜๋ฉด ๋ณด์œ  ์ฃผ์‹, ์ฃผ๋ฌธ ๋ชฉ๋ก, ๋งค์ˆ˜ ๊ฐ€๋Šฅ ๊ธˆ์•ก์ฒ˜๋Ÿผ ๊ณ„์ขŒ๊ฐ€ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์—์„œ ํ•ด๋‹น ๊ณ„์ขŒ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

6. ์กฐํšŒ ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ

MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์š”์ฒญํ•ด ๋ด…๋‹ˆ๋‹ค.

์‚ผ์„ฑ์ „์ž ํ˜„์žฌ๊ฐ€๋ฅผ ์กฐํšŒํ•ด์ค˜.
๋‚ด ํ† ์Šค์ฆ๊ถŒ ๋ณด์œ  ์ฃผ์‹์„ ๋ณด์—ฌ์ค˜.
AAPL ์ตœ๊ทผ ์ฒด๊ฒฐ ๋‚ด์—ญ 10๊ฐœ๋ฅผ ์กฐํšŒํ•ด์ค˜.
๋Œ€๊ธฐ ์ค‘์ธ ์ฃผ๋ฌธ ๋ชฉ๋ก์„ ๋ณด์—ฌ์ค˜.

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ ์ผœ๊ธฐ

๋‹ค์‹œ ํ•œ ๋ฒˆ ํ™•์ธํ•˜์„ธ์š”. ํ† ์Šค์ฆ๊ถŒ Open API์—๋Š” ์ƒŒ๋“œ๋ฐ•์Šค๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผœ๋ฉด ์‹ค์ œ ์ฃผ๋ฌธ์ด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด MCP ์„ค์ •์˜ env์— ์•„๋ž˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

"TOSSINVEST_ENABLE_TRADING": "true"

์ „์ฒด ์˜ˆ์‹œ:

{
  "mcpServers": {
    "tossinvest": {
      "command": "npx",
      "args": ["tossinvest-mcp"],
      "env": {
        "TOSSINVEST_API_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-API-Key",
        "TOSSINVEST_SECRET_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-Secret-Key",
        "TOSSINVEST_ACCOUNT": "1",
        "TOSSINVEST_ENABLE_TRADING": "true"
      }
    }
  }
}

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผœ๋„ ์ฃผ๋ฌธ ๋„๊ตฌ๋Š” ์ถ”๊ฐ€ ํ™•์ธ๊ฐ’์ด ์—†์œผ๋ฉด ์‹คํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œ ๋„๊ตฌ๋Š” ์š”์ฒญ ์ž…๋ ฅ์— confirmOrderAction: true๊ฐ€ ์žˆ์–ด์•ผ ํ† ์Šค์ฆ๊ถŒ API๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

confirmOrderAction์„ true๋กœ ๋„ฃ๋Š” ๋ฐฉ๋ฒ•

confirmOrderAction์€ MCP ์„ค์ •์— ๋„ฃ๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œ ๋„๊ตฌ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ๋“ค์–ด๊ฐ€๋Š” ์ฃผ๋ฌธ ์š”์ฒญ ์ž…๋ ฅ๊ฐ’์ž…๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ๋ฌธ ์ƒ์„ฑ ๋„๊ตฌ์˜ ์‹ค์ œ ์ž…๋ ฅ์€ ์ด๋Ÿฐ ํ˜•ํƒœ์ž…๋‹ˆ๋‹ค.

{
  "confirmOrderAction": true,
  "symbol": "005930",
  "side": "BUY",
  "orderType": "LIMIT",
  "quantity": "1",
  "price": "70000"
}

MCP ํด๋ผ์ด์–ธํŠธ์—์„œ ์ž์—ฐ์–ด๋กœ ์š”์ฒญํ•  ๋•Œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ ๋ช…ํ™•ํžˆ ๋งํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

ํ† ์Šค์ฆ๊ถŒ์—์„œ ์‚ผ์„ฑ์ „์ž 1์ฃผ๋ฅผ 70000์› ์ง€์ •๊ฐ€๋กœ ๋งค์ˆ˜ ์ฃผ๋ฌธํ•ด์ค˜.
์‹ค์ œ ์ฃผ๋ฌธ ์‹คํ–‰์„ ํ™•์ธํ•˜๋ฉฐ confirmOrderAction ๊ฐ’์„ true๋กœ ๋„ฃ์–ด์ค˜.

์ •์ •์ด๋‚˜ ์ทจ์†Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

์ด ์ฃผ๋ฌธ์„ 71000์›์œผ๋กœ ์ •์ •ํ•ด์ค˜.
์‹ค์ œ ์ฃผ๋ฌธ ์ •์ •์„ ํ™•์ธํ•˜๋ฉฐ confirmOrderAction ๊ฐ’์„ true๋กœ ๋„ฃ์–ด์ค˜.
์ด ์ฃผ๋ฌธ์„ ์ทจ์†Œํ•ด์ค˜.
์‹ค์ œ ์ฃผ๋ฌธ ์ทจ์†Œ๋ฅผ ํ™•์ธํ•˜๋ฉฐ confirmOrderAction ๊ฐ’์„ true๋กœ ๋„ฃ์–ด์ค˜.

ํด๋ผ์ด์–ธํŠธ์— ๋”ฐ๋ผ ์ฃผ๋ฌธ ๋„๊ตฌ ์‹คํ–‰ ์ „์— ์Šน์ธ ๋ฒ„ํŠผ์ด๋‚˜ ํ™•์ธ ์ฐฝ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๊ฒฝ์šฐ์—๋„ confirmOrderAction: true๊ฐ€ ์ฃผ๋ฌธ tool ์ž…๋ ฅ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธ๊ฐ’ ์—†์ด ์ฃผ๋ฌธ ์‹คํ–‰ํ•˜๊ธฐ (์ž๋™ํ™”)

์ฐธ๊ณ : ์ด์ „ ๋ฒ„์ „์˜ TOSSINVEST_YOLO_TRADING ์˜ต์…˜์€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ™•์ธ๊ฐ’์„ ๋„๋”๋ผ๋„ ๋‚˜๋จธ์ง€ ๊ฐ€๋“œ๋ ˆ์ผ์€ ๊ทธ๋Œ€๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ž๋™ํ™” ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ๋งค๋ฒˆ confirmOrderAction: true๋ฅผ ๋„ฃ๊ธฐ ์–ด๋ ต๋‹ค๋ฉด ํ™•์ธ ์š”๊ตฌ๋งŒ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

"TOSSINVEST_REQUIRE_ORDER_CONFIRMATION": "false"

์ด ๊ฐ’์„ ๋„๋ฉด confirmOrderAction ์—†์ด๋„ ์ฃผ๋ฌธ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ฃผ๋ฌธ ํ•œ๋„ยท๋งค๋„/์‹œ์žฅ๊ฐ€ ์ฐจ๋‹จยท์ข…๋ชฉ ํ—ˆ์šฉ๋ชฉ๋กยท์ผ์ผ ํ•œ๋„ ๋“ฑ ์ผœ์ ธ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐ€๋“œ๋ ˆ์ผ์€ ๊ณ„์† ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ํ™•์ธ๊ฐ’์„ ๋„๊ธฐ ์ „์— ๊ธˆ์•ก/์ผ์ผ ํ•œ๋„๋ฅผ ํ•จ๊ป˜ ์„ค์ •ํ•ด ๋‘๋Š” ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ

๊ฐ€๋“œ๋ ˆ์ผ์€ "AI๊ฐ€ ์‹ค์ˆ˜๋กœ, ๋˜๋Š” ๋„ˆ๋ฌด ํฌ๊ฒŒ/๋„ˆ๋ฌด ์ž์ฃผ ์ฃผ๋ฌธ์„ ๋„ฃ๋Š” ๊ฒƒ"์„ ๋ง‰์•„ ์ฃผ๋Š” ์•ˆ์ „์žฅ์น˜์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ๊ฒ€์‚ฌ๋Š” ์ฃผ๋ฌธ์ด ํ† ์Šค์ฆ๊ถŒ ์„œ๋ฒ„์— ๋„๋‹ฌํ•˜๊ธฐ ์ „์— ์ด ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ, ํ•œ๋„๋ฅผ ๋„˜๋Š” ์ฃผ๋ฌธ์€ ์• ์ดˆ์— ํ† ์Šค๋กœ ์ „์†ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ชจ๋“  ์˜ต์…˜์€ MCP ์„ค์ •์˜ env์— ํ•œ ์ค„์”ฉ ์ถ”๊ฐ€ํ•ด ์ผœ๋ฉฐ, ์ผœ์ง€ ์•Š์€ ์˜ต์…˜์€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ๊ฐ’์€ ๋ณด์ˆ˜์ ์ž…๋‹ˆ๋‹ค). ๊ฐ’์€ ๋ชจ๋‘ ๋ฌธ์ž์—ด๋กœ ์ ์Šต๋‹ˆ๋‹ค. ์˜ˆ: "TOSSINVEST_MAX_ORDER_AMOUNT_KRW": "500000".

ํ•œ๋ˆˆ์— ๋ณด๊ธฐ (์š”์•ฝ ํ‘œ)

์ด๋ฆ„๊ธฐ๋ณธ๊ฐ’ํ•œ ์ค„ ์„ค๋ช…
TOSSINVEST_REQUIRE_ORDER_CONFIRMATIONtrue์ฃผ๋ฌธ๋งˆ๋‹ค confirmOrderAction: true ํ™•์ธ๊ฐ’์„ ์š”๊ตฌ
TOSSINVEST_MAX_ORDER_AMOUNT_KRW์—†์Œ1ํšŒ ์ฃผ๋ฌธ ๊ธˆ์•ก ์ƒํ•œ(์›)
TOSSINVEST_MAX_ORDER_AMOUNT_USD์—†์Œ1ํšŒ ์ฃผ๋ฌธ ๊ธˆ์•ก ์ƒํ•œ(๋‹ฌ๋Ÿฌ)
TOSSINVEST_DAILY_MAX_ORDER_AMOUNT_KRW์—†์Œํ•˜๋ฃจ ๋ˆ„์  ์ฃผ๋ฌธ ๊ธˆ์•ก ์ƒํ•œ(์›)
TOSSINVEST_DAILY_MAX_ORDER_AMOUNT_USD์—†์Œํ•˜๋ฃจ ๋ˆ„์  ์ฃผ๋ฌธ ๊ธˆ์•ก ์ƒํ•œ(๋‹ฌ๋Ÿฌ)
TOSSINVEST_DAILY_MAX_ORDER_COUNT์—†์Œํ•˜๋ฃจ ์ฃผ๋ฌธ ๊ฑด์ˆ˜ ์ƒํ•œ
TOSSINVEST_ALLOWED_SYMBOLS์—†์Œ๊ฑฐ๋ž˜ ๊ฐ€๋Šฅ ์ข…๋ชฉ๋งŒ ์ง€์ •(ํ™”์ดํŠธ๋ฆฌ์ŠคํŠธ)
TOSSINVEST_ALLOW_SELL_ORDERSfalse๋งค๋„ ์ฃผ๋ฌธ ํ—ˆ์šฉ ์—ฌ๋ถ€
TOSSINVEST_ALLOW_MARKET_ORDERSfalse์‹œ์žฅ๊ฐ€ ์ฃผ๋ฌธ ํ—ˆ์šฉ ์—ฌ๋ถ€
TOSSINVEST_MARKET_ORDER_BUFFER_PCT5์‹œ์žฅ๊ฐ€ ํ•œ๋„ ๊ณ„์‚ฐ์šฉ ์—ฌ์œ  ๋ฒ„ํผ(%)
TOSSINVEST_LOCK_ACCOUNTtrue์ง€์ •ํ•œ ๊ธฐ๋ณธ ๊ณ„์ขŒ๋กœ๋งŒ ์ฃผ๋ฌธํ•˜๋„๋ก ์ž ๊ธˆ
TOSSINVEST_GUARD_STATE_PATHOS ๋ฐ์ดํ„ฐ ํด๋”ํ•˜๋ฃจ ํ•œ๋„ ์ง‘๊ณ„๋ฅผ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ ๊ฒฝ๋กœ

์˜ต์…˜๋ณ„ ์ƒ์„ธ ์„ค๋ช…

TOSSINVEST_REQUIRE_ORDER_CONFIRMATION (๊ธฐ๋ณธ: true)

์ฃผ๋ฌธ ์ƒ์„ฑยท์ •์ •ยท์ทจ์†Œ๋ฅผ ํ•˜๋ ค๋ฉด ์š”์ฒญ์— confirmOrderAction: true๊ฐ€ ๋“ค์–ด ์žˆ์–ด์•ผ ์‹ค์ œ๋กœ ํ† ์Šค์— ์ „์†ก๋ฉ๋‹ˆ๋‹ค. AI๊ฐ€ ๋Œ€ํ™” ์ค‘์— ์‹ค์ˆ˜๋กœ ์ฃผ๋ฌธ์„ ๋„ฃ๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์•ˆ์ „์žฅ์น˜์ž…๋‹ˆ๋‹ค. ์ž๋™ํ™”์ฒ˜๋Ÿผ ๋งค๋ฒˆ ํ™•์ธ๊ฐ’์„ ๋„ฃ๊ธฐ ์–ด๋ ค์šฐ๋ฉด "false"๋กœ ๋Œ ์ˆ˜ ์žˆ๋Š”๋ฐ, ๋„๋”๋ผ๋„ ์•„๋ž˜์˜ ๊ธˆ์•กยท๊ฑด์ˆ˜ยท์ข…๋ชฉยท๋งค๋„/์‹œ์žฅ๊ฐ€ ํ•œ๋„๋Š” ๊ทธ๋Œ€๋กœ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋„๊ธฐ ์ „์—๋Š” ๊ธˆ์•กยท์ผ์ผ ํ•œ๋„๋ฅผ ํ•จ๊ป˜ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ฐ•๋ ฅํžˆ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

TOSSINVEST_MAX_ORDER_AMOUNT_KRW (๊ธฐ๋ณธ: ์—†์Œ)

์›ํ™” ์ฃผ๋ฌธ ํ•œ ๊ฑด์˜ ๊ธˆ์•ก ์ƒํ•œ์ž…๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์ถ”์ • ๊ธˆ์•ก(์ง€์ •๊ฐ€๋Š” ์ˆ˜๋Ÿ‰ ร— ๊ฐ€๊ฒฉ, ์‹œ์žฅ๊ฐ€๋Š” ํ˜ธ๊ฐ€ + ๋ฒ„ํผ)์ด ์ด ๊ฐ’์„ ๋„˜์œผ๋ฉด ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: "500000" โ†’ ํ•œ ๋ฒˆ์— 50๋งŒ ์›์„ ๋„˜๋Š” ์›ํ™” ์ฃผ๋ฌธ์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด 1ํšŒ ๊ธˆ์•ก ์ œํ•œ์ด ์—†์Šต๋‹ˆ๋‹ค.

TOSSINVEST_MAX_ORDER_AMOUNT_USD (๊ธฐ๋ณธ: ์—†์Œ)

๋ฏธ๊ตญ(๋‹ฌ๋Ÿฌ) ์ฃผ์‹ ์ฃผ๋ฌธ ํ•œ ๊ฑด์˜ ๊ธˆ์•ก ์ƒํ•œ(๋‹ฌ๋Ÿฌ)์ž…๋‹ˆ๋‹ค. ์˜ˆ: "1000" โ†’ 1ํšŒ 1,000๋‹ฌ๋Ÿฌ ์ดˆ๊ณผ ์ฃผ๋ฌธ ์ฐจ๋‹จ. ์›โ†”๋‹ฌ๋Ÿฌ ํ™˜์‚ฐ์€ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์›ํ™” ํ•œ๋„๋Š” ์›ํ™” ์ฃผ๋ฌธ์—๋งŒ, ๋‹ฌ๋Ÿฌ ํ•œ๋„๋Š” ๋‹ฌ๋Ÿฌ ์ฃผ๋ฌธ์—๋งŒ ์ ์šฉ๋˜๋ฏ€๋กœ, ๋‘ ์‹œ์žฅ์„ ๋ชจ๋‘ ๊ฑฐ๋ž˜ํ•œ๋‹ค๋ฉด KRWยทUSD ํ•œ๋„๋ฅผ ๋ชจ๋‘ ์„ค์ •ํ•˜์„ธ์š”.

TOSSINVEST_DAILY_MAX_ORDER_AMOUNT_KRW (๊ธฐ๋ณธ: ์—†์Œ)

ํ•˜๋ฃจ ๋™์•ˆ(ํ•œ๊ตญ ์‹œ๊ฐ„ ๊ธฐ์ค€, ์ž์ •์— ์ดˆ๊ธฐํ™”) ์ด ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋„ฃ์€ ์›ํ™” ์ฃผ๋ฌธ ๊ธˆ์•ก์˜ ๋ˆ„์  ์ƒํ•œ์ž…๋‹ˆ๋‹ค. ์˜ˆ: "2000000" โ†’ ํ•˜๋ฃจ ํ•ฉ๊ณ„ 200๋งŒ ์›๊นŒ์ง€๋งŒ ์ฃผ๋ฌธ. ์ •์ • ์ฃผ๋ฌธ๋„ ๋ˆ„์ ์— ๋ฐ˜์˜๋˜๊ณ , ์ทจ์†Œ๋Š” ๋ฐ˜์˜๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์•„๋ž˜ "ํ•˜๋ฃจ ํ•œ๋„ ๊ณ„์‚ฐ ๋ฐฉ์‹" ์ฐธ๊ณ ).

TOSSINVEST_DAILY_MAX_ORDER_AMOUNT_USD (๊ธฐ๋ณธ: ์—†์Œ)

์œ„ ํ•ญ๋ชฉ์˜ ๋‹ฌ๋Ÿฌ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ํ•˜๋ฃจ ๋ˆ„์  ๋‹ฌ๋Ÿฌ ์ฃผ๋ฌธ ๊ธˆ์•ก ์ƒํ•œ.

TOSSINVEST_DAILY_MAX_ORDER_COUNT (๊ธฐ๋ณธ: ์—†์Œ)

ํ•˜๋ฃจ ์ฃผ๋ฌธ ๊ฑด์ˆ˜ ์ƒํ•œ์ž…๋‹ˆ๋‹ค. ์˜ˆ: "10" โ†’ ํ•˜๋ฃจ 10๊ฑด๊นŒ์ง€๋งŒ. ์ •์ •์€ ์ƒˆ ์ฃผ๋ฌธ 1๊ฑด์œผ๋กœ ์…‰๋‹ˆ๋‹ค. ์ทจ์†Œ๋Š” ๊ฑด์ˆ˜์— ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ณผ๋„ํ•˜๊ฒŒ ์žฆ์€ ๋งค๋งค๋ฅผ ๋ง‰๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

TOSSINVEST_ALLOWED_SYMBOLS (๊ธฐ๋ณธ: ์—†์Œ)

๊ฑฐ๋ž˜๋ฅผ ํ—ˆ์šฉํ•  ์ข…๋ชฉ๋งŒ ์ฝค๋งˆ๋กœ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก์— ์—†๋Š” ์ข…๋ชฉ์˜ ์ฃผ๋ฌธ์€ ์ฐจ๋‹จ๋ฉ๋‹ˆ๋‹ค(์ƒ์„ฑยท์ •์ • ๋ชจ๋‘). ์˜ˆ: "005930,AAPL,VOO"(์‚ผ์„ฑ์ „์ž, ์• ํ”Œ, VOO). ๊ตญ๋‚ด๋Š” 6์ž๋ฆฌ ์ˆซ์ž ์ฝ”๋“œ, ๋ฏธ๊ตญ์€ ํ‹ฐ์ปค๋ฅผ ์”๋‹ˆ๋‹ค. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ์ข…๋ชฉ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. "์ •ํ•ด๋‘” ์ข…๋ชฉ๋งŒ ๊ฑฐ๋ž˜"ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•˜์„ธ์š”.

TOSSINVEST_ALLOW_SELL_ORDERS (๊ธฐ๋ณธ: false)

๋งค๋„ ์ฃผ๋ฌธ ํ—ˆ์šฉ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ๋งค์ˆ˜๋งŒ ํ—ˆ์šฉ์ด๋ฉฐ, ๋งค๋„ ์ฃผ๋ฌธ์„ ๋‚ด๋ ค๋ฉด "true"๋กœ ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒ์„ฑ๋ฟ ์•„๋‹ˆ๋ผ ์ •์ •์—๋„ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค(๋งค๋„ ์ฃผ๋ฌธ ์ •์ •์€ ๋งค๋„๊ฐ€ ํ—ˆ์šฉ๋ผ ์žˆ์–ด์•ผ ๊ฐ€๋Šฅ). ์ด๋ฏธ ๋‚ธ ์ฃผ๋ฌธ์˜ ์ทจ์†Œ๋Š” ํ•ญ์ƒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

TOSSINVEST_ALLOW_MARKET_ORDERS (๊ธฐ๋ณธ: false)

์‹œ์žฅ๊ฐ€(MARKET) ์ฃผ๋ฌธ ํ—ˆ์šฉ ์—ฌ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ ์‹œ์žฅ๊ฐ€ ์ฐจ๋‹จ(๊ฐ€๊ฒฉ์„ ์ง์ ‘ ์ •ํ•˜๋Š” ์ง€์ •๊ฐ€ LIMIT๋งŒ ํ—ˆ์šฉ)์ž…๋‹ˆ๋‹ค. ์‹œ์žฅ๊ฐ€๋Š” ์ฒด๊ฒฐ ๊ฐ€๊ฒฉ์ด ์˜ˆ์ƒ๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋ถˆ๋ฆฌํ•ด์งˆ ์ˆ˜ ์žˆ์–ด ๋ณด์ˆ˜์ ์œผ๋กœ ๊บผ ๋‘ก๋‹ˆ๋‹ค. ์‹œ์žฅ๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋ฉด "true"๋กœ ์ผœ์„ธ์š”. ์ด ์ฐจ๋‹จ์€ ์ •์ •์—๋„ ์ ์šฉ๋˜์–ด, ์‹œ์žฅ๊ฐ€๊ฐ€ ๊บผ์ ธ ์žˆ์œผ๋ฉด ์ง€์ •๊ฐ€ ์ฃผ๋ฌธ์„ ์ •์ •์œผ๋กœ ์‹œ์žฅ๊ฐ€๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

TOSSINVEST_MARKET_ORDER_BUFFER_PCT (๊ธฐ๋ณธ: 5)

์‹œ์žฅ๊ฐ€ ๋งค์ˆ˜์˜ ์˜ˆ์ƒ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•  ๋•Œ ํ˜„์žฌ ํ˜ธ๊ฐ€์— ๋”ํ•˜๋Š” ์—ฌ์œ  ๋ฒ„ํผ(%)์ž…๋‹ˆ๋‹ค. ๊ธˆ์•ก ํ•œ๋„๋ฅผ ๋ณด์ˆ˜์ ์œผ๋กœ(์กฐ๊ธˆ ๋” ํฌ๊ฒŒ ์žก์•„) ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์ž…๋‹ˆ๋‹ค. ์˜ˆ: 5๋ฉด ํ˜ธ๊ฐ€๋ณด๋‹ค 5% ๋†’๊ฒŒ ์žก์•„ ํ•œ๋„๋ฅผ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์‹œ์žฅ๊ฐ€๋ฅผ ์ผฐ์„ ๋•Œ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

TOSSINVEST_LOCK_ACCOUNT (๊ธฐ๋ณธ: true)

์ฃผ๋ฌธ ์š”์ฒญ์— ๋“ค์–ด์˜จ accountSeq๊ฐ€ ๊ธฐ๋ณธ ๊ณ„์ขŒ(TOSSINVEST_ACCOUNT)์™€ ๋‹ค๋ฅด๋ฉด ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ˆ˜๋กœ ๋‹ค๋ฅธ ๊ณ„์ขŒ์— ์ฃผ๋ฌธ์ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ๋ง‰์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ๊ณ„์ขŒ๋ฅผ ์˜ค๊ฐ€๋ฉฐ ์ฃผ๋ฌธํ•ด์•ผ ํ•œ๋‹ค๋ฉด "false"๋กœ ๋„์„ธ์š”.

TOSSINVEST_GUARD_STATE_PATH (๊ธฐ๋ณธ: OS ๋ฐ์ดํ„ฐ ํด๋”)

ํ•˜๋ฃจ ํ•œ๋„ ์ง‘๊ณ„๋ฅผ ์ €์žฅํ•˜๋Š” ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. ๋ณดํ†ต ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค(๋ฏธ์„ค์ • ์‹œ OS ๋ฐ์ดํ„ฐ ํด๋”์˜ tossinvest-mcp/guard-state.json). ๊ฐ™์€ ์ปดํ“จํ„ฐ์—์„œ ์ด MCP๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋™์‹œ์— ๋„์šด๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ์ง€์ •ํ•˜์„ธ์š”(์•„๋ž˜ "์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค ์‚ฌ์šฉ ์‹œ" ์ฐธ๊ณ ).

์ฒ˜์Œ ๊ฑฐ๋ž˜๋ฅผ ์ผค ๋•Œ ๊ถŒ์žฅ ์„ค์ •

๊ฑฐ๋ž˜๋ฅผ ์ฒ˜์Œ ์ผค ๋•Œ๋Š” ํ•œ๋„๋ฅผ ์ž‘๊ฒŒ ์žก์•„ ๋‘๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” "๊ตญ๋‚ด ์ฃผ์‹๋งŒ, ์ •ํ•ด๋‘” ์ข…๋ชฉ๋งŒ, ์ง€์ •๊ฐ€๋งŒ, 1ํšŒยทํ•˜๋ฃจ ๊ธˆ์•ก๊ณผ ๊ฑด์ˆ˜๋ฅผ ์ œํ•œ"ํ•œ ๋ณด์ˆ˜์ ์ธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

{
  "mcpServers": {
    "tossinvest": {
      "command": "npx",
      "args": ["tossinvest-mcp"],
      "env": {
        "TOSSINVEST_API_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-API-Key",
        "TOSSINVEST_SECRET_KEY": "๋ฐœ๊ธ‰๋ฐ›์€-Secret-Key",
        "TOSSINVEST_ACCOUNT": "1",
        "TOSSINVEST_ENABLE_TRADING": "true",
        "TOSSINVEST_ALLOWED_SYMBOLS": "005930",
        "TOSSINVEST_MAX_ORDER_AMOUNT_KRW": "300000",
        "TOSSINVEST_DAILY_MAX_ORDER_AMOUNT_KRW": "1000000",
        "TOSSINVEST_DAILY_MAX_ORDER_COUNT": "5"
      }
    }
  }
}

์ด ์˜ˆ์‹œ๋Š” ๋งค๋„์™€ ์‹œ์žฅ๊ฐ€๊ฐ€ ๊ธฐ๋ณธ๊ฐ’(false)์œผ๋กœ ๊บผ์ ธ ์žˆ์–ด ์‚ผ์„ฑ์ „์ž ์ง€์ •๊ฐ€ ๋งค์ˆ˜๋งŒ, 1ํšŒ 30๋งŒ ์›ยทํ•˜๋ฃจ 100๋งŒ ์›ยทํ•˜๋ฃจ 5๊ฑด๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ต์ˆ™ํ•ด์ง„ ๋’ค ์ข…๋ชฉ๊ณผ ํ•œ๋„๋ฅผ ์กฐ๊ธˆ์”ฉ ๋„“ํ˜€ ๊ฐ€์„ธ์š”.

์ฐธ๊ณ  ์‚ฌํ•ญ:

  • ํ†ตํ™”๋ณ„ ํ•œ๋„: KRW ํ•œ๋„๋งŒ ์„ค์ •ํ•˜๋ฉด USD ์ฃผ๋ฌธ์—๋Š” ๋‹จ์ผ/์ผ์ผ ๊ธˆ์•ก ํ•œ๋„๊ฐ€ ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ทธ ๋ฐ˜๋Œ€๋„ ๋งˆ์ฐฌ๊ฐ€์ง€). ๋‘ ํ†ตํ™”๋ฅผ ๋ชจ๋‘ ๊ฑฐ๋ž˜ํ•œ๋‹ค๋ฉด ์–‘์ชฝ ํ•œ๋„๋ฅผ ์„ค์ •ํ•˜์„ธ์š”.
  • ์ผ์ผ ํ•œ๋„ ๋ฒ”์œ„: ์ด MCP๋ฅผ ํ†ตํ•ด ์„ฑ๊ณตํ•œ ์ฃผ๋ฌธ๋งŒ ๊ฐ€๋“œ ์ƒํƒœ ํŒŒ์ผ์— ๊ธฐ๋กยท์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ํ† ์Šค์•ฑ ๋“ฑ ๊ณ„์ขŒ์˜ ๋‹ค๋ฅธ ํ™œ๋™์€ ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๋‹จ์ผ ์„ธ์…˜ยท๋‹จ์ผ MCP ์ „์ œ).
  • ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค ์‚ฌ์šฉ ์‹œ: ์ผ์ผ ํ•œ๋„ ์ง๋ ฌํ™”๋Š” ๋‹จ์ผ ํ”„๋กœ์„ธ์Šค ์•ˆ์—์„œ๋งŒ ๋ณด์žฅ๋ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ OS ์‚ฌ์šฉ์ž๋กœ ์ด MCP๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ๋™์‹œ์— ์‹คํ–‰ํ•˜๋ฉด ๊ธฐ๋ณธ ์ƒํƒœ ํŒŒ์ผ ๊ฒฝ๋กœ๊ฐ€ ๊ฐ™์•„ ์ง‘๊ณ„๊ฐ€ ์„œ๋กœ ๋ฎ์–ด์จ์ ธ ํ•œ๋„๊ฐ€ ์–ด๊ธ‹๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋งˆ๋‹ค TOSSINVEST_GUARD_STATE_PATH๋ฅผ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฒฝ๋กœ๋กœ ๋ถ„๋ฆฌํ•ด ์ง€์ •ํ•˜์„ธ์š”(์ธ์Šคํ„ด์Šค๋ณ„ ๋…๋ฆฝ ํ•œ๋„). ํ•œ ๊ณ„์ขŒ์˜ ํ•œ๋„๋ฅผ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋กœ ํ•ฉ์น˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ•˜๋ฃจ ํ•œ๋„ ๊ณ„์‚ฐ ๋ฐฉ์‹: ์ƒ์„ฑ๊ณผ ์ •์ • ์ฃผ๋ฌธ์ด ๋‹น์ผ ๊ฑด์ˆ˜/๊ธˆ์•ก์— ์ง‘๊ณ„๋ฉ๋‹ˆ๋‹ค(์ •์ •์€ ์ƒˆ ์ฃผ๋ฌธ 1๊ฑด์œผ๋กœ ์นด์šดํŠธํ•˜๊ณ , ๋Œ€์ฒด๋œ ์›์ฃผ๋ฌธ์€ ์ฒด๊ฒฐ๋œ ๊ธˆ์•ก๋งŒ ๋ฐ˜์˜). ์ทจ์†Œ๋Š” ํ•œ๋„์— ํฌํ•จ๋˜์ง€ ์•Š์œผ๋ฉฐ ํ•ญ์ƒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค(๋ฆฌ์Šคํฌ ์ถ•์†Œ ๊ฒฝ๋กœ๋ฅผ ๋ง‰์ง€ ์•Š๊ธฐ ์œ„ํ•จ). ํ•˜๋ฃจ ๊ธˆ์•ก ํ•œ๋„๊ฐ€ ์ผœ์ ธ ์žˆ์œผ๋ฉด, ํ•œ๋„ ๊ฒ€์‚ฌ ์‹œ ๋‹น์ผ ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ์„ ํ† ์Šค API๋กœ ๋‹ค์‹œ ์กฐํšŒํ•ด ์ฒด๊ฒฐ๊ธˆ์•ก + ๋ฏธ์ฒด๊ฒฐ ์ž”๋Ÿ‰์œผ๋กœ ๋งค๋ฒˆ ์žฌ๊ณ„์‚ฐํ•˜๊ณ , ์ฒด๊ฒฐยท์ทจ์†Œยท๊ฑฐ๋ถ€ยท์ •์ •์™„๋ฃŒ๋œ ์ฃผ๋ฌธ์€ ์‹ค์ œ ์ฒด๊ฒฐ๊ธˆ์•ก๋งŒ ํ™•์ • ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ ์กฐํšŒ์— ์‹คํŒจํ•˜๋ฉด ๊ฒ€์ฆ ๋ถˆ๊ฐ€๋กœ ๊ฐ„์ฃผํ•ด ์‹ ๊ทœ ์ฃผ๋ฌธ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. (๊ฑด์ˆ˜ ํ•œ๋„๋งŒ ์ผ  ๊ฒฝ์šฐ์—๋Š” ์ด ์žฌ์กฐํšŒ ์—†์ด ๋‹น์ผ ๊ธฐ๋ก ๊ฑด์ˆ˜๋งŒ์œผ๋กœ ํŒ๋‹จํ•ฉ๋‹ˆ๋‹ค.)
  • ์ถ”์ • ๋ถˆ๊ฐ€ ์‹œ ์ฐจ๋‹จ: ๊ฐ€๊ฒฉยทํ˜ธ๊ฐ€ยทํ†ตํ™”๋ฅผ ํ™•์ •ํ•  ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ƒํƒœ ํŒŒ์ผ์„ ์ฝ์„ ์ˆ˜ ์—†์œผ๋ฉด ์•ˆ์ „์„ ์œ„ํ•ด ์ฃผ๋ฌธ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ถ”์ธก์œผ๋กœ ์ฃผ๋ฌธ์„ ์ง„ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์‘๋‹ต ์ง€์—ฐ ๋ณดํ˜ธ: ํ† ์Šค API ์š”์ฒญ์€ 20์ดˆ ์•ˆ์— ์‘๋‹ต์ด ์—†์œผ๋ฉด ์ž๋™์œผ๋กœ ์ค‘๋‹จ๋˜์–ด, ๋„คํŠธ์›Œํฌ ๋ฌธ์ œ๋กœ ๋„๊ตฌ๊ฐ€ ๋ฌดํ•œ์ • ๋ฉˆ์ถ”์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • clientOrderId: ์ž…๋ ฅ์— ์—†์œผ๋ฉด tossinvest-mcp-YYYYMMDD- ์ ‘๋‘๋กœ ์ž๋™ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํ† ์Šค๋Š” ์ด ๊ฐ’์„ 10๋ถ„๊ฐ„ ์ค‘๋ณต ์ฃผ๋ฌธ ๋ฐฉ์ง€ ํ‚ค๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค๋ช…

์ด๋ฆ„ํ•„์ˆ˜์„ค๋ช…
TOSSINVEST_API_KEY์˜ˆํ† ์Šค์ฆ๊ถŒ Open API ํ™”๋ฉด์˜ API Key
TOSSINVEST_SECRET_KEY์˜ˆํ† ์Šค์ฆ๊ถŒ Open API ํ™”๋ฉด์˜ Secret Key
TOSSINVEST_ACCOUNT์•„๋‹ˆ์˜ค๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•  ํ† ์Šค์ฆ๊ถŒ accountSeq. ๋ฏธ์„ค์ • ์‹œ 1
TOSSINVEST_BASE_URL์•„๋‹ˆ์˜ค๊ธฐ๋ณธ๊ฐ’์€ https://openapi.tossinvest.com
TOSSINVEST_ENABLE_TRADING์•„๋‹ˆ์˜คtrue๋กœ ์„ค์ •ํ•ด์•ผ ์ฃผ๋ฌธ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œ ๋„๊ตฌ๊ฐ€ ๋“ฑ๋ก๋ฉ๋‹ˆ๋‹ค

๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ ๊ด€๋ จ ํ™˜๊ฒฝ๋ณ€์ˆ˜๋Š” ์œ„์˜ ๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ ํ‘œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฌธ์ œ ํ•ด๊ฒฐ

node ๋ช…๋ น์„ ์ฐพ์„ ์ˆ˜ ์—†๋‹ค๊ณ  ๋‚˜์˜ต๋‹ˆ๋‹ค

Node.js๊ฐ€ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š๊ฑฐ๋‚˜ PATH์— ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์ƒํƒœ์ž…๋‹ˆ๋‹ค. https://nodejs.org ์—์„œ LTS ๋ฒ„์ „์„ ์„ค์น˜ํ•œ ๋’ค ํ„ฐ๋ฏธ๋„์„ ์ƒˆ๋กœ ์—ด๊ณ  ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”.

ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์˜ต๋‹ˆ๋‹ค

ํ˜„์žฌ ์ปดํ“จํ„ฐ์˜ ๊ณต์ธ IP๊ฐ€ ํ† ์Šค์ฆ๊ถŒ Open API ํ—ˆ์šฉ IP ๋ชฉ๋ก์— ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์˜ ์„ค์น˜๋ฐฉ๋ฒ• > 3. ํ—ˆ์šฉ IP ๋“ฑ๋ก ๋‹จ๊ณ„๋ฅผ ๋‹ค์‹œ ํ™•์ธํ•ด ํ˜„์žฌ ๊ณต์ธ IP๋ฅผ ๋“ฑ๋กํ•˜์„ธ์š”. ์ง‘, ํšŒ์‚ฌ, ์นดํŽ˜, VPN ๋“ฑ ๋„คํŠธ์›Œํฌ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๊ณต์ธ IP๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MCP ํด๋ผ์ด์–ธํŠธ์— ๋„๊ตฌ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์„ค์ • JSON ๋ฌธ๋ฒ•์ด ์˜ฌ๋ฐ”๋ฅธ์ง€ ํ™•์ธํ•˜๊ณ , MCP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ•œ ๋’ค ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”. TOSSINVEST_API_KEY์™€ TOSSINVEST_SECRET_KEY๊ฐ€ ๋น„์–ด ์žˆ์œผ๋ฉด ์„œ๋ฒ„๊ฐ€ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ณ„์ขŒ ์กฐํšŒ๋Š” ๋˜๋Š”๋ฐ ๋ณด์œ  ์ฃผ์‹ ์กฐํšŒ๊ฐ€ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค

๋ณด์œ  ์ฃผ์‹, ์ฃผ๋ฌธ, ๋งค์ˆ˜ ๊ฐ€๋Šฅ ๊ธˆ์•ก ๊ฐ™์€ ๊ณ„์ขŒ ๊ด€๋ จ ๊ธฐ๋Šฅ์—๋Š” accountSeq๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ๊ทธ๋žจ์€ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ 1์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ขŒ ๋ชฉ๋ก ์กฐํšŒ ๊ฒฐ๊ณผ์—์„œ ๋‹ค๋ฅธ accountSeq๋ฅผ ์จ์•ผ ํ•œ๋‹ค๋ฉด TOSSINVEST_ACCOUNT๋ฅผ ๊ทธ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹คํ–‰ํ•˜์„ธ์š”.

์ฃผ๋ฌธ ๋„๊ตฌ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค

์ •์ƒ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ๋Š” ์ฃผ๋ฌธ ๋„๊ตฌ๊ฐ€ ๋“ฑ๋ก๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๊ฑฐ๋ž˜๋ฅผ ํ—ˆ์šฉํ•˜๋ ค๋ฉด TOSSINVEST_ENABLE_TRADING์„ true๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

TOSSINVEST_ENABLE_TRADING์„ true๋กœ ์„ค์ •ํ–ˆ๋Š”๋ฐ๋„ ์ฃผ๋ฌธ์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค

์ฃผ๋ฌธ ๋„๊ตฌ๊ฐ€ ๋ณด์ด๋”๋ผ๋„ ๊ธฐ๋ณธ ์„ค์ •์—์„œ๋Š” ์ฃผ๋ฌธ ์š”์ฒญ๋งˆ๋‹ค confirmOrderAction: true๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

AI์—๊ฒŒ ์ฃผ๋ฌธ์„ ์š”์ฒญํ•  ๋•Œ ์•„๋ž˜์ฒ˜๋Ÿผ ํ™•์ธ๊ฐ’์„ ๋„ฃ์œผ๋ผ๊ณ  ๋ช…์‹œํ•˜์„ธ์š”.

์‹ค์ œ ์ฃผ๋ฌธ ์‹คํ–‰์„ ํ™•์ธํ•˜๋ฉฐ confirmOrderAction ๊ฐ’์„ true๋กœ ๋„ฃ์–ด์ค˜.

์ž๋™ํ™” ํ™˜๊ฒฝ์ฒ˜๋Ÿผ ๋งค๋ฒˆ ์ด ๊ฐ’์„ ๋„ฃ๊ธฐ ์–ด๋ ต๋‹ค๋ฉด TOSSINVEST_REQUIRE_ORDER_CONFIRMATION=false๋กœ ํ™•์ธ ์š”๊ตฌ๋งŒ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ๋„ ๊ธˆ์•กยท์ผ์ผยท๋งค๋„ยท์‹œ์žฅ๊ฐ€ ๋“ฑ ์ผœ์ ธ ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐ€๋“œ๋ ˆ์ผ์€ ๊ณ„์† ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฃผ๋ฌธ ์ •์ • ํ›„ ๊ธฐ์กด orderId๋กœ ์กฐํšŒํ•œ ๋‚ด์šฉ์ด ์ด์ƒํ•ฉ๋‹ˆ๋‹ค

ํ† ์Šค์ฆ๊ถŒ ์ฃผ๋ฌธ ์ •์ •์€ ์ƒˆ orderId๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ •์ • ์‘๋‹ต์˜ ์ƒˆ orderId๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

"cannot reconcile open order ..." ์˜ค๋ฅ˜๋กœ ๋ชจ๋“  ์ฃผ๋ฌธ์ด ๋ง‰ํž™๋‹ˆ๋‹ค

์ผ์ผ ๊ธˆ์•ก ํ•œ๋„๊ฐ€ ์ผœ์ง„ ๊ฒฝ์šฐ, ์‹ ๊ทœ ์ฃผ๋ฌธ ์ „์— ๋‹น์ผ ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ† ์Šค API๋กœ ์กฐํšŒํ•ด ํ•œ๋„๋ฅผ ์žฌ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ์กฐํšŒ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๊ฒ€์ฆ ๋ถˆ๊ฐ€๋กœ ๊ฐ„์ฃผํ•ด ์•ˆ์ „ํ•˜๊ฒŒ ์ฃผ๋ฌธ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค(์ถ”์ธก์œผ๋กœ ์ง„ํ–‰ํ•˜์ง€ ์•Š์Œ). ์ผ์‹œ์ ์ธ ๋„คํŠธ์›Œํฌ/ํ•œ๋„(429) ๋ฌธ์ œ๋ผ๋ฉด ์ž ์‹œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋ฉด ํ•ด์†Œ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋“œ ์ƒํƒœ ํŒŒ์ผ์— ๋” ์ด์ƒ ์กฐํšŒ๋˜์ง€ ์•Š๋Š” ์ฃผ๋ฌธ์ด ๋‚จ์•„ ๊ณ„์† ์ฐจ๋‹จ๋œ๋‹ค๋ฉด, ๊ฑฐ๋ž˜๊ฐ€ ์—†๋Š” ์‹œ๊ฐ„์— ์ƒํƒœ ํŒŒ์ผ(TOSSINVEST_GUARD_STATE_PATH ๊ฒฝ๋กœ, ๋ฏธ์„ค์ • ์‹œ OS ๋ฐ์ดํ„ฐ ํด๋”์˜ tossinvest-mcp/guard-state.json)์„ ๋ฐฑ์—… ํ›„ ์‚ญ์ œํ•˜๋ฉด ๋‹น์ผ ์ง‘๊ณ„๊ฐ€ ์ดˆ๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค(์ด MCP๋กœ ๋„ฃ์€ ๋‹น์ผ ์ฃผ๋ฌธ ์ง‘๊ณ„๋งŒ ์‚ฌ๋ผ์ง€๋ฉฐ, ์‹ค์ œ ์ฃผ๋ฌธ์—๋Š” ์˜ํ–ฅ์ด ์—†์Šต๋‹ˆ๋‹ค).

์ฃผ๋ฌธ์ด Order blocked: ... ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋ง‰ํž™๋‹ˆ๋‹ค

๋Œ€๋ถ€๋ถ„ ์„ค์ •ํ•œ ๊ฐ€๋“œ๋ ˆ์ผ์— ๊ฑธ๋ฆฐ ์˜๋„๋œ ์ฐจ๋‹จ์ž…๋‹ˆ๋‹ค. ๋ฉ”์‹œ์ง€์˜ ํ‚ค์›Œ๋“œ๋กœ ์›์ธ์„ ํ™•์ธํ•˜์„ธ์š”(์•„๋ž˜ ์˜ค๋ฅ˜ ๋ฐ ์ฐจ๋‹จ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก ์ฐธ๊ณ ). ์˜ˆ: ... amount ... exceeds the per-order limit๋Š” 1ํšŒ ๊ธˆ์•ก ํ•œ๋„ ์ดˆ๊ณผ, daily ... limit reached๋Š” ํ•˜๋ฃจ ํ•œ๋„ ๋„๋‹ฌ, ... is not in TOSSINVEST_ALLOWED_SYMBOLS๋Š” ํ—ˆ์šฉ๋ชฉ๋ก ๋ฐ– ์ข…๋ชฉ์ž…๋‹ˆ๋‹ค. ํ•œ๋„๊ฐ€ ๋„ˆ๋ฌด ๋นก๋นกํ•˜๋ฉด ํ•ด๋‹น ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ฅผ ์กฐ์ •ํ•˜์„ธ์š”.

๋งค๋„(๋˜๋Š” ์‹œ์žฅ๊ฐ€) ์ฃผ๋ฌธ์ด ์•ˆ ๋ฉ๋‹ˆ๋‹ค

๊ธฐ๋ณธ๊ฐ’์—์„œ ๋งค๋„์™€ ์‹œ์žฅ๊ฐ€๋Š” ๊บผ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค๋„๋Š” TOSSINVEST_ALLOW_SELL_ORDERS=true, ์‹œ์žฅ๊ฐ€๋Š” TOSSINVEST_ALLOW_MARKET_ORDERS=true๋กœ ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฐจ๋‹จ์€ ์ •์ •์—๋„ ์ ์šฉ๋˜์–ด, ๋ˆ ์ƒํƒœ์—์„œ๋Š” ์ •์ •์œผ๋กœ๋„ ๋งค๋„/์‹œ์žฅ๊ฐ€ ์ฃผ๋ฌธ์„ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜๋ฃจ ํ•œ๋„๋ฅผ ์•ˆ ๋„˜์€ ๊ฒƒ ๊ฐ™์€๋ฐ ์ฃผ๋ฌธ์ด ๋ง‰ํž™๋‹ˆ๋‹ค

ํ•˜๋ฃจ ํ•œ๋„๋Š” ์ด MCP๋กœ ๋„ฃ์€ ์ฃผ๋ฌธ๋งŒ ์ง‘๊ณ„ํ•˜๋ฉฐ, ์ƒ์„ฑ๊ณผ ์ •์ •์ด ๋ชจ๋‘ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค(์ •์ •์€ ์ƒˆ ์ฃผ๋ฌธ 1๊ฑด์œผ๋กœ ์นด์šดํŠธ). ์ •์ •์„ ์—ฌ๋Ÿฌ ๋ฒˆ ํ–ˆ๋‹ค๋ฉด ๊ฑด์ˆ˜๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋Š˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ์€ ์ฒด๊ฒฐ๊ธˆ์•ก + ๋ฏธ์ฒด๊ฒฐ ์ž”๋Ÿ‰์œผ๋กœ ๋ณด์ˆ˜์ ์œผ๋กœ ๊ณ„์‚ฐ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๊ทœ์น™์€ ๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ์˜ "ํ•˜๋ฃจ ํ•œ๋„ ๊ณ„์‚ฐ ๋ฐฉ์‹"์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์‘๋‹ต์— _guardStateWarning์ด ๋ถ™์–ด ์žˆ์Šต๋‹ˆ๋‹ค

_guardStateWarning์ด ๋ณด์ด๋ฉด ์ฃผ๋ฌธ ์ž์ฒด๋Š” ์ด๋ฏธ ์„ฑ๊ณตํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‹ค๋งŒ ํ•˜๋ฃจ ํ•œ๋„ ์ง‘๊ณ„์— ํ•„์š”ํ•œ ๋‚ด๋ถ€ ๊ธฐ๋ก์ด ์ผ๋ถ€ ๋ˆ„๋ฝ๋์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค. ์ ˆ๋Œ€ ๋‹ค์‹œ ์ฃผ๋ฌธํ•˜์ง€ ๋งˆ์„ธ์š”(์ค‘๋ณต ์ฃผ๋ฌธ ์œ„ํ—˜). ๋“ค์–ด๊ฐ„ ์ฃผ๋ฌธ์€ ์ฃผ๋ฌธ ๋ชฉ๋ก/์ƒ์„ธ ์กฐํšŒ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ๋ฐ ์ฐจ๋‹จ ๋ฉ”์‹œ์ง€ ๋ชฉ๋ก

์ด ํ”„๋กœ๊ทธ๋žจ์ด ๋‚ผ ์ˆ˜ ์žˆ๋Š” ์ฃผ์š” ๋ฉ”์‹œ์ง€์™€ ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. Order blocked:๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ์ฃผ๋ฌธ์ด ํ† ์Šค์— ์ „์†ก๋˜๊ธฐ ์ „์— ์•ˆ์ „์„ ์œ„ํ•ด ๋ง‰์€ ๊ฒƒ์ž…๋‹ˆ๋‹ค(์‹ค์ œ ์ฃผ๋ฌธ์€ ๋‚˜๊ฐ€์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

1) ์ฃผ๋ฌธ ์ฐจ๋‹จ(๊ฐ€๋“œ๋ ˆ์ผ) ๋ฉ”์‹œ์ง€ โ€” Order blocked: ...

๋ฉ”์‹œ์ง€ ํ‚ค์›Œ๋“œ์˜๋ฏธํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
confirmOrderAction=true is required์ฃผ๋ฌธ ํ™•์ธ๊ฐ’ ๋ˆ„๋ฝ์š”์ฒญ์— confirmOrderAction: true ์ถ”๊ฐ€(๋˜๋Š” TOSSINVEST_REQUIRE_ORDER_CONFIRMATION=false)
account is locked to TOSSINVEST_ACCOUNT (...)์ž ๊ธด ๊ธฐ๋ณธ ๊ณ„์ขŒ์™€ ๋‹ค๋ฅธ ๊ณ„์ขŒ๋กœ ์ฃผ๋ฌธ๊ธฐ๋ณธ ๊ณ„์ขŒ๋กœ ์ฃผ๋ฌธํ•˜๊ฑฐ๋‚˜ TOSSINVEST_LOCK_ACCOUNT=false
sell orders are disabled๋งค๋„๊ฐ€ ๊บผ์ ธ ์žˆ์ŒTOSSINVEST_ALLOW_SELL_ORDERS=true
market orders are disabled์‹œ์žฅ๊ฐ€๊ฐ€ ๊บผ์ ธ ์žˆ์ŒTOSSINVEST_ALLOW_MARKET_ORDERS=true
... is not in TOSSINVEST_ALLOWED_SYMBOLSํ—ˆ์šฉ๋ชฉ๋ก ๋ฐ– ์ข…๋ชฉํ—ˆ์šฉ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ข…๋ชฉ ๋ณ€๊ฒฝ
estimated amount ... exceeds the per-order limit1ํšŒ ์ฃผ๋ฌธ ๊ธˆ์•ก ํ•œ๋„ ์ดˆ๊ณผ์ˆ˜๋Ÿ‰/๊ฐ€๊ฒฉ์„ ์ค„์ด๊ฑฐ๋‚˜ ํ•œ๋„๋ฅผ ์˜ฌ๋ฆผ
daily order count limit reached (n/m)ํ•˜๋ฃจ ์ฃผ๋ฌธ ๊ฑด์ˆ˜ ํ•œ๋„ ๋„๋‹ฌ๋‹ค์Œ ๋‚ (KST) ์ดˆ๊ธฐํ™”๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๊ฑฐ๋‚˜ ํ•œ๋„ ์ƒํ–ฅ
daily KRW/USD amount limit reachedํ•˜๋ฃจ ๋ˆ„์  ๊ธˆ์•ก ํ•œ๋„ ๋„๋‹ฌ์œ„์™€ ๋™์ผ
๊ตญ๋‚ด ์ฃผ์‹ ์ฃผ๋ฌธ ์ •์ •์€ ์ˆ˜๋Ÿ‰(quantity) ์ •์ •์ด ํ•„์ˆ˜KR ์ •์ •์— ์ˆ˜๋Ÿ‰ ๋ˆ„๋ฝquantity๋ฅผ ๋ช…์‹œ
๋ฏธ๊ตญ ์ฃผ์‹ ์ฃผ๋ฌธ ์ •์ •์€ ์ˆ˜๋Ÿ‰(quantity) ์ •์ •์„ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉฐUS ์ •์ •์— ์ˆ˜๋Ÿ‰ ์ „๋‹ฌquantity๋ฅผ ๋นผ๊ณ  price๋งŒ ์ž…๋ ฅ
์‹œ์žฅ๊ฐ€(MARKET) ์ฃผ๋ฌธ ์ •์ •์—๋Š” ๊ฐ€๊ฒฉ(price)์„ ์ „๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค์‹œ์žฅ๊ฐ€ ์ •์ •์— ๊ฐ€๊ฒฉ ์ „๋‹ฌprice๋ฅผ ๋นผ๊ณ  ์ •์ •
์ง€์ •๊ฐ€(LIMIT) ์ฃผ๋ฌธ ์ •์ •์—๋Š” ๊ฐ€๊ฒฉ(price)์ด ํ•„์ˆ˜์ง€์ •๊ฐ€ ์ •์ • ๊ฐ€๊ฒฉ ํ™•์ธ ๋ถˆ๊ฐ€price๋ฅผ ๋ช…์‹œ
cannot determine the currency/order type/side/symbol of order ...์ •์ • ๋Œ€์ƒ ์ฃผ๋ฌธ ์ •๋ณด ํ™•์ธ ๋ถˆ๊ฐ€orderId๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์ž ์‹œ ํ›„ ์žฌ์‹œ๋„(์ถ”์ธก์œผ๋กœ ์ง„ํ–‰ํ•˜์ง€ ์•Š์Œ)
cannot estimate ... amount / best ask/bid unavailable / did not report a recognized currency / could not read a recognized currency๊ฐ€๊ฒฉยทํ˜ธ๊ฐ€ยทํ†ตํ™”๋ฅผ ํ™•์ •ํ•  ์ˆ˜ ์—†์Œ์žฅ์ค‘ ํ˜ธ๊ฐ€๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ ํ›„ ์žฌ์‹œ๋„(ํŠนํžˆ ์‹œ์žฅ๊ฐ€๋Š” ํ˜ธ๊ฐ€ ํ•„์š”)
cannot reconcile open order ... against the daily limit๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ ์ƒํƒœ ์กฐํšŒ ์‹คํŒจ์œ„ "cannot reconcile open order" ํ•ญ๋ชฉ ์ฐธ๊ณ 
cannot read guard state file / is not valid JSON / must contain a JSON array์ƒํƒœ ํŒŒ์ผ ์†์ƒ/์ฝ๊ธฐ ์‹คํŒจ์ƒํƒœ ํŒŒ์ผ์„ ๋ฐฑ์—… ํ›„ ์‚ญ์ œ(์œ„ reconcile ํ•ญ๋ชฉ์˜ ๊ฒฝ๋กœ ์ฐธ๊ณ )

2) ํ† ์Šค API ์˜ค๋ฅ˜ (์‘๋‹ต ์ฝ”๋“œ/์ƒํƒœ)

๋ฉ”์‹œ์ง€/์ฝ”๋“œ์˜๋ฏธํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ IP ์ฃผ์†Œ์ž…๋‹ˆ๋‹ค.๊ณต์ธ IP ๋ฏธ๋“ฑ๋ก์„ค์น˜ 3๋‹จ๊ณ„๋Œ€๋กœ ํ˜„์žฌ ๊ณต์ธ IP๋ฅผ ํ—ˆ์šฉ ๋ชฉ๋ก์— ๋“ฑ๋ก
HTTP 401 / invalid-tokenํ‚ค ์˜ค๋ฅ˜ ๋˜๋Š” ๋น„ํ™œ์„ฑAPI Key/Secret Key์™€ ํ‚ค ํ™œ์„ฑ ์ƒํƒœ ํ™•์ธ
HTTP 429์š”์ฒญ ํ•œ๋„ ์ดˆ๊ณผ์ž ์‹œ ํ›„ ์žฌ์‹œ๋„(ํ”„๋กœ๊ทธ๋žจ์ด ์ผ๋ถ€ ์ž๋™ ์žฌ์‹œ๋„ํ•จ)
account-header-required๊ณ„์ขŒ ์ •๋ณด ํ•„์š”TOSSINVEST_ACCOUNT ๋˜๋Š” ์š”์ฒญ์˜ accountSeq ํ™•์ธ
confirm-high-value-required๊ณ ์•ก ์ฃผ๋ฌธ ํ™•์ธ ํ•„์š”๊ธˆ์•ก ์žฌํ™•์ธ ํ›„ ์ฃผ๋ฌธ ์ž…๋ ฅ์— confirmHighValueOrder: true

3) ๋„คํŠธ์›Œํฌ/์—ฐ๊ฒฐ ์˜ค๋ฅ˜

๋ฉ”์‹œ์ง€์˜๋ฏธํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
Failed to connect to Toss Open API.์—ฐ๊ฒฐ ์‹คํŒจ์ธํ„ฐ๋„ท, DNS, VPN, ๋ฐฉํ™”๋ฒฝ, TOSSINVEST_BASE_URL ํ™•์ธ
Toss Open API request timed out after 20s.์‘๋‹ต ์ง€์—ฐ(20์ดˆ ์ดˆ๊ณผ)๋„คํŠธ์›Œํฌ ์ƒํƒœ ํ™•์ธ ํ›„ ์žฌ์‹œ๋„
Invalid OAuth token response / OAuth token request failed (...)ํ† ํฐ ๋ฐœ๊ธ‰ ์‹คํŒจํ‚ค๋ฅผ ํ™•์ธํ•˜๊ณ  ์ž ์‹œ ํ›„ ์žฌ์‹œ๋„

4) ์ฃผ๋ฌธ์€ ์„ฑ๊ณตํ–ˆ์ง€๋งŒ ๊ฒฝ๊ณ ๊ฐ€ ๋ถ™์€ ๊ฒฝ์šฐ

์‘๋‹ต์— _guardStateWarning ํ•„๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ฃผ๋ฌธ์€ ์ •์ƒ์ ์œผ๋กœ ์ „์†กยท์ ‘์ˆ˜๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ํ•œ๋„ ์ง‘๊ณ„ ๊ธฐ๋ก๋งŒ ์ผ๋ถ€ ๋ˆ„๋ฝ๋์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒฝ๊ณ ์ด๋ฏ€๋กœ, ๋‹ค์‹œ ์ฃผ๋ฌธํ•˜์ง€ ๋ง๊ณ  ์ฃผ๋ฌธ ๋ชฉ๋ก์—์„œ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

๋ณ€๊ฒฝ ์‚ฌํ•ญ (0.2.0)

0.2.0์€ ๊ฑฐ๋ž˜ ์•ˆ์ „์žฅ์น˜๋ฅผ ๋Œ€ํญ ๊ฐ•ํ™”ํ•œ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์ฃผ์š” ๋ณ€๊ฒฝ์ :

  • TOSSINVEST_YOLO_TRADING ์˜ต์…˜ ์ œ๊ฑฐ โ†’ ์„ธ๋ถ„ํ™”๋œ ๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ๋กœ ๋Œ€์ฒดํ–ˆ์Šต๋‹ˆ๋‹ค. 1ํšŒ/ํ•˜๋ฃจ ๊ธˆ์•ก ํ•œ๋„, ํ•˜๋ฃจ ๊ฑด์ˆ˜ ํ•œ๋„, ์ข…๋ชฉ ํ—ˆ์šฉ๋ชฉ๋ก, ๋งค๋„ยท์‹œ์žฅ๊ฐ€ ์ฐจ๋‹จ, ๊ณ„์ขŒ ์ž ๊ธˆ์„ ๊ฐ๊ฐ ์ผค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (์œ„ ๊ฑฐ๋ž˜ ๊ฐ€๋“œ๋ ˆ์ผ ์ฐธ๊ณ )
  • ์ฃผ๋ฌธ ํ™•์ธ๊ฐ’ ์ฒด๊ณ„: ๊ธฐ๋ณธ๊ฐ’์—์„œ ๋ชจ๋“  ์ฃผ๋ฌธ์— confirmOrderAction: true๋ฅผ ์š”๊ตฌํ•ด, AI๊ฐ€ ์‹ค์ˆ˜๋กœ ์ฃผ๋ฌธ์„ ๋„ฃ๋Š” ๊ฒƒ์„ ๋ง‰์Šต๋‹ˆ๋‹ค.
  • ํ•˜๋ฃจ ํ•œ๋„๋ฅผ ์‹ค์ œ ์ฃผ๋ฌธ ์ƒํƒœ๋กœ ์žฌ๊ณ„์‚ฐ: ๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ์„ ํ† ์Šค์— ๋‹ค์‹œ ์กฐํšŒํ•ด ์ •์ •ยท์ทจ์†Œ๊นŒ์ง€ ์ •ํ™•ํžˆ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ฃผ๋ฌธ ์ •์ • ๊ทœ์น™ ๊ฐ•์ œ: ์ •์ •์€ ์›์ฃผ๋ฌธ์„ ๋Œ€์ฒดํ•ด ์ƒˆ orderId๋ฅผ ๋Œ๋ ค์ค€๋‹ค๋Š” ์ ์„ ๋ฐ˜์˜ํ•˜๊ณ , ๊ตญ๋‚ด/๋ฏธ๊ตญยท์ง€์ •๊ฐ€/์‹œ์žฅ๊ฐ€๋ณ„ ์ž…๋ ฅ ๊ทœ์น™์„ ์ฃผ๋ฌธ ์ „์— ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์ •์ •๋„ ์ƒ์„ฑ๊ณผ ๋™์ผํ•˜๊ฒŒ ๋งค๋„ยท์‹œ์žฅ๊ฐ€ ์ฐจ๋‹จ, ์ข…๋ชฉ ํ—ˆ์šฉ๋ชฉ๋ก, ๊ธˆ์•กยท๊ฑด์ˆ˜ ํ•œ๋„์˜ ์ ์šฉ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค(์ •์ •์œผ๋กœ ๊ฐ€๋“œ๋ ˆ์ผ์„ ์šฐํšŒํ•  ์ˆ˜ ์—†์Œ).
  • ์•ˆ์ •์„ฑ ๊ฐœ์„ : API ์š”์ฒญ 20์ดˆ ํƒ€์ž„์•„์›ƒ, OAuth ํ† ํฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๊ฐœ์„ , ์ฃผ๋ฌธ ๊ธฐ๋ก ์‹คํŒจ ์‹œ์—๋„ ์ฃผ๋ฌธ ์„ฑ๊ณต ์‘๋‹ต์„ ๋ณด์กดํ•˜๊ณ  ๊ฒฝ๊ณ ๋งŒ ์ฒจ๋ถ€.

์ž์„ธํ•œ ๋‚ด๋ถ€ ๋ณ€๊ฒฝ ์ด๋ ฅ์€ git ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ฐœ๋ฐœ์ž์šฉ

์ด ์ €์žฅ์†Œ๋ฅผ ์ง์ ‘ ๋ฐ›์•„ ๊ฐœ๋ฐœํ•˜๋ ค๋ฉด:

npm install
npm run typecheck
npm test
npm run build

์‹ค์ œ ์ฃผ๋ฌธ ์—†์ด ์ฃผ๋ฌธ ๋„๊ตฌ ํ๋ฆ„์„ mock ์„œ๋ฒ„๋กœ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด:

npm run smoke:trading:mock

๋ฉด์ฑ…์กฐํ•ญ

์ด ํ”„๋กœ๊ทธ๋žจ์€ ํ† ์Šค์ฆ๊ถŒ Open API๋ฅผ MCP์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ์—ฐ๊ฒฐํ•ด ์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ํˆฌ์ž ์ž๋ฌธ, ํˆฌ์ž ๊ถŒ์œ , ๋งค๋งค ์ถ”์ฒœ, ์ˆ˜์ต ๋ณด์žฅ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•ด ์กฐํšŒํ•œ ์ •๋ณด, AI๊ฐ€ ์ƒ์„ฑํ•œ ๋‹ต๋ณ€, AI๊ฐ€ ์ œ์•ˆํ•œ ์ฃผ๋ฌธ ๋‚ด์šฉ์€ ๋ถ€์ •ํ™•ํ•˜๊ฑฐ๋‚˜ ์ง€์—ฐ๋˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์˜ ์˜๋„์™€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ํˆฌ์ž ํŒ๋‹จ๊ณผ ์ฃผ๋ฌธ ์‹คํ–‰ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ์˜ ์ตœ์ข… ์ฑ…์ž„์€ ์‚ฌ์šฉ์ž์—๊ฒŒ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฑฐ๋ž˜ ๊ธฐ๋Šฅ์„ ์ผœ๊ณ  ์ฃผ๋ฌธ ์ƒ์„ฑ, ์ •์ •, ์ทจ์†Œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์‹ค์ œ ๊ณ„์ขŒ์— ์‹ค์ œ ์ฃผ๋ฌธ์ด ์ „์†ก๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ๋ฌธ ์ „ ์ข…๋ชฉ, ๊ฐ€๊ฒฉ, ์ˆ˜๋Ÿ‰, ์ฃผ๋ฌธ ์œ ํ˜•, ๊ณ„์ขŒ๋ฅผ ๋ฐ˜๋“œ์‹œ ์ง์ ‘ ํ™•์ธํ•˜์„ธ์š”.

ํ˜„์žฌ ์ด ํ”„๋กœ์ ํŠธ๋Š” ๊ฐœ๋ฐœ์ค‘์ธ ํ”„๋กœ์ ํŠธ๋กœ์„œ, ์ด ํ”„๋กœ์ ํŠธ์˜ ๊ฐœ๋ฐœ์ž์™€ ๋ฐฐํฌ์ž๋Š” ์ด ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์šฉ์œผ๋กœ ๋ฐœ์ƒํ•˜๋Š” ํˆฌ์ž ์†์‹ค, ์ฃผ๋ฌธ ์‹ค์ˆ˜, API ์žฅ์• , ๋ฐ์ดํ„ฐ ์˜ค๋ฅ˜, ํด๋ผ์ด์–ธํŠธ ์˜ค์ž‘๋™, AI ์‘๋‹ต ์˜ค๋ฅ˜ ๋“ฑ์— ๋Œ€ํ•ด ์ฑ…์ž„์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋ผ์ด์„ ์Šค

MIT License

ํ† ์Šค์ฆ๊ถŒ Open API ๊ณต์‹ ๋ฌธ์„œ: https://developers.tossinvest.com/docs

Related MCP Servers

@agentfund/mcp

๐Ÿ“‡ โ˜๏ธ - Fundraising infrastructure for AI agents on Solana โ€” campaigns, x402 donations, and on-chain reputation. MCP tools for registering agents, creating campaigns, and donating via the x402 pay-to-call flow, backed by Anchor programs (agentregistry, escrow, reputation). npx -y @agentfund/mcp

๐Ÿ’ฐ Finance & Fintech1 views
@asterpay/mcp-server

๐Ÿ“‡ โ˜๏ธ - EUR settlement for AI agents via x402 protocol. Market data, AI tools, crypto analytics โ€” pay-per-call in USDC on Base. SEPA Instant EUR off-ramp.

๐Ÿ’ฐ Finance & Fintech1 views
@czagents/cnb

๐Ÿ“‡ โ˜๏ธ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - Czech National Bank (ฤŒNB) daily FX rates: fetch official CZK exchange rates, convert between currencies, fetch historical rates. Cached 10 min to ease upstream load. npm @czagents/cnb or HTTP at cnb.cz-agents.dev/mcp.

๐Ÿ’ฐ Finance & Fintech1 views
@arbitova/mcp-server

๐Ÿ“‡ โ˜๏ธ - Non-custodial on-chain escrow + AI dispute arbitration for agent-to-agent USDC payments on Base. Seven tools covering the full EscrowV1 contract surface: create escrow, mark delivered with on-chain content hash, confirm or dispute, arbiter resolves with signed verdict, cancel/escalate on timeout. npx @arbitova/mcp-server

๐Ÿ’ฐ Finance & Fintech0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

No check timestamp yet.

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.