# tossinvest-mcp
## ํ๋ก๊ทธ๋จ ๊ฐ์
`tossinvest-mcp`๋ ํ ์ค์ฆ๊ถ Open API(ํ์ฌ๊ฐ ์กฐํ, ์ฃผ๋ฌธ, ์๊ณ ์กฐํ ๋ฑ)๋ฅผ OpenAI ์๋น์ค, Claude Desktop, Cursor ๊ฐ์ MCP ์ง์ ์ฑ์์ ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๋ก์ปฌ MCP ์๋ฒ์
๋๋ค.
์ฝ๊ฒ ๋งํด, ์ด ํ๋ก๊ทธ๋จ์ MCP ํด๋ผ์ด์ธํธ์ ๋ฑ๋กํ๋ฉด AI์๊ฒ ๋ค์์ฒ๋ผ ์์ฒญํ ์ ์์ต๋๋ค.
```text
์ผ์ฑ์ ์ ํ์ฌ๊ฐ๋ฅผ ์กฐํํด์ค.
```
```text
๋ด ํ ์ค์ฆ๊ถ ๋ณด์ ์ฃผ์์ ๋ณด์ฌ์ค.
```
```text
๋๊ธฐ ์ค์ธ ์ฃผ๋ฌธ ๋ชฉ๋ก์ ๋ณด์ฌ์ค.
```
์ด ํ๋ก๊ทธ๋จ์ ์ฌ์ฉ์์ ์ปดํจํฐ์์๋ง ์คํ๋ฉ๋๋ค.
## ๊ฐ์ฅ ์ค์ํ ์ฃผ์์ฌํญ
ํ ์ค์ฆ๊ถ 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๋ฅผ ํธ์ถํ์ง ์์ต๋๋ค.
- ๊ณ ๊ธ ์ต์
์ผ๋ก `TOSSINVEST_YOLO_TRADING=true`๋ฅผ ์ผ๋ฉด `confirmOrderAction` ์์ด๋ ์ฃผ๋ฌธ API๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์ด ์ต์
์ ์ค์ ๋ฐฉ์ง ์ฅ์น๋ฅผ ์ค์ด๋ฏ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค.
์ค์: `toss_modify_order`๋ ๊ธฐ์กด ์ฃผ๋ฌธ์ ๊ทธ ์๋ฆฌ์์ ์์ ํ๋ ๋จ์ PATCH๊ฐ ์๋๋๋ค. ํ ์ค์ฆ๊ถ API๋ ์์ฃผ๋ฌธ์ ๋์ฒดํ๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌํ๋ฉฐ, ์ ์ ํ ์ `orderId`๋ฅผ ๋ฐํํฉ๋๋ค. ์ดํ ์ฃผ๋ฌธ ์์ธ ์กฐํ, ์ฌ์ ์ , ์ทจ์์๋ ์๋ก ๋ฐ์ `orderId`๋ฅผ ์ฌ์ฉํ์ธ์.
## ์ค์น๋ฐฉ๋ฒ
์๋ ์์๋๋ก ์งํํ๋ฉด ๋ฉ๋๋ค.
### 1. Node.js ์ค์น ํ์ธ
ํฐ๋ฏธ๋ ๋๋ PowerShell์ ์ด๊ณ ์๋ ๋ช
๋ น์ด๋ฅผ ์
๋ ฅํฉ๋๋ค.
```bash
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):
```powershell
(Invoke-WebRequest -UseBasicParsing https://api.ipify.org).Content
```
macOS ๋๋ Linux ํฐ๋ฏธ๋:
```bash
curl https://api.ipify.org
```
๋์จ IP ์ฃผ์๋ฅผ ํ ์ค์ฆ๊ถ WTS์ Open API ์ค์ ํ๋ฉด์์ ํ์ฉ IP ๋ชฉ๋ก์ ์ถ๊ฐํฉ๋๋ค.
๋๋ต์ ์ธ ํ๋ฆ:
1. ํ ์ค์ฆ๊ถ WTS์ ๋ก๊ทธ์ธํฉ๋๋ค.
2. ์ค์ - Open API ๋ฉ๋ด๋ก ์ด๋ํฉ๋๋ค.
3. ํ์ฉ IP ๊ด๋ฆฌ ์์ญ์ ์ฐพ์ต๋๋ค.
4. ์์์ ํ์ธํ ๊ณต์ธ IP๋ฅผ ์ถ๊ฐํฉ๋๋ค.
### 4. MCP ํด๋ผ์ด์ธํธ์ ๋ฑ๋ก
MCP ํด๋ผ์ด์ธํธ์ ์ค์ ํ์ผ ๋๋ MCP Servers ์ค์ ํ๋ฉด์ ์๋ ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
```json
{
"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 ํด๋ผ์ด์ธํธ์์ ๋ค์์ฒ๋ผ ์์ฒญํฉ๋๋ค.
```text
ํ ์ค์ฆ๊ถ ๊ณ์ข ๋ชฉ๋ก์ ์กฐํํด์ค.
```
์๋ต์์ `accountSeq` ๊ฐ์ ์ฐพ์ต๋๋ค. ๋ค๋ฅธ ๊ณ์ข๋ฅผ ๊ธฐ๋ณธ ๊ณ์ข๋ก ์ฐ๊ณ ์ถ๋ค๋ฉด ์ค์ ์ ์๋ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ๋ฐ๊พธ๋ฉด ๋ฉ๋๋ค.
```json
"TOSSINVEST_ACCOUNT": "1"
```
์๋ฅผ ๋ค์ด `accountSeq`๊ฐ `2`์ธ ๊ณ์ข๋ฅผ ์ฐ๊ณ ์ถ๋ค๋ฉด ์ด๋ ๊ฒ ์ค์ ํฉ๋๋ค.
```json
"TOSSINVEST_ACCOUNT": "2"
```
๊ณ์ข๋ฒํธ๋ฅผ ๋ช
์ํ ์ ์ฒด ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
```json
{
"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 ํด๋ผ์ด์ธํธ์์ ์๋์ฒ๋ผ ์์ฒญํด ๋ด
๋๋ค.
```text
์ผ์ฑ์ ์ ํ์ฌ๊ฐ๋ฅผ ์กฐํํด์ค.
```
```text
๋ด ํ ์ค์ฆ๊ถ ๋ณด์ ์ฃผ์์ ๋ณด์ฌ์ค.
```
```text
AAPL ์ต๊ทผ ์ฒด๊ฒฐ ๋ด์ญ 10๊ฐ๋ฅผ ์กฐํํด์ค.
```
```text
๋๊ธฐ ์ค์ธ ์ฃผ๋ฌธ ๋ชฉ๋ก์ ๋ณด์ฌ์ค.
```
## ๊ฑฐ๋ ๊ธฐ๋ฅ ์ผ๊ธฐ
๋ค์ ํ ๋ฒ ํ์ธํ์ธ์. ํ ์ค์ฆ๊ถ Open API์๋ ์๋๋ฐ์ค๊ฐ ์์ต๋๋ค. ๊ฑฐ๋ ๊ธฐ๋ฅ์ ์ผ๋ฉด ์ค์ ์ฃผ๋ฌธ์ด ๋๊ฐ ์ ์์ต๋๋ค.
๊ฑฐ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ ค๋ฉด MCP ์ค์ ์ `env`์ ์๋ ๊ฐ์ ์ถ๊ฐํฉ๋๋ค.
```json
"TOSSINVEST_ENABLE_TRADING": "true"
```
์ ์ฒด ์์:
```json
{
"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 ์ค์ ์ ๋ฃ๋ ํ๊ฒฝ๋ณ์๊ฐ ์๋๋๋ค. ์ฃผ๋ฌธ ์์ฑ, ์ ์ , ์ทจ์ ๋๊ตฌ๋ฅผ ํธ์ถํ ๋๋ง๋ค ๋ค์ด๊ฐ๋ ์ฃผ๋ฌธ ์์ฒญ ์
๋ ฅ๊ฐ์
๋๋ค.
์๋ฅผ ๋ค์ด ์ฃผ๋ฌธ ์์ฑ ๋๊ตฌ์ ์ค์ ์
๋ ฅ์ ์ด๋ฐ ํํ์
๋๋ค.
```json
{
"confirmOrderAction": true,
"symbol": "005930",
"side": "BUY",
"orderType": "LIMIT",
"quantity": "1",
"price": "70000"
}
```
MCP ํด๋ผ์ด์ธํธ์์ ์์ฐ์ด๋ก ์์ฒญํ ๋๋ ์๋์ฒ๋ผ ๋ช
ํํ ๋งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
```text
ํ ์ค์ฆ๊ถ์์ ์ผ์ฑ์ ์ 1์ฃผ๋ฅผ 70000์ ์ง์ ๊ฐ๋ก ๋งค์ ์ฃผ๋ฌธํด์ค.
์ค์ ์ฃผ๋ฌธ ์คํ์ ํ์ธํ๋ฉฐ confirmOrderAction ๊ฐ์ true๋ก ๋ฃ์ด์ค.
```
์ ์ ์ด๋ ์ทจ์๋ ๋ง์ฐฌ๊ฐ์ง์
๋๋ค.
```text
์ด ์ฃผ๋ฌธ์ 71000์์ผ๋ก ์ ์ ํด์ค.
์ค์ ์ฃผ๋ฌธ ์ ์ ์ ํ์ธํ๋ฉฐ confirmOrderAction ๊ฐ์ true๋ก ๋ฃ์ด์ค.
```
```text
์ด ์ฃผ๋ฌธ์ ์ทจ์ํด์ค.
์ค์ ์ฃผ๋ฌธ ์ทจ์๋ฅผ ํ์ธํ๋ฉฐ confirmOrderAction ๊ฐ์ true๋ก ๋ฃ์ด์ค.
```
ํด๋ผ์ด์ธํธ์ ๋ฐ๋ผ ์ฃผ๋ฌธ ๋๊ตฌ ์คํ ์ ์ ์น์ธ ๋ฒํผ์ด๋ ํ์ธ ์ฐฝ์ ๋ณด์ฌ์ค ์ ์์ต๋๋ค. ๊ทธ ๊ฒฝ์ฐ์๋ `confirmOrderAction: true`๊ฐ ์ฃผ๋ฌธ tool ์
๋ ฅ์ ํฌํจ๋์ด์ผ ํฉ๋๋ค.
### ํ์ธ๊ฐ ์์ด ์ฃผ๋ฌธ ์คํํ๊ธฐ
์ผ๋ฐ์ ์ผ๋ก๋ ๊ถ์ฅํ์ง ์์ต๋๋ค. ํ์ง๋ง ์๋ํ ํ๊ฒฝ์ฒ๋ผ ๋งค๋ฒ `confirmOrderAction: true`๋ฅผ ๋ฃ๊ธฐ ์ด๋ ต๋ค๋ฉด ์๋ ๊ฐ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
```json
"TOSSINVEST_YOLO_TRADING": "true"
```
์ด ์ต์
์ `TOSSINVEST_ENABLE_TRADING=true`๊ฐ ์ผ์ ธ ์์ ๋๋ง ์๋ฏธ๊ฐ ์์ต๋๋ค. ๋ ๋ค ์ผ๋ฉด ์ฃผ๋ฌธ ์์ฑ, ์ ์ , ์ทจ์ ๋๊ตฌ๊ฐ `confirmOrderAction` ์์ด๋ ํ ์ค์ฆ๊ถ API๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค.
์ ์ฒด ์์:
```json
{
"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_YOLO_TRADING": "true"
}
}
}
}
```
์ด ์ค์ ์ ์ค์๋ก ์ฃผ๋ฌธ์ด ๋๊ฐ ๊ฐ๋ฅ์ฑ์ ๋์
๋๋ค. ์ฒ์ ์ค์นํ๊ฑฐ๋ ์ผ๋ฐ ์ฌ์ฉ ์ค์๋ ์ผ์ง ์๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.
## ํ๊ฒฝ๋ณ์ ์ค๋ช
| ์ด๋ฆ | ํ์ | ์ค๋ช
|
| --- | --- | --- |
| `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`๋ก ์ค์ ํด์ผ ์ฃผ๋ฌธ ์์ฑ, ์ ์ , ์ทจ์ ๋๊ตฌ๊ฐ ๋ฑ๋ก๋ฉ๋๋ค |
| `TOSSINVEST_YOLO_TRADING` | ์๋์ค | `true`๋ก ์ค์ ํ๋ฉด ์ฃผ๋ฌธ ๋๊ตฌ์์ `confirmOrderAction` ์์ด๋ API๋ฅผ ํธ์ถํฉ๋๋ค. ๊ถ์ฅํ์ง ์์ต๋๋ค |
## ๋ฌธ์ ํด๊ฒฐ
### `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์๊ฒ ์ฃผ๋ฌธ์ ์์ฒญํ ๋ ์๋์ฒ๋ผ ํ์ธ๊ฐ์ ๋ฃ์ผ๋ผ๊ณ ๋ช
์ํ์ธ์.
```text
์ค์ ์ฃผ๋ฌธ ์คํ์ ํ์ธํ๋ฉฐ confirmOrderAction ๊ฐ์ true๋ก ๋ฃ์ด์ค.
```
์๋ํ ํ๊ฒฝ์ฒ๋ผ ๋งค๋ฒ ์ด ๊ฐ์ ๋ฃ๊ธฐ ์ด๋ ต๋ค๋ฉด `TOSSINVEST_YOLO_TRADING=true`๋ฅผ ์ฌ์ฉํ ์ ์์ง๋ง, ์ด ์ต์
์ ์ค์๋ก ์ฃผ๋ฌธ์ด ๋๊ฐ ์ํ์ ๋์ด๋ฏ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค.
### ์ฃผ๋ฌธ ์ ์ ํ ๊ธฐ์กด orderId๋ก ์กฐํํ ๋ด์ฉ์ด ์ด์ํฉ๋๋ค
ํ ์ค์ฆ๊ถ ์ฃผ๋ฌธ ์ ์ ์ ์ `orderId`๋ฅผ ๋ฐํํฉ๋๋ค. ์ ์ ์๋ต์ ์ `orderId`๋ฅผ ์ฌ์ฉํ์ธ์.
## ๊ฐ๋ฐ์์ฉ
์ด ์ ์ฅ์๋ฅผ ์ง์ ๋ฐ์ ๊ฐ๋ฐํ๋ ค๋ฉด:
```bash
npm install
npm run typecheck
npm test
npm run build
```
์ค์ ์ฃผ๋ฌธ ์์ด ์ฃผ๋ฌธ ๋๊ตฌ ํ๋ฆ์ mock ์๋ฒ๋ก ํ
์คํธํ๋ ค๋ฉด:
```bash
npm run smoke:trading:mock
```
## ๋ฉด์ฑ
์กฐํญ
์ด ํ๋ก๊ทธ๋จ์ ํ ์ค์ฆ๊ถ Open API๋ฅผ MCP์์ ์ฌ์ฉํ ์ ์๊ฒ ์ฐ๊ฒฐํด ์ฃผ๋ ๋๊ตฌ์
๋๋ค. ํฌ์ ์๋ฌธ, ํฌ์ ๊ถ์ , ๋งค๋งค ์ถ์ฒ, ์์ต ๋ณด์ฅ ์๋น์ค๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
์ด ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํด ์กฐํํ ์ ๋ณด, AI๊ฐ ์์ฑํ ๋ต๋ณ, AI๊ฐ ์ ์ํ ์ฃผ๋ฌธ ๋ด์ฉ์ ๋ถ์ ํํ๊ฑฐ๋ ์ง์ฐ๋๊ฑฐ๋ ์ฌ์ฉ์์ ์๋์ ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋ชจ๋ ํฌ์ ํ๋จ๊ณผ ์ฃผ๋ฌธ ์คํ ๋ฐ ํ๋ก๊ทธ๋จ ์ฌ์ฉ์ ์ต์ข
์ฑ
์์ ์ฌ์ฉ์์๊ฒ ์์ต๋๋ค.
๊ฑฐ๋ ๊ธฐ๋ฅ์ ์ผ๊ณ ์ฃผ๋ฌธ ์์ฑ, ์ ์ , ์ทจ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ค์ ๊ณ์ข์ ์ค์ ์ฃผ๋ฌธ์ด ์ ์ก๋ ์ ์์ต๋๋ค. ์ฃผ๋ฌธ ์ ์ข
๋ชฉ, ๊ฐ๊ฒฉ, ์๋, ์ฃผ๋ฌธ ์ ํ, ๊ณ์ข๋ฅผ ๋ฐ๋์ ์ง์ ํ์ธํ์ธ์.
ํ์ฌ ์ด ํ๋ก์ ํธ๋ ๊ฐ๋ฐ์ค์ธ ํ๋ก์ ํธ๋ก์, ์ด ํ๋ก์ ํธ์ ๊ฐ๋ฐ์์ ๋ฐฐํฌ์๋ ์ด ํ๋ก๊ทธ๋จ ์ฌ์ฉ์ผ๋ก ๋ฐ์ํ๋ ํฌ์ ์์ค, ์ฃผ๋ฌธ ์ค์, API ์ฅ์ , ๋ฐ์ดํฐ ์ค๋ฅ, ํด๋ผ์ด์ธํธ ์ค์๋, AI ์๋ต ์ค๋ฅ ๋ฑ์ ๋ํด ์ฑ
์์ง์ง ์์ต๋๋ค.
## ๋ผ์ด์ ์ค
MIT License
ํ ์ค์ฆ๊ถ Open API ๊ณต์ ๋ฌธ์: https://developers.tossinvest.com/docs