Safe-by-default MCP server for the official Toss Securities Open API.
Strong foundation with 27 well-defined tools, comprehensive schemas using Zod validation, and clear descriptions for most tools. All tools have explicit input schemas with type constraints (regex patterns, enums, min/max bounds). Descriptions are generally 50-200 chars and explain WHAT the tool does and WHEN to use it. However, some parameter descriptions lack actionable detail (e.g., 'Candle interval' doesn't specify valid values like '1m', '5m', '1h'), and output schemas are not documented. Error handling is present but generic. Tool naming follows verb_noun convention well (order_create, order_execute, portfolio_snapshot). Composition is excellent, tools chain naturally (order_preview → order_execute, portfolio_snapshot for context). No secrets exposed as parameters. Confirmation gates on destructive operations (order_create, order_modify, order_cancel) are well-designed.
List Toss Securities accounts. Account numbers are masked.
Check Toss API credential configuration and token status without returning secrets.
Read buying power for an account and currency.
Read candles for a symbol.
Read official Toss account commission rates.
Read exchange rate from official Toss API.
Read holdings for an account using X-Tossinvest-Account.
Output schemas not documented. Tools return data but LLMs cannot see field structure, types, or required fields. Forces LLMs to infer response shape, risking parsing errors and missed chaining opportunities.
Parameter descriptions lack actionable constraints. 'Candle interval' doesn't specify valid values (1m, 5m, 1h, 1d, etc.). 'Confirmation text' doesn't explain exact required strings. LLMs must guess or fail.
Error handling is generic. Tools return errors but do not guide recovery (e.g., 'Invalid symbol' doesn't suggest 'Try prices() with a valid symbol'). No error classification (retryable vs fatal).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 68 | 2026-07-28+ | v2 |
Read KR or US market calendar.
Cancel an order. Default dry-run; real execution requires ENABLE_TRADING, ENABLE_ORDER_CANCEL, dryRun=false, and confirmation.
Create an order. Default dry-run; real execution requires ENABLE_TRADING, ENABLE_ORDER_CREATE, dryRun=false, confirmation, amount, and symbol gates.
Read one order detail for an account.
Fast preview-based order execution. Requires valid unexpired previewId, matching requestHash, exact confirmation, and passing env/delegated-authority gates. No automatic order POST retry.
Modify an order. Default dry-run; real execution requires ENABLE_TRADING, ENABLE_ORDER_MODIFY, dryRun=false, confirmation, and symbol gates.
Create an in-memory preview contract for an order. Never calls Toss order POST endpoints. order_execute confirmation text: I approve this exact Toss order preview
Read-only order reconciliation summary for open and recently closed orders, state counts, and replace/modify caveats.
Validate order safety gates only. Never calls Toss order POST endpoints. Confirmation text: I understand this may place a real Toss Securities order
Read orderbook for a symbol.
Read closed orders for an account if supported by Toss API.
Read open orders for an account.
Read a structured account snapshot: holdings, KRW/USD buying power, open orders, calculable position weights, warning flags, and partial failures. Position weights use a KRW-converted, cash-inclusive denominator (holdings + KRW/USD cash buying power); when cashStatus is 'partial', omitted cash currencies are listed in omittedCashCurrencies. If status is 'partial', do not trust holdings.count as a complete account position count; retry or use a fallback read path.
Run separate pre-execution safety/reality checks for a candidate order. Read/check only; not required in order_execute hot path.
Read upper/lower price limits for a symbol.
Read current prices for comma-separated symbols.
Read sellable quantity for an account and symbol.
Read basic stock info for comma-separated symbols.
Read buy-warning information for a stock.
Read recent trades for a symbol.
Confirmation text requirements are implicit. order_execute requires 'exact confirmation' but the exact string is not shown in the tool definition. LLMs cannot know what to pass without calling order_preview first.
STDIO transport only. Server is not remotely accessible and cannot be used by hosted MCP clients. Limits deployment to local/CLI-only scenarios.