Skip to main content
Glama
README.md
# she-mcp

한국 안전·보건·화학 분야 정보를 조회하는 MCP 서버입니다.

- 산업안전보건 법령·행정규칙·법령해석례
- 공단 안전보건법령 스마트검색
- KOSHA GUIDE
- 물질안전보건자료(MSDS)
- 법령 별표·서식

MCP 서버는 사용자의 PC에서 실행되며, API 인증정보는 각 사용자가 직접 발급해 설정합니다.

## 요구 사항

- Node.js 22 이상
- npm
- 법제처 국가법령정보 Open API OC 값
- 공공데이터포털 일반 인증키(Decoding)

## API 키 발급

### 법제처

[국가법령정보 공동활용](https://open.law.go.kr/)에서 회원가입 후 OC 값을 발급받습니다.

### 공공데이터포털

[data.go.kr](https://www.data.go.kr/)에서 다음 서비스의 활용신청을 합니다.

- 안전보건법령 스마트검색: `15123696`
- 물질안전보건자료 조회: `15157612`
- 코샤가이드 조회: `15144147`

공공데이터포털 키는 반드시 **일반 인증키(Decoding)** 를 사용해야 합니다.

## 설치 및 설정

```powershell
git clone https://github.com/zxc8661/safety-health-chemical-mcp.git
cd safety-health-chemical-mcp
npm install
Copy-Item .env.example .env
notepad .env
```

`.env`에 사용자 본인의 인증정보를 입력합니다.

```env
LAW_OC=사용자_법제처_OC
DATA_GO_KR_KEY=사용자_Decoding_서비스키
```

`.env`는 Git에 커밋하지 마세요. 저장소에는 `.env.example`만 포함해야 합니다.

## 빌드 및 테스트

```powershell
npm run build
npm test
```

실제 API 연결을 확인하려면 인증정보를 설정한 뒤 실행합니다.

```powershell
npm run smoke
```

`smoke`는 법령, 스마트검색, KOSHA GUIDE, MSDS API의 응답 구조와 실제 조회 가능 여부를 확인합니다.

## Claude Code 연결

로컬 빌드 결과를 MCP 서버로 등록합니다.

```powershell
claude mcp add --transport stdio she -- node "C:\경로\safety-health-chemical-mcp\dist\index.js"
```

등록 확인:

```powershell
claude mcp list
```

## Codex 연결

```powershell
codex mcp add she -- node "C:\경로\safety-health-chemical-mcp\dist\index.js"
```

등록 확인:

```powershell
codex mcp list
```

MCP 클라이언트에서 다음과 같이 질의할 수 있습니다.

- `산업안전보건법에서 위험성평가 관련 조문을 찾아줘`
- `톨루엔의 MSDS 8항과 보호구 정보를 조회해줘`
- `밀폐공간 관련 KOSHA GUIDE를 찾아줘`

## 제공 도구

| 도구 | 설명 |
|---|---|
| `smart_search` | 안전보건 법령·고시·KOSHA GUIDE 횡단 검색 |
| `search_law` | 법령 검색 |
| `get_law` | 법령 조문 조회 |
| `search_admrule` | 고시·훈령·예규 검색 |
| `get_admrule` | 행정규칙 본문 조회 |
| `search_interpretation` | 법령해석례 검색 |
| `get_interpretation` | 법령해석례 본문 조회 |
| `get_annex` | 법령 별표·서식 조회 |
| `search_kosha_guide` | KOSHA GUIDE 검색 |
| `get_kosha_guide` | KOSHA GUIDE 본문 조회 및 캐시 |
| `search_msds` | MSDS 물질 검색 |
| `get_msds` | MSDS 항목 조회 |

## 캐시

KOSHA GUIDE에서 추출한 Markdown은 다음 경로에 로컬 캐시됩니다.

```text
.cache/kosha/
```

PDF 원본은 보관하지 않습니다. 캐시 디렉터리는 Git에서 제외됩니다.

## 보안 및 이용 시 주의

- API 키를 소스 코드, `.mcp.json`, README, 이슈, 로그에 작성하지 마세요.
- API 키는 사용자별로 발급·관리해야 합니다.
- 법령·고시·KOSHA GUIDE·MSDS의 근거등급은 서로 다르므로 MCP 응답의 근거등급을 확인하세요.
- 결과는 검토 보조 자료이며 최종 법적 판단은 담당자가 확인해야 합니다.

## 개발 상태

현재 TypeScript 구현과 오프라인 단위 테스트가 포함되어 있습니다. 실제 API 사용 전에는 각 API의 활용신청과 인증정보 설정이 필요합니다.

```text
npm test
12 tests passed
```

## 라이선스

별도 라이선스는 아직 지정되지 않았습니다. 공개 배포 전 저장소 라이선스를 확정하세요.

TDQS

A4.1/5.0

Scored across 12 tools

Disambiguation4/5

Tools are mostly distinct by resource type (law, admrule, interpretation, KOSHA guide, MSDS) with a clear search/get split. Some overlap exists between smart_search, search_law, and search_admrule, but descriptions clearly specify when each is appropriate.

Naming Consistency4/5

The verb_noun pattern is consistent (search_* and get_*), with the exception of 'smart_search' which deviates from the 'search_' prefix convention. Overall, names are predictable and readable.

Tool Count5/5

With 12 tools, the server is well-scoped for its purpose. Each resource type has a search and get tool, plus a cross-cutting smart search and an annex retrieval tool, with no redundant or unnecessary additions.

Completeness5/5

The tool set covers the full research workflow for occupational safety and health regulations: searching and retrieving laws, administrative rules, interpretations, KOSHA guides, and MSDS. The inclusion of get_annex and smart_search fills practical gaps, making the surface comprehensive.

Maintenance

ActivityStale
ResponsivenessNo issues