RedoxNet.Mcp.LsOpenApi
1.6.0
{ "inputs": [ { "type": "promptString", "id": "ls_appkey", "description": "LS Securities OpenAPI AppKey", "password": true }, { "type": "promptString", "id": "ls_appsecretkey", "description": "LS Securities OpenAPI AppSecretKey", "password": true }, { "type": "pickString", "id": "ls_market", "description": "LS OpenAPI environment: real or virtual", "default": "real", "options": ["real", "virtual"] } ], "servers": { "RedoxNet.Mcp.LsOpenApi": { "type": "stdio", "command": "dnx", "args": ["RedoxNet.Mcp.LsOpenApi@1.6.0", "--yes"], "env": { "LS_APPKEY": "${input:ls_appkey}", "LS_APPSECRETKEY": "${input:ls_appsecretkey}", "LS_MARKET": "${input:ls_market}" } } } }
.vscode/mcp.json settings file.
dotnet tool install --global RedoxNet.Mcp.LsOpenApi --version 1.6.0
dotnet new tool-manifest
dotnet tool install --local RedoxNet.Mcp.LsOpenApi --version 1.6.0
#tool dotnet:?package=RedoxNet.Mcp.LsOpenApi&version=1.6.0
nuke :add-package RedoxNet.Mcp.LsOpenApi --version 1.6.0
RedoxNet.Mcp.LsOpenApi
MCP server for the LS 증권 OpenAPI — exposes Korean and US/overseas (Nasdaq / NYSE / AMEX) stock market data as MCP tools so AI assistants can query quotes, charts, ETF data, market screeners, and index / industry / theme context in natural language, plus the user's live LS broker account (read-only inquiry: holdings, balance, orders, P&L, BEP, orderable capacity) and a local-only paper-portfolio module (multi-broker holdings, watchlists, watched themes, JSON backup / restore).
Unofficial third-party MCP server. Not affiliated with or endorsed by LS Securities Co., Ltd. (LS증권). v1.6 scope: read-only market data + read-only LS broker inquiry + local paper portfolio notes (manual entry; no order placement — that's v1.7).
Install
Prerequisite. dnx is the dotnet tool launcher that ships with .NET SDK 10 or later. Install from .NET downloads if you don't have it yet. Verify with dnx --help.
dnx fetches the latest published version from NuGet on every launch — no separate install step. Wire it into your MCP host:
MCP standard config — Claude Desktop / Claude Code / Cursor / Google Antigravity
These hosts share the same mcpServers JSON schema. Paste the block below into the matching config file and restart the host.
| Host | Config path |
|---|---|
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Code | .mcp.json (workspace) or ~/.claude.json (user) |
| Cursor | .cursor/mcp.json (workspace) or ~/.cursor/mcp.json (user) |
| Google Antigravity (Win) | %USERPROFILE%\.gemini\antigravity\mcp.config.json |
| Google Antigravity (macOS / Linux) | ~/.gemini/antigravity/mcp.config.json |
{
"mcpServers": {
"lsopenapi": {
"command": "dnx",
"args": ["RedoxNet.Mcp.LsOpenApi", "--yes"],
"env": {
"LS_APPKEY": "...",
"LS_APPSECRETKEY": "...",
"LS_MARKET": "real" // default if omitted; use "virtual" only for LS mock accounts
}
}
}
}
Among these hosts, the inline chart surface (Plotly v5 spec rendered in chat) lights up on every host that advertises the SEP-1865 io.modelcontextprotocol/ui capability — empirically verified on Claude Desktop / Claude Cowork (and reported by Cursor's changelog). Google Antigravity currently advertises no UI capability, so the server classifies it as text-only: include_chart drops out of the tool schema, the chart spec is stripped, and _meta.render_status: "stripped_text_only" steers the model into honest narration (no false "I drew the chart" claim).
Codex CLI
%USERPROFILE%\.codex\config.toml (Windows) or ~/.codex/config.toml (macOS / Linux):
[mcp_servers.lsopenapi]
command = "dnx"
args = ["RedoxNet.Mcp.LsOpenApi", "--yes"]
[mcp_servers.lsopenapi.env]
LS_APPKEY = "..."
LS_APPSECRETKEY = "..."
LS_MARKET = "real" # default if omitted; use "virtual" only for LS mock accounts
VS Code
Workspace .vscode/mcp.json — VS Code uses a servers top-level key (not mcpServers) and an explicit "type": "stdio":
{
"servers": {
"lsopenapi": {
"type": "stdio",
"command": "dnx",
"args": ["RedoxNet.Mcp.LsOpenApi", "--yes"],
"env": {
"LS_APPKEY": "...",
"LS_APPSECRETKEY": "...",
"LS_MARKET": "real" // default if omitted; use "virtual" only for LS mock accounts
}
}
}
}
FieldCure AssistStudio
Settings → Connect → Add MCP Server, then fill the dialog:
| Field | Value |
|---|---|
| Server Name | Any label, e.g. LS Open Api |
| Description (for AI) | Leave blank — auto-filled from the server on first connect |
| Transport | Stdio |
| Command | dnx |
| Arguments | RedoxNet.Mcp.LsOpenApi --yes — space-separated, no quotes or commas |
| Environment Variables | one KEY=VALUE per line (see below) |
LS_APPKEY=...
LS_APPSECRETKEY=...
LS_MARKET=real
AssistStudio renders the optional Plotly chart spec from ls_get_chart / ls_get_overseas_chart
inline in the chat — call either with include_chart=true (single timeframe) to get a
candlestick chart directly in the conversation. Inline chart rendering also works on
Claude Desktop Chat, Claude Cowork, VS Code Chat, and any other SEP-1865 host
that advertises the io.modelcontextprotocol/ui capability (v1.5 verified end-to-end).
Text-only hosts (Codex, Claude Code CLI) receive _meta.render_status: "stripped_text_only"
on the response so the model can narrate honestly that no chart was shown.
Environment variables
| Name | Required | Description |
|---|---|---|
LS_APPKEY |
yes | LS OpenAPI app key. |
LS_APPSECRETKEY |
yes | LS OpenAPI app secret key. |
LS_MARKET |
no | real or virtual (default real). Runtime declaration of which appkey pair is loaded — the appkey itself determines actual account routing. Paper portfolios are mode-agnostic; LS_MARKET only labels the live ls_accounts row + namespaces the token cache. |
LS_TOOL_PROFILE |
no | standard (default — hides the 3 catalog tools from tools/list) or all (exposes them). |
LS_TOOL_PROFILE_STRICT |
no | true rejects a tools/call for a profile-hidden tool instead of honoring it (default false). |
LS_BASEURL |
no | Override REST base URL (rarely needed). |
LS_LOG_LEVEL |
no | Trace/Debug/Information/Warning/Error/Critical/None (default Information). |
LSOPENAPI_DB_PATH |
no | Override the local portfolio SQLite path. Default: alongside token.db. |
Credentials are accepted only through the process environment — never through chat, tool arguments, or MCP elicitation. Prompting for them in conversation would either log them or train callers to share them in transcripts, so that input path is intentionally closed off.
Local data lives at %LOCALAPPDATA%\RedoxNet\LsOpenApi\ on Windows and ~/.local/share/redoxnet/lsopenapi/ on Linux/macOS: token.db (auth cache, SHA-256 keyed) and portfolio.db. The portfolio file carries two logically distinct tables: the paper-portfolio surface (accounts / holdings / watchlist_* / watched_themes) — mode-agnostic, user-entered holdings and watchlists, never auto-synced — and the live LS broker registry (ls_accounts) — auto-populated from the AcntNo / branch / account-name echoed on the first successful ls_account_* call, keyed by (account_no, mode), used purely to label _meta.account_used. Live balances / orders / holdings themselves are never cached; every ls_account_* call is a fresh REST snapshot.
Tools (50 in the standard profile, 53 in all)
Recent surface highlights (full history in RELEASENOTES.Mcp.md):
- v1.6 — LS broker account inquiry family + schema-split live registry. Ten new
ls_account_*tools wrap the LS account-inquiry TR family (holdings t0424, orders t0425, balance CSPAQ12200, BEP CSPAQ12300, credit_limit CSPAQ00600, max_order_qty CSPBQ00200, order_history CSPAQ13700, transactions CDPCQ04700, performance FOCCQ33600, daily_pnl t0150/t0151) — read-only inquiry against the appkey-bound LS broker account, no caching, no daemon. Order placement stays explicitly out (v1.7 will shipls_place_order/ls_cancel_order/ls_amend_orderwith paper-trading default, preview-required gating, and idempotency tokens). portfolio.db now keeps paper portfolios (accounts—brokeris purely a display label) and the auto-discovered LS live row (newls_accountstable) in physically separate stores so a paper "LS증권" label can never shadow the live broker echo.ls_account_*tools take noaccountparameter — LS REST routes through the authenticated session, not a client-side selector. Newls_account(action="set_live_nickname")for friendly labelling. - v1.5 — Fidelity-first chart narration. Every chart-emitting tool response now carries
_meta.render_status(delivered/stripped_text_only) so the model has a hard signal whether the host rendered the chart and can narrate honestly. ServerInstructions forbids self-synthesis fallbacks regardless ofrender_status— no rendering raw OHLCV in Python / JavaScript / PNG, no forwarding the spec to a generic visualize MCP. Chart customization is constrained tols_add_indicator/ls_reframe_chart; layout-level requests (panel height, sizing) are identified as host panel constraints.output_mode=exportresponses ship_meta.data_purpose: "analysis_only"+_meta.do_not_render. Tool surface unchanged. - v1.4 — (a) date envelope (
query_dateinput +data_as_of/query_date_resolutionresponse fields) so non-trading-day fallbacks are explicit — wired onls_get_market_funds_trendandls_get_short_selling_trend; (b) LS Q-Click signal screeners:ls_list_screeners,ls_run_screener,ls_combine_screenersovert1825/t1826. - v1.3 — first-class US/overseas stocks (Nasdaq / NYSE / AMEX):
ls_search_overseas_stock,ls_get_overseas_quote,ls_get_overseas_chart.ls_add_indicator/ls_reframe_chartaccept overseasdataset_ids through the shared handle cache. - v1.2 — chart side-channel adapts per host via MCP Apps capability negotiation (SEP-1865
io.modelcontextprotocol/ui+ aclientInfoallowlist). Text-only hosts get neitherinclude_chartnorstructuredContent.chart; chart-rendering hosts get the Plotly spec. - v1.1 — program-trading slice (
ls_get_program_trading,ls_analyze_program_flow). - v0.10 — surface compressed via five action-routed portfolio dispatchers (
ls_account,ls_watchlist,ls_watched_themes,ls_portfolio_io,ls_holding);LS_TOOL_PROFILEhides the 3 catalog tools by default.
Market data (LS-backed, credentials required)
ls_search_tr / ls_describe_tr / ls_call_tr are catalog tools — hidden in the default standard profile; set LS_TOOL_PROFILE=all to expose them.
| Tool | TR | Purpose |
|---|---|---|
ls_search_tr |
— | Search the embedded TR catalog by Korean / English keyword. |
ls_describe_tr |
— | Full InBlock / OutBlock schema for a specific TR. |
ls_call_tr |
any | Invoke any TR with a caller-supplied in_block. |
ls_get_quote |
t1101 |
Current price + 10-level order book. |
ls_get_multi_quote |
t8407 |
Up to 50 stocks per call. Accepts 6-character codes (digits, optionally one uppercase letter for ETFs e.g. 0117V0). |
ls_get_top_stocks |
t1441 / t1444 / t1452 / t1463 / t1466 |
Top gainers/losers, market cap, volume, trading value, and volume-surge screeners. |
ls_get_stock_info |
t1102 + t1716 |
PER/PBR/EPS, quarterly financials, 52-week + YTD ranges, top-5 brokerages, SPAC / 관리종목 flags, and an opt-in foreign ownership-level section. Pick blocks with sections (default snapshot+fundamentals). |
ls_get_chart |
t8410 / t8412 / t1301 |
OHLCV (day/week/month/year/min/tick), indicators (SMA/EMA/RSI/MACD/BB), token-efficient summary + dataset_id, multi-timeframe in one call, optional Plotly v5 chart spec. Raw bars only with output_mode='export'; with_warmup toggles the summary warm-up; summary.coverage explains any null indicators. |
ls_add_indicator |
(handle cache + chart TR) | Adds an indicator to a dataset_id returned by ls_get_chart or ls_get_overseas_chart and returns the updated summary + chart spec. KR and US datasets share the same cache. Example: "add MA200 too". |
ls_reframe_chart |
(handle cache + chart TR) | Reframes a dataset_id to a new period/count using the cached symbol. Works on both KR and US chart datasets. Example: "이걸 일봉으로 바꿔서 최근 6개월만 보여줘". |
ls_search_stock |
t8436 |
Name → code search with instrument filter (all / stock / etf). |
ls_get_etf_info |
t1901 |
ETF/ETN snapshot — NAV, 괴리율, 추적오차율, reference index, AUM, LP list. |
ls_get_etf_holdings |
t1904 |
ETF PDF (구성종목) — per-holding weight / valuation. limit caps the rows (default 20; limit=-1 for the full list). |
ls_get_global_market_quote |
t3521 |
Overseas index / FX / futures snapshot. Aliases include nasdaq, sp500, dow, soxx, usdkrw, wti, gold; raw LS symbols like NAS@IXIC are accepted. |
US / overseas individual stocks (LS-backed)
| Tool | TR | Purpose |
|---|---|---|
ls_search_overseas_stock |
g3104 + g3190 |
Ticker / Korean name / English name search across the LS overseas stock master. Ticker-pattern keywords short-circuit through a direct g3104 probe (so NVDA resolves to the real ticker, not an unrelated ETF whose name contains "NVDA"); name keywords fall back to a ranked paginated master scan. Returns keysymbol, exchcd, symbol for follow-up calls. |
ls_get_overseas_quote |
g3101 + opt. g3104 / g3106 |
Overseas stock quote snapshot — price, change %, OHLC, 52-week range, PER/EPS, optional company/security profile and 10-level order book. |
ls_get_overseas_chart |
g3204 / g3203 / g3202 |
OHLCV candles for US stocks — day/week/month/year (g3204), N분봉 (g3203), N틱 (g3202). Same indicator stack and summary / dataset_id / Plotly chart spec as ls_get_chart; response carries currency (USD for Nasdaq/NYSE/AMEX) and bar_timezone (America/New_York) so the model can disambiguate "5/22 일봉" as the NYSE session rather than an Asia/Seoul calendar date. |
Index + industry (LS-backed)
| Tool | TR | Purpose |
|---|---|---|
ls_get_index_quote |
t1511 |
Single Korean index snapshot. Aliases: kospi/kosdaq/kospi200/krx100. Returns value, change %, OHLC with timestamps, 52-week + YTD range, market breadth, and 4 related auxiliary indices. |
ls_get_index_history |
t1514 |
Daily/weekly/monthly index time series — per-bar OHLC, volume, breadth, foreign/institutional net flow. verbosity shapes the payload; output_mode=export caches the whole series under a dataset_id for no-API-call drill (from / to / recent_n). |
ls_get_industry_indices |
t8424 + t1511 fanout |
Top-N industry indices sorted by change %. 60s cache so repeated calls with different limit reuse one fanout. |
ls_get_industry_stocks |
t1516 |
Stocks inside one industry + the industry's index summary. Body-based paging. Accepts upcode or industry_keyword (LIKE on cached t8424 catalog). |
ls_get_market_funds_trend |
t8428 |
Market-liquidity time series — 고객예탁금, 신용잔고, 미수금, 선물예수금, and equity/mixed/bond/MMF fund money (억원). Accepts the v1.4 date envelope (query_date in, data_as_of + query_date_resolution out). |
LS themes (LS-backed)
| Tool | TR | Purpose |
|---|---|---|
ls_get_theme_stocks |
t1537 |
Stocks inside one LS curated theme + summary (tmcnt/upcnt/uprate). Header-based tr_cont paging. Accepts theme_code or theme_keyword. |
ls_get_stock_themes |
t1532 |
Reverse lookup — every theme a stock belongs to. Empty array is a valid response. |
Screeners & per-stock analytics (LS-backed)
| Tool | TR | Purpose |
|---|---|---|
ls_get_fundamentals_rank |
t3341 |
Rank stocks by a fundamental metric: per / pbr / peg / eps / bps / roe / 매출액·영업이익·세전계속이익 증가율 / 부채비율 / 유보율. PER/PBR/PEG forced ascending. Each row carries the full fundamental snapshot so two metrics on the same stock are visible in one call. |
ls_get_investor_flow |
t1601 + t1702 |
Investor-type flow across 12 categories (개인 / 외국인 / 기관계 / 증권 / 투신 / 은행 / 보험 / 종금 / 기금 / 국가 / 기타 / 사모펀드). No shcode → intraday market-wide snapshot (six unlabeled segments). With shcode → single-stock daily time series with metric (volume/value/price) + direction (net/buy/sell) + cumulative toggle. |
ls_get_stock_events |
t3202 |
Per-stock corporate-action / 주주총회 calendar covering all 14 LS event types. kinds accepts English snake_case, Korean labels, or raw two-char upgu codes. TBD entries survive date filtering. |
ls_get_market_warnings |
t1404 + t1405 |
Union of the two KRX surveillance screens (13 designations: 관리 / 불성실공시 / 투자유의 / 투자환기 / 투자경고 / 매매정지 / 정리매매 / 투자주의 / 투자위험 / 위험예고 / 단기과열지정 / 이상급등 / 상장주식수부족). shcodes clips against holdings for "내 보유 중 관리종목" queries. |
ls_get_analyst_opinions |
t3401 |
Per-stock brokerage (sell-side) investment-opinion history — rating + target price before/after each change, broker, opinion-day close, plus a current-price snapshot. |
ls_get_short_selling_trend |
t1927 |
Per-stock daily short-selling (공매도) — short volume/value (백만원), short ratio, average short price, cumulative short volume, uptick-applied vs. exempt split. Accepts the v1.4 date envelope (query_date in, data_as_of + query_date_resolution out). |
ls_get_high_low_stocks |
t1442 |
New-high / new-low (신고가 / 신저가) screener. direction, period (52w default), maintained (돌파유지 vs 일시돌파); ETF/ETN excluded by default. |
ls_list_screeners |
t1826 |
List the user's saved Q-Click 조건식 screeners on the LS server side, with partial Korean-name filter. |
ls_run_screener |
t1825 |
Execute a saved Q-Click condition by id and return the matching stocks (limit-capped). Rows reporting 0 price for thinly-traded names are tagged rapid_change_noise. |
ls_combine_screeners |
t1825 (fanout) |
Intersect or union the results of multiple saved Q-Click screeners in a single call. Dedupes inputs; preserves the per-screener row caps. |
Program trading (LS-backed)
| Tool | TR | Purpose |
|---|---|---|
ls_get_program_trading |
t1662 / t1633 / t1636 / t1637 |
Program-trading (프로그램매매) flow. scope=market — intraday (t1662) or daily (t1633) market-wide 차익 / 비차익 net buying with the KOSPI200 index; scope=ranking — per-stock net-buy ranking (t1636) with a market-cap-normalized footprint ratio; scope=stock — one stock's intraday / daily flow (t1637). include_chart=true ships an inline Plotly v5 chart. |
ls_analyze_program_flow |
t1637 |
Program-trading footprint analysis for one stock — a regime (accumulation / distribution / churn / neutral), a 0–1 confidence, signals (persistence, churn ratio, intensity, intraday pace, price coupling), and plain-language evidence to narrate. |
LS broker account inquiry (live, LS-backed)
Fresh REST snapshot of the appkey-bound LS broker account on every call — no caching, no daemon, no background sync. None of these tools accept an account argument: LS account-inquiry TRs route through the authenticated session, not a client-side selector. The first successful call auto-discovers the broker's AcntNo into a separate ls_accounts registry; a friendly nickname can be attached via ls_account(action="set_live_nickname").
| Tool | TR | Purpose |
|---|---|---|
ls_account_holdings |
t0424 |
Live positions — per-symbol rows + portfolio summary (estimated net assets, deposit, total evaluation / P&L). |
ls_account_orders |
t0425 |
Today's order book — filled + pending. Filters: status (all / filled / pending), side (all / buy / sell), symbol, sort. |
ls_account_balance |
CSPAQ12200 |
Cash, buying power, total valuation — deposit, D1/D2, orderable amounts (cash / kospi / kosdaq / margin tiers), substitute amount, evaluation amount, deposited asset total, investment principal / P&L. |
ls_account_bep |
CSPAQ12300 |
Break-even price per holding — different from raw average purchase price; reflects fees / taxes. |
ls_account_credit_limit |
CSPAQ00600 |
Margin loan limits (융자/대주 한도). Returns 02062 신용계좌가 아닙니다 for cash-only accounts. |
ls_account_max_order_qty |
CSPBQ00200 |
Maximum orderable quantity for a symbol / side / price triple — INQUIRY ONLY, never places an order. Returns 증거금률별 (20/30/40/100%) tiers. |
ls_account_order_history |
CSPAQ13700 |
Order/fill history for a specific date. Lifecycle rows include placed / modified / cancelled / executed. |
ls_account_transactions |
CDPCQ04700 |
Transaction log over a date range — deposits, withdrawals, fills, transfers. kind filter: all / cashflow / transfer / trade / fx / misc. |
ls_account_performance |
FOCCQ33600 |
Period P&L — total invested principal, period return %, per-period breakdown (daily / weekly / monthly). |
ls_account_daily_pnl |
t0150 / t0151 |
Single-day trade log + fees/taxes. t0150 for today; t0151 for any other date. |
Paper portfolio (local-only, no broker sync)
Manual entries persisted to portfolio.db next to token.db — physically separate from the live ls_accounts table above so a paper "LS증권" label never shadows the live broker echo. broker on paper-portfolio rows is purely a display label ("한투", "유안타증권", "LS증권" all valid).
| Tool | Actions | Purpose |
|---|---|---|
ls_account |
list / upsert / remove / set_live_nickname |
list returns {paper_accounts, live_accounts}. upsert / remove apply to paper accounts only (upsert also renames a broker label across accounts via rename_broker_from; remove is a two-step confirm cascade with auto-succession of the default by id ASC). set_live_nickname attaches a friendly label to the auto-discovered live row. |
ls_holding |
set / buy / sell / remove / corporate_action |
Holding writes for paper accounts — initial state, weighted-average buy merge, partial/full sell (auto-remove at zero, InsufficientQuantity above the position), outright delete, and the open-enum corporate action (type ∈ split / reverse_split / bonus). |
ls_holdings_list |
— | Paper holdings grouped by account with per-account + total summary. Optional account, theme_code, theme_keyword, industry (FICS substring) filters (AND-combine). |
ls_stocks_refresh_metadata |
— | Synchronous refresh for theme / FICS-industry caches. Default scope = holdings ∪ watchlist symbols when shcodes omitted. |
ls_watchlist |
list / add / remove / group_upsert / group_delete |
Saved watchlist items and their groups. list takes scope (items / groups); group_upsert creates, updates, or renames a group (rename_from). |
ls_watched_themes |
list / add / remove |
Track LS theme codes (t1531 tmcode such as 0064); list carries each theme's avg percent change. |
ls_portfolio_io |
export / import |
Versioned JSON snapshot (schema v1) of paper accounts/holdings/watchlists/watched themes. import mode=replace requires confirm=true and writes a before-import-*.json auto-backup. |
Ambiguity policy (paper). Reads fall back; writes require an explicit target when ambiguous. 0 paper accounts → RequiresAccount; 1 paper account → auto with applied_to echo; 2+ → AmbiguousAccount with candidates[]. Every paper-portfolio mutation includes applied_to (single account) or applied_to[] (corporate actions).
Error envelopes. RequiresAccount / AmbiguousAccount / AccountNotFound / RequiresConfirmation / InsufficientQuantity / ValidationError / LiveAccountNotFound — all carry structured fields (candidates, identifier, holding count + market value, etc.) so the LLM can recover automatically.
Full release notes: https://github.com/redoxnet/mcp-lsopenapi/blob/main/RELEASENOTES.Mcp.md
Documentation & source
- Project home: https://github.com/redoxnet/mcp-lsopenapi
- TR inventory: https://github.com/redoxnet/mcp-lsopenapi/blob/main/docs/LS-TR-INVENTORY.md
- SDK package: https://www.nuget.org/packages/RedoxNet.LsOpenApi.Core/
- License: MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.6.0 | 152 | 5/28/2026 |
| 1.5.1 | 155 | 5/27/2026 |
| 1.5.0 | 156 | 5/27/2026 |
| 1.4.0 | 140 | 5/26/2026 |
| 1.3.0 | 136 | 5/26/2026 |
| 1.2.0 | 106 | 5/22/2026 |
| 1.1.0 | 156 | 5/22/2026 |
| 1.0.0 | 155 | 5/21/2026 |
| 0.10.1 | 155 | 5/20/2026 |
| 0.10.0 | 96 | 5/20/2026 |
| 0.9.0 | 100 | 5/20/2026 |
| 0.8.0 | 103 | 5/20/2026 |
| 0.7.0 | 107 | 5/18/2026 |
| 0.6.0 | 108 | 5/16/2026 |
| 0.5.0 | 117 | 5/15/2026 |
| 0.4.0 | 107 | 5/15/2026 |
| 0.3.0 | 101 | 5/14/2026 |
| 0.2.0 | 102 | 5/14/2026 |
| 0.1.0 | 109 | 5/13/2026 |
v1.6.0 — Account inquiry family + schema-split live registry. Ten new ls_account_* MCP tools (read-only inquiry against the appkey-bound LS broker account): holdings, orders, balance, bep, credit_limit, max_order_qty, order_history, transactions, performance, daily_pnl. Surface 40→50 standard / 43→53 all. portfolio.db now keeps paper portfolios (accounts table — broker is purely a display label) and the auto-discovered live LS row (new ls_accounts table) in physically separate stores so a paper "LS증권" label never shadows the live broker echo. BREAKING: ls_account(action="list") returns {paper_accounts, live_accounts}; ls_account_* tools drop the `account` parameter (LS account-inquiry TRs are appkey-routed server-side, not client-selectable). New ls_account(action="set_live_nickname"). LS REST endpoint is identical for real and virtual modes — only the appkey pair distinguishes them. Lockstep with RedoxNet.LsOpenApi.Core 1.6.0. See https://github.com/redoxnet/mcp-lsopenapi/blob/main/RELEASENOTES.Mcp.md.