npm kiwoom-mcp-serverstdioMITupdated 15d ago
ํค์์ฆ๊ถ REST API๋ฅผ ์กฐํ ์ ์ฉ(read-only) ์ผ๋ก ๋ ธ์ถํ๋ MCP ์๋ฒ์ ๋๋ค. Claude Desktop / Claude Code์์ ์์ฐ์ด๋ก ๊ตญ๋ด ์ฃผ์ ์์ธยท์ฐจํธยทํธ๊ฐยท์ง์ยท์์ยท์๊ธ๊ณผ ๋ด ๊ณ์ข์ ์๊ณ ยท๋ณด์ ์ข ๋ชฉยท๊ฑฐ๋๋ด์ญ์ ์กฐํํ ์ ์๊ณ , ISA ๊ณ์ข๋ผ๋ฉด ๋น๊ณผ์ธ ํ๋ ๋๋น ์์ตํต์ฐ ํํฉ๊น์ง ๊ณ์ฐํด ์ค๋๋ค.
What can you do with Kiwoom Securities MCP Server?
kiwoom-mcp-server
ํ๊ตญ์ด ยท English
ํค์์ฆ๊ถ REST API๋ฅผ ์กฐํ ์ ์ฉ(read-only) ์ผ๋ก ๋ ธ์ถํ๋ MCP ์๋ฒ์ ๋๋ค. Claude Desktop / Claude Code์์ ์์ฐ์ด๋ก ๊ตญ๋ด ์ฃผ์ ์์ธยท์ฐจํธยทํธ๊ฐยท์ง์ยท์์ยท์๊ธ๊ณผ ๋ด ๊ณ์ข์ ์๊ณ ยท๋ณด์ ์ข ๋ชฉยท๊ฑฐ๋๋ด์ญ์ ์กฐํํ ์ ์๊ณ , ISA ๊ณ์ข๋ผ๋ฉด ๋น๊ณผ์ธ ํ๋ ๋๋น ์์ตํต์ฐ ํํฉ๊น์ง ๊ณ์ฐํด ์ค๋๋ค.
โ ๏ธ ๋ณด์ ๊ฒฝ๊ณ
- ๊ธฐ๋ณธ ์คํ์ ๋ก์ปฌ stdio์ ๋๋ค. ์๊ฒฉ์์ ์จ์ผ ํ๋ค๋ฉด ๋ฐ๋์ ์ธ์ฆ์ด ๋ด์ฅ๋ HTTP ๋ชจ๋(์๊ฒฉ ์ฐ๊ฒฐ ์ฐธ์กฐ)๋ก๋ง ๋ ธ์ถํ๊ณ , ์ธ์ฆ ์๋ ์ํ(
--no-auth)๋ก๋ ์ ๋ ์ธ๋ถ ๋คํธ์ํฌ์ ์ด์ง ๋ง์ธ์..env์ AppKey/AppSecret์ ์ค๊ณ์ข ์กฐํ ๊ถํ์ ๋๋ค. ์ ๋ ์ปค๋ฐํ์ง ๋ง์ธ์ (.gitignore์ ์ด๋ฏธ ๋ฑ๋ก๋์ด ์์ต๋๋ค).- ์ฃผ๋ฌธ(๋งค์/๋งค๋/์ ์ /์ทจ์) ๊ธฐ๋ฅ์ ์ค๊ณ์ ์ ์ธ๋์ด ์์ต๋๋ค. ์ด ์๋ฒ๊ฐ ๊ณ์ข๋ฅผ ๋ณ๊ฒฝํ๋ ์ผ์ ์์ต๋๋ค.
์ ๊ณต Tool
์์ฅ ๋ฐ์ดํฐ (๊ณ์ข์ ๋ฌด๊ด, ์ฑํค๋ง ์์ผ๋ฉด ์ฌ์ฉ ๊ฐ๋ฅ):
| Tool | ์ค๋ช | ํค์ TR |
|---|---|---|
search_stock |
์ข ๋ชฉ๋ช โ์ฝ๋ ๊ฒ์ (์ฝ์คํผ/์ฝ์ค๋ฅ, ETF/ETN ํฌํจ) + ํฌ์์ ์ ํ์ | ka10099 |
get_stock_price |
ํ์ฌ๊ฐ/๋ฑ๋ฝ๋ฅ /๊ฑฐ๋๋/๊ธฐ๋ณธ์งํ + ์ ์ข ยท์์ฅ์ผยทํฌ์์ ์ | ka10001, ka10099 |
get_stock_quotes |
์ฌ๋ฌ ์ข ๋ชฉ(์ต๋ 30๊ฐ) ์ผ๊ด ์์ธ โ ํ์ฌ๊ฐยท๋ฑ๋ฝ๋ฅ ยท๊ฑฐ๋๋ยท๊ฑฐ๋๋๊ธยท์๊ฐ์ด์ก | ka10095, ka10099 |
get_stock_chart |
์ผ/์ฃผ/์/๋ /๋ถ/ํฑ๋ด ์บ๋ค ์ฐจํธ (์์ ์ฃผ๊ฐ ๋ฐ์) | ka10079~83, ka10094 |
get_daily_trading |
์ผ๋ณ ๊ฑฐ๋ยท์๊ธ โ ์ข ๊ฐยท๊ฑฐ๋๋๊ธ + ๊ฐ์ธ/๊ธฐ๊ด/์ธ๊ตญ์ธ ์๋งค์ยทํ๋ก๊ทธ๋จยท์ ์ฉ๋น์จ, ๋๋ ์ฅ์ /์ฅ์ค/์ฅํ ๊ฑฐ๋ ๋ถํฌ | ka10086, ka10015 |
get_orderbook |
10๋จ๊ณ ๋งค๋/๋งค์ ํธ๊ฐยท์๋ (ํตํฉ ๊ธฐ์ค) | ka10007 |
get_orderbook_rank |
์์ฅ ์ ์ฒด ํธ๊ฐ์๋ ์์ / ์๋ ๊ธ์ฆ / ์๋๋น์จ ๊ธ์ฆ (์ ๊ท์ฅ ์ค) | ka10020~22 |
get_market_index |
์ฝ์คํผ/์ฝ์ค๋ฅ ์ข ํฉยท์ ์ข ์ง์ | ka20003 |
get_sector_price |
์ ์ข ์ง์ ํ์ฌ๊ฐ ์์ธ (๋ฑ๋ฝ ๊ตฌ์ฑยท52์ฃผ ๊ณ ์ ยท์๊ฐ๋๋ณ ์ถ์ด) | ka20001 |
get_sector_stocks |
์ ์ข ๊ตฌ์ฑ ์ข ๋ชฉ ์์ธ (ํ์ฌ๊ฐยท๋ฑ๋ฝ๋ฅ ยท๊ฑฐ๋๋ยท๊ณ ์ ๊ฐ) | ka20002 |
get_sector_chart |
์ ์ข ์ง์ ์ผ/์ฃผ/์/๋ /๋ถ/ํฑ๋ด ์บ๋ค ์ฐจํธ | ka20004~08, ka20019 |
get_sector_flow |
์ ์ข ๋ณ ํฌ์์ ์๋งค์ โ ์์ฅ ์ ์ฒด ์ ์ข ์ ๊ฐ์ธ/์ธ๊ตญ์ธ/๊ธฐ๊ด๊ณ + ์ฆ๊ถยทํฌ์ ยท์ฐ๊ธฐ๊ธยท์ฌ๋ชจ | ka10051 |
get_ranking |
์์น๋ฅ /ํ๋ฝ๋ฅ /๊ฑฐ๋๋/๊ฑฐ๋๋๊ธ ์์ + ์๊ฐ๋๋น ๋ฑ๋ฝ๋ฅ (์ฒด๊ฒฐ๊ฐ๋ ํฌํจ) + ์ ์ฉ๋น์จ ์์ | ka10027/30/32, ka10028, ka10033 |
get_equal_net_trade |
๊ธฐ๊ดยท์ธ๊ตญ์ธ์ด ๋์์ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์๋งค๋งคํ ์ข ๋ชฉ + ์ฃผ์ฒด๋ณ ์ถ์ ํ๊ท ๋จ๊ฐ | ka10062 |
get_valuation_rank |
PERยทPBRยทROE ๊ณ ์ ์์ (์์ฅ ์ ์ฒด ๋ฐธ๋ฅ์์ด์ ์คํฌ๋ฆฌ๋) | ka10026 |
get_supply_concentration |
๋งค๋ฌผ๋์ง์ค ์ข ๋ชฉ โ ํน์ ๊ฐ๊ฒฉ๋์ ๊ฑฐ๋๊ฐ ๋ชฐ๋ฆฐ ์ข ๋ชฉ๊ณผ ๊ทธ ๊ตฌ๊ฐ | ka10025 |
get_market_movers |
์ ๊ณ ๊ฐ/์ ์ ๊ฐ/์ํ๊ฐ/ํํ๊ฐ/๊ธ๋ฑ/๊ธ๋ฝ/๊ฑฐ๋๋๊ธ์ฆ/๊ฑฐ๋๋๊ฐฑ์ (์ง์ N์ผ ์ต๋ ๋ํ) ํน์ด ์ข ๋ชฉ | ka10016/17/19/23/24 |
get_vi_stocks |
๋น์ผ VI(๋ณ๋์ฑ์ํ์ฅ์น) ๋ฐ๋ ์ข ๋ชฉ (๋ฐ๋๊ฐยท๊ดด๋ฆฌ์จยท์๊ฐ) | ka10054 |
get_expected_execution |
๋์ํธ๊ฐ ์์์ฒด๊ฒฐ ์์ (๊ฐ์ฅ ์ 08:30 |
ka10029 |
get_investor_trend |
๊ฐ์ธ/์ธ๊ตญ์ธ/๊ธฐ๊ด ์๋งค์ ๋ํฅ (๊ธฐ๊ฐ ํฉ๊ณ + ์ผ๋ณ) | ka10059, ka10061 |
get_institution_trend |
๊ธฐ๊ดยท์ธ๊ตญ์ธ ์ถ์ ํ๊ท ๋จ๊ฐ + ์ผ๋ณยท๊ธฐ๊ฐ๋์ ์๋งค์ | ka10045 |
get_investor_rank |
์ธ๊ตญ์ธยท๊ธฐ๊ด ์๋งค๋งค ์์ ์ข ๋ชฉ / N์ผ ์ฐ์ ์๋งค์ ํํฉ | ka90009, ka10131 |
get_net_buy_rank |
ํฌ์์ 12์ฃผ์ฒด(๊ฐ์ธยท์ธ๊ตญ์ธยท๊ธฐ๊ด๊ณยท๊ธ์ตํฌ์ยท๋ณดํยทํฌ์ ยท์ํยท์ฐ๊ธฐ๊ธ๋ฑยท์ฌ๋ชจํ๋ยท๊ธฐํ๊ธ์ตยท๊ตญ๊ฐยท๊ธฐํ๋ฒ์ธ)๋ณ ์๋งค์ ์์ ์ข ๋ชฉ โ ์ง์ ์๋ฃ ๊ฑฐ๋์ผ ๊ธฐ์ค | ka10066 |
get_foreign_intraday |
์ฅ์ค ์ฃผ์ฒด๋ณ ์๋งค์/์๋งค๋ ์์ ์ข ๋ชฉ โ ์ธ๊ตญ์ธยท๊ธฐ๊ด๊ณยท๋ณดํยทํฌ์ ยท์ฐ๊ธฐ๊ธ๋ฑยท๊ธฐํ๋ฒ์ธ (์ค์๊ฐ ์ ์ ์น) | ka10063, ka10065 |
get_broker_activity |
์ข
๋ชฉ๋ณ ๊ฑฐ๋์(์ฆ๊ถ์ฌ) ๋งค์/๋งค๋ ์์ 5 + ์ธ๊ตญ๊ณ ์ฐฝ๊ตฌ ํ์, ์ ๊ฑฐ๋์ 50๊ฐ์ฌ ๋์ ์์(view=broker_rank), ๋น์ผ ์์์์ ์ดํํ ์ฐฝ๊ตฌ(view=dropout), ๋๋ ์์ฅ ์ ์ฒด ์ธ๊ตญ๊ณ ์ฐฝ๊ตฌ ์๋งค๋งค ์์ |
ka10002, ka10102, ka10037, ka10038, ka10053 |
get_etf_info |
ETF ์ถ์ ์ง์ยท๊ณผ์ธ์ ํยท์์ธยทNAV/๊ดด๋ฆฌ์จ | ka40002, ka10001, ka40009 |
get_etf_returns |
ETF ๊ธฐ๊ฐ๋ณ ์์ต๋ฅ vs ๋น๊ต์ง์(์ง์ ๊ณ ๋ฅด๋ ๊ตญ๋ด ์ง์ โ ์ถ์ ์ง์์ ์๋์ผ๋ก ๋ง์ถฐ์ง์ง ์์) + ์ผ๋ณ NAVยท๊ดด๋ฆฌ์จยท์ถ์ ์ค์ฐจ ์ถ์ด, ์ผ์๋ณ ์ธ๊ตญ์ธยท๊ธฐ๊ด ์๋งค์ | ka40001, ka40003, ka40008 |
get_etf_rank |
์์ฅ ETF ์ ์ข ๋ชฉ ์คํฌ๋ฆฌ๋ โ ๊ดด๋ฆฌ์จ(๊ณ ํ๊ฐ/์ ํ๊ฐ)ยท๋ฑ๋ฝ๋ฅ ยท๊ฑฐ๋๋ยท์ถ์ ์ค์ฐจ ์ ๋ ฌ + ๊ณผ์ธ์ ํยท์ด์ฉ์ฌยท์ถ์ ์ง์ ํํฐ | ka40004 |
get_short_selling |
์ข ๋ชฉ๋ณ ์ผ์๋ณ ๊ณต๋งค๋ ์ถ์ด (๊ณต๋งค๋๋ยท๋น์คยทํ๊ท ๊ฐ) | ka10014 |
get_stock_lending |
๋์ฐจ๊ฑฐ๋ ์ถ์ด (์ฒด๊ฒฐยท์ํยท์ฆ๊ฐยท์๊ณ ) โ ์ข ๋ชฉ๋ณ/์์ฅ ์ ์ฒด + ๋์ฐจ์๊ณ ์์ ์ข ๋ชฉ ์์ | ka10068, ka20068, ka90012 |
get_credit_trend |
์ ์ฉ์ต์ยท๋์ฃผ ์๊ณ ์ถ์ด (์ ๊ทยท์ํยท์๊ณ ยท๊ณต์ฌ์จยท์๊ณ ์จ) | ka10013 |
get_foreign_holding |
์ธ๊ตญ์ธ ๋ณด์ (ํ๋) ๋ํฅ โ ์ข ๋ชฉ๋ณ ์ถ์ด, ๋๋ ์์ฅ ์ ์ฒด ์์(ํ๋์์ง์จ ์ฆ๊ฐ / ๊ธฐ๊ฐ ๋์ ์๋งค๋งค / 3์ผ ์ฐ์ ์๋งค๋งค) | ka10008, ka10036, ka10034, ka10035 |
get_program_trading |
ํ๋ก๊ทธ๋จ ๋งค๋งค ์์(๋น์ผยท๋ ์ง ์ง์ ) + ์ถ์ด (์ผ์๋ณ/์๊ฐ๋๋ณ/์ข ๋ชฉ๋ณ, ์ฝ์คํผ/์ฝ์ค๋ฅ) + ์ข ๋ชฉ ์๊ฐ๋๋ณยท์ฐจ์ต๊ฑฐ๋ ์๊ณ | ka90003, ka90004, ka90010, ka90005, ka90013, ka90008, ka90006 |
get_after_hours |
์๊ฐ์ธ ๋จ์ผ๊ฐ (16:00~18:00) โ ์ข ๋ชฉ๋ณ 5๋จ ํธ๊ฐยท์์ธ ๋๋ ๋ฑ๋ฝ๋ฅ ์์ | ka10087, ka10098 |
get_execution_strength |
์ฒด๊ฒฐ๊ฐ๋ ์ถ์ด (๋งค์รท๋งค๋ ์ฒด๊ฒฐ๋ร100, 100์ด ๊ท ํ) โ ์ผ๋ณ 60๊ฑฐ๋์ผ / ์๊ฐ๋ณ 60๋ถ | ka10046, ka10047 |
get_gold_price |
KRX ๊ธํ๋ฌผ ์์ธ (๊ธ 1Kg / ๋ฏธ๋๊ธ 100g) โ ์ผ๋ณ์ถ์ด + ๊ธฐ๊ดยท๊ฐ์ธ ์๋งค์, ๋๋ ๋น์ผ ํฑ ์ฒด๊ฒฐ | ka50012, ka50010 |
๊ด์ฌ์ข ๋ชฉ (์์ ๋ฌธ HTS์ ์ ์ฅํ ๊ด์ฌ ๊ทธ๋ฃน, ์ฝ๊ธฐ ์ ์ฉ):
| Tool | ์ค๋ช | ํค์ TR |
|---|---|---|
get_watchlist_groups |
HTS ๊ด์ฌ์ข ๋ชฉ ๊ทธ๋ฃน ๋ชฉ๋ก (๊ทธ๋ฃน์ฝ๋+๊ทธ๋ฃน๋ช ) | ka01300 |
get_watchlist |
๊ทธ๋ฃน ๋ด ์ข ๋ชฉ ๋ชฉ๋ก (์ข ๋ชฉ๋ช ยท์ ์ผ์ข ๊ฐยท์์ฅยทํฌ์์ ์ ๋ณด๊ฐ) | ka01301, ka10099 |
ํค์ REST API์๋ ๊ด์ฌ์ข ๋ชฉ ํธ์ง(์ถ๊ฐ/์ญ์ ) TR์ด ์์ด ์กฐํ๋ง ๊ฐ๋ฅํฉ๋๋ค.
ํ ๋ง:
| Tool | ์ค๋ช | ํค์ TR |
|---|---|---|
get_theme_groups |
ํ ๋ง ๊ทธ๋ฃน ๋ชฉ๋ก (๋ฑ๋ฝ๋ฅ ยท์ข ๋ชฉ์ยท๊ธฐ๊ฐ์์ต๋ฅ ยท์ฃผ์์ข ๋ชฉ; ์ข ๋ชฉ๋ณ ํธ์ ํ ๋ง ๊ฒ์) | ka90001 |
get_theme_stocks |
ํน์ ํ ๋ง์ ๊ตฌ์ฑ์ข ๋ชฉ๊ณผ ์์ธ (ํ์ฌ๊ฐยท๋ฑ๋ฝ๋ฅ ยท๊ฑฐ๋๋ยท๊ธฐ๊ฐ์์ต๋ฅ ) | ka90002 |
๊ณ์ข (์ฑํค์ ๊ท์๋ ๊ณ์ข ๊ธฐ์ค):
| Tool | ์ค๋ช | ํค์ TR |
|---|---|---|
get_account_balance |
์์๊ธ + ์ดํ๊ฐ๊ธ์ก/์ดํ๊ฐ์์ต/์ถ์ ์ํ์์ฐ + ๋น์ผ/๋น์/๋์ ์์ต, view=settlement์ ์ต์ผ ๊ฒฐ์ ์์ ๊ฑด๋ณ ๋ช
์ธ |
kt00001, kt00018, kt00004, kt00008 |
get_account_holdings |
๋ณด์ ์ข ๋ชฉ๋ณ ์๋/ํ๊ท ๋จ๊ฐ/ํ์ฌ๊ฐ/ํ๊ฐ์์ต | kt00018 |
get_account_today |
๊ณ์ข ๋น์ผ ํํฉ โ ๋งค๋งค๋๊ธยท์์๋ฃยท์ธ๊ธยท์ ์ถ๊ธ + D+2 ์ถ์ (์ค์ ์ ์ฉ) | kt00017 |
get_account_trend |
์ผ๋ณ ์ถ์ ์ํ์์ฐ ์ถ์ด + ๊ธฐ๊ฐ ์์ต๋ฅ /ํ๊ฐ์์ต/์ ์ถ๊ธ ์์ฝ (๊ธฐ๋ณธ 30์ผ, ๋ชจ์ํฌ์ ๋ฏธ์ง์) | kt00002, kt00016 |
get_transactions |
๊ธฐ๊ฐ๋ณ ๊ฑฐ๋๋ด์ญ (์ฒด๊ฒฐ์ผยท๋จ๊ฐยท์ ์ฐ๊ธ์ก, ๋ชจ์ํฌ์ ๋ฏธ์ง์) | kt00015 |
get_pending_orders |
๋ฏธ์ฒด๊ฒฐ ์ฃผ๋ฌธ (์ฃผ๋ฌธ๋ฒํธยท๊ตฌ๋ถยท์ํยท์ฃผ๋ฌธ/๋ฏธ์ฒด๊ฒฐ์๋ยท์ฃผ๋ฌธ๊ฐ๊ฒฉ) | ka10075 |
get_order_executions |
์ฒด๊ฒฐ ๋ด์ญ (์ฃผ๋ฌธ๋ฒํธยท๊ตฌ๋ถยท์ํยท์ฃผ๋ฌธ/์ฒด๊ฒฐ ์๋ยท๊ฐ๊ฒฉยท์์๋ฃ+์ธ๊ธ, side/์ข ๋ชฉ/์ฃผ๋ฌธ๋ฒํธ ํํฐ) | ka10076 |
get_trading_journal |
๋น์ผ๋งค๋งค์ผ์ง (์ข ๋ชฉ๋ณ ๋งค์/๋งค๋ ํ๊ท ๊ฐยท์๋ยท์คํ์์ต, ์ด์์ต) | ka10170 |
calc_isa_tax_status |
ISA ์์ตํต์ฐ ์์ด์ต์ ๋น๊ณผ์ธ ํ๋ ๋๋น ํํฉ (ํ์ + ์ ๋๋งค๋ ์๋๋ฆฌ์ค, kt00015 ์์กด์ด๋ผ ๋ชจ์ํฌ์ ๋ฏธ์ง์) | kt00015, ka10074, kt00018 |
๊ทธ ์ธ ping(์ฐ๊ฒฐ ํ์ธ, ์ฑํค ๋ถํ์). ๋ชจ๋ ์๋ต์ [๋ชจ์ํฌ์]/[์ค์ ํฌ์] ์ ๋์ด๋ก
์ด๋ ์๋ฒ๊ฐ ๋ตํ๋์ง ํ์ํฉ๋๋ค. search_stock ์ฒซ ํธ์ถ์ ์ข
๋ชฉ ๋ง์คํฐ(~4,300์ข
๋ชฉ)๋ฅผ
๋ด๋ ค๋ฐ์ ๋ช ์ด ๊ฑธ๋ฆฌ๋ฉฐ ์ดํ 12์๊ฐ ์บ์๋ฉ๋๋ค.
๊ฑฐ๋์ ๊ธฐ์ค โ KRX + ๋ฅ์คํธ๋ ์ด๋(NXT) ํตํฉ
v0.31.0๋ถํฐ ์์ธยท๋ญํน tool์ ํตํฉ(SOR) ๊ธฐ์ค์ผ๋ก ์กฐํํฉ๋๋ค. KRX์ ๋ฅ์คํธ๋ ์ด๋(NXT) ์ฒด๊ฒฐ์ ํฉ์ฐํ ๊ฐ์ด๋ฉฐ, NXT ๊ฑฐ๋๊ฐ๋ฅ ์ข ๋ชฉ(์ฝ 606๊ฐ, ๋ํ์ฃผ ๋ค์)์ KRX๋ง ๋ณผ ๋๋ณด๋ค ๊ฑฐ๋๋์ด ํฌ๊ฒ ๋์ด๋ฉ๋๋ค โ ์ผ์ฑ์ ์ ์ค์ธก(2026-08-03 ์ ๊ท์ฅ) KRX 19.2M / NXT 15.5M / ํตํฉ 34.7M. KRX๋ง ํ์ํ๋ HTSยทํฌํธ ํ๋ฉด๊ณผ ์ซ์๊ฐ ๋ค๋ฅด๋ฉด ๋๊ฐ ์ด ์ฐจ์ด์ ๋๋ค.
์์ธ๋ get_after_hours(์๊ฐ์ธ ๋จ์ผ๊ฐ) ํ๋์
๋๋ค โ ํตํฉ ์กฐํ๊ฐ ๋ถ๊ฐ๋ฅํ๋ฉฐ NXT ๊ฑฐ๋๊ฐ๋ฅ
์ข
๋ชฉ์ ์ ์ด์ ์ด TR์์ ์กฐํ๋์ง ์์ต๋๋ค. ๊ฑฐ๋์(get_broker_activity)์ v0.47.0์์ ํตํฉ์ผ๋ก
๋์ด์์ต๋๋ค โ ๊ทธ์ ๊น์ง KRX ๊ฐ์ ๋ด๋ณด๋ด ์์ 5์ ์์๊ฐ ์ค์ ์ ๋ฌ๋์ต๋๋ค(์ผ์ฑ์ ์ ๋งค์ 1์๊ฐ
KRX ๊ธฐ์ค KB์ฆ๊ถ / ํตํฉ ๊ธฐ์ค ๋ฏธ๋์์
). ํธ๊ฐ๋ v0.37.0์์ ํตํฉ์ผ๋ก ๋์ด์์ต๋๋ค โ
ka10004 ๋์ ka10007(์์ธํ์ฑ์ ๋ณด)์ ์ฐ๋ฉฐ, ์ผ์ฑ์ ์ ์ค์ธก(2026-08-04 ์ ๊ท์ฅ) ๋งค์1 ์๋์ด
KRX 18,421 / NXT 17,081 / ํตํฉ 36,319์ด์์ต๋๋ค.
calc_isa_tax_status ์ฌ์ฉ ๋ฉ๋ชจ
- ์ง๊ณ ์์์ผ:
.env์ISA_OPENED_ON(๊ณ์ข ๊ฐ์ค์ผ)์ด ๊ธฐ๋ณธ๊ฐ, ํธ์ถ ์from_date๋ก ์ค๋ฒ๋ผ์ด๋ ๊ฐ๋ฅ. - ๋ฐฐ๋นยท๋ถ๋ฐฐ๊ธ์ด ๊ฑฐ๋๋ด์ญ์์ ์๋ ๊ฐ์ง๋์ง ์์ผ๋ฉด
dividends_received์ธ์๋ก ์๋ ์ ๋ ฅ. - ์ข
๋ชฉ ๊ณผ์ธ์ ํ(๊ณผ์ธ๋์ vs ๊ตญ๋ด์ฃผ์ํ)์ ์๋ ๋ถ๋ฅ์
๋๋ค โ ETF๋ ํค์์ด ์ฃผ๋
etftxon_type(ka40002)์ผ๋ก ํ์ ํ๊ณ (์กฐํ ์คํจ ์ ์ข ๋ชฉ๋ช ํด๋ฆฌ์คํฑ์ผ๋ก ํด๋ฐฑ), ๊ฐ๋ณ์ฃผ์ ๋ฑ ๊ทธ ๋ฐ์๋ ์ข ๋ชฉ๋ช ๊ธฐ๋ฐ์ผ๋ก ์ถ์ ํฉ๋๋ค. ํ๋ฆฐ ๊ฒฝ์ฐoverrides: [{stock_code, tax_type}]๋ก ์์ . ๊ฒฐ๊ณผ๋ ์ฐธ๊ณ ์ฉ โ ์ค์ ๊ณผ์ธ๋ ์ฆ๊ถ์ฌ ์ ์ฐ ๊ธฐ์ค.
์๊ตฌ ์ฌํญ
- Node.js 22 ์ด์ โ Node 20์ด 2026-04-30์ EOL์ด ๋๋ฉด์ ๋ฐ๋ฅ์ ์ฌ๋ ธ์ต๋๋ค
(
process.loadEnvFile์ 20.12๋ถํฐ ์์ผ๋ฏ๋ก ์ฝ๋๊ฐ ์๊ตฌํ๋ ์ต์์น๋ ๊ทธ๋ณด๋ค ๋ฎ์ต๋๋ค) - ํค์์ฆ๊ถ REST API ์ฑํค โ ํค์ Open API ํฌํธ์์
์ฑ ๋ฑ๋ก ํ ๋ฐ๊ธ
- ๋ชจ์ํฌ์(VIRTUAL)์ ์ค์ ํฌ์(REAL)๋ ๊ฐ๊ฐ ๋ณ๋๋ก ๋ฐ๊ธ๋ฐ์ ์ฑํค๋ฅผ ์ฌ์ฉํ๋ฉฐ,
๋ฐ๊ธ๋ฐ์ ํค ์ข
๋ฅ์
KIWOOM_MODE๊ฐ ์ผ์นํด์ผ ํฉ๋๋ค. - ๊ณ์ข๋ ์ฑํค์ ๊ท์๋๋ฏ๋ก ๊ณ์ข๋ฒํธ ์ ๋ ฅ์ ํ์ ์์ต๋๋ค.
- ๋ชจ์ํฌ์(VIRTUAL)์ ์ค์ ํฌ์(REAL)๋ ๊ฐ๊ฐ ๋ณ๋๋ก ๋ฐ๊ธ๋ฐ์ ์ฑํค๋ฅผ ์ฌ์ฉํ๋ฉฐ,
๋ฐ๊ธ๋ฐ์ ํค ์ข
๋ฅ์
์ค์น
npm์ ๋ฐฐํฌ๋์ด ์์ผ๋ฏ๋ก ํด๋ก ์์ด npx๋ก ๋ฐ๋ก ์คํํ ์ ์์ต๋๋ค โ ์๋
"Claude Desktop ์ฐ๊ฒฐ" / "Claude Code ์ฐ๊ฒฐ"์ npx ์ค์ ์ ๊ทธ๋๋ก ์ฐ๋ฉด ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ
์ฑํค๋ .env ํ์ผ ๋์ ํด๋ผ์ด์ธํธ ์ค์ ์ env ๋ธ๋ก์ผ๋ก ์ ๋ฌํฉ๋๋ค(์์ ๋ ๊ฐ
์ฐ๊ฒฐ ์น์
์ฐธ๊ณ ).
์์ค์์ ์ง์ ๋น๋ํ๊ฑฐ๋ ์ฝ๋๋ฅผ ์์ ํ๋ ค๋ฉด:
git clone <์ด ์ ์ฅ์ URL> # ๋๋ ์์ค ๋ณต์ฌ
cd kiwoom-mcp-server
npm install
cp .env.example .env # ์๋ ํ๋ฅผ ์ฐธ๊ณ ํด ๊ฐ ์
๋ ฅ
npm run build # dist/ ์์ฑ
npm test # ๋จ์ ํ
์คํธ (๋คํธ์ํฌ ๋ถํ์)
ํ๊ฒฝ ๋ณ์ (.env)
| ๋ณ์ | ํ์ | ์ค๋ช |
|---|---|---|
KIWOOM_APP_KEY |
โ | ํค์ REST API ์ฑํค |
KIWOOM_APP_SECRET |
โ | ํค์ REST API ์ฑ ์ํฌ๋ฆฟ |
KIWOOM_MODE |
VIRTUAL(๋ชจ์ํฌ์, ๊ธฐ๋ณธ๊ฐ) ๋๋ REAL(์ค์ ํฌ์) |
|
ISA_ENABLED |
true๋ฉด calc_isa_tax_status tool ํ์ฑํ. ๊ธฐ๋ณธ๊ฐ false(์ผ๋ฐ ๊ณ์ข ๊ธฐ์ค) |
|
ISA_TYPE |
GENERAL(์ผ๋ฐํ, ํ๋ 200๋ง์, ๊ธฐ๋ณธ๊ฐ) ๋๋ SEOMIN(์๋ฏผํ/๋์ด๋ฏผํ, 400๋ง์). ISA_ENABLED=true์ผ ๋๋ง ์ฌ์ฉ |
|
ISA_OPENED_ON |
ISA ๊ณ์ข ๊ฐ์ค์ผ yyyy-MM-dd โ calc_isa_tax_status ์ง๊ณ ์์์ผ ๊ธฐ๋ณธ๊ฐ. ISA_ENABLED=true์ผ ๋๋ง ์ฌ์ฉ |
|
MCP_TRANSPORT |
stdio(๊ธฐ๋ณธ๊ฐ) ๋๋ http โ ์๊ฒฉ ์ฐ๊ฒฐ ์ฐธ์กฐ |
|
MCP_AUTH_TOKEN |
HTTP ๋ชจ๋ โ | HTTP ๋ชจ๋์์ ๋ชจ๋ /mcp ์์ฒญ์ด ์ ์ํด์ผ ํ๋ Bearer ํ ํฐ |
MCP_HTTP_PORT |
HTTP ๋ชจ๋ ํฌํธ (๊ธฐ๋ณธ๊ฐ 8000) |
|
MCP_HTTP_HOST |
HTTP ๋ชจ๋ ๋ฐ์ธ๋ ์ฃผ์ (๊ธฐ๋ณธ๊ฐ 127.0.0.1) |
|
MCP_HTTP_NO_AUTH |
true๋ฉด ์ธ์ฆ ์์ด HTTP ๋ชจ๋ ๊ธฐ๋ ํ์ฉ (๋น๊ถ์ฅ โ ์๋ ๋ณด์ ์ฃผ์ ์ฐธ์กฐ) |
|
MCP_PUBLIC_URL |
HTTP ๋ชจ๋์์ ์ธ๋ถ์ ๊ด๊ณ ํ ๊ธฐ์ค URL (์: https://kiwoom.example.com). ๋ฏธ์ค์ ์ ์์ฒญ์ Host + X-Forwarded-Proto๋ก ์ถ๋ก โ ๋ฆฌ๋ฒ์ค ํ๋ก์๊ฐ ๊ทธ ํค๋๋ฅผ ๋ถ์ด์ง ์์ผ๋ฉด ๋ช
์ํด์ผ ํฉ๋๋ค |
๊ธฐ๋ณธ๊ฐ์ ์ผ๋ฐ(๋น-ISA) ๊ณ์ข ๊ธฐ์ค์
๋๋ค โ ๋ณ๋ ์ค์ ์ด ์์ผ๋ฉด ์์ฅยท๊ณ์ข ์กฐํ tool๋ง
๋
ธ์ถ๋ฉ๋๋ค. ISA ๊ณ์ข๋ฅผ ์ฐ๊ฒฐํด ๋น๊ณผ์ธ ํ๋ tool์ ์ฐ๋ ค๋ฉด ISA_ENABLED=true๋ก ์ผ๊ณ
ISA_TYPE/ISA_OPENED_ON์ ์ฑ์ฐ์ธ์. ๋๋ฉด calc_isa_tax_status๊ฐ ๋ฑ๋ก๋์ง ์๊ณ
๋๋จธ์ง tool์ ๋ชจ๋ ๊ทธ๋๋ก ๋์ํฉ๋๋ค.
.env๋ ํ๋ก์ ํธ ๋ฃจํธ์์ ๋จผ์ ์ฐพ๊ธฐ ๋๋ฌธ์ (Claude Desktop์ฒ๋ผ) ์์์ ์์
๋๋ ํฐ๋ฆฌ์์ ์คํ๋ผ๋ ๋์ํฉ๋๋ค.
Claude Desktop ์ฐ๊ฒฐ
์ค์ ํ์ผ ์์น:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
npx (๋ฐฐํฌํ) โ ํด๋ก ์์ด ์คํ. ์ฑํค๋ env ๋ธ๋ก์ผ๋ก ์ ๋ฌ:
{
"mcpServers": {
"kiwoom": {
"command": "npx",
"args": ["-y", "kiwoom-mcp-server"],
"env": {
"KIWOOM_APP_KEY": "โฆ",
"KIWOOM_APP_SECRET": "โฆ",
"KIWOOM_MODE": "REAL"
}
}
}
}
์์ค ๋น๋ โ dist/index.js ์ง์ ์คํ. ์ฑํค๋ ํ๋ก์ ํธ ๋ฃจํธ .env ์ฌ์ฉ:
{
"mcpServers": {
"kiwoom": {
"command": "/opt/homebrew/bin/node",
"args": ["/์ ๋/๊ฒฝ๋ก/kiwoom-mcp-server/dist/index.js"]
}
}
}
command์๋ ์คํ ํ์ผ์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฐ๋ ํธ์ด ๊ฐ์ฅ ์์ ํฉ๋๋ค (which node,which npx๋ก ํ์ธ). GUI ์ฑ์ ์ ธ PATH๋ฅผ ์์๋ฐ์ง ์์ผ๋ฏ๋ก"node"/"npx"๋ผ๊ณ ๋ง ์ฐ๋ฉด ์๋ฒ๊ฐ ์กฐ์ฉํ ๋จ์ง ์์ ์ ์์ต๋๋ค โ ๊ฐ์ฅ ํํ ์คํจ ์์ธ์ ๋๋ค.
์ ์ฅ ํ Claude Desktop์ ์์ ํ ์ข
๋ฃ(macOS๋ โQ)ํ๋ค๊ฐ ๋ค์ ์คํํ๋ฉด tool์ด
๋ณด์
๋๋ค. npm run build๋ก ๋ค์ ๋น๋ํ ๋ค์๋ ์์ ์ข
๋ฃ ํ ์ฌ์คํํด์ผ
๋ณ๊ฒฝ์ด ๋ฐ์๋ฉ๋๋ค.
Claude Code ์ฐ๊ฒฐ
npx (๋ฐฐํฌํ) โ ์ฑํค๋ -e ํ๋๊ทธ๋ก ์ ๋ฌ:
claude mcp add kiwoom \
-e KIWOOM_APP_KEY=โฆ -e KIWOOM_APP_SECRET=โฆ -e KIWOOM_MODE=REAL \
-- npx -y kiwoom-mcp-server
์์ค ๋น๋ โ ํ๋ก์ ํธ ๋ฃจํธ .env ์ฌ์ฉ:
claude mcp add kiwoom -- node /์ ๋/๊ฒฝ๋ก/kiwoom-mcp-server/dist/index.js
์๊ฒฉ ์ฐ๊ฒฐ (HTTP ๋ชจ๋) โ claude.ai ์น/๋ชจ๋ฐ์ผ
claude.ai(์น/๋ชจ๋ฐ์ผ)์ ์ปค์คํ
์ปค๋ฅํฐ๋ ๋ก์ปฌ stdio ์๋ฒ์ ์ง์ ๋ถ์ ์ ์๊ณ , ๊ณต๊ฐ
HTTPS๋ก ์ ๊ทผ ๊ฐ๋ฅํ Streamable HTTP MCP ์๋ฒ๊ฐ ํ์ํฉ๋๋ค. --http ํ๋๊ทธ(๋๋
MCP_TRANSPORT=http)๋ก ์ด ์๋ฒ๋ฅผ HTTP ๋ชจ๋๋ก ๋์ธ ์ ์์ต๋๋ค:
MCP_AUTH_TOKEN="$(openssl rand -hex 32)" npx -y kiwoom-mcp-server --http --port 8000
# ์๋ํฌ์ธํธ: http://127.0.0.1:8000/mcp ยท ํฌ์ค์ฒดํฌ: /healthz
- ์ธ์ฆ์ด ๊ธฐ๋ณธ ํ์์
๋๋ค.
MCP_AUTH_TOKEN์ด ์์ผ๋ฉด ๊ธฐ๋์ ๊ฑฐ๋ถํฉ๋๋ค โ ๋ชจ๋/mcp์์ฒญ์Authorization: Bearer <ํ ํฐ>ํค๋๊ฐ ์์ด์ผ ํฉ๋๋ค. ์ธ์ฆ ์์ด ์ด๋ ค๋ฉด--no-auth๋ฅผ ๋ช ์ํด์ผ ํ๋ฉฐ, ๊ณ์ข ์กฐํ ๋๊ตฌ๊ฐ ๊ทธ๋๋ก ๋ ธ์ถ๋๋ฏ๋ก ์ ๋ขฐํ ์ ์๋ ๋คํธ์ํฌ๋ ๋ชจ์ํฌ์(KIWOOM_MODE=VIRTUAL)์์๋ง ์ฌ์ฉํ์ธ์. - ๊ธฐ๋ณธ ๋ฐ์ธ๋๋
127.0.0.1์ ๋๋ค โ ํฐ๋์ ์์ ๋๋ ๊ตฌ์ฑ์ ์ ์ ํฉ๋๋ค. ์ปจํ ์ด๋/์๋ฒ์ ์ง์ ๋ ธ์ถํ๋ ค๋ฉด--host 0.0.0.0์ ๋ช ์ํ์ธ์. - ๊ณต๊ฐ HTTPS URL์ Cloudflare Tunnel ๋ฑ์ผ๋ก ๋ง๋ญ๋๋ค:
cloudflared tunnel --url http://localhost:8000(์์ URL โ ์์ ์ด์์ named tunnel ๊ถ์ฅ). - OAuth ๋ฉํ๋ฐ์ดํฐ์ ์ค๋ฆฌ๋ ์ฃผ์๋ ์์ฒญ์
Host์X-Forwarded-Proto์์ ์ถ๋ก ํฉ๋๋ค. Cloudflare Tunnel์ฒ๋ผ ๊ทธ ํค๋๋ฅผ ๋ถ์ฌ ์ฃผ๋ ํ๋ก์๋ผ๋ฉด ๊ทธ๋๋ก ๋๋ฉด ๋์ง๋ง, ์ง์ ์ธ์ด nginx/Caddy๊ฐX-Forwarded-Proto๋ฅผ ๋๊ธฐ์ง ์์ผ๋ฉด issuer๊ฐhttp://๋ก ๊ด๊ณ ๋์ด claude.ai๊ฐ ์ฐ๊ฒฐ์ ๊ฑฐ๋ถํฉ๋๋ค. ๊ทธ๋ด ๋MCP_PUBLIC_URL=https://<๋๋ฉ์ธ>์ผ๋ก ๊ณ ์ ํ์ธ์. - claude.ai ๋ฑ๋ก: Settings โ Connectors โ Add custom connector์
https://<๋๋ฉ์ธ>/mcp๋ฅผ ์ ๋ ฅํฉ๋๋ค (๊ณ ๊ธ ์ค์ ์ OAuth ํ๋๋ ๋น์๋ก๋๋ค). ์ฐ๊ฒฐ ์ ๋ธ๋ผ์ฐ์ ์ ์น์ธ ํ์ด์ง๊ฐ ๋จ๊ณ ,MCP_AUTH_TOKEN๊ฐ์ ์ ์ ์ํธ๋ก ์ ๋ ฅํ๋ฉด ์๋ฃ๋ฉ๋๋ค โ ์๋ฒ๊ฐ MCP ์ธ์ฆ ์คํ(OAuth 2.0 + PKCE, ๋์ ํด๋ผ์ด์ธํธ ๋ฑ๋ก)์ ๋ด์ฅํ๊ณ ์์ด ๋ณ๋ ํค๋ ์ค์ ์ด ํ์ ์์ต๋๋ค. ๋ฑ๋กํ ์ปค๋ฅํฐ๋ ์น/๋ชจ๋ฐ์ผ/๋ฐ์คํฌํฑ์์ ๊ณต์ฉ์ ๋๋ค. ํค๋๋ฅผ ์ง์ ํ ์ ์๋ ํด๋ผ์ด์ธํธ(์: Claude Code--header)๋ ๊ธฐ์กด์ฒ๋ผAuthorization: Bearer <MCP_AUTH_TOKEN>์ ์ ํค๋๋ก๋ ์ ์ํ ์ ์์ต๋๋ค. OAuth ํ ํฐ์ ์์ ๋๋ ํฐ๋ฆฌ์.oauth-state.json(0600)์ ์ ์ฅ๋์ด ์๋ฒ๋ฅผ ์ฌ์์ํด๋ ์ฐ๊ฒฐ์ด ์ ์ง๋ฉ๋๋ค. - โ ๏ธ ํค์ API ํธ์ถ์ ์ด ์๋ฒ๊ฐ ์คํ๋๋ ๊ณณ์์ ๋๊ฐ๋๋ค. REAL ๋ชจ๋๋ ํค์ ์ง์ ๋จ๋ง๊ธฐ ์ธ์ฆ(8050)์ด IP์ ๋ฌถ์ด๋ฏ๋ก, ๋ฑ๋ก๋ IP๊ฐ ์๋ ๊ณณ(ํด๋ผ์ฐ๋ ๋ฑ)์์ ์คํํ๋ฉด ์ธ์ฆ ์ค๋ฅ๊ฐ ๋ ์ ์์ต๋๋ค. ์๊ฒฉ ๋ ธ์ถ์ ๋ชจ์ํฌ์๋ก ๋จผ์ ๊ฒ์ฆํ์ธ์.
๊ธฐ์กด stdio ๋์(Claude Desktop/Code ์ฐ๊ฒฐ)์ ์ธ์ ์์ด ์คํํ๋ฉด ๊ทธ๋๋ก์
๋๋ค โ ๋จ, .env๋
ํ๊ฒฝ๋ณ์์ MCP_TRANSPORT=http๊ฐ ์์ผ๋ฉด ์์ธ์
๋๋ค. .env๋ ์ ์ก ๋ฐฉ์์ ๊ณ ๋ฅด๊ธฐ ์ ์ ์ฝํ๋ฏ๋ก
์ธ์ ์์ด ์คํํด๋ HTTP ๊ฒฝ๋ก๋ฅผ ํ๊ณ , MCP_AUTH_TOKEN์ด ์์ผ๋ฉด ์์ ๊ธฐ๋์ ๊ฑฐ๋ถํฉ๋๋ค.
MCP_TRANSPORT ๊ฐ๊ณผ ๋ฌด๊ดํ๊ฒ stdio๋ก ๊ฐ์ ํ๋ ค๋ฉด **--stdio**๋ฅผ ๋๊ธฐ์ธ์.
๋์ ํ์ธ
MCP ํด๋ผ์ด์ธํธ ์์ด stdio๋ก ์ง์ ํ์ธํ ์ ์์ต๋๋ค:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"t","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"ping","arguments":{}}}' \
| node dist/index.js
ping์ .env ์์ด๋ ์๋ตํฉ๋๋ค. ์์ธยท๊ณ์ข tool์ ์ฑํค๊ฐ ์์ด์ผ ํฉ๋๋ค.
๋ฌธ์ ํด๊ฒฐ
| ์ฆ์ | ํ์ธํ ๊ฒ |
|---|---|
| Desktop์ tool์ด ์ ๋ณด์ | command๊ฐ node ์ ๋ ๊ฒฝ๋ก์ธ์ง, npm run build๋ฅผ ํ๋์ง, Desktop์ ์์ ์ข
๋ฃ ํ ์ฌ์คํํ๋์ง |
ํ๊ฒฝ์ค์ ์ด ์๊ฑฐ๋ ์๋ชป๋์์ต๋๋ค |
.env๊ฐ ํ๋ก์ ํธ ๋ฃจํธ์ ์๋์ง, ํ์ ๋ณ์๊ฐ ์ฑ์์ก๋์ง |
ํค์ ์ธ์ฆ์ ์คํจํ์ต๋๋ค |
์ฑํค ์ข
๋ฅ(๋ชจ์/์ค์ )์ KIWOOM_MODE๊ฐ ์ผ์นํ๋์ง, ํฌํธ์์ ์ฑ์ด ํ์ฑ ์ํ์ธ์ง |
์์ฒญ ํ๋๋ฅผ ์ด๊ณผํ์ต๋๋ค |
ํค์ ๋ ์ดํธ๋ฆฌ๋ฐ(TR๋น ์ฝ 1์ด 1ํ). ์๋ฒ๊ฐ ์๋ ์ฌ์๋ํ ๋ค์๋ ์ด๊ณผํ ๊ฒฝ์ฐ์ด๋ ์ ์ ํ ๋ค์ ์๋ |
| ์์๊ธ๊ณผ D+2 ์ถ์ ์์๊ธ์ด ๋ค๋ฆ | ๋ฏธ๊ฒฐ์ (D+2 ์ ์ฐ) ๋งค๋งค๊ฐ ์์ผ๋ฉด ์ ์์ ๋๋ค |
๊ฐ๋ฐ
npm run dev # tsx๋ก ์์ค ์ง์ ์คํ
npm run check # ๋ฒ์ 5๊ณณ ๋๊ธฐํ ยท ์นด์ดํธ ยท README 2์ข
tool ๋ฌธ์ํ ยท server.ts ๋ฑ๋ก ๋๋ฝ
npm run check:write # ์ ์นด์ดํธ๋ฅผ ์ค์ ๊ฐ์ผ๋ก ๊ณ ์ณ ์ (๋ฒ์ ์ ์ ๊ฑด๋๋ฆผ)
npm run typecheck # tsc --noEmit -p tsconfig.test.json (src + tests)
npm test # vitest
npm run build # tsc โ dist/
๋ค ๊ฐ์ง ๋ชจ๋ CI(.github/workflows/ci.yml, Node 22ยท24)์์ ๋๊ณ , ๊ฑฐ๊ธฐ์
npm audit --omit=dev --audit-level=high๊ฐ ํ ๋จ๊ณ ๋ ๋ถ์ต๋๋ค. ํ์
์ฒดํฌ๊ฐ
tsconfig.test.json์ ์ฐ๋ ์ด์ ๋ ๋น๋์ฉ tsconfig.json์ rootDir๊ฐ src๋ผ
ํ
์คํธ๋ฅผ ๊ฑฐ๊ธฐ ๋ฃ์ผ๋ฉด dist/ ๋ ์ด์์์ด ๋ฐ๋๊ธฐ ๋๋ฌธ์
๋๋ค โ ๋น๋๋ ๊ทธ๋๋ก
tsconfig.json์ ์๋๋ค.
๊ตฌ์กฐ: src/kiwoom/(์ธ์ฆยทHTTPยทTR ๊ณ์ธต) โ src/tools/(MCP tool, ํฌ๋งทํฐ ๋ถ๋ฆฌ) โ
src/isa/(๊ณผ์ธ์ ํ ๋ถ๋ฅยท์คํ์์ต ์ฌ๊ตฌ์ฑยท์์ตํต์ฐ). ์์ธ ๊ท์น๊ณผ ๊ฒ์ฆ๋ API
๊ณ์ฝ์ CLAUDE.md ์ฐธ๊ณ .
๋ผ์ด์ ์ค
Install
Add Kiwoom Securities MCP Server to your client. Pick the one you use.
claude mcp add kiwoom-mcp-server -- npx -y kiwoom-mcp-servercodex mcp add kiwoom-mcp-server -- npx -y kiwoom-mcp-serveramp mcp add kiwoom-mcp-server -- npx -y kiwoom-mcp-server{
"mcpServers": {
"kiwoom-mcp-server": {
"command": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
]
}
}
}Add to `claude_desktop_config.json`, then restart Claude Desktop.
{
"mcpServers": {
"kiwoom-mcp-server": {
"command": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
]
}
}
}Add to `~/.cursor/mcp.json`, or `.cursor/mcp.json` for a single project.
code --add-mcp '{"name":"kiwoom-mcp-server","command":"npx","args":["-y","kiwoom-mcp-server"]}'Or add the block manually to `.vscode/mcp.json` under `servers`.
{
"mcpServers": {
"kiwoom-mcp-server": {
"command": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
]
}
}
}Add to `~/.codeium/windsurf/mcp_config.json`.
{
"mcpServers": {
"kiwoom-mcp-server": {
"command": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
]
}
}
}Add to `cline_mcp_settings.json` via the MCP Servers panel.
{
"mcpServers": {
"kiwoom-mcp-server": {
"command": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
]
}
}
}Add to `~/.gemini/settings.json`.
{
"mcpServers": {
"kiwoom-mcp-server": {
"type": "local",
"command": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
],
"tools": [
"*"
]
}
}
}Add to `~/.copilot/mcp-config.json`, or run `/mcp add` inside the CLI.
{
"context_servers": {
"kiwoom-mcp-server": {
"command": {
"path": "npx",
"args": [
"-y",
"kiwoom-mcp-server"
]
}
}
}
}Add to your Zed `settings.json`.
npx -y kiwoom-mcp-serverRun `goose configure`, choose **Add Extension โ Command-line Extension**, and paste this command.
Score
39 / 100
Incomplete
- Documentation25/25
- Maintenance25/25
- Trust13/20
- Capability0/15
- Install experience12/15
- Documents what it does and how to connect
- Has a resolvable package or endpoint
- Exposes at least one tool, prompt or resource
- README has substantive content
- Includes a code example
- Documents its configuration
- Mentions credentials or security posture
- Last commit 8 days ago
- Has a release history
- Repository is not archived
- Licensed MIT
- Namespace verified in the official MCP registry
- Claimed by its owner
- Published under an organisation
- 0 tool(s) documented
- Provides prompt templates
- Provides resources
- 12 documented install method(s)
- Published to a package registry
- Offers a hosted endpoint โ no local install
Version history
| Versions | Published |
|---|---|
| 0.52.6Latest | Aug 21, 2026 |
| 0.52.5 | Aug 20, 2026 |
| 0.52.4 | Aug 19, 2026 |
| 0.52.3 | Aug 19, 2026 |
| 0.52.2 | Aug 19, 2026 |
| 0.52.1 | Aug 18, 2026 |
| 0.52.0 | Aug 15, 2026 |
| 0.51.1 | Aug 14, 2026 |
| 0.51.0 | Aug 14, 2026 |
| 0.50.0 | Aug 10, 2026 |
| 0.49.0 | Aug 10, 2026 |
| 0.48.0 | Aug 9, 2026 |
| 0.47.2 | Aug 8, 2026 |
| 0.47.1 | Aug 8, 2026 |
| 0.47.0 | Aug 8, 2026 |
| 0.46.0 | Aug 8, 2026 |
| 0.45.0 | Aug 8, 2026 |
| 0.44.1 | Aug 7, 2026 |
| 0.44.0 | Aug 6, 2026 |
| 0.43.0 | Aug 5, 2026 |
| 0.39.0 | Aug 4, 2026 |
| 0.36.1 | Aug 4, 2026 |
| 0.36.0 | Aug 4, 2026 |
| 0.34.0 | Aug 3, 2026 |
| 0.32.0 | Aug 3, 2026 |
| 0.31.0 | Aug 3, 2026 |
| 0.30.0 | Aug 3, 2026 |
| 0.27.0 | Jul 31, 2026 |
| 0.26.0 | Jul 30, 2026 |
| 0.25.0 | Jul 26, 2026 |
| 0.24.0 | Jul 25, 2026 |
| 0.23.0 | Jul 23, 2026 |
| 0.22.0 | Jul 23, 2026 |
| 0.21.0 | Jul 22, 2026 |
| 0.20.0 | Jul 22, 2026 |
| 0.19.1 | Jul 14, 2026 |