Skip to main content
Glama

FinBridge

Search Korean Companies (DART)

search_dart_company
Read-only

Search companies registered with DART, South Korea's corporate disclosure system, by name, 6-digit stock code, or 8-digit DART corp_code. Returns the corp_code required by the other dart_* tools.

Not this tool for: US registrants (use search_edgar_company). Japan, Taiwan and Europe have no search tool — reach them through query_db on the companies table.

Args:

  • query: company name in Korean ('삼성전자') or English ('Samsung Electronics'), 6-digit KRX stock code ('005930'), or 8-digit corp_code

  • listed_only: restrict to KRX-listed companies (default true). Set false to include ~90k unlisted entities.

  • limit: max results, 1-50 (default 10)

Returns: {count, companies: [{corp_code, corp_name, corp_name_en, stock_code}]} — corp_name is the Korean name DART registers, corp_name_en the registered English name where the company files one (about three quarters of Korean issuers). stock_code is null for unlisted companies. Match priority: exact stock code > exact Korean name > listed Korean partial > unlisted Korean partial > English name. English matching reads our own company table, so it covers issuers whose English name we hold, not every DART entity.

Examples:

  • {query: '삼성전자'} -> corp_code 00126380, stock_code 005930

  • {query: '카카오', listed_only: false} -> listed 카카오 plus unlisted same-name entities

  • {query: 'Samsung Electronics'} -> 삼성전자 (matched on the registered English name)

Use when you need a corp_code or must disambiguate similar names. Don't use for US companies (use search_edgar_company). Errors: DART_API_KEY not configured; no match returns count 0 (not an error).

Input Schema

NameRequiredDescriptionDefault
limitNoMax results, 1-50 (default 10)
queryYesCompany name, 6-digit stock code, or 8-digit DART corp_code
listed_onlyNoOnly KRX-listed companies (default true)

Output Schema

NameRequiredDescriptionDefault
countYes
companiesYes
data_as_ofNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / companies / items / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / companies / items / properties / corp_name / $ref
      Removed value: -"#/properties/companies/items/properties/corp_code"
    • addedOutput schema / properties / companies / items / properties / corp_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / companies / items / properties / corp_name_en / $ref
      Removed value: -"#/properties/companies/items/properties/corp_code"
    • addedOutput schema / properties / companies / items / properties / corp_name_en / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / companies / items / properties / stock_code / $ref
      Removed value: -"#/properties/companies/items/properties/corp_code"
    • addedOutput schema / properties / companies / items / properties / stock_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / data_as_of / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "properties": {},
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / data_as_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  3. Changed1 schema field changed
    • addedOutput schema / properties / companies / items / properties / corp_name_en
      Added value: +{
      +  "$ref": "#/properties/companies/items/properties/corp_code"
      +}
  4. First observed

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint true, destructiveHint false, openWorldHint true), and the description adds real behavior the annotations cannot: DART_API_KEY misconfiguration surfaces as an error while no-match returns count 0, and results follow a documented match-priority order. It also flags a coverage limit ('English matching reads our own company table... not every DART entity') that would otherwise cause silent false negatives.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded with labeled Args/Returns/Examples/Errors sections and concrete examples that demonstrate non-obvious behavior (English name matching, listed_only=false). Mild redundancy: the US exclusion appears both in the 'Not this tool for' block and again in the closing 'Don't use for US companies' line.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 re-explained, yet the description covers prerequisites (API key), default behavior, match ordering, per-field nullability, and error semantics. For a three-parameter lookup tool this leaves no meaningful gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning beyond the schema: listed_only=false 'include ~90k unlisted entities' quantifies the scope change, and the query arg is illustrated with concrete formats in both languages and both code lengths. It also explains that stock_code is null for unlisted rows, which informs how to read the result.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search companies registered with DART') and enumerates the accepted identifiers (Korean/English name, 6-digit stock code, 8-digit corp_code). It also states the payoff ('Returns the corp_code required by the other dart_* tools'), which distinguishes it from every get_dart_* sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit when-to-use ('need a corp_code or must disambiguate similar names') plus named alternatives for other jurisdictions: search_edgar_company for US, query_db/companies table for Japan, Taiwan and Europe. Nothing is left to inference about routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.