🔌 MCP Servers
NaraMarketMCP
Access Korea’s G2B procurement and Nara Market data for bid notices, awards, contracts, statistics, and shopping-mall products. Search recent bids, explore product catalogs, and retrieve yearly or b
Description
나라장터 MCP 서버
한국 공공조달(G2B) 데이터를 MCP(Model Context Protocol)로 제공하는 FastMCP 2.0 서버입니다.
입찰공고, 낙찰정보, 계약정보, 조달통계, 물품목록, 종합쇼핑몰 등 나라장터의 주요 API를 AI 에이전트가 바로 사용할 수 있도록 통합했습니다.
아키텍처
┌─────────────────┐ MCP Protocol ┌──────────────────────┐
│ AI Agent │ ◄──(stdio/http/sse)──► │ naramarket-mcp │
│ (Claude, etc.) │ │ │
└─────────────────┘ │ ┌────────────────┐ │
│ │ MCP Tools (16) │ │
│ │ Resources (3) │ │
│ │ Prompts (3) │ │
│ └───────┬────────┘ │
│ │ │
│ ┌───────▼────────┐ │
│ │ API Clients │ │
│ │ (sync/async) │ │
│ └───────┬────────┘ │
└──────────┼───────────┘
│
┌──────────▼───────────┐
│ data.go.kr APIs │
│ (공공데이터포털) │
└──────────────────────┘
MCP 도구
기본 도구 (3개)
| 도구 | 설명 |
|---|---|
crawl_list |
나라장터 상품 목록 조회 |
get_detailed_attributes |
상품 상세 속성 조회 |
server_info |
서버 정보 및 사용 가능한 도구 목록 |
정부조달 API (4개)
| 도구 | 설명 | 지원 API |
|---|---|---|
call_public_data_standard_api |
공공데이터개방표준 API | 입찰공고, 낙찰정보, 계약정보 |
call_procurement_statistics_api |
조달통계 API | 전체/기관별/기업별 조달 통계 (14개 오퍼레이션) |
call_product_list_api |
물품목록 API | 물품분류, 품목 조회 (12개 오퍼레이션) |
call_shopping_mall_api |
종합쇼핑몰 API | MAS 계약, 납품요구, 벤처나라 (9개 오퍼레이션) |
AI 친화 간편 도구 (4개)
| 도구 | 설명 |
|---|---|
get_recent_bid_announcements |
최근 입찰공고 조회 (기간 자동 계산) |
get_successful_bids_by_business_type |
업무구분별 낙찰정보 (한글 → 코드 자동 변환) |
get_procurement_statistics_by_year |
연도별 조달통계 |
search_shopping_mall_products |
쇼핑몰 제품 검색 (제품명/업체명) |
탐색 도구 (4개)
| 도구 | 설명 |
|---|---|
get_all_api_services_info |
전체 서비스 및 오퍼레이션 목록 |
get_api_operations |
서비스별 세부 오퍼레이션 조회 |
call_api_with_pagination_support |
페이징 지원 대량 데이터 탐색 |
get_data_exploration_guide |
데이터 탐색 전략 가이드 |
MCP 리소스 & 프롬프트
- 리소스: API 파라미터 가이드, 값 예시, 검색 패턴
- 프롬프트: 워크플로우 가이드, 파라미터 선택 가이드, 실전 쿼리 예제
시작하기
필수 요구사항
- Python 3.10+
- 공공데이터포털 API 서비스 키
설치
git clone https://github.com/alphago2580/naramarketmcp.git
cd naramarketmcp
# 환경 설정
cp .env.example .env
# .env에서 NARAMARKET_SERVICE_KEY 설정
# 의존성 설치
pip install -r requirements.txt
실행
# STDIO 모드 (MCP 클라이언트 연동)
python -m src.main
# HTTP 모드 (웹 서비스)
FASTMCP_TRANSPORT=http FASTMCP_PORT=8000 python -m src.main
# 패키지 설치 후 실행
pip install .
naramarket-mcp
Docker
docker build -t naramarket-mcp .
docker run --rm -e NARAMARKET_SERVICE_KEY=your-key -p 8000:8000 naramarket-mcp
환경 변수
| 변수 | 필수 | 기본값 | 설명 |
|---|---|---|---|
NARAMARKET_SERVICE_KEY |
✅ | - | 공공데이터포털 API 키 |
FASTMCP_TRANSPORT |
- | stdio |
전송 모드 (stdio, http, sse) |
FASTMCP_HOST |
- | 127.0.0.1 |
HTTP/SSE 바인딩 호스트 |
FASTMCP_PORT |
- | 8081 |
HTTP/SSE 포트 |
LOG_LEVEL |
- | INFO |
로깅 레벨 |
프로젝트 구조
naramarketmcp/
├── src/
│ ├── main.py # FastMCP 서버 진입점 (도구/리소스/프롬프트 등록)
│ ├── core/ # 핵심 모듈
│ │ ├── config.py # 설정 관리
│ │ ├── models.py # 데이터 모델
│ │ ├── client.py # API 클라이언트
│ │ ├── async_client.py # 비동기 클라이언트
│ │ └── utils.py # 유틸리티
│ ├── api/ # HTTP/REST 인터페이스
│ ├── services/ # 비즈니스 로직 (크롤러, 인증)
│ └── tools/ # MCP 도구 구현
│ ├── naramarket.py # 기본 나라장터 도구
│ ├── enhanced_tools.py # 확장 API 도구
│ └── openapi_tools.py # G2B OpenAPI 도구
├── tests/ # 테스트
├── deployments/ # 배포 설정 (docker-compose, nginx)
├── Dockerfile
├── smithery.yaml # Smithery.ai 배포 설정
├── pyproject.toml
└── requirements.txt
개발
# 개발 의존성 설치
pip install .[dev]
# 테스트 실행
pytest tests/
# 타입 체크
mypy src/
기술 스택
- FastMCP 2.0 — MCP 서버 프레임워크
- Requests / Pandas — API 호출 및 데이터 처리
- Uvicorn / Starlette — HTTP/SSE 서빙
- Docker — 컨테이너 배포
- Smithery.ai — 클라우드 MCP 호스팅
라이선스
Apache License 2.0 — LICENSE 참조
Reviews (0)
Sign in to write a review.
No reviews yet. Be the first to review!
Comments (0)
No comments yet. Be the first to share your thoughts!