国家集市MCP服务器
FastMCP 2.0服务器,通过模型上下文协议(MCP)提供韩国公共采购(G2B)数据。
集成了国家集市的主要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 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服务器框架
- 请求/熊猫 -API调用和数据处理
- 乌维科恩/斯塔莱特 -HTTP/SSE服务
- 码头工人 -容器部署
- Smithery.ai -云MCP托管
许可证
Apache许可证2.0-- 许可证 参考