Skip to main content
Glama

HOLD! Korea Stock Ownership & Insider Trades

Server Details

Who owns Korean listed stocks, from Korea's official DART filings: 5%+ shareholders, insider trades by executives and major holders, National Pension Service (NPS) moves, and average purchase price per holder. Covers 4,000+ KOSPI/KOSDAQ companies, updated daily. Read-only, no API key.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
oon4am-eng/hold-mcp
GitHub Stars
1
Server Listing
HOLD! MCP
ChatGPT
–
Claude
–

TDQS

A4.2/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a clearly distinct retrieval path: ticker-centric current holders, ticker-centric filing history, cross-ticker recent feed, single-filing detail, holder-centric portfolio, holder search, symbol search, and a specialized average-cost calculation. The descriptions explicitly cross-reference the nearest alternatives (e.g., get_holder_history vs. get_recent_changes, get_holders vs. get_portfolio), leaving little room for misselection.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern using get_* and search_* prefixes. Names are predictable and map cleanly to their resource/action.

Tool Count5/5

Eight tools is well-scoped for the domain, covering both lookup axes (ticker and holder) plus filing detail, history, recent changes, and a derived metric. Each tool has a clear purpose and none appears redundant.

Completeness4/5

The surface covers symbol lookup, holder lookup, current ownership, holder portfolios, filing details, full ticker history, recent cross-market changes, and average cost, which is strong lifecycle coverage for a read-only ownership/trades domain. A minor gap is the lack of a full historical trade feed for a holder across all stocks, though get_recent_changes with entity_id and get_portfolio provide partial workarounds.

Available Tools

8 tools
get_avg_costA
Read-only
Inspect

한 종목의 보유자별 평균 매입단가(원). 5% 대량보유 보고서 원문의 세부변동내역에 적힌 취득 단가로 매수는 가중평균에 더하고 매도는 수량만 줄이는 이동평균을 내며, 액면분할·병합은 보정한다. 임원·주요주주 보고에는 단가가 없어 쓰지 않는다. holder(보고자명 일부)를 주면 그 보유자만, 없으면 단가가 있는 보유자 전부. 행마다 avg_cost, held_shares(현재 보유), priced_shares(단가가 붙은 매수 주식), coverage_pct, buys, first_trade·last_trade를 준다. basis가 reported면 현재 보유분의 절반 이상에 단가가 있고, partial이면 일부만(coverage_pct 참고), unavailable이면 단가가 없다(국민연금·외국계 약식 보고는 법적으로 단가 생략). partial일 때 '평단 X원'이라고 단정하지 말 것.

NameRequiredDescriptionDefault
holderNo보고자명 일부
tickerYes종목코드 또는 정확한 종목명

TDQS

A4.6/5.0
Behavior5/5

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

Goes well beyond the readOnlyHint/openWorldHint annotations: it discloses the computation methodology (weighted average for buys, quantity-only reduction for sells, split/merge adjustment) and a data-quality taxonomy (reported/partial/unavailable) with legal reasons for missing prices. It also warns the agent not to assert an average price when basis is partial, which is genuinely actionable behavioral context.

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 the core purpose, then methodology, then parameters, then return fields and caveats — a logical order with no filler. It is dense and the middle sentences run long, but each clause carries necessary information.

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?

There is no output schema, and the description compensates fully by enumerating the returned fields (avg_cost, held_shares, priced_shares, coverage_pct, buys, first_trade, last_trade) and explaining the basis semantics. For a two-parameter analytics tool, nothing an agent needs to call or interpret it is missing.

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 adds real meaning: holder is a partial reporter name whose omission changes behavior to 'all holders with prices', and ticker selects a single stock. That is more than the schema's bare field descriptions provide.

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 precise verb and resource: computes a per-holder average purchase price for one stock, and describes the exact data source (5% large-holding report detailed change tables). An agent can immediately distinguish this from sibling tools like get_holders or get_holder_history.

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

Usage Guidelines4/5

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

Explicitly states the scope rule (pass holder for one holder, omit for all priced holders) and an exclusions rule (executive/major-shareholder reports have no price and are not used). It does not name a sibling tool as an alternative when this data is unavailable, which keeps it below a 5.

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

get_filingA
Read-only
Inspect

공시 한 건의 세부 내역. 다른 도구 결과의 source_url(DART 주소)이나 14자리 접수번호(rcept_no)를 넣는다. reports는 그 공시의 보유자 행(지분율, 변동, 공시일), members는 5% 보고의 보고자·특별관계자별 보유 주식수와 지분율, trades는 세부변동내역(실제 거래일, 취득·처분 방법, 주식 종류, 변동 전후 수량, 단가). members·trades는 원문을 받은 5% 대량보유 보고에만 있다. 어떤 거래로 지분이 바뀌었는지, 매수인지 출자전환인지 확인할 때 쓴다.

NameRequiredDescriptionDefault
filingYessource_url 또는 rcept_no(14자리)

TDQS

A4.2/5.0
Behavior4/5

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

The annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful data-availability caveat: members and trades exist only for 5% bulk-holding reports received in original text. It says nothing about failure modes or missing filings, which keeps it at 4.

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?

The description is front-loaded with the core purpose, then the input, then the return sections, and every clause carries information. The field enumeration is dense but justified given there is no output schema.

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?

With no output schema, the description carries the burden of explaining return values, and it does so by naming each section and its fields. It also flags the conditional presence of members and trades, so an agent knows what to expect before calling.

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

Parameters3/5

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

Schema coverage is 100% and the single parameter is already documented as source_url or a 14-digit rcept_no. The description restates that and adds only the hint that the value typically comes from another tool's output, which is marginal added meaning.

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?

The description states a specific verb and resource ('공시 한 건의 세부 내역') and then enumerates the three result sections (reports, members, trades) with their contents, which clearly separates it from the list-oriented siblings such as get_holders and get_recent_changes.

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

Usage Guidelines4/5

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

It gives a concrete use case ('어떤 거래로 지분이 바뀌었는지, 매수인지 출자전환인지 확인할 때') and explains how to obtain the input from other tools' source_url or rcept_no. It does not name an alternative tool or state when not to use it, so it falls short of a 5.

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

get_holder_historyA
Read-only
Inspect

한 종목의 지분 변동 공시 전체 이력(최신순, 대량보유와 임원·주요주주 보고 모두). ticker가 필수이고 기간 제한이 없어 '이 회사 지분이 언제 어떻게 바뀌었나'에 쓴다. 여러 종목에 걸쳐 최근 며칠 새 공시를 훑으려면 get_recent_changes를 쓴다. holder로 보고자명 일부를 주면 그 보고자만. change_type은 new/listing/increase/decrease/exit/unchanged. listing은 상장으로 처음 공시한 것이라 매수가 아니다. non_trade가 true면 회생 출자전환, 감자, 담보, 특별관계 변동처럼 시장 매매가 아니다. insider 보고의 new는 '주요주주로서 첫 보고'일 수 있다. trade_date는 실제 변동일(원문을 받은 보고만), trade_price는 그 보고의 취득 단가 평균. 한 보고의 거래별 세부 내역은 source_url을 get_filing에 넘긴다.

NameRequiredDescriptionDefault
toNoYYYY-MM-DD
fromNoYYYY-MM-DD
limitNo기본 50
holderNo
tickerYes
entity_idNosearch_holder의 entity_id. 주면 holder 대신 이 보유자만

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds substantial unstated context: unlimited time range, newest-first ordering, the fact that trade_date appears only for filings received in original-text form, and that trade_price is the average acquisition price of that report. It does not address result volume or pagination behavior (limit defaults to 50 only in the schema), which keeps it below a 5.

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

Conciseness5/5

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

Front-loaded with purpose and scope, then alternatives, then field semantics in short declarative clauses. Dense but every sentence carries information an agent would otherwise have to guess, and there is no filler.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly takes on the burden of explaining return-field semantics (change_type values, non_trade, trade_date, trade_price) and even flags the listing and insider-new edge cases that would otherwise cause misreads. The remaining gap is operational: nothing about result size, limit interaction, or what an empty result means.

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 67% and the description fills a real gap: it specifies that holder accepts a partial reporter name (the schema has no description for holder at all) and clarifies that ticker is mandatory with no date bound. from/to and limit are left to the schema, so it improves on the baseline without fully compensating.

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?

The description states a specific verb and resource ('지분 변동 공시 전체 이력') and pins the scope: one ticker, both 대량보유 and 임원·주요주주 reports, newest first, no period restriction. It also names the sibling it is not (get_recent_changes) so an agent can distinguish them 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.

Usage Guidelines5/5

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

The intended question ('이 회사 지분이 언제 어떻게 바뀌었나') is stated explicitly, alongside an explicit alternative for multi-ticker recent scanning (get_recent_changes) and a hand-off to get_filing for per-transaction detail via source_url. Both the when-to-use and the when-to-use-something-else are covered.

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

get_holdersA
Read-only
Inspect

종목의 주요 보유자와 지분율(특별관계자 합산). source=major는 5% 대량보유 보고, insider는 임원·주요주주(10% 이상 주주 포함) 보고이며 1% 이상만. 보유자별 최신 공시 기준. 최근 2년 안에 보고가 없는 보유자는 빠지고 외국인·소액주주 합계도 없다. 모든 행에 as_of(공시일)와 source_url(공시 원문).

NameRequiredDescriptionDefault
tickerYes종목코드 또는 정확한 종목명

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true and openWorldHint=false, so the safety profile is covered; the description adds substantive data-scope behavior instead. It discloses the recency cutoff (2 years), the 1% minimum, the exclusion of foreign and minority-shareholder aggregates, and that each row carries as_of and source_url. It does not address error behavior or empty-result handling, 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.

Conciseness4/5

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

The core resource and aggregation rule are front-loaded, followed by data-coverage caveats and per-row fields, with no filler sentences. Density is high but each sentence contributes scope or output information. The mid-sentence source=major/insider clause is the one spot that reads ambiguously against a schema with only ticker.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description must convey return shape, and it does: holder-level rows with ownership ratio, as_of, and source_url. Combined with the exclusion rules, an agent knows what will and will not appear. Remaining gaps are edge cases (empty results, ticker ambiguity) rather than core behavior.

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

Parameters3/5

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

There is a single required parameter (ticker), and schema description coverage is 100% (ticker code or exact name), so the schema already carries the semantics. The description adds nothing about ticker resolution behavior and instead discusses source names that are not parameters, so the baseline of 3 applies.

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

Purpose4/5

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

The description states a specific verb+resource: major holders and their ownership percentages for a stock, with special related parties aggregated. It clearly bounds what counts as a holder (5% bulk-holding reports, insiders incl. 10%+ shareholders, 1%+ threshold). It does not explicitly distinguish itself from siblings like get_holder_history or search_holder, which keeps it from a 5.

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

Usage Guidelines3/5

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

Usage is implied through scope statements (latest disclosure per holder, holders without reports in the last 2 years excluded, no foreign/minority totals), which signals when results will be thin. However, there is no explicit when-to-use/when-not guidance and no named alternative such as get_holder_history for time-series needs. The mention of source=major/insider is not a selectable parameter here, which adds mild ambiguity about how to choose coverage.

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

get_portfolioA
Read-only
Inspect

보유자(기본 국민연금)가 보유한 종목 목록과 지분율, 지분율 높은 순. 5% 대량보유 보고 또는 1% 이상 임원·주요주주 보고가 있는 종목만. entity_id(search_holder 결과)를 주면 그 한 사람·한 회사의 보유만 나온다. holder(이름 일부)로 찾으면 같은 이름의 다른 보유자와 미확인 보고가 섞일 수 있으니 행의 entity_id를 본다. value는 공시된 주식수 × 최근 종가(원), total_value는 그 합계. total이 shown보다 크면 limit을 올려 더 받을 수 있다.

NameRequiredDescriptionDefault
limitNo기본 50
holderNo보고자명 일부, 기본 '국민연금'
entity_idNosearch_holder의 entity_id
min_ratioNo
include_indirectNotrue면 상장사를 거친 간접 지분까지 합친 종목별 합계(total_pct)와 경로를 준다

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare a safe, closed read (readOnlyHint true, openWorldHint false), and the description adds behaviour the annotations do not: results are restricted to stocks with 5% large-holding or 1%+ executive/major-shareholder filings and are sorted by ratio descending. It also explains that value is disclosed share count times the latest close price, total_value is the sum, and that total above shown means raising limit will return more — useful detail beyond structured fields, though unit/currency of the ratio and update freshness are unstated.

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?

The description is front-loaded with what the tool returns and the reporting filter, then moves to parameter caveats, then to output semantics. Every sentence carries information; density is high but nothing is filler, and the caveat about partial names is placed where it matters.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so explaining value/total_value/total-versus-shown in the description is exactly the right compensation, and the reporting-threshold caveat prevents over-reading the list as complete ownership. Only min_ratio's meaning and the treatment of include_indirect's effect on ratios are left to inference.

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 80%, so the baseline is 3, but the description adds real meaning: it identifies entity_id as coming from search_holder and scopes it to a single holder, and explains the ambiguity risk of the holder name parameter and the limit/total interplay. Only min_ratio is left unexplained in both schema and description.

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

Purpose4/5

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

The opening sentence names a specific verb and resource (the list of stocks held by a holder, with ownership ratios, sorted by ratio descending) and states the reporting threshold that limits which stocks qualify. It is clearly distinguishable from the holder-listing or history siblings, though it never names those siblings explicitly.

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

Usage Guidelines4/5

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

It states the default holder (국민연금) and recommends passing entity_id from search_holder, warning that a partial 'holder' name can mix in other same-named holders and unconfirmed reports. That is concrete when-to-use and when-to-prefer-an-alternative guidance, though it does not say when to use a sibling such as get_holders instead.

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

get_recent_changesA
Read-only
Inspect

최근 N일(기본 7일) 동안 올라온 지분 변동 공시 피드(최신순). 여러 종목을 가로질러 '이번 주 누가 사고팔았나'를 볼 때 쓴다. ticker를 주면 그 종목만, holder·entity_id를 주면 그 보유자만 거른다. 기간 제한 없이 한 종목의 전체 이력이 필요하면 get_holder_history를 쓴다. 기본 50건이며 limit으로 조절. change가 listing이거나 non_trade가 true인 행은 시장 매수·매도가 아니므로 매매 합계에서 빼야 한다. kind는 5% 공시의 신규·증가 방식이다: buy(매수), placement(증자·전환사채), control(경영권 인수), non_trade, unknown.

NameRequiredDescriptionDefault
daysNo기본 7
limitNo기본 50
holderNo
tickerNo종목코드 또는 정확한 종목명. 주면 그 종목만
entity_idNosearch_holder의 entity_id

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already establish a read-only, closed-world read, so the description's job is data semantics — and it delivers: default 50 rows with a limit knob, and the important warning that rows with change=listing or non_trade=true are not market trades and must be excluded from trade totals. It does not cover pagination beyond limit or ordering stability, which keeps it from a 5.

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 the resource and timeframe, then filters, then the sibling alternative, then caveats — a sensible priority order with no filler. It is dense to the point of being crowded, packing five distinct ideas into one paragraph, but every sentence carries information.

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

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly spends its words on returned-field semantics — the meaning of change values and the kind taxonomy (buy, placement, control, non_trade, unknown) for 5% filings. An agent could call it and interpret results correctly; only the full field list and result-count/pagination behavior are left unstated.

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

Parameters3/5

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

Schema coverage is 80%, so the schema already documents days, limit, ticker and entity_id defaults. The description largely restates those defaults, adding only that holder and entity_id act as owner-level filters (implying they compose with ticker). That is a small increment over the schema, consistent with the baseline 3 for well-covered schemas.

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: a feed of ownership-change filings from the last N days, newest first, and frames its scope as cross-ticker ('who bought and sold this week'). That scope statement is exactly what separates it from the single-entity siblings, so an agent can pick it without opening any schema.

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?

Explicitly names when to use it (cross-ticker weekly activity), how to narrow it (ticker for one symbol, holder/entity_id for one owner), and names the alternative with its condition — use get_holder_history when the full history of a single ticker without a date limit is needed. When-not guidance is present, not merely implied.

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

search_holderA
Read-only
Inspect

보유자(기관·운용사·개인) 이름으로 보유자를 찾는다. 한글로 쳐도 영문 보고자가 나온다(블랙록 → BlackRockFundAdvisors). 같은 이름의 다른 사람·회사는 행이 나뉜다: kind는 person(개인)/corp(법인)/inst(기관), role은 개인의 최근 임원·주요주주 보고 기준 회사와 직함(예: 삼성전자 회장), key_hint는 회사의 사업자등록번호 앞자리. top은 지분율이 가장 높은 종목, corps는 보고한 종목 수. 결과의 entity_id를 get_portfolio·get_recent_changes·get_holder_history의 entity_id로 쓴다. entity_id가 null인 행은 그 이름의 미확인 보고 묶음이며 holder 이름으로만 조회된다.

NameRequiredDescriptionDefault
queryYes

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only say readOnly and closed-world; the description goes well beyond them by explaining that duplicate names produce separate rows, defining each result field's meaning, and disclosing the null-entity_id edge case (unconfirmed report bundles only lookupable by name). That null case is exactly the kind of behavioral trap the description must surface, and it does.

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 the action, then result fields, then downstream usage — a logical order with no filler sentences. It is a single dense block mixing three concerns, so it is slightly hard to scan, but every clause carries information.

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?

With no output schema, the description must explain the return shape and it does, field by field, plus the downstream identifier contract and the null-entity_id caveat. For a one-parameter search tool that is the complete set of things an agent needs to call it and act on its output.

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 0% for the single `query` param, so the description must carry it; it does by clarifying the param is a person/company name and that Korean spellings are accepted and resolved to English filer names. It adds no info on partial matching, minimum length, or ambiguity handling, so it compensates but not exhaustively.

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?

Names a concrete verb (find) and resource (holder: institution / asset manager / individual) and scopes it to name-based lookup, which separates it from the sibling ID/history tools. It also previews the returned shape (kind, role, key_hint, top, corps), so an agent knows exactly what kind of result to expect.

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

Usage Guidelines4/5

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

Explicitly states the input condition (search by name, Korean input resolved to English filer names) and, critically, tells the agent to chain the returned entity_id into get_portfolio / get_recent_changes / get_holder_history. It does not contrast itself with search_symbol or explain what to do when a name yields many rows, so it stops short of full when/when-not guidance.

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

search_symbolA
Read-only
Inspect

종목명 일부나 종목코드로 지금 상장된 한국 종목을 찾는다. 다른 도구의 ticker 인자로 쓸 값을 얻는다.

NameRequiredDescriptionDefault
queryYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so safety is covered. The description adds a real behavioral constraint beyond that — only *currently listed* Korean stocks are searched and matching is by partial string. It says nothing about multiple matches (list vs. single best hit), result limits, or ordering, which matters for a lookup tool feeding other calls.

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?

Two short sentences, front-loaded with what it does and followed by why you'd call it. No filler, though the second sentence could be folded into the first without loss.

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

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description is the only place to learn what comes back — and it never says whether the response is a list of matches, a single ticker, or includes names/codes together. For a one-parameter lookup tool this is a notable omission, though the core contract is still usable.

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

Parameters3/5

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

Schema coverage is 0% and the single 'query' property is an untyped-in-practice bare string, so the description must carry the load. It does add meaning by saying both a partial stock name and a stock code are acceptable inputs, but it gives no detail on format (e.g., 6-digit code vs. full name) or ambiguity handling.

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

Purpose4/5

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

The description gives a specific verb ('찾는다' / find) and resource ('지금 상장된 한국 종목' / currently listed Korean stocks), plus the matching keys (partial name or code). That is enough to distinguish it from siblings like search_holder or get_holders, though it never names a sibling explicitly to confirm the contrast.

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

Usage Guidelines4/5

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

It states the operational context clearly: the result is meant to supply the ticker argument for other tools, which tells an agent when to reach for it. It does not state any when-not conditions or name an alternative for resolving tickers another way.

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.

  1. 3 tool updates
    • Changedget_avg_cost2 fields changed
      • addedInput schema / properties / holder / description
        Added value: +"보고자명 일부"
      • addedInput schema / properties / ticker / description
        Added value: +"종목코드 또는 정확한 종목명"
    • Addedget_filing
    • Changedget_recent_changes2 fields changed
      • addedInput schema / properties / days / description
        Added value: +"기본 7"
      • addedInput schema / properties / ticker
        Added value: +{
        +  "description": "종목코드 또는 정확한 종목명. 주면 그 종목만",
        +  "type": "string"
        +}
  2. 7 tool updates
    • First observedget_avg_cost
    • First observedget_holder_history
    • First observedget_holders
    • First observedget_portfolio
    • First observedget_recent_changes
    • First observedsearch_holder
    • First observedsearch_symbol

Publisher details

Operator
HOLD! · Publisher source
Vendor relationship
First-party · Publisher source
Trust center
Not applicable
Restrictions
None. Free, no sign-up, no API key. Read-only. · Publisher source

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to query read-only ownership and operating data, including rated US 13F fund holdings with average buy prices, normalized company KPIs, Japanese large-shareholder filings with investor ratings, and Korean insider trades and pre-disclosed plans. All 32 tools are read-only and span cross-market insider screening by country, date, value, role, and ticker.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides access to South Korea's DART (Data Analysis, Retrieval and Transfer System) financial disclosure system, enabling users to retrieve corporate information, financial statements, debt summaries, subsidiary investments, employee data, and stock information for Korean companies.
    6
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides KOSPI/KOSDAQ stock data including ticker lookup, OHLCV, market capitalization, fundamentals, and trading volume by investor type.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.