Skip to main content
Glama
vertical-mcp

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