韩国cli
使用自然语言访问韩国公共数据门户网站(data.go.kr)数千个API的CLI+MCP服务器
 
为什么要做
公共数据门户有数千个免费开放API。可吸入颗粒物,天气,房地产,交通,卫生等级。……有用的数据已经公开,但实际使用的人并不多。
- 每个API的参数名称、响应结构和编码都不同
- 要联动一个,需要花时间阅读、申请和测试文档。
- 如果不是开发者,访问本身就很困难。
korea-cli通过LLM解决了这个问题。
自动收集和抽象公共数据门户的完整API目录,使您可以通过一行自然语言访问所需数据。
使用示例
直接用作CLI
# API 검색 (12,000+ API 번들 내장, 즉시 사용 가능)
$ korea-cli search "사업자등록"
# → 오프라인 카탈로그에서 즉시 검색
# API 상세 스펙 조회
$ korea-cli spec 15081808
# → 파라미터, 인증 방식, 엔드포인트 확인
# API 직접 호출
$ korea-cli call 15081808 /status --param 'b_no=["1234567890"]'
# → JSON 응답 반환使用MCP服务器连接到AI工具
从Claude Desktop、Cursor等连接到MCP服务器后,AI将直接利用韩国公共数据:
{
"mcpServers": {
"korea": {
"command": "korea-cli",
"args": ["mcp"]
}
}
}特点
| 特性 | 说明 |
|---|---|
| 捆绑包内置 12119 API目录+7160规格内置于二进制中。安装后立即离线搜索/规格查询 | |
| API状态指南 立即判断每个API的spec_status是否可用。未支持的API也提供endpoint URL和替代方案指南 | |
| 自然语言接近 | 描述情况时,请查找并调用适当的API并整理结果 |
| MCP服务器 | 在Claude Desktop、Cursor等AI工具中直接用作tool |
| 使用申请指南 | 引导您完成所需API的申请流程和URL |
| 单个二进制文件 | 使用Rust构建。无需安装Node.js、Python等运行时 |
安装
GitHub 发布
发布在中下载适用于操作系统的二进制文件。
# macOS (Apple Silicon)
curl -LO https://github.com/JunsikChoi/korea-cli/releases/latest/download/korea-cli-aarch64-apple-darwin.tar.gz
# Linux (x86_64)
curl -LO https://github.com/JunsikChoi/korea-cli/releases/latest/download/korea-cli-x86_64-unknown-linux-gnu.tar.gz使用Cargo安装
cargo install korea-cli开始
1.发放公共数据门户API密钥
- data.go.kr 注册会员(免费)
- 申请使用您要使用的API(大部分是自动批准的)
- 在我的页面上验证验证密钥
korea-cli将指导您申请哪些API。请先安装并提问。
2.设置API密钥
korea-cli config set api-key YOUR_API_KEY3.使用
# API 검색 (번들 내장, 바로 사용 가능)
korea-cli search "날씨"
korea-cli search "공항" --category "교통"
# API 스펙 확인
korea-cli spec
# API 호출
korea-cli call
--param key=value
# 최신 번들로 업데이트 (선택)
korea-cli update
# MCP 서버로 AI 도구 연동
korea-cli mcp工作原理
사용자 (자연어)
│
├── CLI: korea-cli "서울 미세먼지"
└── MCP: AI 도구가 tool로 호출
│
▼
┌──────────────────────────┐
│ korea-cli (Rust) │
│ │
│ ┌─────────────────────┐ │
│ │ API 카탈로그 + 검색 │ │ ← 메타 API로 자동 수집
│ └─────────────────────┘ │
│ ┌─────────────────────┐ │
│ │ API 호출 엔진 │ │ ← 파라미터 매핑 + 호출 + 정규화
│ └─────────────────────┘ │
│ ┌─────────────────────┐ │
│ │ MCP 서버 (JSON-RPC) │ │ ← Claude, Cursor 등 연동
│ └─────────────────────┘ │
└──────────────────────────┘
│
▼
공공데이터포털 API (data.go.kr)项目结构
korea-cli/
├── src/
│ ├── main.rs # CLI 엔트리포인트 + 서브커맨드
│ ├── core/
│ │ ├── types.rs # 타입 (Bundle, CatalogEntry, ApiSpec, SpecStatus 등)
│ │ ├── bundle.rs # 번들 로드/해제, 오버라이드 체인, 스키마 버전 관리
│ │ ├── catalog.rs # 카탈로그 검색, 메타 API 수집
│ │ ├── swagger.rs # Swagger 파싱 (parse_swagger, extract_swagger_json)
│ │ ├── html_parser.rs # HTML 테이블 파서 (data.go.kr Gateway API)
│ │ └── caller.rs # API 호출 엔진
│ ├── mcp/ # MCP 서버 (stdio JSON-RPC)
│ ├── cli/ # CLI 서브커맨드 핸들러
│ ├── config/ # 설정 관리 (API 키, 환경변수)
│ └── bin/
│ ├── build_bundle.rs # 번들 생성 도구 (Swagger + Gateway AJAX 추출)
│ ├── verify_bundle.rs # 번들 schema_version 검증 (release CI gate)
│ ├── survey.rs # API 전수조사 (Swagger/HTML 신호 분석)
│ ├── html_survey.rs # HTML 스펙 전수조사 (pk/AJAX 프로브)
│ ├── crawl_pages.rs # openapi.do 페이지 크롤러
│ ├── analyze_pages.rs # HTML 구조 신호 추출기
│ ├── summarize_signals.rs # 신호 빈도 분석 + 클러스터링
│ └── gen_catalog_docs.rs # API 카탈로그 markdown 문서 생성
├── Makefile # 개발 DX (make update-bundle, make verify-bundle-local)
├── build.rs # 번들 해결 (로컬 → BUNDLE_DOWNLOAD_URL env → placeholder 3단계)
├── tests/ # 통합 테스트
├── scripts/
│ └── publish.sh # crates.io 배포 (번들 다운로드 → cargo publish)
├── .github/workflows/
│ ├── bundle-ci.yml # 주 1회 번들 수집 + Release 배포
│ └── release.yml # 바이너리 릴리즈 CI (4 플랫폼 크로스 빌드)
├── docs/
│ ├── roadmap/ # 장기 로드맵 (Phase 1~3)
│ ├── devlogs/ # 개발 로그
│ ├── specs/ # 설계 스펙 (아키텍처 결정)
│ └── plans/ # 구현 계획 (태스크별 체크박스)
├── website/ # koreacli.com 소스
├── Cargo.toml
└── LICENSE # MIT文档
| 文档 | 用途 |
|---|---|
| 第1阶段路线图 | 长期里程碑核对表(第1~3阶段) |
| MVP设计规格 | 体系结构、数据模型、MCP工具设计 |
| MVP实施计划 | 具体的任务实施步骤(基于TDD) |
| 规格质量改进设计 规格状态、模式版本、HTML解析器设计 | |
| API目录 | 各机构12119 API列表(Available+External) |
| API全面调查报告 12108 API Swagger/HTML信号全面分析 | |
| 全面调查HTML规格 | HTML回退路径全面调查-覆盖率32.6%→53.5% |
| 网关规格提取设计 | 网关API AJAX提取体系结构 |
| Gateway规格提取计划 | 实施任务(基于TDD) |
| PartialStub+CI设计 | 部分收集分类+CI自动化体系结构 |
| PartialStub+CI计划 | 实施任务(基于TDD) |
| PartialStub完成+捆绑部署设计 | 文档分类+二进制版本CI+crates.io管道 |
路线图
第一阶段:MVP请参考。
贡献
欢迎您的贡献! 话题请确认或发送PR。
