RedoxNet.Mcp.LsOpenApi
0.4.0
See the version list below for details.
{ "servers": { "RedoxNet.Mcp.LsOpenApi": { "type": "stdio", "command": "dnx", "args": ["RedoxNet.Mcp.LsOpenApi@0.4.0", "--yes"] } } }
.vscode/mcp.json settings file.
dotnet tool install --global RedoxNet.Mcp.LsOpenApi --version 0.4.0
dotnet new tool-manifest
dotnet tool install --local RedoxNet.Mcp.LsOpenApi --version 0.4.0
#tool dotnet:?package=RedoxNet.Mcp.LsOpenApi&version=0.4.0
nuke :add-package RedoxNet.Mcp.LsOpenApi --version 0.4.0
RedoxNet.Mcp.LsOpenApi
MCP server for the LS증권 OpenAPI — exposes Korean stock market data as MCP tools so AI assistants can query quotes, charts, and ETF data in natural language.
Unofficial third-party MCP server. Not affiliated with or endorsed by LS Securities Co., Ltd. (LS증권). Read-only market-data scope (실시간 / 계좌 / 주문 deferred).
Install
dnx fetches the latest published version from NuGet on every launch — no separate install step. Wire it into your MCP host:
Claude Desktop / Claude Code
claude_desktop_config.json (Claude Desktop) or .mcp.json at your workspace root (Claude Code):
{
"mcpServers": {
"lsopenapi": {
"command": "dnx",
"args": ["RedoxNet.Mcp.LsOpenApi", "--yes"],
"env": {
"LS_APPKEY": "...",
"LS_APPSECRETKEY": "...",
"LS_MARKET": "virtual" // "virtual" (paper) or "real" (live)
}
}
}
}
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 = "virtual" # "virtual" (paper) or "real" (live)
VS Code
Workspace .vscode/mcp.json:
{
"servers": {
"lsopenapi": {
"type": "stdio",
"command": "dnx",
"args": ["RedoxNet.Mcp.LsOpenApi", "--yes"],
"env": {
"LS_APPKEY": "...",
"LS_APPSECRETKEY": "...",
"LS_MARKET": "virtual" // "virtual" (paper) or "real" (live)
}
}
}
}
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=virtual
AssistStudio renders the optional Plotly chart spec from ls_get_chart inline in the
chat — call it with include_chart=true (single timeframe) to get a candlestick chart
directly in the conversation.
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 virtual). |
LS_BASEURL |
no | Override REST base URL (rarely needed). |
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.
Tools (v0.4.0)
| 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. |
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 |
PER/PBR/EPS, quarterly financials, 52-week + YTD ranges, top-5 brokerages, foreign-investor activity, SPAC / 관리종목 flags. |
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 and returns the updated summary + chart spec. Example: "add MA200 too". |
ls_reframe_chart |
(handle cache + chart TR) | Reframes a dataset_id to a new period/count using the cached symbol. 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 (구성종목) with optional top_n cap. |
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 is compatible. 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 was computed. 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 | 574 | 5/28/2026 |
| 1.5.1 | 376 | 5/27/2026 |
| 1.5.0 | 372 | 5/27/2026 |
| 1.4.0 | 356 | 5/26/2026 |
| 1.3.0 | 355 | 5/26/2026 |
| 1.2.0 | 125 | 5/22/2026 |
| 1.1.0 | 372 | 5/22/2026 |
| 1.0.0 | 394 | 5/21/2026 |
| 0.10.1 | 374 | 5/20/2026 |
| 0.10.0 | 109 | 5/20/2026 |
| 0.9.0 | 119 | 5/20/2026 |
| 0.8.0 | 116 | 5/20/2026 |
| 0.7.0 | 134 | 5/18/2026 |
| 0.6.0 | 123 | 5/16/2026 |
| 0.5.0 | 138 | 5/15/2026 |
| 0.4.0 | 121 | 5/15/2026 |
| 0.3.0 | 123 | 5/14/2026 |
| 0.2.0 | 117 | 5/14/2026 |
| 0.1.0 | 123 | 5/13/2026 |
v0.4.0: ls_get_chart reshape — text payload is now summary-first (AnalyticalSummary + dataset_id; raw OHLCV only with output_mode='export'). Adds ls_add_indicator and ls_reframe_chart follow-up tools (operate on dataset_id without re-sending raw bars). New with_warmup parameter explicitly toggles the summary warm-up policy; every response carries a summary.coverage block with per-indicator status (ok/insufficient_data/disabled) and a human-readable note. key_turns now use a threshold-reversal ZigZag with strict peak/trough alternation and a trailing tentative pivot; MA60 slope uses a least-squares fit. Tool count 11 → 13. See https://github.com/redoxnet/mcp-lsopenapi/blob/main/RELEASENOTES.Mcp.md for full notes.