narajangteo-pro
naramarket-pro-MCP
나라장터 공공조달 API 6종을 통합한 MCP 서버입니다. Claude Desktop 등 MCP 클라이언트와 연결해 자연어로 입찰공고 검색, 시장 분석, 입찰 적합도 평가 등을 수행할 수 있습니다.
주요 기능
공공조달 API 6종 연동
나라장터 주요 공공 API를 통합해 다양한 데이터를 조회할 수 있도록 구성했습니다.
입찰공고: 키워드, 기관, 기간 기준 공고 검색
낙찰정보: 낙찰 업체 및 금액 조회
계약정보: 실제 계약 체결 내역 확인
계약과정통합공개: 사전규격부터 계약까지 전체 진행 과정 추적
조달요청: 발주 이전 단계 데이터 조회
종합쇼핑몰 품목: 단가계약 등록 품목 검색
공통 API 클라이언트(api/client.py)에서 다음 기능을 처리합니다.
응답 형식 정규화
요청 타임아웃 시 자동 재시도 (최대 2회)
메모리 캐시 (기본 5분)
MCP 도구 8종 구성
LLM 환경에서 효율적으로 활용할 수 있도록 기능 단위 도구로 구성했습니다.
도구명 | 설명 |
| 입찰 / 낙찰 / 계약 / 요청 / 쇼핑몰 통합 검색 |
| 상세 정보 조회 |
| 조달 진행 단계 추적 |
| 키워드 기반 시장 동향 분석 |
| 특정 기업 조달 활동 분석 |
| 기업 정보 기반 입찰 적합도 분석 |
| 관심 키워드 등록 및 신규 공고 확인 |
| 회사 프로필 저장 / 불러오기 |
자연어 입력 처리
사용자가 일상적인 표현으로 입력해도 API 파라미터로 자동 변환되도록 구현했습니다.
기간 표현 — 최근 7일 / 지난 3개월 / 올해
금액 표현 — 5억 / 1.5억 / 3천만원
업무구분 동의어 — 서비스 → 용역 / 건설 → 공사
상태 저장
SQLite 기반으로 사용자 설정 데이터를 저장합니다. 저장 항목은 Watchlist와 회사 프로필이며, 기본 저장 위치는 아래와 같습니다.
~/.narajangteo-pro/state.dbRelated MCP server: narajangteo-searcher
빠른 시작
1. API 키 발급
공공데이터포털에서 아래 서비스를 활용신청한 후, 마이페이지 → 개발계정에서 ServiceKey의 Decoding 값을 복사합니다.
조달청_나라장터 입찰공고정보서비스
조달청_나라장터 낙찰정보서비스
조달청_나라장터 계약정보서비스
조달청_나라장터 계약과정통합공개서비스
2. 설치
# uvx (권장 — Python 설치 없이 실행)
uvx narajangteo-pro
# npx
npx narajangteo-pro
# pip
pip install narajangteo-pro
narajangteo-pro3. Claude Desktop 연결
아래 경로의 설정 파일을 수정합니다.
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"narajangteo-pro": {
"command": "uvx",
"args": ["narajangteo-pro@latest"],
"env": {
"NARA_API_KEY": "발급받은_디코딩_서비스키"
}
}
}
}Claude Desktop을 재시작하면 바로 사용할 수 있습니다.
"최근 1개월 AI 챗봇 분야 시장 분석해줘"
"공고번호 20260415123 사전규격부터 계약까지 전체 진행상황 보여줘"
"우리 회사 프로필로 이 공고 입찰해도 될지 평가해줘"
아키텍처
┌─────────────────────────────────────┐
│ Claude Desktop / Cursor / VS Code │
└──────────────────┬──────────────────┘
│ MCP (stdio | HTTP)
┌──────────────────▼──────────────────┐
│ narajangteo-pro │
│ ┌────────┐ ┌──────────┐ ┌──────┐ │
│ │ Tools │→ │Analytics │→ │ DB │ │
│ └───┬────┘ └────┬─────┘ └──────┘ │
│ └────────────┘ │
│ ┌──────────┐ │
│ │API Client│ │
│ └────┬─────┘ │
└──────────────┼──────────────────────┘
│
┌─────────▼──────────┐
│ 공공데이터포털 │
│ 나라장터 API 6종 │
└────────────────────┘라이선스
MIT
Available Tools
8 toolsanalyze_competitorA
특정 기업의 조달시장 활동 분석.
낙찰 건수/금액, 주력 분야, 평균 낙찰가율, 거래 발주기관 패턴을 분석.
Args: company_name: 기업명 (정확하지 않아도 부분 일치) period_months: 분석 기간 business_type: 업무구분 또는 'all'
| Name | Required | Description | Default |
|---|---|---|---|
| company_name | Yes | ||
| period_months | No | ||
| business_type | No | all |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
analyze_marketA
특정 분야 시장 동향 분석.
낙찰 데이터를 집계하여 월별 추이, 평균 낙찰가율, 상위 발주기관/낙찰업체, 추정 시장 규모를 반환.
Args: keyword: 분석 대상 키워드 (예: 'AI 챗봇', '클라우드') period_months: 분석 기간 — 기본 12개월 business_type: 업무구분 또는 'all' (4개 합산)
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| period_months | No | ||
| business_type | No | 용역 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
get_procurement_detailA
입찰공고/낙찰/계약/조달요청/쇼핑몰품목 상세 정보 조회.
Args: domain: 'bid'(입찰공고), 'award'(낙찰), 'contract'(계약), 'request'(조달요청), 'shopping'(종합쇼핑몰 품목) notice_no: 식별 번호 - bid/award: 입찰공고번호 - contract: 확정계약번호 - request: 조달요청번호 - shopping: 품목식별번호 business_type: 업무구분 (shopping은 무시) notice_ord: 공고차수 (보통 '00')
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| notice_no | Yes | ||
| business_type | No | 용역 | |
| notice_ord | No | 00 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
manage_company_profileA
회사 프로필 관리 — 적합도 평가에 재사용.
actions: - 'save': 저장 (profile_id, name 필수). 같은 ID면 업데이트. - 'load': 조회 (profile_id 필수) - 'list': 모든 프로필 목록 - 'delete': 삭제 (profile_id 필수)
revenue는 자연어 표현 가능: '50억', '100억원' 등.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| profile_id | No | ||
| name | No | ||
| licenses | No | ||
| certifications | No | ||
| revenue | No | ||
| prior_contracts | No | ||
| notes | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
manage_watchlistB
관심 키워드 모니터링.
actions: - 'add': 새 키워드 등록 (keyword 필수) - 'remove': 등록 해제 (watch_id 필수) - 'list': 등록된 키워드 목록 - 'check_new': 등록한 키워드의 신규 공고 (마지막 확인 이후)
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | ||
| keyword | No | ||
| business_type | No | ||
| institution | No | ||
| watch_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
score_bid_fitA
입찰 적합도 평가 — 0-100 점수 + 권고.
회사 프로필(보유 면허, 매출, 실적)과 공고 요구사항을 매칭해 적합도를 산출.
Args: bid_notice_no: 입찰공고번호 business_type: 업무구분 profile_id: 저장된 회사 프로필 ID (manage_company_profile로 미리 저장) inline_profile: 즉석 프로필 dict (저장 없이 일회성 평가) {"licenses": [...], "certifications": [...], "revenue": int, "prior_contracts": [...]} notice_ord: 공고차수
| Name | Required | Description | Default |
|---|---|---|---|
| bid_notice_no | Yes | ||
| business_type | No | 용역 | |
| profile_id | No | ||
| inline_profile | No | ||
| notice_ord | No | 00 |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
search_procurementA
나라장터 통합 검색 도구.
하나의 도구로 5개 영역을 모두 검색한다.
Args: domain: 검색 영역 - 'bid': 입찰공고 - 'award': 낙찰결과 - 'contract': 체결된 계약 - 'request': 조달요청 (발주의 가장 이른 단계 — 영업 선행지표) - 'shopping': 종합쇼핑몰 품목 (단가계약 등록 품목) business_type: 업무구분 — '물품', '용역', '공사', '외자' (자연어 표현 자동 매핑) 'shopping' 도메인은 이 파라미터를 무시. keyword: 공고명/품목명 키워드 institution: 발주기관/계약기관명 (shopping에선 공급업체명으로 사용) period: 자연어 기간 — '최근 7일', '지난 3개월', '올해' 등 (date_from/to보다 우선) date_from: 시작일 YYYYMMDD date_to: 종료일 YYYYMMDD limit: 최대 결과 수 (1-100)
Returns: {"items": [...], "total_count": int, "page_no": int}
| Name | Required | Description | Default |
|---|---|---|---|
| domain | No | bid | |
| business_type | No | 용역 | |
| keyword | No | ||
| institution | No | ||
| period | No | ||
| date_from | No | ||
| date_to | No | ||
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
trace_procurement_lifecycleA
⭐ 조달 전 과정 추적 — 사전규격 → 공고 → 낙찰 → 계약을 한 번에.
이 도구가 narajangteo-pro의 시그니처 기능. 식별자 하나만 알면 조달 라이프사이클 전체를 추적해 타임라인으로 반환한다.
Args: id_value: 식별 번호 business_type: 업무구분 id_type: 식별자 종류 - 'bid_notice': 입찰공고번호 (가장 흔함) - 'spec': 사전규격등록번호 - 'plan': 발주계획번호 - 'request': 조달요청번호
| Name | Required | Description | Default |
|---|---|---|---|
| id_value | Yes | ||
| business_type | No | 용역 | |
| id_type | No | bid_notice |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0- First observed
analyze_competitor - First observed
analyze_market - First observed
get_procurement_detail - First observed
manage_company_profile - First observed
manage_watchlist - First observed
score_bid_fit - First observed
search_procurement - First observed
trace_procurement_lifecycle
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: analysis per company or market, detail retrieval, profile/watchlist management, fit scoring, search, and lifecycle tracing. No two tools overlap significantly.
All tool names follow a consistent verb_noun pattern in snake_case, e.g., analyze_competitor, manage_watchlist. No mixing of camelCase or other conventions.
8 tools is ideal for this domain, covering search, detail, analysis, management, scoring, and tracing without being too few or too many.
Covers core procurement activities well, but lacks a direct tool for comparing bids or exporting reports. The analysis tools provide aggregated data, mitigating minor gaps.
Maintenance
Related MCP Connectors
Access Korea’s G2B procurement and Nara Market data for bid notices, awards, contracts, statistics…
나라장터 입찰공고·사전규격·낙찰정보 검색. Korean public procurement bids via KONEPS open API.
Korea Government Procurement MCP — KONEPS (나라장터 / g2b) open bids and procurement vendors, via BOIM…
Korean statutes, precedents, local business-district stats and public procurement for AI agents.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables AI assistants to query and analyze Korean public procurement data from the Korea Public Procurement Service (G2B/Nuri) via 14 services and 156 operations, including bid announcements, contracts, prices, and statistics.171-
- AlicenseAqualityCmaintenanceEnables users to search and analyze Korean public procurement IT bid announcements, including full bid opening results, through natural language conversation with Claude.81MIT
- AlicenseNot gradedqualityCmaintenanceEnables searching Korean procurement notices from the public data portal, with support for integrated search across categories, flexible date ranges, and attachment extraction.MIT

io.github.opendataofficial
AlicenseAqualityCmaintenanceEnables querying Korean procurement corporate profiles and qualifications using business registration numbers through natural language, leveraging the public data API from data.go.kr.251 npmMIT