Unified finance MCP server: composes DART (structured filings/financials), Toss Securities (execution layer -- prices, orders, portfolio), and Telegram (unstructured news/analyst commentary) into a single MCP server process.
This server aggregates three distinct finance/messaging APIs (DART, Toss, Telegram) into a single MCP process. Tool naming is generally verb-first and clear (search_companies, get_financial_statements, place_order, get_messages). However, critical gaps undermine production readiness: (1) Most parameter descriptions are minimal or missing type constraints (e.g., 'Account sequence number' lacks format/range guidance). (2) Output schemas are not documented, LLMs cannot predict response structure for chaining. (3) Error handling is absent from visible code; no recovery guidance. (4) Several tools accept free-form strings where enums would prevent hallucination (report_type, disclosure_type, file_type have valid sets but are not enforced as enums in schema). (5) Sensitive operations (place_order, cancel_order, download_file) lack confirmation/dry-run patterns. (6) Parameter naming inconsistencies: some tools use 'chat' (Telegram), others 'corp_code' (DART), 'account_seq' (Toss), no unified pattern. Average tool description length ~80 chars (below 194-char baseline); many lack actionable context for LLM selection.
Cancel an existing order.
Check DART API credentials and connectivity.
Download a file from a Telegram message.
Check DART, Toss, and Telegram credentials/connectivity in one call.
Get available buying power and account balance.
Get current holdings in a brokerage account.
Get order history for an account.
Output schemas not documented. LLMs cannot predict response structure, breaking tool chaining and forcing exploratory calls.
Enum constraints missing for parameters with known valid sets. report_type, disclosure_type, file_type, order_type, side accept free-form strings, inviting LLM hallucination.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Get historical candle data (OHLCV) for a security.
Resolve a Telegram username or numeric ID and return its title, about text, member count, and type.
Retrieve the full text content of a specific disclosure document.
Retrieve a list of disclosure documents filed by a company.
Retrieve dividend payment history for a company.
Retrieve executive and key shareholder ownership reports.
Retrieve financial statements (balance sheet, income statement, cash flow) for a company.
Retrieve major shareholder information for a company.
Get current market quote for one or more securities.
Fetch recent messages from one Telegram chat, optionally after a date and message offset.
Get order book (bid/ask) for one or more securities.
Retrieve shareholder return-related board decisions (capital increases, reductions, treasury stock, etc.).
Return dialogs with IDs, titles, usernames, types, and unread counts.
Place a new buy or sell order.
Search for Korean companies by name or code in the DART database.
Find Telegram messages carrying documents, photos, videos, audio, or any media, globally or in one chat.
Search message text globally or within one Telegram chat and return matching message summaries.
Check Telegram session and connectivity.
Check Toss Securities API credentials and connectivity.
Destructive operations (place_order, cancel_order, download_file) lack confirmation or dry-run patterns. Agents can execute irreversible actions without safeguards.
Parameter descriptions lack format/range constraints. E.g., 'Account sequence number' does not specify format, length, or valid range. 'Eight-digit DART company code' is good, but inconsistent across tools.
No error handling or recovery guidance visible in code. Tools do not return actionable error messages or suggest next steps when failures occur.