ai.smithery/jjlabsio-korea-stock-mcp

Search company disclosures and financial statements from the Korean market. Retrieve stock profile…

95ISCdevtools

Install

Config snippet generator goes here (5 client tabs)

README

# Korea Stock MCP Server

[🇰🇷 한국어](#korea-stock-mcp-server) | [🇺🇸 English](#english-version)

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

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

## 🎯 주요 기능

- 🔍 **공시검색** - 회사별, 기간별 공시 검색
- 📊 **공시 데이터** - 공시보고서 원본파일 파싱한 데이터 제공
- 💼 **재무제표 분석** - XBRL 기반 상세 재무 데이터
- 📈 **주식 데이터** - KRX(코스피/코스닥) 일별 주가정보, 종목 기본정보

## ⚡ 빠른 시작

### 1️⃣ API KEY 발급

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

#### 📝 DART API KEY 발급

1. **회원가입**: [OPEN DART](https://opendart.fss.or.kr) 회원가입
2. **키 신청**: [인증키 신청 페이지](https://opendart.fss.or.kr/uss/umt/EgovMberInsertView.do)에서 API KEY 신청
3. **키 확인**: [오픈API 이용현황](https://opendart.fss.or.kr/mng/apiUsageStatusView.do)에서 발급된 API KEY 확인

#### 📈 KRX API KEY 발급

1. **회원가입**: [KRX OPEN API](https://openapi.krx.co.kr/contents/OPP/MAIN/main/index.cmd)에서 회원가입 및 로그인
2. **키 신청**: 마이페이지 → API 인증키 신청에서 신청
3. **서비스 신청**: 승인 후 서비스이용 → 주식 메뉴로 이동
4. **API 이용신청**: 다음 6개 항목에서 각각 "API 이용신청" 클릭

   - 유가증권 일별매매정보
   - 코스닥 일별매매정보
   - 코넥스 일별매매정보
   - 유가증권 종목기본정보
   - 코스닥 종목기본정보
   - 코넥스 종목기본정보

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

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

### 2️⃣ Claude Desktop 설정

1. **Claude Desktop** 실행
2. **설정** → **개발자** → **구성편집** 클릭
3. `claude_desktop_config.json` 파일에 다음 내용 추가:

```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>"
      }
    }
  }
}
```

4. **재시작**: 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분기 매출, 영업이익 조사해주고 성장률도 조사해줘"  
→ [삼양식품 분석 결과 보기](./example/삼양식품.md)

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

### 🏢 기업 분석 예제

**프롬프트**: "HJ중공업은 뭘 해서 돈을 버는 회사인지랑 사업부문별 매출까지 같이 알려줘"  
→ [HJ중공업 분석 결과 보기](./example/HJ중공업.md)

### 📑 공시 분석 예제

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

## API 데이터 소스

- **DART (전자공시시스템)**: 상장기업 공시 정보 및 재무제표
- **KRX (한국거래소)**: 종목 기본정보 및 일별 매매정보

## 로컬 개발 및 테스트

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

### 1️⃣ 의존성 설치

```bash
npm install
```

### 2️⃣ 환경변수 설정

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

```bash
DART_API_KEY=your_dart_api_key
KRX_API_KEY=your_krx_api_key
```

### 3️⃣ MCP Inspector 실행

```bash
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에