kolas-mcp
by vertical-mcp
README.md
# @vertical-mcp/kolas-mcp
MCP server for Korea's **KOLAS** (Korean Laboratory Accreditation Scheme) — the national accreditation body under KATS (국가기술표준원) that accredits calibration, testing, inspection, medical-testing, reference-material-production, and proficiency-testing organizations under ISO/IEC 17025, ISO/IEC 17020, ISO 15189, ISO 17034, and ISO/IEC 17043.
한국인정기구(KOLAS) 공개 포털(knab.go.kr)과 공공데이터포털(data.go.kr) 데이터셋을 MCP 서버로 래핑한 패키지. 교정·시험·검사·의료시험·표준물질생산·숙련도시험 인정기관을 Claude·Cursor 등 MCP 호환 클라이언트에서 바로 조회할 수 있다.
---
## Tools
| Tool | Description |
|------|-------------|
| `search_accredited_labs` | Search accredited labs by free-text query and category (CALIBRATION / TESTING / INSPECTION / MEDICAL / REFERENCE / PROFICIENCY / ALL). No API key required. |
| `get_lab_details` | Full detail for a single lab by accreditation number (e.g. `KT001`) — scope of accreditation, history, contact. No API key required. |
| `get_kolas_statistics` | Annual accreditation counts per category (dataset 15054300). Requires `KOLAS_SERVICE_KEY` from data.go.kr. |
---
## Quick start
### 1. (Optional) Register for a data.go.kr ServiceKey
The live lab-search tools work **without any API key**. A key is only required for `get_kolas_statistics`, which pulls annual aggregate data from data.go.kr.
To enable statistics:
1. Sign up at <https://data.go.kr>
2. Apply for dataset 15054300 (산업통상자원부_기술표준통계_한국인정기구(KOLAS) 인정현황)
3. Copy the issued `ServiceKey` into the `KOLAS_SERVICE_KEY` env var.
### 2. Install
```bash
npx @vertical-mcp/kolas-mcp
```
Or install globally:
```bash
npm install -g @vertical-mcp/kolas-mcp
kolas-mcp
```
### 3. Configure your MCP client
#### Claude Desktop (`claude_desktop_config.json`)
```json
{
"mcpServers": {
"kolas-mcp": {
"command": "npx",
"args": ["-y", "@vertical-mcp/kolas-mcp"],
"env": {
"KOLAS_SERVICE_KEY": "your-optional-data.go.kr-key"
}
}
}
}
```
#### Cursor (`.cursor/mcp.json`)
```json
{
"mcpServers": {
"kolas-mcp": {
"command": "npx",
"args": ["-y", "@vertical-mcp/kolas-mcp"]
}
}
}
```
#### Smithery-hosted (coming soon)
When the Smithery hosted deploy is live, register the session-scoped `kolasServiceKey` via Smithery's config UI — no local env var needed.
---
## Environment variables
| Variable | Required | Description |
|----------|----------|-------------|
| `KOLAS_SERVICE_KEY` | Optional | data.go.kr ServiceKey for dataset 15054300 (annual statistics). Not required for live lab search. |
---
## Examples
### List Korean calibration labs with "length" in their scope
```
search_accredited_labs({
query: "길이",
category: "CALIBRATION",
page: 1,
page_size: 20
})
```
### Look up a single testing lab by accreditation number
```
get_lab_details({ accreditation_no: "KT001" })
```
### Annual accreditation counts for 2023
```
get_kolas_statistics({ year: "2023" })
```
---
## Accreditation-number prefix cheat sheet
| Prefix | Category | Standard |
|--------|----------|----------|
| `KC` | Calibration (교정) | ISO/IEC 17025 |
| `KT` | Testing (시험) | ISO/IEC 17025 |
| `KI` | Inspection (검사) | ISO/IEC 17020 |
| `KM` | Medical testing (의료시험) | ISO 15189 |
| `KR` | Reference material producer (표준물질생산) | ISO 17034 |
| `KP` | Proficiency testing provider (숙련도시험) | ISO/IEC 17043 |
The server infers category from this prefix automatically when you pass an accreditation number.
---
## Development
```bash
git clone https://github.com/vertical-mcp/kolas-mcp.git
cd kolas-mcp
npm install
npm run build
npm start
```
### Scripts
- `npm run dev` — watch mode via `tsx`
- `npm run build` — compile to `dist/`
- `npm run typecheck` — no-emit type check
- `npm run clean` — remove `dist/`
---
## Data source caveats
`search_accredited_labs` and `get_lab_details` parse HTML from <https://www.knab.go.kr>. KOLAS may redesign the portal; if selectors break, open an issue. The statistics endpoint is the more stable path — data.go.kr datasets are versioned and backwards-compatible.
---
## Roadmap
- **v0.1** — `search_accredited_labs`, `get_lab_details`, `get_kolas_statistics` (this release)
- **v0.2** — `list_accreditation_fields` (scope taxonomy), `get_scope_by_field` (reverse lookup: which labs cover ISO method X?), calibration-lab search via kasto.or.kr
- **v0.3** — APLAC/ILAC MRA cross-reference, neighboring-country accreditation bodies (JAB Japan, CNAS China)
---
## Legal / attribution
- Data sources:
- [KNAB (KATS National Accreditation Body)](https://www.knab.go.kr) — public HTML portal
- [data.go.kr dataset 15054300](https://www.data.go.kr/data/15054300/fileData.do) — Ministry of Trade, Industry and Energy (MOTIE) / KATS
- This package is an unofficial community wrapper. It is not affiliated with or endorsed by KATS, KOLAS, or MOTIE.
- Please respect the source portals' rate limits — scraping is courteous and sparse by default.
---
## License
MIT © 2026 Yongbum Kim
TDQS
A4.2/5.0
Scored across 3 tools
Disambiguation5/5
Each tool has a clearly distinct purpose: aggregated statistics, detailed lab info by ID, and free-text search. There is no overlap in functionality.
Naming Consistency5/5
All tool names follow a consistent snake_case verb_noun pattern (get_kolas_statistics, get_lab_details, search_accredited_labs), making them predictable and easy to understand.
Tool Count5/5
With 3 tools, the server is well-scoped for its purpose of querying KOLAS accreditation data. Each tool serves a essential function without unnecessary bloat.
Completeness4/5
The set covers search, details, and statistics, covering the main read operations. A minor gap is the lack of a tool to list available accreditation categories directly, but this is partly handled by the search tool's category parameter.
Maintenance
ActivityInactive
ResponsivenessNo issues