# Korean Fire Safety Law & Statistics [Health: Active]

**Category:** ⚖️ Legal  
**Repository:** https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp  
**GitHub Stars:** 0  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/korean-fire-safety-law-statistics

## Description
Korean fire safety law, statutes, NFPC/NFTC codes, hazmat, and fire/EMS statistics.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "korean-fire-safety-law-statistics": {
    "command": "npx",
    "args": ["-y","korean-firefighter-law-mcp"]
  }
}
```

## Documentation & README

# korean-firefighter-law-mcp

> v0.8.0 · 소방기관 검토·시범운영용 · 공개 저장소 (MIT)
>
> 기관 도입 전 검토·시범운영을 전제로 공개합니다. 운영 승인 전 확인이 필요한 항목은
> [기준.md 6장](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/기준.md)에 그대로 남겨 두었습니다.

소방청 공공데이터와 법제처 국가법령정보를 조회해 AI가 소방 법령·화재통계·교통사고 구급통계·
특정소방대상물·소방시설·위험물 질문에 공식 자료를 근거로 답하도록 연결하는 MCP 서버입니다.

이 저장소의 목적은 소방기관이 코드를 직접 검토한 뒤 다음 두 방식 중 기관 환경에 맞는 방식으로
시범 적용할 수 있게 하는 것입니다. 소방청 또는 법제처의 공식 제품은 아닙니다.

## 도입 방식 두 가지

| 방식 | 사용자 경험 | 기관이 운영할 것 | 안내 문서 |
|---|---|---|---|
| **기관 서버형** | 브라우저 채팅 또는 기관 서비스가 API 호출 | 서버 1대, 정부 API 키, 선택한 LLM API 키 | [DEPLOY.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/DEPLOY.md) |
| **개별 PC 설치형** | PC의 stdio 지원 AI 클라이언트에서 도구 사용 | 각 PC의 프로그램과 정부 API 키 | [LOCAL_SETUP.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/LOCAL_SETUP.md) |

기관 서버형은 `GET /` 웹 채팅, `POST /api/chat`, `POST /mcp`를 제공합니다. 웹 채팅과 `/api/chat`은
LLM이 질문을 공식 API 호출 계획(1~4건)으로 바꾸고 조회 자료로 답변을 작성하므로 LLM 설정이
필수입니다. LLM이 없으면 챗봇은 503으로 비활성화되고 `/mcp`만 동작합니다. 답변은 조회 자료에 있는
내용만으로 구조화된 존댓말로 작성되며 주장·수치 문장에 근거 자료 번호(`[자료 N]`)를 인용합니다(서버가
인용 유효성 검증). 자료가 부족하면 1라운드에 한해 스스로 추가 조회하고, 그래도 없는 데이터는 공식
안내처를 권합니다. 공식 조회 원문은 응답의 `sources` 필드로 항상 함께 제공되며 화면에서는 접이식으로
표시됩니다.

개별 PC 설치형은 중앙 서버와 별도 LLM API 키가 필요 없습니다. 연결한 AI 클라이언트가 답변을 만들고 이
프로그램은 stdio MCP 도구로 공식 API를 조회합니다. ChatGPT는 로컬 MCP 서버에 직접 연결하지 않으므로
ChatGPT를 사용할 때는 기관 서버형의 원격 MCP 또는 웹/API 방식을 검토해야 합니다.

### 설치 방법 두 가지

이 프로그램은 npm에 게시되어 있어 내려받기·빌드 없이 바로 실행할 수 있습니다.

```bash
npx korean-firefighter-law-mcp
```

AI 클라이언트의 MCP 설정에도 같은 방식으로 등록합니다. 경로를 지정할 필요가 없습니다.

```json
{
  "mcpServers": {
    "firefighter-law": {
      "command": "npx",
      "args": ["-y", "korean-firefighter-law-mcp"],
      "env": {
        "DATA_GO_KR_KEY": "발급받은 키",
        "LAW_OC": "발급받은 OC"
      }
    }
  }
}
```

코드를 직접 검토하거나 수정해서 운영하려면 저장소를 내려받아 빌드합니다. 기관 심사·내부 배포에는
이 방식을 권합니다. 절차는 [LOCAL_SETUP.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/LOCAL_SETUP.md)와 [DEPLOY.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/DEPLOY.md)에 있습니다.

[MCP 공식 레지스트리](https://registry.modelcontextprotocol.io)에는
`io.github.ssd7830-cmyk/korean-firefighter-law-mcp`로 등재되어 있습니다.

## 제공 도구 11개

| 도구 | 범위 | 공식 데이터 출처 |
|---|---|---|
| `search_fire_stats` | 날짜별 화재 접수·진행·오인·자체진화 현황 | 소방청 화재정보서비스 |
| `get_ems_stats` | 시도본부·소방서별 **교통사고** 구급활동 통계 | 소방청 구급통계서비스 |
| `search_fire_building` | 시도·건물명·사용승인연도별 특정소방대상물 검색 | 소방청 특정소방대상물정보 |
| `get_building_facilities` | 특정소방대상물의 소방시설 현황 | 소방청 소방시설정보 |
| `search_fire_law` | 소방 관계 법령 이름·본문 검색 | 법제처 국가법령정보 |
| `get_fire_law_text` | 법령 조문 전문 조회 | 법제처 국가법령정보 |
| `get_fire_law_annex` | 시행령 등 법령 별표 원문·키워드 조회 | 법제처 국가법령정보 |
| `search_fire_precedents` | 소방 관련 판례 검색 | 법제처 국가법령정보 |
| `search_fire_admin_rules` | 행정규칙·화재안전기준(NFPC·NFTC) 검색 | 법제처 국가법령정보 |
| `get_fire_admin_rule_text` | NFPC·NFTC 행정규칙 원문·절 조회 | 법제처 국가법령정보 |
| `search_hazmat` | 물질명·CAS·UN번호별 위험물 정보 | 소방청 국가위험물정보 |

법령 약칭(화재예방법·소방시설법·위험물법·119법 등)을 정식 명칭으로 바꾸며, 법령·행정규칙 이름
검색이 0건이면 본문 검색으로 전환합니다. 본문 검색은 전량(최대 100건)을 받아 소방·건축 소관
관련도순으로 재정렬해 표시하고, 총 건수 대비 표시 건수를 명시합니다.

## 빠른 코드 검증

Node.js 22 이상이 필요하며 새 설치에는 현재 LTS인 Node.js 24를 권장합니다.

```bash
git clone https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp.git
cd korean-firefighter-law-mcp
npm ci
npm run verify
```

`verify`는 타입검사, 전체 자동 테스트, 배포 빌드를 차례로 실행합니다. 실제 정부 API 호출은 인증키와
활용승인이 있어야 하므로 [DEPLOY.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/DEPLOY.md)의 배포 전 실연동 점검을 별도로 수행해야 합니다.

## 필요한 정부 API 키

1. [공공데이터포털](https://www.data.go.kr)에서 다음 5개 API를 활용신청하고 `DATA_GO_KR_KEY`를 설정합니다.
   [화재정보](https://www.data.go.kr/data/15077644/openapi.do) ·
   [구급통계](https://www.data.go.kr/data/15099428/openapi.do) ·
   [특정소방대상물](https://www.data.go.kr/data/15155780/openapi.do) ·
   [소방시설](https://www.data.go.kr/data/15155779/openapi.do) ·
   [국가위험물정보](https://www.data.go.kr/data/15061055/openapi.do)
2. [법제처 국가법령정보 공동활용](https://open.law.go.kr)에서 OPEN API를 신청하고 `LAW_OC`를 설정합니다.

승인 방식, 호출 한도, 유효기간은 바뀔 수 있으므로 저장소의 숫자보다 각 발급 계정과 API 상세 페이지의
현재 표시를 기준으로 합니다.

## 안전 설계와 운영상 주의

- 조회 자료 없이 LLM이 답을 생성하는 경로를 두지 않습니다. 조회 실패 시 오류 또는 조회 원문을 표시합니다.
- 서버는 기본적으로 `127.0.0.1`에만 열리고, 외부 주소 바인딩은 접속 토큰 없이는 시작을 거부합니다.
- API 키는 환경변수 또는 HTTPS 요청 헤더로만 받고, 애플리케이션 오류의 키 값은 마스킹합니다.
- 데이터베이스를 배포하지 않습니다. 공식 API를 호출하고 항목별 TTL의 인메모리 캐시만 사용합니다.
- `/mcp`와 `/api/chat`은 운영 시 토큰과 HTTPS로 보호해야 합니다. 자세한 설정은 [DEPLOY.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/DEPLOY.md)에 있습니다.
- 기관 서버형 챗봇은 사용자 질문과 조회 자료를 선택한 외부 LLM 사업자로 전송합니다. 기관의 개인정보·보안·
  기록물 정책 검토 전에는 민감정보나 개인정보를 입력하지 않습니다. LLM 사용을 승인하지 않는 기관은 웹
  챗봇 대신 `/mcp` 원격 도구 또는 개별 PC 설치형(클라이언트 LLM 사용)을 검토합니다.
- 이 프로그램의 결과는 실무 검토 보조자료입니다. 법적 판단과 현장 안전 판단은 공식 원문·기관 지침과
  담당자의 검토를 대신하지 않습니다.

보안 구조와 제한은 [ARCHITECTURE.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/ARCHITECTURE.md), 취약점 신고와 운영 기본선은
[SECURITY.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/SECURITY.md), 변경 의도와 검증 이력은 [기준.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/기준.md), 운영 인계 절차는
[인수인계.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/인수인계.md)에 기록합니다.

## 현재 검증 상태

- 자동 테스트·타입검사·빌드는 현재 소스에서 재실행합니다. 결과 수는 `npm run verify` 출력이 기준입니다.
- 검색 재정렬·조문 키워드 추출·추가 조회 라운드·화면 개편의 검증 이력과 12문항 실사용 감사 결과는
  [기준.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/기준.md) 3-3~3-6에, 남은 개선 순서는 [인수인계.md](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/인수인계.md) 16장에 기록되어 있습니다.
- 실제 Gemini·Claude·OpenAI API 호출, Docker 이미지 빌드, ChatGPT/Claude 원격 MCP UI 연결은 현재 환경에서
  재검증하지 못했습니다. 문서에 완료로 표시하지 않으며 기관 시험 환경에서 확인해야 합니다.
- 로컬 개발용 `claude-cli`와 `codex-cli` 어댑터가 있지만 개인 로그인을 공유 서버 운영에 사용하지 않습니다.
- 구급통계는 전체 구급활동이 아니라 **교통사고 구급활동** 범위만 연결되어 있습니다.

## 라이선스

[MIT License](https://github.com/ssd7830-cmyk/korean-firefighter-law-mcp/blob/HEAD/LICENSE). 정부 원천 데이터의 이용조건은 각 제공기관의 현재 조건을 별도로 따릅니다.

