korean-report-hwpx — 한국 공문서 MCP (보고서·보도자료 HWPX)
· English
공무원 공문서(보고서·보도자료)를 기관 서식 HWPX로. 쓰고 있는 AI(Claude·ChatGPT 등)가 메모·초안을 공문서 구조로 정리하면, 52개 중앙행정기관의 서식 규칙값으로 한글(HWPX) 파일을 그립니다.
외부 전송 없음 · API 키 불필요 — 모든 처리는 설치한 컴퓨터 안에서 끝납니다. 원고는 이 서버 밖으로 나가지 않습니다. → English README
"이 내용 공문서처럼 써 줘" 한마디로 개조식 보고서(□ → ㅇ → -) 또는 보도자료를 기관 서식대로 만듭니다. 서식은 정책브리핑 보도자료 2,670건 전수 조사로 정한 규칙값이며, 원본 문서·로고는 포함하지 않습니다.
이렇게 물어보세요
- "이 메모를 ○○부 보고서로 만들어 줘"
- "회의 내용 정리한 거야. 공문서처럼 정리해 줘" (기관을 말하지 않으면 공통 서식)
- "이 원고 국세청 보도자료로 만들어 줘 — 보도시점 2026. 10. 8.(목) 조간"
- "아까 만든 보고서 구조에서 Ⅲ장 □ 문장만 바꿔서 다시 만들어 줘"
- "산림청 보고서 서식 규칙(계층별 기호·글꼴·크기) 보여 줘"
설치 한 줄 — claude mcp add korean-report-hwpx -- uvx korean-report-hwpx
문서 종류
| 종류 | 구성 | 기관 지정 | 규칙 |
|---|---|---|---|
| 보고서(개조식) | 제목 상자, 작성일·작성부서 줄(선택), 소제목(Ⅰ. Ⅱ.) → □ → ㅇ → - → *, ※ 참고, 표, 붙임·참고 쪽 | 선택 — 42개 기관 규칙, 그 외·미지정은 공통 규칙 | rules_report/ (보도자료 참고·붙임 구간 1,326건) |
| 보도자료 | 표지(로고 자리·보도자료), 보도시점·배포, 제목·부제, 본문(문단식/□식), 담당 표, 참고 쪽 | 필수 — 52개 기관 | rules/·templates/ (보도자료 2,670건) |
| 기안문 | — | — | 다음 버전 예정 |
사용 흐름 — AI에게 "이 메모를 ○○부 보고서로 만들어 줘" → AI가 get_writing_guide로 작성 규칙 확인 → 원고를 구조 JSON으로 작성 → build_document → 결과의 warnings(고칠 점)가 있으면 AI가 고쳐 다시 생성.
문서 종류 판단 기준(가이드에 포함): 언론·국민 대상 발표·배포용이면 보도자료, 내부 보고·계획·검토면 보고서.
설치
uv가 있으면 설치 없이 바로 실행됩니다.
{
"mcpServers": {
"korean-report-hwpx": {
"command": "uvx",
"args": ["korean-report-hwpx"]
}
}
}
Claude Code: claude mcp add korean-report-hwpx -- uvx korean-report-hwpx
- API 키·환경변수 필요 없음.
- 만든 파일은
~/korean-report-hwpx/에 저장됩니다(KOREAN_REPORT_HWPX_OUT_DIR로 변경, 이전 이름KOREAN_GOV_DOCS_OUT_DIR도 인식).
도구
| 도구 | 하는 일 |
|---|---|
get_writing_guide |
문서 종류 판단 기준, 작성 규칙(□ 두괄식 한 문장·ㅇ 근거·- 세부, 명사형 종결, 사실·숫자 창작 금지, 기호는 텍스트에 넣지 않음, 참고·붙임 구조), 구조 JSON 스키마·예시. MCP prompt writing_guide로도 제공 |
check_structure |
생성 전 점검: 필수 필드, text 속 기호, 계층 건너뜀, □ 두 문장 이상, 명사형 종결 아닌 문장, 긴 제목 |
build_document |
구조 JSON → 기관 서식 HWPX. 입력 정규화(기호·대시·앞 공백 제거) + 고칠 점(warnings) 반환. build_from_structure는 별칭 |
list_ministries |
지원 기관과 문서 종류별 지원 여부(보고서: 기관 규칙/공통 규칙, 보도자료: 본문 방식) |
get_rules |
기관·문서 종류별 서식 규칙값(계층별 기호·글꼴·크기·내어쓰기·빈 줄, 제목 상자·표 머리) |
보고서 구조 JSON 예:
{
"title": "○○ 서비스 도입 추진계획(안)", "date": "2026. 10. 7.", "dept": "○○과",
"body": [{"type": "h", "text": "Ⅰ. 추진 배경"},
{"type": "l1", "text": "핵심 결론 한 문장임"}, {"type": "l2", "text": "근거·세부"}, {"type": "l3", "text": "소항목"},
{"type": "note", "text": "각주"}, {"type": "ref", "text": "참고 사항"},
{"type": "caption", "text": "소요 예산"}, {"type": "table", "rows": [["구분", "금액"], ["가", "100"]]}],
"appendix": [{"title": "붙임 1", "heading": "세부 내용", "body": [{"type": "l1", "text": "..."}]}]
}
보도자료 구조는 {release, distribute, title, subtitles, body, appendix, contact}입니다(블록 종류는 같고 문단 p·강조 상자 box·그림 image 추가). 원고에 담당자가 없으면 담당 표를 ○○과 / 김○○ / 044-000-0000 자리표시로 채웁니다(placeholder_contact).
지원 기관 (52곳)
| 기관 | 보고서 | 보도자료 | 기관 | 보고서 | 보도자료 |
|---|---|---|---|---|---|
| 개인정보보호위원회 | 기관 규칙 | 문단식 | 법무부 | 기관 규칙 | □식 |
| 경찰청 | 기관 규칙 | 문단식 | 법제처 | 기관 규칙 | 문단식 |
| 고용노동부 | 기관 규칙 | 문단식 | 병무청 | 공통 규칙 | 문단식 |
| 공정거래위원회 | 기관 규칙 | 문단식 | 보건복지부 | 기관 규칙 | 문단식 |
| 과학기술정보통신부 | 기관 규칙 | 문단식 | 산림청 | 기관 규칙 | 문단식 |
| 관세청 | 기관 규칙 | 문단식 | 산업통상부 | 기관 규칙 | 문단식 |
| 교육부 | 기관 규칙 | 문단식 | 새만금개발청 | 공통 규칙 | □식 |
| 국가교육위원회 | 기관 규칙 | 문단식 | 성평등가족부 | 기관 규칙 | □식 |
| 국가데이터처 | 기관 규칙 | □식 | 소방청 | 공통 규칙 | □식 |
| 국가보훈부 | 기관 규칙 | 문단식 | 식품의약품안전처 | 기관 규칙 | 문단식 |
| 국가유산청 | 기관 규칙 | 문단식 | 외교부 | 공통 규칙 | 문단식 |
| 국무조정실 | 기관 규칙 | □식 | 우주항공청 | 기관 규칙 | 문단식 |
| 국민권익위원회 | 기관 규칙 | □식 | 원자력안전위원회 | 공통 규칙 | □식 |
| 국방부 | 기관 규칙 | □식 | 인구전략위원회 | 공통 규칙 | 문단식 |
| 국세청 | 기관 규칙 | □식 | 인사혁신처 | 기관 규칙 | 문단식 |
| 국토교통부 | 기관 규칙 | □식 | 재외동포청 | 공통 규칙 | □식 |
| 금융위원회 | 기관 규칙 | 문단식 | 재정경제부 | 기관 규칙 | 문단식 |
| 기본사회위원회 | 공통 규칙 | □식 | 조달청 | 기관 규칙 | 문단식 |
| 기상청 | 기관 규칙 | 문단식 | 중소벤처기업부 | 기관 규칙 | 문단식 |
| 기획예산처 | 기관 규칙 | 문단식 | 지식재산처 | 기관 규칙 | 문단식 |
| 기후에너지환경부 | 기관 규칙 | 문단식 | 질병관리청 | 기관 규칙 | 문단식 |
| 농림축산식품부 | 기관 규칙 | 문단식 | 통일부 | 공통 규칙 | □식 |
| 농촌진흥청 | 기관 규칙 | 문단식 | 해양경찰청 | 공통 규칙 | □식 |
| 문화체육관광부 | 기관 규칙 | 문단식 | 해양수산부 | 기관 규칙 | 문단식 |
| 방송미디어통신위원회 | 기관 규칙 | 문단식 | 행정안전부 | 기관 규칙 | 문단식 |
| 방위사업청 | 기관 규칙 | 문단식 | 행정중심복합도시건설청 | 기관 규칙 | 문단식 |
보고서: 기관 규칙 = 그 기관 보도자료 참고·붙임 구간 실측값(42곳), 공통 규칙 = 기관 간 최빈값(기관을 지정하지 않으면 기관명 칸은 비움). 보도자료: 문단식 = 기호 없는 기사체 문단 위주, □식 = □ → ㅇ → - 개조식.
기관 로고
정부상징·기관 로고는 사용 규정상 이 패키지에 포함하지 않습니다. 소속 기관 담당자가 자기 기관 로고 파일을 지정하세요.
logo_path로 로고 그림 파일을 지정하면 보도자료는 표지의 로고 자리(기관별 크기)에, 보고서는 제목 상자 위에 들어갑니다. 보도자료 슬로건 그림은slogan_path.- 지정하지 않으면 보도자료 표지에 같은 크기의 「기관 로고」 자리표시가 들어갑니다. 한글에서 글을 지우고 그림을 넣으면 됩니다.
데이터 전송 안내
- 모든 처리는 로컬입니다. 이 서버는 외부 API를 부르지 않고, 원고·결과 파일을 어디로도 보내지 않습니다.
- 원고를 구조로 정리하는 일은 사용자가 쓰는 AI가 합니다. 그 AI 서비스의 데이터 정책은 별도로 확인하세요.
근거
- 정책브리핑(korea.kr) 보도자료 HWPX 2,670건(52개 중앙행정기관) 전수 파싱. 보도자료 본문 서식은 2,016건의 문단 35,465개·빈 줄 35,434개·표 칸 32,392개 실측.
- 보고서 서식은 같은 자료 중 「참고·붙임」 보고서형 구간이 있는 1,326건(문단 13,757개)에서 기관별로 산출(42개 기관, 3건 이상). 공통 골격(□·-·*·※ 기호, 기호 뒤 1타, 1행 제목 상자, 표 머리 맑은 고딕·가운데·굵게)은 기관 간 90% 이상 일치.
- 공식 기준: 「행정업무의 운영 및 혁신에 관한 규정 시행규칙」의 항목 구분(1. → 가. → 1) → 가) …), 경기도교육청 「한 곳에 정리한 공문서 작성법」(둘째 줄은 항목 첫 글자에 맞춤, 기호 뒤 1타, 하위 항목 2타 들여쓰기 등).
- 실측: 정책브리핑 보도자료 2,670건·52개 기관(보고서 구간 1,326건)에서 기관별 기호·글꼴·빈 줄·표지 표 수치를 산출.
- 규칙 문서: 보도자료 서식 규칙, 보고서 서식 규칙. 규칙값:
rules/,rules_report/, 보도자료 표지·담당 표 수치:templates/. - 원자료는 정책브리핑에 공공누리로 공개된 보도자료이며, 이 저장소에는 원본 파일·본문·그림을 포함하지 않고 서식 수치만 담았습니다.
유의
- 결과물은 초안입니다. 보고·배포 전 한글에서 확인하세요.
- 줄 끝(마지막 줄 한두 글자 등)은 글자 폭 추정으로 맞추므로 일부 남을 수 있습니다. macOS + 한컴오피스 한글이 있으면
polish=True로 실제 줄 배치를 받아 문단별 자간을 다시 고릅니다(한글 창이 여러 번 열리고 수 분 걸림). - 글꼴은 사용하는 컴퓨터에 설치된 글꼴로 표시됩니다(휴먼명조·HY헤드라인M 등 미설치 시 대체 글꼴).
- 기안문은 다음 버전에서 지원할 예정입니다.
라이선스
MIT © 2026 Upstage
Created by Mia(윤승미)
Metadata
Release files for korean-report-hwpx 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| korean_report_hwpx-0.1.0.tar.gz | 266.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| korean_report_hwpx-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 456.8 kB
Release files / korean_report_hwpx-0.1.0.tar.gz
| Download URL | korean_report_hwpx-0.1.0.tar.gz |
|---|---|
| Size | 266.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
736a7d0daa0d3fb0b8f108878aa47a4dc21bb81619201c3d7f5c57048bdc45e4
|
|
BLAKE2b-256 checksum How to use checksums |
499c6be95ed813120df60b99030068ad549c5a0e4e1573bd6b9199a529028473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|
Release files / korean_report_hwpx-0.1.0-py3-none-any.whl
| Download URL | korean_report_hwpx-0.1.0-py3-none-any.whl |
|---|---|
| Size | 190.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
0b9bfe621c5ba7f17cf2bb0f6c5c0956e21d32ba5027f2afe21fe019b4f12fa0
|
|
BLAKE2b-256 checksum How to use checksums |
eefd06efe0d849ddb741873ff25433f489c3bd953a18d9e656c8ee5fa773b7c1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.7
|