koreainvestment-mcp

koreainvestment-mcp

Enables users to search for Korea Investment & Securities APIs using natural language queries, returning structured responses with API details such as function name, API name, and category.

Category
访问服务器

README

한국투자증권 API 검색 서비스

한국투자증권 API를 자연어로 쉽게 찾을 수 있는 MCP 서버

개요

한국투자증권의 다양한 API 중에서 원하는 기능을 자연어 질문으로 쉽게 찾을 수 있는 검색 서비스입니다.
MCP(Model Context Protocol) 기반으로 Claude Desktop과 연동하여 사용할 수 있습니다. 실행 화면

지원하는 API 카테고리

카테고리 개수 주요 기능
국내주식 156개 현재가, 호가, 차트, 잔고, 주문, 순위분석, 시세분석, 종목정보, 실시간시세 등
해외주식 50개 미국/아시아 주식 시세, 잔고, 주문, 체결내역, 거래량순위, 권리종합 등
국내선물옵션 43개 선물옵션 시세, 호가, 차트, 잔고, 주문, 야간거래, 실시간체결 등
해외선물옵션 35개 해외선물 시세, 주문내역, 증거금, 체결추이, 옵션호가 등
ELW 24개 ELW 시세, 거래량순위, 민감도순위, 변동성추이, 지표순위 등
국내채권 18개 채권 시세, 호가, 발행정보, 잔고조회, 주문체결내역 등
ETF/ETN 6개 NAV 비교추이, 현재가, 구성종목시세 등
인증 2개 접근토큰발급, 웹소켓 접속기 발급

전체 API 총합계: 334개

설치 및 실행

# 필요한 패키지 설치
uv sync

# 서버 실행 테스트
uv run server.py

사용 방법

Claude Desktop 연동

Claude Desktop 설정(로컬 예시):

{
  "mcpServers": {
    "kis-api-search(이름 테스트중)": {
      "command": "{uv 폴더 경로}/.local/bin/uv",
      "args": ["run", "--project", "{프로젝트 폴더 경로}/proj/sample-mcp", "python", "{프로젝트 폴더 경로}/sample-mcp/server.py"],
      "env": {
        "PYTHONPATH": "{프로젝트 폴더 경로}/sample-mcp"
      }
    }
  }
}

질문 예시

  • "삼성전자 현재가 API 찾아줘"
  • "내 해외주식 잔고 조회하는 방법"
  • "채권 호가 정보 가져오는 API"
  • "오늘 뉴스 제목 조회 API"

응답 형태

{
  "status": "success",
  "total_count": 1,
  "results": [
    {
      "function_name": "inquire_price",
      "api_name": "주식현재가 시세",
      "category": "domestic_stock",
      "subcategory": "기본시세"
    }
  ]
}

파일 구조(수정중)

kis_final/
├── server.py              # MCP 서버 메인
├── data.csv               # API 정보 데이터
├── src/
│   └── utils/
│       └── api_searcher.py    # 검색 로직

검색 파라미터

  • subcategory: 기본시세, 주문/계좌 등
  • api_name: 특정 API 이름
  • function_name: 함수명
  • description: 기능 설명
  • response: 응답 데이터 내용

APISearcher 상세 동작

검색 로직

1. 두 가지 매칭 방식

  • 정확 매칭: category, subcategory (대소문자 구분)
  • 부분 매칭: api_name, function_name, description, response (대소문자 무시)

2. 성능 최적화

# 인덱스 기반 필터링 (DataFrame 복사 없이)
mask = pd.Series(True, index=self._data.index)
for key, value in search_params.items():
    if key in EXACT_MATCH_FIELDS:
        mask &= (data[key] == value)  # 정확 매칭
    else:
        mask &= data[key].str.contains(value, case=False)  # 부분 매칭

3. 특별 케이스 처리

  • category 또는 subcategory만 검색 시 → 중복 제거된 API 목록 반환
  • 예: "국내주식 API 몇개야?" → 해당 카테고리의 고유 API 리스트

4. 결과 제한

  • 최대 10개 결과만 반환 (MAX_RESULTS = 10)
  • 전체 개수는 total_count에서 확인 가능

5. 에러 핸들링

# 데이터 미로드
{"status": "error", "message": "Data not loaded"}

# 검색 조건 없음  
{"status": "error", "message": "No valid search parameters"}

# 결과 없음
{"status": "no_results", "message": "No APIs found"}

응답 구조

성공 응답

{
  "status": "success",
  "message": "Found 15 APIs (showing first 10)",
  "total_count": 15,
  "results": [
    {
      "function_name": "inquire_price",
      "api_name": "주식현재가 시세", 
      "category": "domestic_stock",
      "subcategory": "기본시세"
    }
  ]
}

특별 케이스 (카테고리 검색)

{
  "status": "success", 
  "message": "Found 70 APIs (25 unique)",
  "total_count": 70,
  "results": [...]
}

주요 기능

  • 자연어 질문으로 API 검색
  • 카테고리별 필터링
  • JSON 구조화된 응답
  • 로깅 기능

한계사항

  • 미리 지정한 API 명세(data.csv)에 의존
  • 검색 정확도는 질문 방식에 따라 달라질 수 있음
  • 실제 API 호출은 별도로 구현 필요

dxt 파일 사용

DXT 파일은 Claude Desktop에서 사용하는 Desktop Extension 포맷으로, ZIP 아카이브 형태로 MCP 서버와 manifest.json, 종속성 등을 포함하여 원클릭 설치, 자동 업데이트, 보안 설정을 지원합니다.

dxt파일 생성

  1. 프로젝트 루트로 이동

  2. 패키징 명령 실행

    npx @anthropic-ai/dxt pack
    
  3. 생성된 .dxt 파일을 더블클릭하여 Claude Desktop에 설치

    DXT 파일 설치1 DXT 파일 설치2

  4. Claude Desktop에서 자동으로 MCP 서버가 등록됩니다

  • claude desktop settings > Extensions 에서 확인 가능합니다. DXT 파일 설치3 도구 목록

TODO

  • [X] data.csv 업데이트 - 현재 160개 처리중, 331개 다 포함하도록 업데이트 필요 - 추가 3건까지 334개 완료
  • [ ] 리팩토링 - server.py 내용 코드 분리하기
  • [X] openapi 깃 readme 정보 주입 방안 찾기 (아이디 발급 및 kis_auth.py 세팅내용 정보도 포함 필요) - 파일내용 받아올때 준다던지... tool 추가하기엔 비효율적(오작동위험). - auth도 추가함
  • [ ] manifest.json 수정 - 플랫폼별로 선언 가능(window추가 필요)

💡 한국투자증권 API 개발 시 원하는 기능을 빠르게 찾는 용도로 활용하세요.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选