Skip to main content
Glama
okdoittttt

ko-stock-mcp

by okdoittttt

ko-stock-mcp

An MCP server that exposes Korean DART (전자공시시스템, Financial Supervisory Service electronic disclosure) data to MCP clients such as Claude Desktop.

한국어 문서는 README.ko.md를 참고하세요.

Tools

Both DART (electronic disclosure) and KRX (Korea Exchange) tools are provided.

DART (disclosure)

Tool

Description

get_corp_code

Look up a company's DART corp_code (8-digit) by name or stock code (6-digit). Entry point for the other tools.

get_company_info

Company profile (name, CEO, market class, industry, incorporation date, etc.).

get_disclosure_list

Search disclosures by company / date range / disclosure type.

get_disclosure

Fetch a disclosure's original document. Large docs return a table of contents (toc); drill in with section_id.

get_financial_statement

XBRL financial statements (BS / IS / CIS / SCE / CF) from periodic reports.

get_today_date

Today's date in KST/UTC (YYYYMMDD + ISO).

KRX (Korea Exchange) — requires KRX_API_KEY

Tool

Description

get_market_type

Determine which market (KOSPI/KOSDAQ/KONEX) a stock code belongs to. Uses DART corp class first, falls back to KRX.

get_stock_trade_info

Daily trading data for a business day (close, change rate, volume, market cap, etc.).

get_stock_base_info

Stock base info (name, standard/short code, listing date, par value, shares outstanding, etc.).

Typical flow — disclosures/financials: get_corp_code → (get_disclosure_list | get_financial_statement | get_company_info) → get_disclosure for full text. Market data: (optionally get_market_type →) get_stock_trade_info | get_stock_base_info (bas_dd must be a business day; non-trading days return empty).

KRX tools return a friendly error when KRX_API_KEY is unset; DART features are unaffected. Note get_market_type works with just the DART key (via corp class).

KRX response fields

get_stock_trade_info / get_stock_base_info return the raw KRX fields verbatim under result (amounts/quantities are strings, dates are YYYYMMDD).

get_stock_trade_info (daily trading data)

Field

Meaning

BAS_DD

Base date (YYYYMMDD)

ISU_CD

Stock code (6-digit short code in this response)

ISU_NM

Stock name

MKT_NM

Market (KOSPI/KOSDAQ/KONEX)

SECT_TP_NM

Section/board

TDD_CLSPRC

Closing price

CMPPREVDD_PRC

Change vs. previous day

FLUC_RT

Change rate (%)

TDD_OPNPRC / TDD_HGPRC / TDD_LWPRC

Open / High / Low

ACC_TRDVOL

Accumulated trading volume (shares)

ACC_TRDVAL

Accumulated trading value (KRW)

MKTCAP

Market capitalization (KRW)

LIST_SHRS

Listed shares

get_stock_base_info (stock base info)

Field

Meaning

ISU_CD

Standard code (12-digit, e.g. KR7005930003)

ISU_SRT_CD

Short code (6-digit, e.g. 005930)

ISU_NM

Full stock name

ISU_ABBRV

Abbreviated name

ISU_ENG_NM

English name

LIST_DD

Listing date (YYYYMMDD)

MKT_TP_NM

Market (KOSPI/KOSDAQ/KONEX)

SECUGRP_NM

Security group (e.g. common stock)

SECT_TP_NM

Section/board

KIND_STKCERT_TP_NM

Share type (e.g. ordinary)

PARVAL

Par value

LIST_SHRS

Listed shares

get_market_type returns { "market": "KOSPI"|"KOSDAQ"|"KONEX", "source": "dart"|"krx"|"cache" } (source is where the classification came from).

Related MCP server: dart-mcp

Requirements

  • Python >= 3.10

  • uv

  • A DART Open API key — sign up at https://opendart.fss.or.kr (free, instant).

  • (Optional) A KRX Open API key — sign up at https://openapi.krx.co.kr, request a key, then apply for the six stock services (3 daily-trade + 3 base-info); approval takes ~1 day. Only needed for the KRX market-data tools.

Setup

uv sync
cp .env.example .env   # then put your DART_API_KEY in .env

Run / develop

# Launch the MCP Inspector for local testing
uv run mcp dev src/ko_stock_mcp/server.py

# Or run the server directly (stdio)
uv run ko-stock-mcp

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "ko-stock-mcp": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/ko-stock-mcp", "run", "python", "-m", "ko_stock_mcp.server"]
    }
  }
}

uv --directory runs the server with this project as the working directory, so .env (with DART_API_KEY, and optionally KRX_API_KEY) is loaded automatically — no need to duplicate the keys here. If you prefer, you can instead pass them explicitly:

"env": { "DART_API_KEY": "<YOUR_DART_API_KEY>", "KRX_API_KEY": "<YOUR_KRX_API_KEY>" }

On macOS the config lives at ~/Library/Application Support/Claude/claude_desktop_config.json. Restart Claude Desktop after editing.

License

MIT — see LICENSE.

Available Tools

9 tools
get_company_infoA

기업개황: 회사의 기본 정보를 조회합니다. corp_code는 get_corp_code로 확보하세요.

회사명(정식/영문/약식), 대표자명, 법인구분(corp_cls: Y유가/K코스닥/N코넥스/E기타), 종목코드, 업종코드, 설립일, 결산월, 주소, 홈페이지, 전화 등을 제공합니다.

Args: corp_code: 공시대상회사 고유번호(8자리).

ParametersJSON Schema
NameRequiredDescriptionDefault
corp_codeYes

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It correctly describes a read operation with no side effects, but does not mention rate limits, auth, or other behaviors. Adequate but not extensive.

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?

Description is two short paragraphs: first states purpose and prerequisite, second lists output fields and parameter. No wasted words, front-loaded with key 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?

For a single-parameter tool with no output schema, description covers how to get the parameter, what it returns, and what fields are included. Could mention data type or validation, but overall complete.

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?

Input schema has 0% coverage for parameter descriptions. The description adds meaning: '공시대상회사 고유번호(8자리)' explains the parameter format and length, which is helpful beyond just the title.

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?

Description uses specific verb '조회' (retrieve) and resource '회사의 기본 정보' (basic company info), listing multiple output fields. It clearly distinguishes from sibling tools like get_financial_statement and get_disclosure.

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 that corp_code should be obtained via get_corp_code, providing a clear prerequisite. Lacks explicit when-not-to-use or alternative tool guidance, but the context is sufficient.

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

get_corp_codeA

DART 고유번호(corp_code)를 회사명 또는 종목코드로 조회합니다.

다른 DART 도구들은 대부분 corp_code(8자리)를 필요로 하므로, 먼저 이 도구로 회사의 corp_code를 확보하세요. 비상장법인도 조회할 수 있습니다. 회사명은 부분 일치 검색을 지원합니다.

IMPORTANT: 영문명만 알고 한글 정식 명칭을 모르는 경우, 웹 검색으로 정확한 한글 명칭을 먼저 확인한 뒤 corp_name에 입력하면 정확도가 올라갑니다.

Args: corp_name: 회사 명칭(한글 또는 영문). 부분 일치 검색 지원. stock_code: 상장회사의 종목코드(6자리, 예: 005930). limit: 반환할 최대 회사 수 (기본값: 20).

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
corp_nameNo
stock_codeNo

TDQS

A4.4/5.0
Behavior4/5

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

No annotations provided, but description covers key behaviors: supports unlisted companies, partial name matching, and limit parameter. It implies read-only lookup. Could have mentioned response format, but the primary output (corp_code) is clear. No contradictions.

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-structured with sections for purpose, usage advice, and parameter docs. Slightly verbose but every sentence adds value. The important info is front-loaded.

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?

Given 3 parameters, no output schema, and no annotations, the description adequately covers usage context, prerequisites, and parameter details. An agent can successfully invoke the tool. Minor missing details like response structure, but not critical.

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

Parameters5/5

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

Schema description coverage is 0%, but description explains each parameter in detail: corp_name (partial match, Korean/English), stock_code (6-digit format with example), limit (default 20). Adds significant meaning beyond schema.

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 clearly states the tool retrieves a DART unique code (corp_code) by company name or stock code, distinguishing it from sibling tools that require this code as a prerequisite. The verb '조회합니다' and resource are specific.

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 advises using this tool first to obtain corp_code before using other DART tools. Also recommends web searching for Korean name if only English name is known, improving accuracy. No explicit when-not-to-use, but context is clear.

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

get_disclosureA

공시서류 원본을 파싱해 가져옵니다. (접수번호는 get_disclosure_list의 rcept_no)

문서가 크면(약 200KB 초과) 전체 대신 목차(result.type == "toc")를 반환합니다. 목차가 반환되면 유저의 질문과 관련된 섹션을 section_id로 다시 조회하세요. 답변 후에는 조회하지 않은 나머지 섹션 목록을 유저에게 안내해 추가 조회 여부를 선택하게 하세요. 지정한 섹션도 크면 하위 목차(parent_section_id 포함)를 반환합니다.

Args: rcept_no: 접수번호(14자리). section_id: 조회할 섹션 ID(목차의 sections[].id = AASSOCNOTE). 생략하면 전체를 시도하고, 크면 목차를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
rcept_noYes
section_idNo

TDQS

A4.8/5.0
Behavior5/5

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

No annotations exist, but the description fully details behavioral traits: returns TOC for large docs, section queries, and sub-TOC for large sections, with no contradictions.

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 main action and includes essential procedural guidance, though slightly verbose with repeated navigation instructions.

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?

Covers return types, large document handling, and section queries comprehensively, but lacks output schema details like field names beyond the TOC example.

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

Parameters5/5

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

Despite 0% schema coverage, the description thoroughly explains 'rcept_no' (14-digit from get_disclosure_list) and 'section_id' (from TOC sections[].id), including default behavior, adding critical meaning beyond the schema.

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 clearly states the tool 'fetches parsed disclosure documents' and references 'get_disclosure_list' for the rcept_no, distinguishing it from sibling tools like listing or info tools.

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 describes when to expect TOC versus full content, how to query sections, and provides a workflow for handling large documents, including notifying the user about remaining sections.

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

get_disclosure_listA

공시검색: 회사·기간·공시유형 등 여러 조건으로 공시 목록을 조회합니다.

최근 공시를 검색할 때는 bgn_de(YYYYMMDD)를 반드시 지정하세요. 특정 회사의 공시만 보려면 먼저 get_corp_code로 corp_code(8자리)를 확보하세요.

Args: corp_code: 공시대상회사 고유번호(8자리). bgn_de: 검색 시작 접수일자(YYYYMMDD). 기본값은 종료일(end_de). end_de: 검색 종료 접수일자(YYYYMMDD). 기본값은 당일. last_reprt_at: 최종보고서만 검색할지 여부(Y/N). 기본값 N. pblntf_ty: 공시유형 한 글자 — A:정기공시, B:주요사항보고, C:발행공시, D:지분공시, E:기타공시, F:외부감사관련, G:펀드공시, H:자산유동화, I:거래소공시, J:공정위공시. pblntf_detail_ty: 공시상세유형(4자리). corp_cls: 법인구분 — Y:유가증권, K:코스닥, N:코넥스, E:기타. (복수 지정 불가) sort: 정렬 기준 — date:접수일자, crp:회사명, rpt:보고서명. 기본값 date. sort_mth: 정렬 방법 — asc:오름차순, desc:내림차순. 기본값 desc. page_no: 페이지 번호(1n). 기본값 1. page_count: 페이지당 건수(1100). 기본값 10, 최대 100.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
bgn_deNo
end_deNo
page_noNo
corp_clsNo
sort_mthNo
corp_codeNo
pblntf_tyNo
page_countNo
last_reprt_atNo
pblntf_detail_tyNo

TDQS

A4.5/5.0
Behavior4/5

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 discloses the default values for parameters (e.g., last_reprt_at default N, sort default date, sort_mth default desc, page_count default 10, max 100). However, it does not explicitly state that this is a read-only, non-destructive operation (likely safe) or mention any rate limits or pagination beyond the parameters. Missing a note on return format (e.g., list of disclosure items) but acceptable for a search tool.

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 moderately concise with a clear structure: a one-line summary, two usage tips, a blank line, then a parameter definitions section. Every sentence provides value. Could be slightly tightened (e.g., reduce redundancy in parameter defaults) but overall well-organized.

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?

Given no output schema, the description does not explain the return format (e.g., list of disclosure objects, fields included). While the agent may infer from the tool name, a brief note on the response structure would improve completeness. The description covers input well but leaves output unspecified, which could cause misuse if the agent expects a different structure.

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

Parameters5/5

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

Schema description coverage is 0%, so the description must fully explain parameters. It does so thoroughly: each parameter is described with its meaning, allowed values (e.g., pblntf_ty letters, corp_cls options, sort criteria), and defaults. This provides sufficient semantic context for the agent to construct correct queries.

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 clearly states the tool's purpose: '공시검색: 회사·기간·공시유형 등 여러 조건으로 공시 목록을 조회합니다.' (Disclosure search: retrieve a list of disclosures by various conditions including company, period, and disclosure type). It distinguishes itself from sibling tools like get_disclosure (single disclosure) and get_corp_code (company code lookup) by focusing on list retrieval with filtering.

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?

Provides explicit guidance on when to use this tool: specify bgn_de for recent searches, and use get_corp_code first to obtain corp_code for a specific company. States default behaviors (e.g., end_de default today) and limitations (corp_cls cannot be specified multiple times). This helps the agent decide when to use this tool versus alternatives.

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

get_financial_statementA

재무제표: 정기보고서 내 XBRL 재무제표의 모든 계정과목을 조회합니다.

상장법인(유가·코스닥) 및 주요 비상장법인(사업보고서 제출대상 & IFRS 적용)이 제출한 정기보고서의 전체 계정을 제공합니다. corp_code는 get_corp_code로 확보하세요.

Args: corp_code: 공시대상회사 고유번호(8자리). bsns_year: 사업연도(4자리). 2015년 이후부터 제공. reprt_code: 보고서 코드 — 11013:1분기, 11012:반기, 11014:3분기, 11011:사업보고서. fs_div: 개별/연결 구분 — OFS:재무제표(개별), CFS:연결재무제표. sj_nm: 특정 재무제표만 필터링 — 재무상태표, 손익계산서, 포괄손익계산서, 자본변동표, 현금흐름표 중 하나. 생략하면 전체 반환.

ParametersJSON Schema
NameRequiredDescriptionDefault
sj_nmNo
fs_divYes
bsns_yearYes
corp_codeYes
reprt_codeYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden. It mentions that the tool provides all accounts and covers specific company types and report years. However, it does not disclose behavioral traits like read-only nature, data volume, pagination, rate limits, or any side effects, which are relevant for a retrieval tool.

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 well-structured with a summary line, contextual scope, and a clear argument list. It is front-loaded with the main purpose. While it is relatively long, every sentence adds value, and the structure aids readability. Minor redundancy could be trimmed.

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?

The description explains the parameters and the overall purpose but does not describe the return value format or structure. Given there is no output schema, this omission is notable. For a tool with 5 parameters and a specific domain (XBRL financial statements), more detail on the output would improve completeness.

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?

The input schema has 5 parameters with 0% description coverage. The description compensates well by explaining each parameter in the Args section, including allowable values (e.g., reprt_code codes, fs_div options, sj_nm choices). This adds significant meaning beyond the bare schema.

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 clearly states the tool retrieves all account subjects of XBRL financial statements from periodic reports, specifying the scope (listed and major unlisted companies). It distinguishes itself from siblings like get_corp_code, which is referenced as a prerequisite, and other tools that serve different purposes.

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?

The description provides clear usage context: it is for retrieving financial statement data and explicitly instructs to use get_corp_code first to obtain corp_code. It does not explicitly state when not to use this tool versus alternatives, but the sibling tools have distinct purposes, making it implicitly clear.

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

get_market_typeA

종목코드가 속한 시장(KOSPI/KOSDAQ/KONEX)을 판별합니다.

먼저 DART 기업개황(corp_cls)으로 판별을 시도하고, 실패하면 KRX 종목기본정보를 시장별로 조회해 판별합니다. KRX 시세/기본정보 조회의 진입점으로 쓰입니다.

Args: stock_code: 종목 단축코드(6자리, 예: 005930). bas_dd: 기준 영업일(YYYYMMDD). 생략 시 최근 영업일로 시도합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
bas_ddNo
stock_codeYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It explains the two-step fallback mechanism (DART then KRX), which adds transparency. However, it does not mention potential error conditions, side effects, or rate limits, and the return format is unspecified.

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?

The description is concise, with the primary purpose stated first, followed by implementation details and parameter documentation. Every sentence adds value without redundancy.

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?

Given the tool's simplicity (2 parameters, no output schema), the description covers purpose, method, and parameter details adequately. However, it lacks information about return values or possible error cases, which would enhance completeness.

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

Parameters5/5

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 provides clear explanations for both parameters: stock_code (6-digit format) and bas_dd (date format with default to recent business day). This adds significant meaning beyond the raw schema.

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 clearly states that the tool determines the market type (KOSPI/KOSDAQ/KONEX) for a given stock code, using a specific fallback logic. It distinguishes itself from sibling tools by specifying its role as an entry point for KRX price/basic info queries.

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?

The description explicitly notes that the tool is used as an entry point for KRX price/basic info lookups, providing clear context. However, it does not list alternative tools or conditions to avoid using it, though the purpose is narrow enough to make this less critical.

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

get_stock_base_infoA

특정 종목의 기본정보를 조회합니다.

종목명(ISU_NM/ISU_ABBRV), 표준코드(ISU_CD), 단축코드(ISU_SRT_CD), 시장구분(MKT_TP_NM), 증권구분(SECUGRP_NM), 상장일(LIST_DD), 액면가(PARVAL), 상장주식수(LIST_SHRS) 등을 KRX 원본 필드 그대로 반환합니다.

bas_dd는 영업일(YYYYMMDD)이어야 합니다. market을 모르면 생략하세요(자동 판별).

Args: stock_code: 종목 단축코드(6자리, 예: 005930). bas_dd: 기준 영업일(YYYYMMDD). market: KOSPI | KOSDAQ | KONEX. 생략 시 자동 판별.

ParametersJSON Schema
NameRequiredDescriptionDefault
bas_ddYes
marketNo
stock_codeYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations exist, so the description bears full burden. It discloses that data is returned as KRX original fields and explains parameter defaults, but does not mention authorization, rate limits, or error handling.

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 well-structured with bullet points, front-loads the main purpose, and is appropriately sized. Minor redundancy in listing fields.

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?

Covers return fields and parameter constraints, but lacks details on error cases, output schema behavior, or prerequisites. Adequate for a read tool with 3 parameters.

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

Parameters5/5

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

With 0% schema coverage, the description fully compensates by providing clear semantic meaning for each parameter: stock_code format (6 digits, example), bas_dd format (YYYYMMDD), and market options with auto-detect behavior.

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 clearly states the tool retrieves basic stock information (특정 종목의 기본정보를 조회합니다) and lists specific fields returned, distinguishing it from sibling tools like get_stock_trade_info. However, it does not explicitly differentiate from get_company_info.

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?

Provides guidance on the bas_dd format and market parameter auto-detection. However, it lacks explicit direction on when to choose this tool over its siblings.

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

get_stock_trade_infoA

특정 종목의 특정 영업일 일별 매매정보(시세)를 조회합니다.

종가(TDD_CLSPRC), 전일대비(CMPPREVDD_PRC), 등락률(FLUC_RT), 시/고/저가, 거래량(ACC_TRDVOL), 거래대금(ACC_TRDVAL), 시가총액(MKTCAP), 상장주식수(LIST_SHRS) 등을 KRX 원본 필드 그대로 반환합니다.

bas_dd는 반드시 영업일(YYYYMMDD)이어야 합니다. 주말/공휴일이면 데이터가 없으니, get_today_date로 오늘을 확인하고 비영업일이면 직전 영업일로 다시 조회하세요. market을 모르면 생략하세요 — 시장을 자동 판별합니다.

Args: stock_code: 종목 단축코드(6자리, 예: 005930). bas_dd: 기준 영업일(YYYYMMDD). market: KOSPI | KOSDAQ | KONEX. 생략 시 자동 판별.

ParametersJSON Schema
NameRequiredDescriptionDefault
bas_ddYes
marketNo
stock_codeYes

TDQS

A4.2/5.0
Behavior3/5

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

Description mentions that data may be absent on weekends/holidays and that the tool returns KRX original fields. However, with no annotations provided, it lacks details on side effects, authentication requirements, or rate limits. The behavioral disclosure is minimal but adequate for a read-only query.

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?

Description is well-structured with a main paragraph followed by an Args list. It is concise, with each sentence providing necessary information. No redundant or irrelevant text. Could be slightly more concise but overall efficient.

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?

Given the absence of an output schema, the description lists the specific fields returned (closing price, change, volume, etc.) and mentions they are KRX original fields. It covers purpose, parameter meaning, usage constraints (business day), and return values, making it complete for this simple tool.

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?

Input schema has 0% description coverage, so the description must compensate. It does so by explaining each parameter: stock_code as 6-digit code with example, bas_dd as YYYYMMDD, and market as a list of options with auto-detect behavior. This adds significant meaning beyond the schema structure.

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?

Description clearly states the tool queries daily trading info for a specific stock on a specific business day. It lists the specific fields returned and distinguishes from siblings via mentioning get_today_date for date checks. The verb '조회하다' and resource '특정 종목의 특정 영업일 일별 매매정보' are specific and unique among siblings.

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?

Description provides explicit guidance: bas_dd must be a business day, and if not, use get_today_date to find the previous business day. It also notes that market can be omitted for auto-detection. However, it does not explicitly exclude other scenarios or compare against all siblings.

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

get_today_dateA

오늘 날짜를 KST와 UTC 기준으로 제공합니다.

DART 조회에 쓰이는 YYYYMMDD 형식과 ISO 형식을 함께 반환합니다. "최근", "올해" 같은 상대적 날짜 질의를 해석할 때 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It discloses the time zones (KST, UTC) and output formats (YYYYMMDD, ISO). Being a simple date getter, this is adequate; could mention it is read-only but not mandatory.

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?

Three sentences, each with distinct value: first states main purpose, second adds format details, third provides use case. No wasted words, front-loaded with essential 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?

Given low complexity (0 parameters, no output schema), the description covers purpose, output details, and usage context. It is complete for an agent to decide when and how to use the tool.

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?

Tool has zero parameters and schema coverage is 100%. Baseline for no parameters is 4; description does not need to add parameter info. It appropriately omits param details.

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 clearly states it provides today's date in KST and UTC, with specific formats (YYYYMMDD and ISO). It is distinct from sibling tools which are data retrieval functions, not date utilities.

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 advises using it for interpreting relative date queries like 'recent' or 'this year'. No explicit exclusion of alternatives, but the use case is clear and context is sufficient.

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

TDQS

A4.3/5.0
Disambiguation5/5

Each tool has a distinct purpose: company info, corp code lookup, disclosure list/detail, financial statements, market type, stock base info, trade info, and date retrieval. No overlapping functionality.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., get_company_info, get_stock_trade_info), making them predictable and easy to distinguish.

Tool Count5/5

With 9 tools covering company info, disclosures, financials, and stock market data, the count is well-scoped for the domain, neither excessive nor insufficient.

Completeness4/5

Core workflows (company lookup, disclosure search, financial statements, stock quotes) are covered. Minor gaps like historical price trends or advanced analytics are absent but not critical for basic stock information.

Maintenance

ActivityStale
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    MCP server that provides Korean stock market data including indices, top gainers, stock quotes, news, fundamentals, and buy recommendations. Enables LLMs to access real-time and historical Korean stock information.
    6
  • A
    license
    A
    quality
    D
    maintenance
    MCP server for Korea's DART (Data Analysis, Retrieval and Transfer) electronic disclosure system, operated by the Financial Supervisory Service (FSS). Exposes company disclosures, company profiles, and financial statements via the OpenDART public API.
    3
    21
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides Korean stock market data (KOSPI, KOSDAQ, KONEX) including prices, fundamentals, investor trading, short selling, and indices via MCP protocol, enabling natural language queries from AI agents like ChatGPT and Claude.
    3
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides Korean Exchange (KRX) Open API data as MCP tools, supporting 31 APIs for indices, stocks, ETP, bonds, derivatives, commodities, and ESG.
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/okdoittttt/ko-stock-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server