Skip to main content
Glama

FinBridge

Get KR Insider Trades (DART 임원·주요주주 소유보고)

get_dart_insider_trades
Read-only

Korean insider transactions for a listed KR company, from DART's 임원ㆍ주요주주 특정증권등 소유상황보고서 (elestock) — the Korean equivalent of SEC Form 4. Includes a buy-vs-sell summary and an optional buy/sell filter.

Not this tool for: US insiders (get_edgar_insider_trades) or institutional managers, which are a different kind of holder entirely (get_edgar_13f).

Buy vs sell is the SIGN of the reported share change (증감수): positive = 취득 (acquire / buy), negative = 처분 (dispose / sell). Insider BUYING is a stronger sentiment signal.

Args:

  • company (required): KR 6-digit stock code (e.g. '005930'), company name, or 8-digit DART corp_code

  • limit: number of most-recent reports to return, 1-100 (default 20)

  • tx_type: 'all' (default) | 'buy' (share change > 0) | 'sell' (share change < 0)

  • response_format: 'markdown' (default) or 'json'

Returns: {company:{corp_code, corp_name}, tx_type, summary:{buys:{count,shares}, sells:{count,shares}}, count, trades:[{filedAt, reporter, position, registered_exec, major_shareholder, change, shares_after, change_rate}], notes}. summary totals cover the whole fetched set regardless of the filter.

Important: this elestock summary API does not provide transaction dates or prices. filedAt is the filing date, not the transaction date. The underlying filing may contain these details; use get_dart_document with the returned rcept_no to inspect its tables.

Examples:

  • "삼성전자 임원 매수" -> {company:'005930', tx_type:'buy'}

  • "SK하이닉스 내부자 매도 최근" -> {company:'000660', tx_type:'sell'}

Use when: monitoring KR officer / major-shareholder buy/sell activity. For US insiders use get_edgar_insider_trades. For institutional holdings use get_edgar_13f. Errors: unknown company -> use search_dart_company; a filter with no matches returns count 0 (not an error).

Input Schema

NameRequiredDescriptionDefault
limitNoNumber of most-recent reports (default 20)
companyYesKR 6-digit stock code (e.g. '005930'), company name, or DART corp_code
tx_typeNo'all' (default), 'buy' = acquisitions (change > 0), 'sell' = disposals (change < 0)all
response_formatNo'markdown' for a table, 'json' for compact machine-readable outputmarkdown

Output Schema

NameRequiredDescriptionDefault
countNo
notesNo
tradesYes
companyYes
summaryNo
tx_typeNo
data_as_ofNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed19 schema fields changed
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedOutput schema / properties / company / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / company / properties / cik / anyOf
      Removed value: -[
      -  {
      -    "type": [
      -      "string",
      -      "number"
      -    ]
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / company / properties / cik / type
      Added value: +[
      +  "string",
      +  "number",
      +  "null"
      +]
    • removedOutput schema / properties / company / properties / market / $ref
      Removed value: -"#/properties/company/properties/name_en"
    • addedOutput schema / properties / company / properties / market / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / company / properties / page_url / $ref
      Removed value: -"#/properties/company/properties/name_en"
    • addedOutput schema / properties / company / properties / page_url / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / company / properties / source / $ref
      Removed value: -"#/properties/company/properties/name_en"
    • addedOutput schema / properties / company / properties / source / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / company / properties / stock_code / $ref
      Removed value: -"#/properties/company/properties/name_en"
    • addedOutput schema / properties / company / properties / stock_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / company / properties / ticker / $ref
      Removed value: -"#/properties/company/properties/name_en"
    • addedOutput schema / properties / company / properties / ticker / 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"
      +  }
      +]
    • changedOutput schema / properties / summary / additionalProperties
      Previous value: -trueNew value: +{}
    • changedOutput schema / properties / trades / items / additionalProperties
      Previous value: -trueNew value: +{}
    • removedOutput schema / properties / tx_type / $ref
      Removed value: -"#/properties/company/properties/name_en"
    • addedOutput schema / properties / tx_type / type
      Added value: +[
      +  "string",
      +  "null"
      +]
  2. Changed1 schema field changed
    • addedOutput schema / properties / data_as_of
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": true,
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ]
      +}
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnly/openWorld/destructive=false, and the description adds real behavioral context on top: the API does not provide transaction dates or prices, filedAt is a filing date rather than a transaction date, and summary totals cover the whole fetched set regardless of filter. It even points to get_dart_document with the returned rcept_no as the fallback for missing dates/prices.

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?

Front-loaded with purpose then exclusions, followed by well-labeled Args/Returns/Examples/Errors blocks; the two example queries are genuinely useful for mapping natural language to parameters. It is longer than strictly necessary because Args/Returns partially restate the schema and the output schema, which slightly dilutes conciseness.

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?

For a four-parameter read tool, everything an agent needs is present: accepted company identifier formats, filter semantics, a documented return shape with field names, caveats about missing transaction dates/prices, and a fallback tool. The only minor redundancy is restating schema fields, which does not leave any 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 the baseline is 3, but the description goes further by explaining the semantics behind tx_type: buy/sell is the SIGN of the reported share change (증감수), positive = 취득, negative = 처분, and notes that insider buying is a stronger sentiment signal. That interpretive layer is not in the schema and materially helps the agent choose a filter.

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+resource ('Korean insider transactions for a listed KR company') and anchors it to a well-known analogue ('the Korean equivalent of SEC Form 4'), which instantly frames scope. It also explicitly names what it is not (EDGAR insiders, 13F institutional managers), so the agent can distinguish it from siblings without opening schemas.

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 'Use when: monitoring KR officer / major-shareholder buy/sell activity' plus a 'Not this tool for' block routing to get_edgar_insider_trades and get_edgar_13f. Error paths are also covered: unknown company -> search_dart_company, empty filter -> count 0 (not an error).

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.