Skip to main content
Glama
narajangteo-pro

narajangteo-pro

by kyj2294

naramarket-pro-MCP

나라장터 공공조달 API 6종을 통합한 MCP 서버입니다. Claude Desktop 등 MCP 클라이언트와 연결해 자연어로 입찰공고 검색, 시장 분석, 입찰 적합도 평가 등을 수행할 수 있습니다.


주요 기능

공공조달 API 6종 연동

나라장터 주요 공공 API를 통합해 다양한 데이터를 조회할 수 있도록 구성했습니다.

  • 입찰공고: 키워드, 기관, 기간 기준 공고 검색

  • 낙찰정보: 낙찰 업체 및 금액 조회

  • 계약정보: 실제 계약 체결 내역 확인

  • 계약과정통합공개: 사전규격부터 계약까지 전체 진행 과정 추적

  • 조달요청: 발주 이전 단계 데이터 조회

  • 종합쇼핑몰 품목: 단가계약 등록 품목 검색

공통 API 클라이언트(api/client.py)에서 다음 기능을 처리합니다.

  • 응답 형식 정규화

  • 요청 타임아웃 시 자동 재시도 (최대 2회)

  • 메모리 캐시 (기본 5분)


MCP 도구 8종 구성

LLM 환경에서 효율적으로 활용할 수 있도록 기능 단위 도구로 구성했습니다.

도구명

설명

search_procurement

입찰 / 낙찰 / 계약 / 요청 / 쇼핑몰 통합 검색

get_procurement_detail

상세 정보 조회

trace_procurement_lifecycle

조달 진행 단계 추적

analyze_market

키워드 기반 시장 동향 분석

analyze_competitor

특정 기업 조달 활동 분석

score_bid_fit

기업 정보 기반 입찰 적합도 분석

manage_watchlist

관심 키워드 등록 및 신규 공고 확인

manage_company_profile

회사 프로필 저장 / 불러오기


자연어 입력 처리

사용자가 일상적인 표현으로 입력해도 API 파라미터로 자동 변환되도록 구현했습니다.

기간 표현 — 최근 7일 / 지난 3개월 / 올해

금액 표현 — 5억 / 1.5억 / 3천만원

업무구분 동의어 — 서비스 → 용역 / 건설 → 공사


상태 저장

SQLite 기반으로 사용자 설정 데이터를 저장합니다. 저장 항목은 Watchlist와 회사 프로필이며, 기본 저장 위치는 아래와 같습니다.

~/.narajangteo-pro/state.db

Related MCP server: narajangteo-searcher

빠른 시작

1. API 키 발급

공공데이터포털에서 아래 서비스를 활용신청한 후, 마이페이지 → 개발계정에서 ServiceKey의 Decoding 값을 복사합니다.

  • 조달청_나라장터 입찰공고정보서비스

  • 조달청_나라장터 낙찰정보서비스

  • 조달청_나라장터 계약정보서비스

  • 조달청_나라장터 계약과정통합공개서비스

2. 설치

# uvx (권장 — Python 설치 없이 실행)
uvx narajangteo-pro

# npx
npx narajangteo-pro

# pip
pip install narajangteo-pro
narajangteo-pro

3. Claude Desktop 연결

아래 경로의 설정 파일을 수정합니다.

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %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 tools
analyze_competitorA

특정 기업의 조달시장 활동 분석.

낙찰 건수/금액, 주력 분야, 평균 낙찰가율, 거래 발주기관 패턴을 분석.

Args: company_name: 기업명 (정확하지 않아도 부분 일치) period_months: 분석 기간 business_type: 업무구분 또는 'all'

NameRequiredDescriptionDefault
company_nameYes
period_monthsNo
business_typeNoall

Output Schema

NameRequiredDescription

No output parameters

analyze_marketA

특정 분야 시장 동향 분석.

낙찰 데이터를 집계하여 월별 추이, 평균 낙찰가율, 상위 발주기관/낙찰업체, 추정 시장 규모를 반환.

Args: keyword: 분석 대상 키워드 (예: 'AI 챗봇', '클라우드') period_months: 분석 기간 — 기본 12개월 business_type: 업무구분 또는 'all' (4개 합산)

NameRequiredDescriptionDefault
keywordYes
period_monthsNo
business_typeNo용역

Output Schema

NameRequiredDescription

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')

NameRequiredDescriptionDefault
domainYes
notice_noYes
business_typeNo용역
notice_ordNo00

Output Schema

NameRequiredDescription

No output parameters

manage_company_profileA

회사 프로필 관리 — 적합도 평가에 재사용.

actions: - 'save': 저장 (profile_id, name 필수). 같은 ID면 업데이트. - 'load': 조회 (profile_id 필수) - 'list': 모든 프로필 목록 - 'delete': 삭제 (profile_id 필수)

revenue는 자연어 표현 가능: '50억', '100억원' 등.

NameRequiredDescriptionDefault
actionYes
profile_idNo
nameNo
licensesNo
certificationsNo
revenueNo
prior_contractsNo
notesNo

Output Schema

NameRequiredDescription

No output parameters

manage_watchlistB

관심 키워드 모니터링.

actions: - 'add': 새 키워드 등록 (keyword 필수) - 'remove': 등록 해제 (watch_id 필수) - 'list': 등록된 키워드 목록 - 'check_new': 등록한 키워드의 신규 공고 (마지막 확인 이후)

NameRequiredDescriptionDefault
actionYes
keywordNo
business_typeNo
institutionNo
watch_idNo

Output Schema

NameRequiredDescription

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: 공고차수

NameRequiredDescriptionDefault
bid_notice_noYes
business_typeNo용역
profile_idNo
inline_profileNo
notice_ordNo00

Output Schema

NameRequiredDescription

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}

NameRequiredDescriptionDefault
domainNobid
business_typeNo용역
keywordNo
institutionNo
periodNo
date_fromNo
date_toNo
limitNo

Output Schema

NameRequiredDescription

No output parameters

trace_procurement_lifecycleA

⭐ 조달 전 과정 추적 — 사전규격 → 공고 → 낙찰 → 계약을 한 번에.

이 도구가 narajangteo-pro의 시그니처 기능. 식별자 하나만 알면 조달 라이프사이클 전체를 추적해 타임라인으로 반환한다.

Args: id_value: 식별 번호 business_type: 업무구분 id_type: 식별자 종류 - 'bid_notice': 입찰공고번호 (가장 흔함) - 'spec': 사전규격등록번호 - 'plan': 발주계획번호 - 'request': 조달요청번호

NameRequiredDescriptionDefault
id_valueYes
business_typeNo용역
id_typeNobid_notice

Output Schema

NameRequiredDescription

No output parameters

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedanalyze_competitor
    • First observedanalyze_market
    • First observedget_procurement_detail
    • First observedmanage_company_profile
    • First observedmanage_watchlist
    • First observedscore_bid_fit
    • First observedsearch_procurement
    • First observedtrace_procurement_lifecycle

TDQS

A4/5.0

Scored across 8 tools

Disambiguation5/5

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.

Naming Consistency5/5

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.

Tool Count5/5

8 tools is ideal for this domain, covering search, detail, analysis, management, scoring, and tracing without being too few or too many.

Completeness4/5

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

ActivityInactive
ResponsivenessOutdated data

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables 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.
    17
    1
    -
  • A
    license
    A
    quality
    C
    maintenance
    Enables users to search and analyze Korean public procurement IT bid announcements, including full bid opening results, through natural language conversation with Claude.
    8
    1
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables searching Korean procurement notices from the public data portal, with support for integrated search across categories, flexible date ranges, and attachment extraction.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables querying Korean procurement corporate profiles and qualifications using business registration numbers through natural language, leveraging the public data API from data.go.kr.
    2
    51 npm
    MIT