dart-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@dart-mcpWhat did Samsung Electronics disclose in the last two weeks, and was anything material?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
dart-mcp
An MCP server that gives AI agents and foreign investors access to DART, Korea's electronic corporate disclosure system and its counterpart to SEC EDGAR.
Most Korean filings exist only in Korean, and DART's API returns Korean labels and terse codes. This server resolves companies by English name or ticker. It translates filing titles, account names and governance terms with a curated glossary, so that 유상증자 comes back as "Paid-in Capital Increase (Rights Offering / Placement)" and not a literal machine translation. Every response keeps the original Korean beside the English, so the calling model can check the translation and cite the source.
Tools
Tool | What it answers |
| Which entity is "Hyundai"? Searches English name, Korean name, ticker or corp_code |
| CEO, market, industry, fiscal year-end, website |
| What did the company (or the whole market) file recently? Titles are in English |
| Full filing body with a table of contents, paging and keyword search |
| XBRL BS / IS / CF with English account labels and integer KRW amounts |
| 5% block holdings, Korea's version of 13D/13G |
| Executive and major-shareholder holdings, Korea's version of Form 4 |
| Controlling shareholder and related parties (chaebol structure) |
| DPS, payout ratio, yield |
| Glossary lookup for DART jargon, with no API call |
It also has the prompt company_brief, which builds an English investment brief from these
tools, and the resource dart://glossary/filing-types.
Related MCP server: Korea Stock Insight MCP
Setup
Claude Code
claude mcp add dart -e DART_API_KEY=your_key -- uv --directory /path/to/dart-mcp run dart-mcpClaude Desktop / other MCP clients
{
"mcpServers": {
"dart": {
"command": "uv",
"args": ["--directory", "/path/to/dart-mcp", "run", "dart-mcp"],
"env": { "DART_API_KEY": "your_key" }
}
}
}Remote (HTTP)
DART_API_KEY=your_key uv run dart-mcp --transport streamable-http --host 0.0.0.0 --port 8000
# or
docker build -t dart-mcp . && docker run -e DART_API_KEY=your_key -p 8000:8000 dart-mcpThe HTTP transport has no authentication. Put it behind a proxy or gateway that handles auth before you expose it publicly.
Configuration
Env var | Default | Purpose |
| (required) | OpenDART key |
|
| Where the corp code list (about 100k companies) is cached. It refreshes weekly |
|
| Log level. Logs go to stderr |
|
| HTTP transport bind address |
Example questions
"What did Samsung Electronics disclose in the last two weeks? Anything material?"
"Compare SK hynix's operating margin for 2023 and 2024."
"Who controls Hyundai Motor, and has any 5% holder changed position this year?"
"Find all convertible bond issuances on KOSDAQ this month."
"Summarize the risk factors section of this annual report in English."
Limitations
Structured financials (XBRL) start in 2015. Some financial firms and unlisted companies don't file XBRL, so read their reports with
get_filing_text.A market-wide
get_recent_filingssearch (no company given) is limited to 3 months by DART.The glossary covers common filing types and accounts. Unknown terms come back with
*_en: null, and the calling LLM translates them.
Development
uv sync
uv run pytest
uv run ruff check src tests && uv run ruff format --check src testsThe tests use a mocked DART backend, so no API key or network is needed.
License
MIT. Free to use, modify and redistribute, including commercially, as long as the copyright notice is kept. DART data belongs to the Financial Supervisory Service (금융감독원); follow OpenDART's terms of use.
Available Tools
10 toolsget_company_profileA
Company overview: English/Korean name, CEO, market, industry code, address, website, fiscal year-end.
company accepts a ticker (005930), corp_code, or name.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden; it implies a read-only lookup and discloses the returned fields, but says nothing about behavior on unknown/ambiguous identifiers, required auth, or whether the call is a single deterministic lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short blocks: the payload summary first, the parameter constraint second. No filler, and the field list earns its space by telling the agent whether this tool answers the question.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no elaboration, and the single parameter is fully explained. Only edge-case behavior (not found, ambiguous name matches) is left uncovered for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, and it does by defining the accepted identifier forms with a concrete ticker example (005930) plus corp_code and name. It stops short of format rules for corp_code or ambiguity handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States the resource (company overview) and enumerates exactly what comes back: name in English/Korean, CEO, market, industry code, address, website, fiscal year-end. That lets an agent separate it from financial, filing, and shareholder siblings, though it never explicitly contrasts with search_company.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The identifier note ('accepts a ticker, corp_code, or name') implies when the tool is usable, but there is no explicit when-to-use/when-not guidance and no mention of search_company as the alternative for discovering an unknown company.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dividendsB
Dividend data from a periodic report: DPS, payout ratio, yield, total paid (배당에 관한 사항).
Labels are Korean (e.g. 주당 현금배당금(원) = cash dividend per share in won, 현금배당성향(%) = payout ratio, 현금배당수익률(%) = dividend yield).
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| period | No | annual | |
| company | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses that the data comes from a periodic report and that labels are Korean, including mappings for key dividend fields, but it does not state read-only behavior, permission needs, or response shape beyond the output schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the tool's purpose before adding the Korean-label caveat. The field list and example mappings are useful, though there is minor repetition between the English field names and the Korean label examples.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be fully explained. The description covers the dividend fields and Korean label issue, but with 0% schema description coverage and no annotations, it leaves parameter semantics and sibling differentiation underspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate for undocumented parameters. It does not explain the company, year, or period parameters, nor does it map period enum values to report types, leaving input semantics almost entirely to the bare schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description identifies a specific resource and source: dividend data from a periodic report, including DPS, payout ratio, yield, and total paid. It is clear what kind of data the tool returns, though it does not explicitly distinguish this from sibling tools such as get_financial_statements.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for dividend data but gives no explicit guidance on when to use it instead of alternatives like get_financial_statements or get_recent_filings. There are no stated exclusions, prerequisites, or alternative-tool routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_filing_textA
Read the original text of a filing (Korean) by its 14-digit rcept_no.
Returns a table of contents with character offsets; page through long filings with
offset. Pass search (a Korean keyword such as 매출, 배당, 최대주주, 소송) to get
matching snippets instead of a page. Tables are flattened to ' | '-separated rows.
Translate the returned text as needed and cite url.
| Name | Required | Description | Default |
|---|---|---|---|
| offset | No | ||
| search | No | ||
| rcept_no | Yes | ||
| max_chars | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden and does well: it states that filings are Korean, returns a table of contents with character offsets, flattens tables to ' | '-separated rows, and returns snippets when search is used. It does not discuss permissions, rate limits, or error behavior, so it is strong but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core action and identifier, then proceeds through pagination, search, table formatting, and citation guidance. Every sentence adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, four parameters, 0% schema description coverage, and an output schema. The description covers most operational details, including output shape and search behavior, but omits max_chars and any mention of how to obtain rcept_no. It is nearly complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain all four parameters. It explains rcept_no, offset, and search well, including Korean keyword examples, but leaves max_chars completely undocumented. This compensates for most of the schema gap but not all of it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: read the original text of a filing, identified by a 14-digit rcept_no. It is clearly distinguishable from sibling tools that search companies or retrieve financial statements, because this one retrieves filing body text.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete usage guidance: use offset to page through long filings, and pass search to get matching snippets instead of a page. It also tells the agent to translate as needed and cite url. It does not compare this tool directly with sibling filing-related tools, but the modes of use are clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_financial_statementsA
Financial statements from XBRL filings, with English account labels.
year: fiscal year (2015+). period: annual, half (H1), q1, q3. For Q4/full-year use annual.
consolidated: True = consolidated (CFS); falls back to separate (OFS) if the company files no consolidated statements.
detail: summary = key accounts (revenue, operating profit, net income, assets, liabilities, equity); full = every line of BS, IS, CIS, CF, SCE. Amounts are integers in KRW (won). 'current' is the reported period; for quarterly income statements 'current' is the 3-month quarter and 'current_year_to_date' is cumulative.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes | ||
| detail | No | summary | |
| period | No | annual | |
| company | Yes | ||
| consolidated | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does so well: it discloses the XBRL source, English labels, KRW units, consolidated-to-separate fallback, summary vs full scope, and the meaning of 'current' versus 'current_year_to_date' for quarterly income statements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and then uses compact bullets to explain the parameters that most need clarification. Every sentence adds useful information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return structure need not be described. The description is complete for most parameters and data semantics, but the missing guidance on the required company parameter is a notable gap for an agent invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters, and it does for year, period, consolidated, and detail—including enum meanings and fallback semantics. It does not explain the required company parameter's expected format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool returns financial statements sourced from XBRL filings with English account labels. It distinguishes the resource from nearby filing-related siblings, though it does not explicitly name an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives useful usage context for period selection, including the explicit instruction to use 'annual' for Q4/full-year. It also explains the consolidated fallback behavior, but it does not say when to prefer this tool over siblings like get_filing_text.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_tradesB
Executive and major-shareholder ownership reports (임원ㆍ주요주주 소유보고).
Korea's equivalent of SEC Form 4: holdings and changes by directors, officers, and 10%+ holders. Newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| company | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully adds ordering ('newest first') and clarifies the report type via the SEC Form 4 analogy, but it never states that this is a read-only lookup, nor does it mention pagination, rate limits, or error behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and every sentence adds useful context: the report type, the SEC Form 4 analogy, the covered persons, and the sort order. Minor redundancy between 'executive and major-shareholder ownership reports' and 'holdings and changes by directors, officers, and 10%+ holders' keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained. However, for a tool with no annotations and 0% schema description coverage, the description is incomplete: it omits the company identifier format, the limit semantics, and any differentiation from get_major_shareholder_changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters, but it says nothing about the required 'company' identifier format (ticker, name, Korean company name?) or what 'limit' controls and its maximum. It only broadly implies the domain, leaving both parameters semantically underspecified.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific resource (executive and major-shareholder ownership reports) and a useful analogy (Korea's SEC Form 4), with clear scope (directors, officers, 10%+ holders). It does not, however, explicitly distinguish this from the sibling get_major_shareholder_changes, which appears to overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The content implies when the tool is relevant, but there is no explicit 'use this when' guidance and no exclusion or alternative named. Given the overlapping sibling get_major_shareholder_changes, the lack of routing guidance is a meaningful gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_filingsA
List DART filings, newest first, with English titles where known.
company: ticker / corp_code / name. Omit to see the whole market (DART limits market-wide searches to a 3-month window).
filing_type: periodic (annual/quarterly reports), major_event (M&A, capital raises, litigation), issuance, ownership (5% block / insider), other, audit, fund, abs, exchange (preliminary earnings, KRX inquiries), ftc.
start_date / end_date (YYYY-MM-DD) override
days. Use get_filing_text with a returned rcept_no to read the filing body.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| page | No | ||
| limit | No | ||
| company | No | ||
| end_date | No | ||
| start_date | No | ||
| filing_type | No | ||
| include_amended_originals | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description still discloses useful behavioral traits: newest-first ordering, incomplete English title coverage, and the 3-month market-wide search limit. It omits pagination behavior and any auth/rate-limit notes, so it is strong but not complete for an annotation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded summary sentence followed by tight bullets, each earning its place with concrete enum glosses. Slightly dense but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values needn't be explained, and the description does cover the high-value parameters. However, with 8 parameters and 0% schema coverage, the four undocumented parameters — particularly the semantically ambiguous include_amended_originals — leave real gaps an agent must guess at.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the burden. It does well on the non-obvious ones — company accepts ticker/corp_code/name, filing_type enum values are explained with examples, and start_date/end_date format is given — but days, page, limit, and especially include_amended_originals get no explanation at all.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List DART filings'), the sort order ('newest first'), and a data caveat ('English titles where known'). It also names the sibling get_filing_text and the handoff key (rcept_no), so an agent can distinguish listing from reading without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to omit company (market-wide) and attaches the resulting constraint (DART limits market-wide searches to 3 months). It also states that start_date/end_date override days and that get_filing_text should be used for filing bodies, which is clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_companyA
Find Korean companies on DART by English name, Korean name, KRX ticker, or corp_code.
Use this first when unsure which entity a name refers to (e.g. "Hyundai" matches dozens of group companies). Listed companies rank first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | Yes | ||
| listed_only | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It usefully discloses that listed companies rank first and that ambiguous names may match multiple entities, but it does not cover match semantics, no-result behavior, or other operational details beyond the ranking hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the core search capability and then the key usage guidance. Every sentence adds information without repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value details are not required in the description. For a simple three-parameter search tool with no annotations, the description covers the main query semantics and usage context, though the limit and listed_only parameters remain unexplained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does well for the required query parameter by naming accepted identifier formats, but it says nothing about limit or listed_only, leaving two of three parameters undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: find Korean companies on DART. It lists the exact lookup forms (English name, Korean name, KRX ticker, corp_code), making the tool's scope immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly says to use this first when unsure which entity a name refers to, with a concrete ambiguity example. It lacks explicit when-not-to-use guidance or named alternatives, but the usage context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
translate_termsA
Look up Korean disclosure, accounting, and governance terms in a curated glossary.
More reliable than generic translation for DART jargon (e.g. 유상증자, 최대주주, 전환사채, 공정공시, 기재정정). Returns null for unknown terms. No API call needed.
| Name | Required | Description | Default |
|---|---|---|---|
| terms | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden and does meaningful work: it discloses the unknown-term behavior (returns null), and that no API call is made, which tells the agent there is no rate limit, latency, or network failure mode. It stops short of stating whether results are positionally aligned to the input array or whether partial hits are possible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs, zero filler, front-loaded with the core action. The inline Korean examples earn their space by making the jargon scope concrete rather than abstract.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no explanation, and the description covers scope, failure mode, and cost. The remaining gap is directionality: 'look up Korean terms' leaves ambiguous whether Korean is the input or the output, which an agent needs in order to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for the single `terms` parameter — the schema only says array of strings. The description implies batch semantics and per-term resolution ('Returns null for unknown terms'), which is genuinely useful, but it never states input language direction, ordering of results, or case/whitespace handling.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: look up Korean disclosure, accounting, and governance terms in a curated glossary. It also scopes the domain (DART jargon) with concrete examples, so an agent knows exactly what class of string this tool handles versus the sibling filing/financial tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly positions itself against the alternative an agent would otherwise reach for (generic translation), and gives the selecting condition: DART jargon such as 유상증자 or 전환사채. No sibling tool overlaps, so the lack of a named MCP alternative or explicit when-not clause is a minor gap rather than a missing one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.0- First observed
get_company_profile - First observed
get_dividends - First observed
get_filing_text - First observed
get_financial_statements - First observed
get_insider_trades - First observed
get_largest_shareholders - First observed
get_major_shareholder_changes - First observed
get_recent_filings - First observed
search_company - First observed
translate_terms
TDQS
Scored across 10 tools
Most tools have clearly distinct purposes, and the ownership trio (5% block changes, insider Form 4-style reports, largest-shareholder snapshots) is differentiated via descriptions referencing different DART report types. There is still mild potential for confusion between get_insider_trades (10%+ holders) and get_major_shareholder_changes (5% blocks), since both concern large holders.
Eight of ten tools follow a clean verb_noun pattern (get_recent_filings, get_financial_statements, get_dividends, etc.). search_company and translate_terms are sensible verb-first deviations, though they slightly break the otherwise uniform get_ prefix convention.
Ten tools is well-scoped for a DART filings server: one discovery tool, one profile, one glossary helper, and seven focused data-retrieval tools. Each tool earns its place without redundancy.
Coverage of the core lifecycle is strong: entity search, profile, filing listing and full-text retrieval, XBRL financials, ownership/largest-shareholder data, and dividends. Minor gaps remain (e.g., no dedicated capital-raise/event summary or notes to financial statements), but agents can work around these via get_filing_text.
Maintenance
Related MCP Connectors
Korean (DART/KIND) and US SEC filings with AI summaries, direction labels and market reaction.
Search company disclosures and financial statements from the Korean market. Retrieve stock profile…
Korean company disclosures in English: DART filings, financial statements, segments, 13F.
Full-text search over K-IFRS/K-GAAP standards and KASB accounting Q&A for Korean accountants
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to access Korean corporate disclosure data from DART, allowing natural language queries about companies, financial statements, and disclosures.22 npm2MIT
- AlicenseAqualityDmaintenanceEnables LLM agents to access Korean stock market data including DART disclosures, financial statements, and KOSPI/KOSDAQ prices, with an English-first interface designed for non-Korean speaking analysts.639 PyPIMIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered analysis of Korean stock market data and corporate disclosures using official DART and KRX APIs.99 npmISC
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with real-time access to Korean listed companies' disclosures, financial statements, and corporate information via the DART API.4MIT