Skip to main content
Glama
jjlabsio

korea-stock-mcp

by jjlabsio

Korea Stock MCP Server

🇰🇷 한국어 | 🇺🇸 English

🚀 Korea Stock MCP가 오픈소스 MCP에서 한 단계 더 나아갑니다. 정확한 한국 주식 데이터를 바탕으로, AI가 더 믿을 수 있는 답변을 제공하도록 돕는 새로운 서비스를 준비하고 있습니다. 새로운 서비스의 방향을 확인해보세요.

한국 주식 분석을 위한 MCP 서버입니다.
DART(전자공시시스템)와 KRX(한국거래소) 공식 API를 통해 주가 정보와 공시 자료 기반의 AI분석이 가능합니다.

💬 개선 요청 & 피드백 환영합니다! 사용하면서 불편한 점이나 개선 아이디어가 있으시면 편하게 이메일 주세요. 빠르게 확인하고 반영하겠습니다. 📧 wowlxx28@gmail.com

🎯 주요 기능

  • 🔍 공시검색 - 회사별, 기간별 공시 검색

  • 📊 공시 데이터 - 공시보고서 원본파일 파싱한 데이터 제공

  • 💼 재무제표 분석 - XBRL 기반 상세 재무 데이터

  • 📈 주식 데이터 - KRX(코스피/코스닥) 일별 주가정보, 종목 기본정보

Related MCP server: kiwoom-mcp

⚡ 빠른 시작

1️⃣ API KEY 발급

먼저 DART와 KRX의 API KEY를 발급받아야 합니다.

📝 DART API KEY 발급

  1. 회원가입: OPEN DART 회원가입

  2. 키 신청: 인증키 신청 페이지에서 API KEY 신청

  3. 키 확인: 오픈API 이용현황에서 발급된 API KEY 확인

📈 KRX API KEY 발급

  1. 회원가입: KRX OPEN API에서 회원가입 및 로그인

  2. 키 신청: 마이페이지 → API 인증키 신청에서 신청

  3. 서비스 신청: 승인 후 서비스이용 → 주식 메뉴로 이동

  4. API 이용신청: 다음 6개 항목에서 각각 "API 이용신청" 클릭

    • 유가증권 일별매매정보

    • 코스닥 일별매매정보

    • 코넥스 일별매매정보

    • 유가증권 종목기본정보

    • 코스닥 종목기본정보

    • 코넥스 종목기본정보

    ⏱️ 승인까지 약 1일 소요됩니다.

  5. 키 확인: 승인 후 마이페이지 → API 인증키 발급내역에서 API KEY 확인

2️⃣ Claude Desktop 설정

  1. Claude Desktop 실행

  2. 설정개발자구성편집 클릭

  3. claude_desktop_config.json 파일에 다음 내용 추가:

{
  "mcpServers": {
    "korea-stock-mcp": {
      "command": "npx",
      "args": ["-y", "korea-stock-mcp@latest"],
      "env": {
        "DART_API_KEY": "<YOUR_DART_API_KEY>",
        "KRX_API_KEY": "<YOUR_KRX_API_KEY>"
      }
    }
  }
}
  1. 재시작: Claude Desktop을 재시작하여 설정 적용

이제 Claude에서 한국 주식 데이터 분석을 시작할 수 있습니다.

대용량 공시 문서 처리

일부 공시보고서(사업보고서, 분기보고서 등)는 수 MB에 달하는 대용량 XML 문서입니다. 이런 문서를 한 번에 모두 처리하면 AI 응답 한도를 초과하거나 오류가 발생할 수 있습니다.

어떻게 동작하나요?

문서 크기에 따라 자동으로 처리 방식이 달라집니다.

  • 소용량 문서 (1MB 미만): 문서 전체를 바로 반환합니다.

  • 대용량 문서 (1MB 이상): 문서 전체 대신 **목차(TOC)**를 먼저 반환합니다. Claude가 목차를 보고 질문과 관련된 섹션을 자동으로 선택해 내용을 가져옵니다.

유저 안내

별도로 조작할 필요가 없습니다. Claude가 대용량 문서를 자동으로 처리합니다.

문서가 크면 Claude가 자동으로 다음과 같이 동작합니다:

  1. 문서 목차를 확인합니다.

  2. 질문과 관련된 섹션을 자동으로 선택해 내용을 조회합니다.

  3. 답변 후 나머지 섹션 목록을 안내하므로, 추가로 궁금한 섹션이 있으면 요청할 수 있습니다.

예시:

  • "사업보고서에서 매출 현황 알려줘" → Claude가 매출 관련 섹션을 자동 선택

  • "방금 목차에서 3번 섹션도 조회해줘" → 특정 섹션 직접 요청 가능

💡 복잡한 질문은 단계별로 나눠서 질문하세요

한 번에 원하는 답을 얻지 못할 때는, 질문을 여러 단계로 나누면 더 정확한 결과를 얻을 수 있습니다.

예를 들어, "인벤테라의 증권신고서에서 외국인 배정 내역 알려줘"가 한 번에 안 된다면:

  1. "인벤테라의 고유번호(corp_code) 알려줘"

  2. "그 회사의 증권발행 관련 공시 목록 보여줘"

  3. "해당 공시 본문을 가져와줘"

  4. "외국인 배정 내역을 찾아줘"

이렇게 단계별로 진행하면 각 단계의 결과를 확인하면서 원하는 정보에 도달할 수 있습니다.


사용 가능한 도구

DART (전자공시시스템)

  1. get_disclosure_list - 공시검색

    • 공시 유형별, 회사별, 날짜별 공시보고서 검색

  2. get_corp_code - 고유번호 조회

    • DART 등록 공시대상회사의 고유번호, 회사명, 종목코드 제공

    • 회사명(corp_name) 또는 종목코드(stock_code) 중 하나로 조회 가능

    • 회사명 검색 실패 시 종목코드로 재시도 안내

  3. get_disclosure - 공시보고서 원문

    • DART API를 통한 공시보고서 원본파일 파싱

    • 대용량 문서의 경우 목차를 반환하며, section_id로 특정 섹션 조회 가능

  4. get_financial_statement - 재무제표

    • 상장법인 및 주요 비상장법인 XBRL 재무제표

    • 정기보고서 내 모든 계정과목 데이터 제공

KRX (한국거래소)

  1. get_stock_base_info - 종목 기본정보

    • 코스피, 코스닥, 코넥스 상장 종목 기본 정보

    • 종목명, 종목코드, 시장구분 등 기본 데이터

  2. get_stock_trade_info - 일별 매매정보

    • 코스피, 코스닥, 코넥스 종목별 일별 거래 데이터

    • 주가, 거래량, 시가총액 등 상세 거래 정보

  3. get_market_type - 시장구분 조회

    • 종목코드로 해당 종목의 시장구분(코스피/코스닥/코넥스) 조회

    • 주식 데이터 조회 시 필요한 시장 정보 제공

기타 도구

  1. get_today_date - 오늘 날짜 조회

    • 현재 날짜를 YYYYMMDD 형식으로 제공

    • AI의 정확한 날짜 조회를 위한 도구

실제 사용 예시

📊 재무 분석 예제

프롬프트: "삼양식품의 2023년, 2024년 1~4분기, 2025년 1,2분기 매출, 영업이익 조사해주고 성장률도 조사해줘"
삼양식품 분석 결과 보기

프롬프트: "에이피알의 23년 1분기부터 25년 2분기까지의 매출, 영업이익 성장과 주가, 시가총액 흐름을 조사해줘"
에이피알 분석 결과 보기

🏢 기업 분석 예제

프롬프트: "HJ중공업은 뭘 해서 돈을 버는 회사인지랑 사업부문별 매출까지 같이 알려줘"
HJ중공업 분석 결과 보기

📑 공시 분석 예제

프롬프트: "Get the foreign allocation details for an IPO (e.g., Inventera / 0007J0)" → 인벤테라 IPO 외국인 배정 분석 결과 보기

API 데이터 소스

  • DART (전자공시시스템): 상장기업 공시 정보 및 재무제표

  • KRX (한국거래소): 종목 기본정보 및 일별 매매정보

로컬 개발 및 테스트

소스를 수정하면서 바로 테스트하는 방법입니다.

1️⃣ 의존성 설치

npm install

2️⃣ 환경변수 설정

프로젝트 루트에 .env 파일을 생성합니다:

DART_API_KEY=your_dart_api_key
KRX_API_KEY=your_krx_api_key

3️⃣ MCP Inspector 실행

npm run inspect

터미널에 출력되는 주소(http://localhost:6274 등)를 브라우저에서 열면 MCP Inspector UI가 열립니다.

Inspector에서 Connect 버튼을 클릭한 후, 좌측 툴 목록에서 원하는 툴을 선택해 직접 호출할 수 있습니다.

4️⃣ 소스 수정 후 재테스트

src/ 파일을 수정하고 저장하면 서버가 자동으로 재시작됩니다. Inspector에서 Reconnect 버튼을 클릭하면 변경사항이 즉시 반영됩니다.

참고: Node.js 18 이상이 필요합니다.

기여하기

기여를 환영합니다! Pull Request를 보내주세요.

  1. 이 저장소를 포크하세요

  2. 기능 브랜치를 만드세요 (git checkout -b feature/AmazingFeature)

  3. 변경사항을 커밋하세요 (git commit -m 'Add some AmazingFeature')

  4. 브랜치에 푸시하세요 (git push origin feature/AmazingFeature)

  5. Pull Request를 열어주세요

라이선스

ISC 라이선스

지원

  • 🐛 이슈가 있다면 GitHub Issues에 등록해주세요

  • ⭐ 유용하다면 스타를 눌러주세요!

면책 조항

본 도구는 정보 제공 목적이며, 투자 조언이 아닙니다. 모든 투자 결정은 본인 책임입니다.


English Version

🚀 Korea Stock MCP is taking the next step beyond an open-source MCP. Built on reliable Korean stock data, we’re preparing a new service that helps AI deliver answers you can trust. See what we’re building.

MCP Server for Korean stock analysis.
Enables AI-powered analysis of stock prices and disclosure data through official APIs from DART (Data Analysis, Retrieval and Transfer System) and KRX (Korea Exchange).

💬 Feedback & Feature Requests Welcome! If you have any ideas for improvement or issues while using this tool, feel free to email me. I'll review and address them as quickly as possible. 📧 wowlxx28@gmail.com

🎯 Key Features

  • 🔍 Disclosure Search - Search corporate disclosures by company and date

  • 📊 Disclosure Data - Provides parsed data from original disclosure reports

  • 💼 Financial Statement Analysis - Detailed financial data based on XBRL

  • 📈 Stock Data - KRX (KOSPI/KOSDAQ) daily stock prices and basic stock information

⚡ Quick Start

1️⃣ API KEY Registration

You need to obtain API KEYs from both DART and KRX.

📝 DART API KEY Registration

  1. Sign Up: Register at OPEN DART

  2. Request Key: Apply for API KEY at Authentication Key Application Page

  3. Check Key: Verify issued API KEY at Open API Usage Status

📈 KRX API KEY Registration

  1. Sign Up: Register and login at KRX OPEN API

  2. Request Key: Apply for API authentication key in My Page → API Authentication Key Application

  3. Service Application: After approval, go to Service Use → Stock menu

  4. API Usage Application: Click "API Usage Application" for each of the following 6 items

    • Securities Daily Trading Information

    • KOSDAQ Daily Trading Information

    • KONEX Daily Trading Information

    • Securities Basic Information

    • KOSDAQ Basic Information

    • KONEX Basic Information

    ⏱️ Approval takes approximately 1 day.

  5. Key Verification: After approval, check API KEY in My Page → API Authentication Key Issuance History

2️⃣ Claude Desktop Setup

  1. Launch Claude Desktop

  2. Go to SettingsDeveloperEdit Configuration

  3. Add the following content to claude_desktop_config.json:

{
  "mcpServers": {
    "korea-stock-mcp": {
      "command": "npx",
      "args": ["-y", "korea-stock-mcp@latest"],
      "env": {
        "DART_API_KEY": "<YOUR_DART_API_KEY>",
        "KRX_API_KEY": "<YOUR_KRX_API_KEY>"
      }
    }
  }
}
  1. Restart: Restart Claude Desktop to apply settings

You can now start analyzing Korean stock data with Claude.

Large Disclosure Document Handling

Some disclosure reports (annual reports, quarterly reports, etc.) are large XML documents of several MB. Processing such documents all at once can exceed AI response limits or cause errors.

How does it work?

The processing method changes automatically depending on document size.

  • Small documents (under 1MB): Returns the entire document immediately.

  • Large documents (1MB or more): Returns a Table of Contents (TOC) instead of the full document. Claude reads the TOC and automatically selects and fetches the sections relevant to your question.

User Guide

No manual action required. Claude handles large documents automatically.

When a document is large, Claude automatically:

  1. Checks the document's table of contents.

  2. Selects and fetches the sections relevant to your question.

  3. After answering, lists the remaining sections — so you can request any other section you're curious about.

Examples:

  • "Show me the revenue overview from the annual report" → Claude auto-selects the revenue-related section

  • "Also fetch section 3 from the TOC you just showed" → You can request a specific section directly

💡 Break Complex Questions into Steps

If you can't get the answer you want in one shot, try breaking your question into smaller steps for more accurate results.

For example, instead of "Show me the foreign investor allocation details from Inventera's securities registration statement", try:

  1. "Get the corp_code for Inventera"

  2. "Search for securities issuance disclosures for that company"

  3. "Fetch the document content for that disclosure"

  4. "Find the foreign investor allocation table"

This way, you can verify each step's output and guide Claude toward the exact information you need.


Available Tools

DART (Data Analysis, Retrieval and Transfer System)

  1. get_disclosure_list - Disclosure Search

    • Search disclosure reports by type, company, and date

  2. get_corp_code - Corporate Code Inquiry

    • Provides unique codes, company names, and stock codes of DART-registered disclosure companies

    • Search by company name (corp_name) or stock code (stock_code)

    • If name search fails (e.g. non-Korean input), suggests retrying with stock code

  3. get_disclosure - Disclosure Report Content

    • Parse original disclosure report files through DART API

    • For large documents, returns a TOC; use section_id to fetch a specific section

  4. get_financial_statement - Financial Statements

    • XBRL financial statements for listed and major unlisted companies

    • Provides all account data from periodic reports

KRX (Korea Exchange)

  1. get_stock_base_info - Basic Stock Information

    • Basic information for KOSPI, KOSDAQ, and KONEX listed stocks

    • Basic data including stock names, codes, and market classifications

  2. get_stock_trade_info - Daily Trading Information

    • Daily trading data for KOSPI, KOSDAQ, and KONEX stocks

    • Detailed trading information including stock prices, trading volume, and market capitalization

  3. get_market_type - Market Type Inquiry

    • Query market classification (KOSPI/KOSDAQ/KONEX) by stock code

    • Provides market information needed for stock data queries

Other Tools

  1. get_today_date - Today's Date Inquiry

    • Provides current date in YYYYMMDD format

    • Tool for AI's accurate date inquiry

Real Usage Examples

📊 Financial Analysis Examples

Prompt: "Investigate Samyang Foods's sales and operating profit for Q1-Q4 2023, Q1-Q4 2024, and Q1-Q2 2025, and also check growth rates"
See Samyang Foods Analysis Results

Prompt: "Investigate APR's sales and operating profit growth from Q1 2023 to Q2 2025, along with stock price and market cap trends" → See APR Analysis Results

🏢 Corporate Analysis Examples

Prompt: "Tell me what HJ SHIPBUILDING & CONSTRUCTION does to make money and include sales by business segment" → See HJ Shipbuilding & Construction Analysis Results

📑 Disclosure Analysis Examples

Prompt: "Get the foreign allocation details for an IPO (e.g., Inventera / 0007J0)" → See Inventera IPO Foreign Allocation Analysis Results

API Data Sources

  • DART (Data Analysis, Retrieval and Transfer System): Listed company disclosure information and financial statements

  • KRX (Korea Exchange): Basic stock information and daily trading information

Local Development & Testing

How to test while modifying the source code.

1️⃣ Install dependencies

npm install

2️⃣ Set up environment variables

Create a .env file in the project root:

DART_API_KEY=your_dart_api_key
KRX_API_KEY=your_krx_api_key

3️⃣ Run MCP Inspector

npm run inspect

Open the URL printed in the terminal (e.g. http://localhost:6274) in your browser to open the MCP Inspector UI.

Click Connect in the Inspector, then select any tool from the left panel to call it directly.

4️⃣ Re-test after modifying source

When you save a file under src/, the server restarts automatically. Click Reconnect in the Inspector to pick up the changes immediately.

Note: Node.js 18 or higher is required.

Contributing

Contributions are welcome! Please send us a Pull Request.

  1. Fork this repository

  2. Create a feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

License

ISC License

Support

  • 🐛 If you have issues, please register them in GitHub Issues

  • ⭐ If you find it useful, please give it a star!

Disclaimer

This tool is for informational purposes only and is not investment advice. All investment decisions are your own responsibility.

Available Tools

8 tools
get_corp_codeAInspect

고유번호: DART에 등록되어있는 공시대상회사의 고유번호, 회사명, 종목코드를 제공합니다. 비상장법인도 조회 가능합니다. 회사명(corp_name, 한글 또는 영문) 또는 종목코드(stock_code) 중 하나로 조회할 수 있습니다. 회사명은 부분 일치 검색을 지원하므로 정확한 이름을 몰라도 조회할 수 있습니다. IMPORTANT: 한글 회사명을 정확히 모르는 경우(예: 영문명만 아는 경우), 반드시 웹 검색으로 정확한 한글 정식 명칭을 먼저 확인한 뒤 corp_name에 입력하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
corp_nameNo회사 명칭 (한글 또는 영문). 부분 일치 검색을 지원합니다. stock_code와 둘 중 하나만 입력
stock_codeNo상장회사의 종목코드(6자리). 회사명을 모르거나 검색에 실패한 경우 종목코드로 조회할 수 있습니다.

TDQS

A4.4/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 full burden. It discloses partial matching, support for unlisted companies, and the need for exact Korean name via web search. It does not mention rate limits or read-only nature, but the behavior is well-covered.

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 brief (4 sentences) and front-loaded with the main purpose. Every sentence adds value, including the important usage note. No redundant or irrelevant 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?

Given no output schema, the description appropriately states what the tool returns (unique number, company name, stock code). It covers key query methods and constraints. Could optionally mention output format but not necessary.

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%, but the description adds extra meaning: partial matching is explicitly highlighted, stock_code is tied to listed companies, and an important note clarifies input requirements. This exceeds the baseline of 3.

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 provides unique number, company name, and stock code for DART-registered companies, including unlisted ones. It distinguishes from siblings like get_disclosure or get_stock_base_info by focusing on corporate identification data.

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 gives clear input guidance: use corp_name (partial match) or stock_code, and advises web searching for exact Korean name when unsure. It implicitly contrasts with other tools via sibling context, but lacks explicit when-not-to-use or alternative tool comparisons.

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

get_disclosureAInspect

DART API를 통해 공시보고서 원본파일을 파싱해 가져옵니다. 문서가 큰 경우(1MB 초과) 목차(type: "toc")를 반환합니다. 목차가 반환되면 유저의 질문과 관련된 섹션을 section_id로 조회하세요. 답변 후, 조회하지 않은 나머지 섹션 목록을 유저에게 안내하여 추가 조회 여부를 선택할 수 있게 하세요. 해당 섹션도 1MB를 초과하면 하위 목차를 반환합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
rcept_noYes접수번호
section_idNo조회할 섹션 ID. 생략하면 전체 문서를 반환하고, 문서가 크면 목차(type: toc)를 반환합니다. 목차의 섹션 ID를 지정하면 해당 섹션만 반환합니다.

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. Discloses behavior: returns TOC for large docs, section_id retrieves subsections, and sub-TOC for very large sections. Lacks details on error handling or auth, but sufficient for the agent.

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?

Three sentences, well-structured with clear progression: purpose, behavior on large docs, then action steps. Front-loaded with main verb. Could be slightly tighter but very informative.

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 no output schema or annotations, description sufficiently covers key behaviors: large doc handling, section navigation, and user guidance. Lacks details on TOC format but enough for an agent to use correctly.

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. Description adds significant meaning for section_id: explains its behavior (full doc vs TOC vs section retrieval). This goes beyond the schema description.

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 'parses and fetches original disclosure report files' via DART API, with specific verb and resource. It distinguishes itself from siblings like get_disclosure_list (list) and get_financial_statement (financial data).

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 use section_id for large documents (>1MB) and provides a complete workflow: get TOC, query sections, then inform user of remaining sections. This guides the agent on proper usage vs alternatives.

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

get_disclosure_listBInspect

공시검색: 공시 유형별, 회사별, 날짜별 등 여러가지 조건으로 공시보고서 검색기능을 제공합니다. 최근 공시를 검색할때는 bgn_de를 반드시 지정하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo정렬 (date: 접수일자, crp: 회사명, rpt: 보고서명) ※ 기본값 : date
bgn_deNo검색시작 접수일자(YYYYMMDD) 1) 기본값 : 종료일(end_de)
end_deNo검색종료 접수일자(YYYYMMDD) 1) 기본값 : 당일
page_noNo페이지 번호(1~n) 기본값 : 1
corp_clsNo법인구분 (Y: 유가증권시장, K: 코스닥, N: 코넥스, E: 기타) ※ 없으면 전체조회, 복수조건 불가
sort_mthNo정렬방법 (asc: 오름차순, desc: 내림차순) ※ 기본값 : desc
corp_codeNo공시대상회사의 고유번호(8자리)
pblntf_tyNo공시유형 // A : 정기공시, B : 주요사항보고, C : 발행공시, D : 지분공시, E : 기타공시, F : 외부감사관련, G : 펀드공시, H : 자산유동화, I : 거래소공시, J : 공정위공시
page_countNo페이지당 건수(1~100) 기본값 : 10, 최대값 : 100
last_reprt_atNo최종보고서 검색여부 (Y 또는 N) 1) 기본값 : N(정정이 있는 경우 최종정정만 검색)
pblntf_detail_tyNo공시상세유형

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behaviors. It only states the function without mentioning rate limits, authentication, or side effects. The description is minimal.

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?

Two sentences, front-loaded with purpose, no redundant information. Every sentence earns its place.

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

Completeness2/5

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

With 11 parameters, no output schema, and no annotations, the description should provide more context about return format, pagination, or error handling. It only covers basic purpose and one use case.

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%, baseline 3. The description adds semantic value by stating that bgn_de is mandatory for recent searches, which goes beyond the schema's optional default.

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 searches for disclosure reports by various conditions. It is distinct from siblings like get_financial_statement or get_stock_base_info, but does not differentiate from the similarly named get_disclosure tool.

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 one specific guideline: 'When searching recent disclosures, you must specify bgn_de.' This is helpful but does not cover when not to use or alternatives.

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

get_financial_statementBInspect

재무제표: 상장법인(유가증권, 코스닥) 및 주요 비상장법인(사업보고서 제출대상 & IFRS 적용)이 제출한 정기보고서 내에 XBRL재무제표의 모든계정과목을 제공합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
sj_nmNo재무상태표, 포괄손익계산서, 자본변동표, 현금흐름표 중 하나. 없으면 전체조회
fs_divYes개별/연결구분: OFS(재무제표), CFS(연결재무제표)
bsns_yearYes사업연도(4자리) - 2015년 이후부터 정보제공
corp_codeYes공시대상회사의 고유번호(8자리)
reprt_codeYes보고서 코드: 11013(1분기), 11012(반기), 11014(3분기), 11011(사업보고서)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only nature, authentication requirements, rate limits, or whether the data is cached. The description only states what data is provided, lacking transparency on side effects or prerequisites.

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 a single sentence that is concise and front-loaded with '재무제표:'. It contains all necessary information without redundancy. However, it could be broken into multiple sentences for clarity.

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

Completeness2/5

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

Given the complexity of financial data and the absence of an output schema, the description is too brief. It does not explain what the returned data contains (e.g., structure of all account items) or how to interpret the response. More context on output format is needed for an agent to use this tool effectively.

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 description coverage is 100%, with all parameters having detailed descriptions including enum values. The tool description adds minimal value beyond the schema; it does not explain parameter interactions or usage patterns. Baseline 3 is appropriate due to high schema coverage.

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 provides all account items of XBRL financial statements from periodic reports for listed and major non-listed companies. It uses a specific verb ('제공합니다') and resource ('XBRL재무제표의 모든계정과목'), and the scope ('상장법인 및 주요 비상장법인') distinguishes it from sibling tools like get_stock_base_info or 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 Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. The description only explains what the tool does but does not provide context about when it is appropriate or when to use other tools like get_disclosure or get_corp_code.

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

get_market_typeAInspect

DART에 등록되어 있는 종목의 상장시장 정보를 제공합니다. Y(유가), K(코스닥), N(코넥스), E(기타)

ParametersJSON Schema
NameRequiredDescriptionDefault
corp_codeYes공시대상회사의 고유번호(8자리)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must carry the burden. It explains the return values (Y, K, N, E) which is helpful, but does not disclose error behavior, authentication needs, or whether it is read-only. The behavior is minimally transparent.

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 extremely concise with two sentences: one stating the purpose and one listing the possible return values. No unnecessary words, and the key information 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 the simplicity of the tool (one param, simple output), the description is fairly complete. It explains the output values. However, it lacks details on error handling or prerequisites like registration with DART, which could be helpful for agents unfamiliar with the API.

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?

The only parameter (corp_code) has a schema description that fully explains its purpose and format. The tool description does not add additional semantic meaning beyond what the schema already provides, so the baseline score of 3 is appropriate.

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 provides listing market information for stocks registered in DART and specifies the possible return codes (Y, K, N, E). This distinguishes it from sibling tools that deal with disclosures, financial statements, or stock base 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?

The description implies usage when market type is needed, but provides no explicit guidance on when to use this tool vs alternatives (e.g., get_stock_base_info might also have market info). No conditional usage or prerequisites are mentioned.

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

get_stock_base_infoAInspect

코스피, 코스닥, 코넥스에 상장되어있는 종목의 기준일에 해당하는 한글 종목명, 영문 종목명, 상장일, 주식종류, 액면가, 상장주식수 등의 정보를 제공합니다. codeList에 종목코드가 포함된 종목들의의 정보만 추출됩니다. basDd 하나당 KRX API를 한번씩 호출합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes상장된 주식시장 종류
codeListYes데이터를 가져올 종목들의 종목코드의 배열
basDdListYes기준일자(YYYYMMDD) 배열

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. Describes API call per basDd and filtering by codeList, but does not mention idempotency or authentication. However, the behavior is transparent enough for an agent to understand usage.

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 concise sentences with no wasted words. Front-loaded with purpose, then filtering rule, then API behavior. Ideal length.

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?

No output schema, but description enumerates key return fields (한글 종목명, 영문 종목명, 상장일, 주식종류, 액면가, 상장주식수). Explains filtering and API call behavior. Fully sufficient for a data retrieval tool given complexity and sibling context.

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 describes all parameters fully (100% coverage), so description adds marginal value. It reinforces that codeList filters results and explains API call frequency per basDd, which is helpful 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?

Description clearly states it provides base info (name, listing date, etc.) for stocks on given base dates, filtered by market and code list. Unambiguously distinguishes from sibling tools which deal with corporation codes, disclosures, financial statements, etc.

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 notes that only stocks in codeList are extracted and that each basDd triggers an API call, implying rate limit considerations. Does not explicitly state when not to use or compare to siblings, but 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_stock_trade_infoAInspect

코스피, 코스닥, 코넥스에 상장되어있는 종목의 기준일에 해당하는 종가, 등락률, 시가, 고가, 저가, 거래량, 거대금, 시총액, 상장주식수 등의 정보를 제공합니다. codeList에 종목코드가 포함된 종목들의의 정보만 추출되어 제공됩니다. basDd 하나당 KRX API를 한번씩 호출합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketYes상장된 주식시장 종류
codeListYes데이터를 가져올 종목들의 종목코드의 배열
basDdListYes기준일자(YYYYMMDD) 배열

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose all behavioral traits. It reveals that the tool makes one KRX API call per base date, implying rate limits and potential latency. However, it does not mention whether data is real-time, delayed, or historical, nor does it discuss authentication, error handling, or idempotency. For a read operation, the per-date call is useful, but other behaviors are missing, making the transparency mediocre.

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 three sentences long, with the main purpose stated first, followed by filtering behavior, then the API call pattern. Every sentence adds value without redundancy or unnecessary detail. It is concise and well-structured for quick comprehension.

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 the tool has three required parameters, no output schema, and no annotations, the description explains inputs and a key behavioral note (per-date API call), but it does not describe the output format or return structure. For a data-retrieval tool, missing output information (e.g., structure of the response) is a gap. However, the tool name implies the returned data fields, so it is minimally complete but not robust.

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 description coverage is 100%, so the baseline is 3. The description adds that only stocks in codeList are extracted and that basDdList drives per-day API calls, which provides context beyond the schema's field definitions. However, the schema already describes the parameters' purposes adequately (market type, array of codes, array of dates), so the added value is modest.

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 provides trade information (closing price, change rate, open, high, low, volume, amount, market cap, listed shares) for stocks listed on KOSPI, KOSDAQ, KONEX. The verb 'provides' and specific data fields make the purpose unambiguous. Although it doesn't explicitly contrast with siblings, the sibling tools have distinct purposes (e.g., get_stock_base_info likely provides basic stock info, not trade data), so the tool differentiates itself in context.

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?

The description implicitly tells the agent to use this tool when needing trade data for specific dates and stock codes, and that a separate API call is made per date. However, it lacks explicit guidance on when not to use it or alternatives; for example, it doesn't mention that get_stock_base_info might be better for non-trade data like listing dates. Without clear when-to-use vs. when-not-to-use, the guidelines are adequate but not strong.

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

get_today_dateAInspect

오늘 날짜를 KST, UTC 기준 YYYYMMDD 형식으로 제공합니다.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/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 the full burden. It discloses the output format and timezones but does not detail whether the output is a single string or multiple values. Adequate for a simple tool.

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?

Single sentence, no unnecessary words. Perfectly concise and front-loaded.

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?

The description is complete given no parameters and no output schema. It specifies the format and timezones, covering all necessary information.

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?

No parameters exist in the schema (100% coverage). The description adds no param info, which is appropriate. Baseline 4 for zero parameters.

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 provides today's date in KST and UTC in YYYYMMDD format. It is a specific verb+resource and distinguishes from sibling tools focused on financial data.

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?

No explicit guidance on when to use or not. However, the tool is self-explanatory and siblings are unrelated, so usage context is implied but not explicit.

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. 8 tool updatesv1.4.1
    • First observedget_corp_code
    • First observedget_disclosure
    • First observedget_disclosure_list
    • First observedget_financial_statement
    • First observedget_market_type
    • First observedget_stock_base_info
    • First observedget_stock_trade_info
    • First observedget_today_date

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

Each tool targets a distinct operation: corporate code lookup, disclosure retrieval, disclosure listing, financial statements, market type, stock base info, stock trade info, and date. No overlap or ambiguity between tools.

Naming Consistency5/5

All tools follow a consistent 'get_' prefix with snake_case noun phrases (e.g., get_corp_code, get_discovery_list). Uniform naming pattern enhances predictability.

Tool Count5/5

With 8 tools covering corporate info, disclosures, financials, and stock data, the count is well-scoped for a Korean stock market server. Each tool serves a clear purpose without bloat.

Completeness4/5

Covers essential operations: company identification, disclosure listing/content, financial statements, market type, and daily stock info. Missing historical price or index data but adequate for core domain needs.

Maintenance

ActivitySlowing
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    An MCP server that enables natural language control of Kiwoom Securities accounts through Claude Desktop. It provides tools for stock price lookup, buying and selling stocks, and analyzing portfolios or trade history via the Kiwoom REST API.
    11
    2
    -
  • 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
    -