나라장터 사용자정보

io.github.opendata-kr由 GitHub 账号 opendata-kr 发布v0.2.0更新于 Oct 24, 2026

나라장터 사용자정보서비스(공공데이터포털 data.go.kr) Open API를 감싼 로컬 MCP 서버

已验证STDIO仅桌面数据与分析商业与电商

概览

AI 生成的概览

封装韩国 data.go.kr 나라장터 用户信息 Open API 的本地 MCP 服务器,让助手按营业执照号查询采购企业的资料与投标资格。

可以做什么
  • 按营业执照号一次查询企业基本信息、登记行业、供应品目与有效的不正当制裁记录
  • 判定企业是否持有并有效持有指定行业代码或细分品名编号,并检查制裁情况
  • 按分项隔离错误,并给出截断标记与模式校验计数,避免把列表缺失误判为未持有
  • 将 data.go.kr 结果代码转换为可操作的韩语提示
适用场景
适合核查韩国公共采购供应商:浏览某企业整体资料、确认投标方是否具备所需行业或品目资格,或筛查是否存在有效的不正当制裁。
运行要求
通过 npx 在本机运行,需要 Node.js 24 或更高版本。需要在 DATA_GO_KR_SERVICE_KEY 中提供 data.go.kr 服务密钥(Decoding 原始密钥),且该账号须已获批 나라장터 用户信息服务的使用申请。可选 DATA_GO_KR_BASE_URL 覆盖接口地址。需能访问 apis.data.go.kr。
安装前请注意
data.go.kr 密钥属于机密,需写入客户端配置或 shell 环境变量;使用 Encoding 密钥会导致认证错误。每次调用会消耗多次 API 请求(资料查询约 4 次,资格判定 3 次以上),受流量配额限制。查询为只读且基于公开数据,但会把营业执照号发送至 data.go.kr。

安装

在 SourceWeft 中

  1. 打开 控制台中的 나라장터 사용자정보,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@opendata-kr/narajangteo-corpinfo-mcp

나라장터 사용자정보서비스(공공데이터포털 data.go.kr) Open API를 감싼 로컬 MCP 서버.

[npm version] [CI] [node] [license]

Claude Desktop 등 MCP 클라이언트에서 사업자번호 하나로 조달업체의 자격과 프로파일을 자연어로 조회한다. 예를 들어 이렇게 물어볼 수 있다.

  • "사업자번호 1234567890 업체 프로파일을 보여줘"
  • "이 업체가 업종코드 1468 자격이 유효한지 확인해줘"
  • "경쟁사 사업자번호 8888888888이 세부품명 8111159901 공급 자격이 있는지 봐줘"
  • "이 업체에 유효한 부정당 제재가 있는지 확인해줘"

특징

  • 사업자번호 하나로 4-facet 병렬 프로파일: 기본정보·등록업종·공급물품·부정당제재를 한 번에 조회한다.
  • 업종 유효 판정: 코드가 목록에 있는지(보유)와 유효한지(유효)를 나눠 판정한다. 업종상태·유효기간을 반영하므로 코드 존재가 곧 유효를 뜻하지 않는다.
  • 자사·경쟁사 구분 없는 조회: 공개 데이터라 사업자번호만 있으면 어느 업체든 조회한다.
  • 부분 실패·조회상한 표면화: 일부 facet 조회가 실패해도 나머지 결과를 반환하고, 실패한 facet은 오류로 드러낸다. 목록이 조회 상한에 잘리면 truncated로 알려, 목록 부재를 미보유로 오판하지 않게 한다(조용한 거짓 음성 없음).
  • data.go.kr 에러코드 한국어화: 인증키 만료, 트래픽 초과 등 결과코드를 조치 가능한 한국어 메시지로 정규화한다.
  • 이중 인코딩 방어: Encoding 키를 잘못 넣으면 경고하고, 요청은 한 번만 인코딩한다.

준비물

  • Node.js 24 이상 (.nvmrc = lts/krypton).
  • data.go.kr 인증키:
    1. 공공데이터포털에서 나라장터 사용자정보서비스를 활용신청해 [승인]을 받는다. 인증키는 계정당 하나지만, 각 API는 저마다 활용신청 승인이 있어야 그 API에서 인증된다. 서비스키가 있어도 이 API를 활용신청하지 않으면 인증 오류(코드 30)가 난다.
    2. 마이페이지 → 활용신청 현황 → 개발계정 상세에서 Decoding 서비스키를 복사한다.
    3. 같은 DATA_GO_KR_SERVICE_KEY는 같은 계정으로 활용신청한 다른 data.go.kr API에도 재사용된다.

[!TIP] 공공데이터포털이 처음이라면 활용신청부터 인증키 복사까지 그림으로 따라 하는 data.go.kr 인증키 발급 가이드를 참고한다.

서비스키는 반드시 Decoding(원본) 키를 넣는다. Encoding(%2B 등 포함) 키를 넣으면 이중 인코딩으로 인증 오류(코드 30)가 난다.

MCP 클라이언트 설정

MCP 클라이언트에 아래 config를 추가한다:

json
{  "mcpServers": {    "narajangteo-corpinfo": {      "command": "npx",      "args": ["-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"],      "env": { "DATA_GO_KR_SERVICE_KEY": "발급받은_Decoding_키" }    }  }}

[!NOTE] @opendata-kr/narajangteo-corpinfo-mcp@latest를 쓰면 클라이언트가 항상 최신 버전을 받는다.

[!IMPORTANT] DATA_GO_KR_SERVICE_KEY(필수, Decoding 원본 키)가 없으면 첫 호출이 인증 오류(코드 30)로 실패한다. 위 config의 env에 키를 넣는다. 원클릭 버튼이나 env를 config에 담지 못하는 클라이언트는 설치 후 셸 환경변수로 DATA_GO_KR_SERVICE_KEY를 설정한다.

클라이언트별 설정

Amp https://ampcode.com/manual#mcp 의 안내를 따르고 위 config를 사용한다. CLI로도 추가할 수 있다:
bash
amp mcp add narajangteo-corpinfo -- npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

이후 생성된 설정의 env(또는 셸 환경변수)에 DATA_GO_KR_SERVICE_KEY를 추가한다.

Antigravity

Antigravity 문서의 커스텀 MCP 서버 추가 방법을 따라 아래 config를 MCP servers 설정에 넣는다:

json
{  "mcpServers": {    "narajangteo-corpinfo": {      "command": "npx",      "args": ["-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"],      "env": { "DATA_GO_KR_SERVICE_KEY": "발급받은_Decoding_키" }    }  }}
Claude Code

Claude Code CLI로 서버를 추가한다 (가이드):

bash
claude mcp add narajangteo-corpinfo --scope user --env DATA_GO_KR_SERVICE_KEY=발급받은_Decoding_키 -- npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest
Cline https://docs.cline.bot/mcp/configuring-mcp-servers 의 안내를 따르고 위 config를 사용한다.
Codex MCP 설정 가이드를 따르고 위 config를 사용한다. Codex CLI로도 추가할 수 있다:
bash
codex mcp add narajangteo-corpinfo --env DATA_GO_KR_SERVICE_KEY=발급받은_Decoding_키 -- npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

Windows

~/.codex/config.toml에 cmd /c 래핑으로 추가한다:

toml
[mcp_servers.narajangteo-corpinfo]command = "cmd"args = ["/c", "npx", "-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"]env = { DATA_GO_KR_SERVICE_KEY = "발급받은_Decoding_키" }
Command Code

Command Code CLI로 서버를 추가한다 (MCP 가이드):

bash
cmd mcp add narajangteo-corpinfo --scope user npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

이후 생성된 설정의 env(또는 셸 환경변수)에 DATA_GO_KR_SERVICE_KEY를 추가한다.

Continue

Continue의 MCP 가이드를 따른다. Continue는 mcpServers를 배열로 쓴다:

json
{  "mcpServers": [    {      "name": "narajangteo-corpinfo",      "command": "npx",      "args": ["-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"],      "env": { "DATA_GO_KR_SERVICE_KEY": "발급받은_Decoding_키" }    }  ]}
Copilot CLI

Copilot CLI를 시작한다:

copilot

MCP 서버 추가 대화를 연다:

/mcp add

다음 필드를 입력하고 CTRL+S로 저장한다:

  • Server name: narajangteo-corpinfo
  • Server Type: [1] Local
  • Command: npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest
  • Environment variables: DATA_GO_KR_SERVICE_KEY=발급받은_Decoding_키
Copilot / VS Code

버튼으로 설치:

[Install in VS Code]

[Install in VS Code Insiders]

버튼은 키를 담지 못한다. 설치 후 .vscode/mcp.json(또는 사용자 설정)의 env에 DATA_GO_KR_SERVICE_KEY를 추가한다.

직접 추가:

VS Code MCP 설정 가이드를 따르거나 CLI를 쓴다.

macOS·Linux:

bash
code --add-mcp '{"name":"narajangteo-corpinfo","command":"npx","args":["-y","@opendata-kr/narajangteo-corpinfo-mcp@latest"],"env":{"DATA_GO_KR_SERVICE_KEY":"발급받은_Decoding_키"}}'

Windows(PowerShell):

powershell
code --add-mcp '{"""name""":"""narajangteo-corpinfo""","""command""":"""npx""","""args""":["""-y""","""@opendata-kr/narajangteo-corpinfo-mcp@latest"""],"""env""":{"""DATA_GO_KR_SERVICE_KEY""":"""발급받은_Decoding_키"""}}'
Cursor

버튼으로 설치:

[Add narajangteo-corpinfo MCP server to Cursor]

버튼은 키를 담지 못한다. 설치 후 Cursor의 MCP 설정에서 env에 DATA_GO_KR_SERVICE_KEY를 추가한다.

직접 추가:

Cursor Settings → MCP → New MCP Server에서 위 config를 사용한다.

Factory CLI

Factory CLI로 서버를 추가한다 (가이드):

bash
droid mcp add narajangteo-corpinfo "npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest"

이후 생성된 설정의 env(또는 셸 환경변수)에 DATA_GO_KR_SERVICE_KEY를 추가한다.

Gemini CLI

Gemini CLI로 서버를 추가한다.

프로젝트 범위:

bash
gemini mcp add narajangteo-corpinfo npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

전역:

bash
gemini mcp add -s user narajangteo-corpinfo npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

또는 MCP 가이드를 따르고 위 config를 쓴다. ~/.gemini/settings.json의 서버 정의 env에 DATA_GO_KR_SERVICE_KEY를 추가한다.

Gemini Code Assist MCP 설정 가이드를 따르고 위 config를 사용한다.
Grok Build CLI
bash
grok mcp add narajangteo-corpinfo npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

이후 생성된 설정의 env(또는 셸 환경변수)에 DATA_GO_KR_SERVICE_KEY를 추가한다. 더 많은 옵션은 문서 참고.

JetBrains AI Assistant & Junie

Settings | Tools | AI Assistant | Model Context Protocol (MCP) → Add에서 위 config를 사용한다. Junie도 같은 방식으로 Settings | Tools | Junie | MCP Settings → Add에서 위 config를 사용한다.

Katalon Studio

Katalon StudioAssist는 MCP 프록시를 통해 stdio 서버를 연결한다.

1단계: MCP 프록시 설정 가이드로 프록시를 설치한다.

2단계: 프록시로 서버를 띄운다(같은 셸에 DATA_GO_KR_SERVICE_KEY를 export 한 상태):

bash
DATA_GO_KR_SERVICE_KEY=발급받은_Decoding_키 mcp-proxy --transport streamablehttp --port 8080 -- npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

3단계: StudioAssist에 다음 설정으로 서버를 추가한다:

  • Connection URL: http://127.0.0.1:8080/mcp
  • Transport type: HTTP
Kiro

Kiro Settings에서 Configure MCP → Open Workspace or User MCP Config → 위 config를 사용한다.

또는 Activity Bar → Kiro → MCP Servers → Open MCP Config에서 위 config를 사용한다.

Mistral Vibe

~/.vibe/config.toml에 추가한다:

toml
[[mcp_servers]]name = "narajangteo-corpinfo"transport = "stdio"command = "npx"args = ["-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"]env = { DATA_GO_KR_SERVICE_KEY = "발급받은_Decoding_키" }
OpenCode

opencode.json에 추가한다. 없으면 ~/.config/opencode/opencode.json에 만든다 (가이드):

json
{  "$schema": "https://opencode.ai/config.json",  "mcp": {    "narajangteo-corpinfo": {      "type": "local",      "command": ["npx", "-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"],      "environment": { "DATA_GO_KR_SERVICE_KEY": "발급받은_Decoding_키" }    }  }}
Qoder

Qoder Settings에서 MCP Server → + Add → 위 config를 사용한다.

또는 MCP 가이드를 따르고 위 config를 쓴다.

Qoder CLI

Qoder CLI로 서버를 추가한다 (가이드):

프로젝트 범위:

bash
qodercli mcp add narajangteo-corpinfo -- npx @opendata-kr/narajangteo-corpinfo-mcp@latest

전역:

bash
qodercli mcp add -s user narajangteo-corpinfo -- npx @opendata-kr/narajangteo-corpinfo-mcp@latest

이후 생성된 설정의 env(또는 셸 환경변수)에 DATA_GO_KR_SERVICE_KEY를 추가한다.

Visual Studio

버튼으로 설치:

[Install in Visual Studio]

버튼은 키를 담지 못한다. 설치 후 서버 설정의 env에 DATA_GO_KR_SERVICE_KEY를 추가한다.

Warp

Settings | AI | Manage MCP Servers → + Add에서 MCP 서버를 추가하고 위 config를 사용한다.

Windsurf MCP 설정 가이드를 따르고 위 config를 사용한다. Windsurf는 `mcpServers` 키를 쓴다(`~/.codeium/windsurf/mcp_config.json`).
Zed

~/.config/zed/settings.json에 추가한다(스키마는 Zed 버전에 따라 다를 수 있으니 Zed 공식 문서를 확인):

json
{  "context_servers": {    "narajangteo-corpinfo": {      "command": { "path": "npx", "args": ["-y", "@opendata-kr/narajangteo-corpinfo-mcp@latest"] },      "env": { "DATA_GO_KR_SERVICE_KEY": "발급받은_Decoding_키" }    }  }}
ChatGPT · 원격 전용 클라이언트

ChatGPT Developer Mode처럼 원격(HTTPS) MCP만 지원하는 클라이언트는 로컬 stdio 서버를 직접 붙일 수 없다. stdio→HTTP 브리지(mcp-proxy)로 이 서버를 HTTP로 띄우고 공개 HTTPS 엔드포인트(리버스 프록시·터널·호스팅)로 노출한 뒤, 그 URL을 커넥터로 등록한다.

bash
DATA_GO_KR_SERVICE_KEY=발급받은_Decoding_키 mcp-proxy --transport streamablehttp --port 8080 -- npx -y @opendata-kr/narajangteo-corpinfo-mcp@latest

http://127.0.0.1:8080/mcp를 공개 HTTPS로 노출하는 것은 사용자 몫이다. (mcp-remote는 반대로 stdio 클라이언트를 원격 서버에 붙일 때 쓰는 도구라 여기엔 맞지 않는다.)

발견성

이 서버는 MCP 레지스트리에 io.github.opendata-kr/narajangteo-corpinfo로 기술된다. registry.modelcontextprotocol.io를 지원하는 클라이언트에서 검색·설치할 수 있다.

환경변수

환경변수필수비밀기본값설명
DATA_GO_KR_SERVICE_KEY예예(없음)공공데이터포털 Decoding(원본) 인증키
DATA_GO_KR_BASE_URL아니오아니오https://apis.data.go.kr/1230000/ao/UsrInfoService02서비스 경로를 포함한 전체 URL 오버라이드

도구

2개 도구 모두 읽기 전용 조회다(readOnlyHint·openWorldHint). 사업자번호로 조회하며 업체명→사업자번호 리졸버나 코드→업체 역검색은 이 API 표면에 없어 지원하지 않는다. 등록업종·공급물품 목록은 조회 상한에 잘릴 수 있고, 잘리면 응답의 truncated가 true가 되며 notes에 경고가 실린다. 응답의 invalidCounts는 facet별로 응답 스키마 검증에서 탈락해 목록에서 제외된 건수다. 0이 아니면 API 응답 필드가 예고 없이 바뀐 신호이므로 이슈로 알려주면 반영한다. 한 호출이 facet 수만큼 API 요청을 소모한다(프로파일 4건·자격 판정 3건 이상).

도구설명
get_company_profile사업자번호로 기본정보·등록업종·공급물품·부정당제재를 한 번에 조립
check_company_qualification사업자번호에 대해 지정 업종코드·세부품명번호의 보유·유효 판정

get_company_profile

사업자등록번호로 한 조달업체의 기본정보·업종·공급물품·부정당제재를 한 번에 조립해 반환한다. 업체 전반을 훑을 때 쓴다. 특정 업종·품목 보유 여부만 판정하려면 check_company_qualification을 쓴다.

파라미터타입설명
biznostring사업자등록번호 10자리(숫자만). 필수

반환

필드타입설명
biznostring조회한 사업자번호
basicCompanyBasic | null | { error }기본정보. 미조회 시 null, 조회 실패 시 { error }
industriesCompanyIndustry[] | { error }등록업종 목록
supplyProductsCompanySupplyProduct[] | { error }공급물품 목록
sanctions{ sanctioned: boolean, records: CompanySanction[] } | { error }부정당제재 유무와 목록
truncated{ industries, supplyProducts, sanctions } (각 boolean)facet별 목록 조회 상한 도달 여부
invalidCounts{ basic, industries, supplyProducts, sanctions } (각 number)facet별 스키마 검증 탈락 건수
notesstring[]미등록·조회상한 등 주의사항

각 facet(basic·industries·supplyProducts·sanctions)은 조회 실패 시 { error }로 격리된다(전체 실패로 뭉개지 않음).

check_company_qualification

사업자등록번호에 대해 지정 업종코드·세부품명번호의 보유·유효 여부와 부정당제재를 판정한다. 특정 입찰 자격 충족 여부를 볼 때 쓴다. 업체 전반 프로파일이 필요하면 get_company_profile을 쓴다.

파라미터타입설명
biznostring사업자등록번호 10자리(숫자만). 필수
industryCodesstring[]업종코드 4자리 배열. 미지정 또는 빈 배열이면 보유 업종 전 목록 반환
productCodesstring[]세부품명번호 10자리 배열. 미지정 또는 빈 배열이면 공급물품 전 목록 반환

반환

필드타입설명
biznostring조회한 사업자번호
industryChecksIndustryCheck[] | { error }코드별 업종 보유·유효 판정
productChecksProductCheck[] | { error }코드별 세부품명 보유·제조 판정
sanction{ sanctioned: boolean, records: CompanySanction[] } | { error }부정당제재 유무와 목록
truncated{ industries, supplyProducts, sanctions } (각 boolean)목록 조회 상한 도달 여부
invalidCounts{ industries, supplyProducts, sanctions } (각 number)facet별 스키마 검증 탈락 건수
notesstring[]역검색 불가·미보유 미확정 등 주의사항

지정 코드가 목록에 없으면 held: false다. 다만 그 목록이 조회 상한에 잘렸으면(truncated) 미보유가 확정이 아님을 notes가 알린다.

응답 필드

CompanyBasic

필드설명
bizno사업자번호
corpNm업체명
engCorpNm영문업체명
ceoNm대표자명
opbizDt개업일시
rgnNm지역명
zip우편번호
adrs · dtlAdrs주소 · 상세주소
telNo · faxNo전화 · 팩스
hmpgAdrs홈페이지
mnfctDivNm제조구분명
emplyeNum종업원수
corpBsnsDivNm업체업무구분명
hdoffceDivNm본사구분명

CompanyIndustry

필드타입설명
indstrytyCdstring업종코드 4자리
indstrytyNmstring업종명
statusNamestring업종상태명
expiryDatestring유효기간만료일시(빈값은 무기한)
representativestring대표업종여부(Y/N)
validboolean유효 판정 결과(상태·유효기간 반영)

CompanySupplyProduct

필드타입설명
dtilPrdctClsfcNostring세부품명번호 10자리
dtilPrdctClsfcNoNmstring세부품명
manufactureboolean제조여부
rgstDtstring등록일시

CompanySanction

필드설명
bizno사업자번호
corpNm업체명
sanctionBgnDt제재시작일자
sanctionEndDt제재종료일자
sanctionInstitution제재통보 수요기관명
legalBasis근거법령명
articleClause조항호
sanctionStatus제재상태명

조회시점 유효한 제재분만 반환한다(만료·해제분 미포함).

IndustryCheck

check_company_qualification의 코드별 업종 판정.

필드타입설명
codestring업종코드
heldboolean보유 여부
validboolean유효 여부
statusNamestring업종상태명
expiryDatestring유효기간만료일시
representativestring대표업종여부

ProductCheck

check_company_qualification의 코드별 세부품명 판정. 공급물품은 유효 개념이 없어 valid가 없다.

필드타입설명
codestring세부품명번호
heldboolean보유 여부
manufactureboolean제조여부

개발

bash
nvm use            # Node 24pnpm installpnpm test          # vitestpnpm typecheck     # tsc --noEmitpnpm build         # tsup, dist/ 생성

문제 해결

  • 인증 오류(코드 30): Encoding 키를 넣으면 이중 인코딩으로 실패한다. Decoding(원본) 키를 쓴다. 서버가 시작 시 Encoding 키로 보이면 경고 로그를 남긴다. 활용신청이 아직 [승인]되지 않은 경우에도 같은 오류가 나므로, 공공데이터포털 마이페이지에서 나라장터 사용자정보서비스 승인 상태를 확인한다.

  • 결과코드 메시지: 트래픽 초과, 인증키 만료 등 data.go.kr 결과코드는 한국어 메시지로 정규화되어 반환된다.

  • 도구 동작 점검: MCP inspector로 직접 호출해 볼 수 있다.

    bash
    npx @modelcontextprotocol/inspector npx -y @opendata-kr/narajangteo-corpinfo-mcp

라이선스

MIT

来源:README.md,提交 cd13a71

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分