Skip to main content
Glama
alphago2580

Nara Market FastMCP Server

by alphago2580

나라장터 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 파라미터 가이드, 값 예시, 검색 패턴

  • 프롬프트: 워크플로우 가이드, 파라미터 선택 가이드, 실전 쿼리 예제

시작하기

필수 요구사항

설치

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 참조

-
security - not tested
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alphago2580/naramarketmcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server