M MCP모아
튜토리얼 · 2026.06.20 업데이트

DART MCP 설치부터 재무제표 분석까지 — 서버 선택·설치·실전 프롬프트

OpenDART 키 발급, DART MCP 서버 4종(Docker·uv·npx) 비교와 설치, Claude Desktop·Cursor·Claude Code 설정, 연결 확인, 오류 해결, 재무·공시 분석 프롬프트까지 한 편으로 끝내는 실전 가이드.

DART MCP 설치부터 재무제표 분석까지 — 서버 선택·설치·실전 프롬프트 — MCP모아 가이드 표지 이미지

이 가이드로 할 수 있는 것

DART(전자공시시스템)는 금융감독원이 운영하는 국내 최대 전자공시 플랫폼으로, 약 10만 개 이상의 법인이 제출한 사업보고서, 재무제표, 주요사항보고서 등이 모두 OpenAPI로 공개돼 있습니다. DART MCP 서버를 AI 클라이언트에 연결하면 Claude나 Cursor가 직접 공시를 검색하고 재무 항목을 구조화해 가져옵니다. “삼성전자 작년 영업이익 알려줘” 같은 질문 하나로 실제 공시 데이터에 근거한 분석을 받을 수 있어, 공시 문서를 일일이 열어볼 필요가 없습니다.

이 튜토리얼은 서버 선택 → 키 발급 → 서버 설치 → 연결 확인 → 예시 프롬프트 순서로 진행합니다. 처음 한 번만 설정해 두면 이후로는 자연어로 질문만 던지면 됩니다.

데이터 흐름 구조

DART MCP의 핵심은 데이터 호출과 JSON 파싱을 MCP 서버가 대신 처리한다는 점입니다. 별도 코드 작성 없이 자연어 질문만으로 공시 기반 분석을 받을 수 있습니다.

사용자 질문 (Claude Desktop / Cursor / Claude Code)
        |
        v
   MCP 클라이언트 (로컬)
        |
        v
DART MCP 서버 (로컬 프로세스)
        |  OpenDART REST API 호출
        v
OpenDART API (opendart.fss.or.kr)
        |  JSON 공시 데이터 반환
        v
   금융감독원 DART DB → 파싱·정리 후 사용자에게 결과 출력

어떤 DART MCP 서버를 선택할까

설치를 시작하기 전에 목적에 맞는 서버 하나를 먼저 정하는 것이 가장 중요합니다. 데이터 출처(OpenDART)는 모두 같지만 설치 방식과 제공 범위가 다릅니다. 아래 표에서 본인 환경에 맞는 한쪽을 골라 그 서버만 설치하면 됩니다.

서버설치 방식특징GitHub
DART-mcp-server (snaiws)Docker공시·재무·증자/감자·배당·주주·임원 등 폭넓게 지원
DART-MCP (2geonhyup)uv (Python)KOSPI·KOSDAQ 재무 분석에 초점, 저장소 클론 후 실행보기
한국 DART MCPnpxOpenDART 83개 API를 15개 도구로 압축, 입문자 추천보기
한국 주식 MCP 서버npxDART + KRX 동시 지원, 주가·공시 통합보기

선택 기준을 정리하면 다음과 같습니다.

  • 공시·재무제표 분석만 필요하고 클론 없이 가장 빠르게 시작하고 싶다한국 DART MCP (npx)
  • 증자·배당·주주·임원 등 폭넓은 공시가 필요하고 Docker가 익숙하다DART-mcp-server (Docker)
  • Python uv 환경에 익숙하고 KOSPI·KOSDAQ 재무 분석이 주목적이다DART-MCP (저장소 클론 필요)
  • 주가(KRX) 데이터까지 함께 다루고 싶다한국 주식 MCP 서버 (npx)

아래 단계는 선택한 서버 한 개를 기준으로 진행하면 됩니다.

1단계 — OpenDART API 키 발급

모든 서버가 OpenDART 인증키 하나를 공통으로 사용합니다. 키 발급은 무료입니다.

  1. 회원가입: OpenDART 페이지(opendart.fss.or.kr)에 접속해 가입합니다. 이메일 인증이 필요합니다.
  2. 인증키 신청: 로그인 후 상단 메뉴 “인증키 신청/관리”에서 이용약관에 동의하고 신청하면 40자리 인증키가 즉시 발급됩니다. 키는 이메일로도 발송됩니다.
  3. 키 확인 및 보관: 발급된 40자리 인증키를 복사해 둡니다. 이 키는 비밀값이므로 공개 저장소나 채팅에 노출하지 마세요. 이후 설정 파일의 DART_API_KEY 값으로 사용됩니다.

OpenDART 키는 무료이며 일일 요청 한도(기본 10,000건) 내에서 자유롭게 사용할 수 있습니다.

2단계 — 설정 파일 위치 확인

설정은 클라이언트별 설정 파일에 서버 블록을 추가하는 방식입니다.

  • Claude Desktop (macOS): ~/Library/Application Support/Claude/claude_desktop_config.json
  • Claude Desktop (Windows): %APPDATA%\Claude\claude_desktop_config.json
  • Claude Code: ~/.claude/settings.json (또는 터미널 mcp add, 프로젝트 .mcp.json)
  • Cursor: ~/.cursor/mcp.json

파일이 없으면 직접 생성하면 됩니다. macOS 터미널에서는 아래 명령으로 Claude Desktop 설정 파일을 열 수 있습니다.

open ~/Library/Application\ Support/Claude/claude_desktop_config.json

3단계 — 선택한 서버를 설정 파일에 등록

1단계에서 고른 서버 하나의 블록만 mcpServers에 추가하세요. 아래 예시는 각각 독립적이므로 한 번에 하나만 사용하는 것이 혼동을 줄이는 길입니다. 모든 예시의 DART_API_KEY 값을 발급받은 40자리 키로 바꿉니다.

옵션 A — 한국 DART MCP (npx, 가장 빠른 시작)

Node.js 18 이상이 설치된 환경에서 클론 없이 바로 실행됩니다. korean-dart-mcp는 OpenDART의 83개 API를 15개의 MCP 도구로 정리해 제공합니다.

{
  "mcpServers": {
    "korean-dart-mcp": {
      "command": "npx",
      "args": ["-y", "korean-dart-mcp"],
      "env": {
        "DART_API_KEY": "여기에_발급받은_40자리_키_입력"
      }
    }
  }
}

옵션 B — DART-mcp-server (Docker)

Docker가 설치돼 있다면 별도 Python 환경 없이 컨테이너로 바로 실행할 수 있습니다. Docker가 없다면 Docker Desktop을 먼저 설치하고, 실행 중인지 확인하세요. 이 서버는 증자/감자·배당·주주·임원 등 폭넓은 공시 데이터를 지원합니다.

{
  "mcpServers": {
    "DART": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", ".:/app/data/mcp/DART",
        "-e", "DART_API_KEY=발급받은_40자리_키",
        "-e", "USECASE=light",
        "snaiws/dart:latest"
      ]
    }
  }
}

첫 실행 시 snaiws/dart:latest 이미지를 자동으로 내려받으므로 잠시 시간이 걸릴 수 있습니다.

옵션 C — DART-MCP (uv, Python)

Python uv를 선호하고 KOSPI·KOSDAQ 재무 분석이 목적이라면 DART-MCP 저장소를 먼저 클론하고 의존성을 설치합니다. uv가 없다면 pip install uv 또는 docs.astral.sh/uv를 참고해 설치하세요.

# 저장소 클론
git clone https://github.com/2geonhyup/dart-mcp ~/Downloads/dart-mcp

# 의존성 설치 (uv 필요)
cd ~/Downloads/dart-mcp
uv sync

이후 설정 파일에 아래 내용을 추가합니다.

{
  "mcpServers": {
    "dart-mcp": {
      "command": "uv",
      "args": ["--directory", "/Users/사용자명/Downloads/dart-mcp", "run", "dart.py"],
      "env": {
        "DART_API_KEY": "여기에_발급받은_40자리_키_입력"
      }
    }
  }
}

--directory 경로는 실제로 클론된 위치에 맞게 수정하세요. 한글·공백이 포함된 경로는 오류를 일으킬 수 있으니 영문 경로를 권장합니다.

옵션 D — 한국 주식 MCP (npx, DART + KRX 통합)

DART 공시와 KRX 주가 데이터를 함께 다루고 싶을 때 선택합니다. Node.js 18 이상이 필요합니다.

{
  "mcpServers": {
    "korea-stock-mcp": {
      "command": "npx",
      "args": ["-y", "korea-stock-mcp@latest"],
      "env": {
        "DART_API_KEY": "여기에_발급받은_40자리_키_입력"
      }
    }
  }
}

저장하기 전에 JSON 문법(쉼표·따옴표 짝)을 JSONLint로 한 번 검증하면, 다음 단계에서 연결이 안 되는 가장 흔한 원인을 미리 막을 수 있습니다. 터미널에서는 아래 명령으로도 유효성을 확인할 수 있습니다.

cat ~/Library/Application\ Support/Claude/claude_desktop_config.json | python3 -m json.tool

오류 없이 파싱되면 JSON 구조는 올바른 것입니다.

4단계 — 클라이언트 재시작 및 연결 확인

설정 파일을 저장한 뒤 AI 클라이언트를 완전히 종료했다가 다시 엽니다. 단순히 창만 닫으면 백그라운드 프로세스가 계속 실행 중이라 설정이 반영되지 않습니다. macOS는 Cmd+Q, Windows는 작업 표시줄 아이콘 우클릭 후 종료하세요.

  • Claude Desktop: 새 대화에서 입력창 오른쪽의 망치 아이콘을 클릭해 도구 목록을 확인합니다. DART 관련 도구(예: get_company_info, get_financial_statements)가 표시되면 연결 성공입니다.
  • Claude Code: /mcp 명령을 입력해 등록한 서버가 connected 상태인지 확인합니다.
  • Cursor: Settings → MCP에서 상태등이 초록색인지 확인합니다.

채팅창에 “사용 가능한 DART 관련 도구가 있나요?”라고 입력해 도구 목록이 응답되는지로도 확인할 수 있습니다.

5단계 — 예시 프롬프트로 활용

연결이 끝나면 자연어로 재무·공시 질의를 던질 수 있습니다. 아래 프롬프트를 그대로 시도해 보세요.

분석 유형예시 프롬프트
재무제표 조회”삼성전자(005930)의 2023년 연간 손익계산서를 가져와서 영업이익률을 계산해줘”
기업 비교”SK하이닉스와 삼성전자의 영업이익률을 최근 3년 기준으로 비교해줘”
공시 목록 검색”카카오가 최근 한 달간 제출한 공시 목록을 보여줘”
부채 분석”네이버의 부채비율과 유동비율을 작년 기준으로 계산해줘”
추이 분석”네이버의 3개년 매출 추이를 분석하고 성장률을 계산해줘”

AI가 DART MCP의 도구를 호출해 기업코드(고유번호)를 찾고, 해당 보고서의 재무 항목을 가져와 분석합니다.

설치 완료 체크리스트

연결이 잘 안 될 때 아래 항목을 순서대로 점검하면 대부분 해결됩니다.

  • OpenDART에서 40자리 인증키를 발급받았다
  • 목적에 맞는 서버 한 개mcpServers에 등록했다
  • DART_API_KEY 값을 큰따옴표로 감쌌고 앞뒤 공백이 없다
  • 설정 파일을 JSONLint 또는 python3 -m json.tool로 검증해 문법 오류가 없다
  • 선택한 방식에 맞는 런타임(Node.js 18+ / Docker / uv)이 설치돼 있다
  • (Docker 방식) Docker Desktop이 실행 중이다 — docker --version으로 설치 여부도 확인
  • (uv 방식) --directory 경로가 클론한 저장소 위치와 일치한다
  • 클라이언트를 단순 종료가 아니라 완전 종료 후 재시작했다

흔한 오류와 해결 방법

오류 메시지원인해결 방법
API key is invalid / Invalid API keyAPI 키 오타·미설정, 앞뒤 공백, 따옴표 누락DART_API_KEY 값 재확인, 큰따옴표로 감싸기
npx: command not foundNode.js 미설치Node.js 18 이상 설치 후 재시도 (nodejs.org)
uv: command not founduv 미설치pip install uv 또는 공식 문서 참고
도구 목록에 서버가 없음설정 파일 JSON 오류JSONLint로 유효성 검사 후 완전 종료·재시작
모듈을 찾을 수 없음 (uv 방식)저장소 미클론 또는 경로 불일치git clone--directory 경로 확인, 영문 경로 권장
No data found조회 기간·종목코드 오류6자리 종목코드와 연도 형식 확인

결과를 더 정확하게 받는 팁

  • 기업 식별: 기업명만 말해도 모델이 고유번호를 매핑하지만, 동일·유사 상호가 있으면 6자리 종목코드나 정확한 법인명을 함께 알려주면 정확도가 올라갑니다.
  • 출력 형식 지정: 재무 비교·추이 분석은 “표로”, “성장률 계산해서”처럼 원하는 형식을 명시하면 결과가 깔끔합니다.
  • 호출 범위 좁히기: 일일 호출 한도에 유의하고, 대량 분석은 연도·기업을 명확히 좁혀 요청하세요.

자주 묻는 질문

OpenDART API 키는 유료인가요? 아니요. OpenDART 인증키는 금융감독원이 무료로 제공합니다. opendart.fss.or.kr에서 회원가입 후 “인증키 신청/관리” 메뉴에서 즉시 발급받을 수 있습니다. 단, 일일 요청 한도(기본 10,000건)가 있으므로 대량 조회 시 유의하세요.

여러 DART MCP 서버 중 무엇을 골라야 하나요? 클론 없이 가장 빠르게 시작하려면 npx 방식의 한국 DART MCP(83개 API를 15개 도구로 압축, 입문자 추천)를, 증자·배당·주주·임원 등 폭넓은 공시가 필요하면 Docker 방식의 DART-mcp-server를, KOSPI·KOSDAQ 재무 분석이 주목적이고 uv에 익숙하면 DART-MCP를, DART와 KRX 주가를 함께 다루려면 한국 주식 MCP를 권합니다. 모두 같은 OpenDART 키를 사용합니다.

API 키 하나로 여러 서버를 쓸 수 있나요? 네. OpenDART 인증키 하나를 각 서버의 DART_API_KEY에 동일하게 넣으면 됩니다. 다만 같은 키의 호출 한도를 공유하므로 동시에 대량 요청하면 한도에 더 빨리 도달합니다.

여러 DART MCP 서버를 동시에 등록해도 되나요? 기술적으로는 mcpServers에 각각 다른 이름으로 등록하면 동시에 사용할 수 있습니다. 다만 기능이 겹쳐 Claude가 어느 도구를 호출할지 혼동할 수 있으므로, 주로 사용하는 서버 하나만 활성화하는 편이 실용적입니다.

npx 방식과 uv 방식의 차이는 무엇인가요? npx는 Node.js 생태계 패키지를 별도 설치 없이 실행하는 방식이고, uv는 Python 생태계에서 같은 역할을 합니다. DART-MCP(2geonhyup)는 Python 기반이라 저장소를 클론한 뒤 uv로 실행하고, korean-dart-mcp와 korea-stock-mcp는 npx로 바로 설치·실행합니다.

Claude Code와 Claude Desktop, Cursor 중 어디서 쓰나요? 모두 사용 가능합니다. Claude Desktop은 GUI 기반 설정 파일(claude_desktop_config.json)로, Claude Code는 터미널 mcp add 명령 또는 .mcp.json(혹은 ~/.claude/settings.json)으로, Cursor는 ~/.cursor/mcp.json으로 등록합니다. 설정 파일 구조가 같은 MCP 호환 클라이언트라면 동일한 서버 블록을 그대로 넣어 시도할 수 있습니다.

DART 데이터는 실시간으로 업데이트되나요? OpenDART API는 금융감독원이 공시 접수 후 검토를 마친 공시 문서(보고서·사업보고서 등) 데이터를 제공합니다. 실시간 주가가 아니며, 당일 공시는 수 시간 이내에 API에 반영되는 것이 일반적입니다.

조회할 수 있는 기업 범위는 어떻게 되나요? OpenDART는 상장·비상장을 포함한 국내 법인의 공시 데이터를 제공합니다. 사업보고서, 반기보고서, 분기보고서, 주요사항보고서 등이 포함되며, 기업코드 기반으로 조회하므로 정확한 법인명이나 종목코드를 함께 제공하면 더 정확한 결과를 얻을 수 있습니다.

관련 가이드