Skip to main content
Glama
korean-report-hwpx

korean-report-hwpx

by UpstageAI

korean-report-hwpx — 한국 공문서 MCP (보고서·보도자료 HWPX)

데모: 회의 메모 한 장 → 다른 기관 사례 조사 → 과장님 보고용 1쪽 보고서 + 교육 실시 계획 기안문(내부결재) 한글 파일

영상: Claude 앱(코워크)에 "회의메모 보고 다른 기관 AI 교육 사례 찾아서 과장님 보고용 1쪽 보고서 만들어 줘. 교육 실시 계획 기안문도 같이 한글 파일로 줘" 요청 하나 → 사례 표·우리 기관 계획 1쪽 보고서 + 그 보고서를 붙임으로 단 내부결재 기안문(예산 '금1,200,000원(금일백이십만원)' 한글 병기)까지(2026-11-08 공개, 회의 메모는 가상 예시). 이 도구의 코드는 업스테이지 Solar Pro 4가 작성했습니다.

⭐ 써 보시고 도움이 되셨다면 별 하나 눌러 주세요. 무료 공개를 계속 이어 가는 힘이 됩니다.

PyPI MCP Registry License: MIT Built with Upstage Solar Pro 4 · English

0.2.0부터 업스테이지 Solar Pro 4로 개발합니다. 간소화 모드·마크다운 출력·내부 결재 보고서는 Solar Pro 4가 코드를 작성하고, Claude가 결과를 검증했습니다.

공무원 공문서(보고서·보도자료)를 기관 서식 HWPX로. 쓰고 있는 AI(Claude·ChatGPT 등)가 메모·초안을 공문서 구조로 정리하면, 52개 중앙행정기관의 서식 규칙값으로 한글(HWPX) 파일을 그립니다.

외부 전송 없음 · API 키 불필요 — 모든 처리는 설치한 컴퓨터 안에서 끝납니다. 원고는 이 서버 밖으로 나가지 않습니다. → English README


"이 내용 공문서처럼 써 줘" 한마디로 개조식 보고서(□ → ㅇ → -) 또는 보도자료를 기관 서식대로 만듭니다. 서식은 정책브리핑 보도자료 2,670건 전수 조사로 정한 규칙값이며, 원본 문서·로고는 포함하지 않습니다.

이렇게 씁니다

AI(Claude·ChatGPT 등)에게 평소처럼 말하면, AI가 이 도구로 작성 규칙을 읽고 → 원고를 정리하고 → 점검한 뒤 → 한글 파일을 만듭니다. 도구 이름을 몰라도 됩니다.

보고서 (검토서·추진계획·회의 결과·현황 보고 모두 보고서로 만듭니다)

  • "어제 회의 결과를 과장님께 보고할 1쪽짜리 보고서로 만들어 줘" — 본문을 1쪽에 꽉 채우고 세부는 붙임으로. 1쪽을 넘거나 덜 차면 도구가 알려 주고 AI가 다시 만듭니다

  • "이 메모를 ○○부 보고서로 만들어 줘" — 42개 기관 보고서 서식, 기관을 말하지 않으면 공통 서식

  • "내부 결재용으로 만들어 줘" — 내부 결재 보고서 서식('26. 11. 8.(일) / 과명, 쪽 번호 "- n -")

  • "번호 매기는 간소화 양식으로, 마크다운도 같이" — Ⅰ. 1. 가. 번호 서식 + .md 파일

  • "아까 보고서에서 Ⅲ장 □ 문장만 바꿔서 다시 만들어 줘" — 만든 파일 옆에 구조(.json)가 함께 저장돼 고쳐 다시 만들 수 있습니다

보도자료 — "이 원고 국세청 보도자료로 만들어 줘, 보도시점 2026. 10. 8.(목) 조간" (52개 기관 서식, 리드·제목·인용·숫자 표기 점검)

기안문·시행문 — "이 보고서 결재 올릴 기안문 만들어 줘, 붙임은 방금 보고서" (별지 제1호서식, 항목 번호·결재란·"끝." 자동)

같은 자료로 보고서 → 보도자료 → 기안문을 이어서 만들 수도 있습니다. 서식 규칙만 궁금하면 "산림청 보고서 서식 규칙 보여 줘".

Related MCP server: GongMun Doctor MCP

보고서가 이렇게 나옵니다

기능

내용

개조식 계층

소제목(Ⅰ. Ⅱ.) → □ 결론 한 문장 → ㅇ 근거 → - 세부 → * 각주, ※ 참고. 기호·들여쓰기·글꼴은 기관 규칙값

강조·각주

**핵심 문구**는 굵게, 문장 속 *·**는 위첨자 각주 표시

붙임 표시

문장 끝 "붙임 1"·"참고 2"는 상자로 표시하고, 붙임·참고는 새 쪽에서 머리 표로 시작

표

위아래 굵은 선, 머리행 아래 이중선, 머리행 옅은 음영, 좌우 바깥선 없음. 한 줄짜리 열은 가운데 정렬. 쪽을 넘으면 머리행 반복

분량 점검

목표 쪽수(target_pages)를 주면 본문 쪽수·마지막 쪽 채움을 재서 넘침·덜 참·붙임 없음을 경고

1쪽 보고서 규칙

"첫 장이 보고의 전부" — 개요는 표, □는 한 문장 압축, 되묻지 않게 꽉 채우고 세부는 붙임(작성 가이드에 포함)

자간 맞춤

문단마다 자간·장평을 골라 마지막 줄에 한두 글자만 남지 않게. 맥+한글이 있으면 polish=True로 실제 줄 배치에 맞춰 다듬기

서식 세 가지

표준 · 내부 결재(report_kind="internal") · 간소화(style="simplified", 마크다운 동시 출력)

설치 — Claude 앱(데스크톱·코워크)은 3단계, Claude Code는 한 줄: claude mcp add korean-report-hwpx -- uvx korean-report-hwpx

문서 종류

종류

구성

기관 지정

규칙

보고서(개조식)

제목 상자, 작성일·작성부서 줄(선택), 소제목(Ⅰ. Ⅱ.) → □ → ㅇ → - → *, ※ 참고, 굵게·각주, 표, 붙임 표시 상자, 붙임·참고 쪽, 분량 점검

선택 — 42개 기관 규칙, 그 외·미지정은 공통 규칙

rules_report/ (보도자료 참고·붙임 구간 1,326건)

보도자료

표지(로고 자리·보도자료), 보도시점·배포, 제목·부제, 본문(문단식/□식), 담당 표, 참고 쪽

필수 — 52개 기관

rules/·templates/ (보도자료 2,670건)

기안문·시행문(별지 제1호서식)

두문·본문·결문, 항목 번호(1.→가.→1)→가)→(1)→(가)) 자동, 붙임, "끝." 표시, 결재란(표), 협조자, 시행/접수, 주소·연락처·공개구분

기관 지정 없이 공통 서식(rules_official/_공통.json)

rules_official/_공통.json (행정업무규정 제7조·시행규칙 제2·4·6조)

사용 흐름 — AI에게 "이 메모를 ○○부 보고서로 만들어 줘" → AI가 get_writing_guide로 작성 규칙 확인 → 원고를 구조 JSON으로 작성 → build_document → 결과의 warnings(고칠 점)가 있으면 AI가 고쳐 다시 생성.

분량 점검: 사용자가 "1쪽으로", "3쪽 이내로"처럼 분량을 말하면 AI가 target_pages로 넘기고, 도구는 본문 쪽수·마지막 쪽 채움을 예측해 목표를 넘거나 덜 차거나(80% 미만) 붙임이 없으면 경고합니다. 분량을 말하지 않으면 쪽수 제한 없이 만듭니다. 예측은 실제로 만들 문서를 한글 배치 규칙(외톨이줄 보호, 소제목은 다음 문단과 같은 쪽, 표는 행 단위로 나누고 머리행 반복)대로 쌓아 계산합니다. 맥 한컴오피스 한글로 실측한 54개 문서(1–6쪽, 표준·내부 결재·간소화)에서 쪽수가 모두 맞았습니다.

문서 종류 판단 기준(가이드에 포함): 언론·국민 대상 발표·배포용이면 보도자료, 내부 보고·계획·검토면 보고서, 행정업무규정 별지 제1호서식 기안문·시행문이 필요하면 official.

설치

Claude 앱(데스크톱·코워크)에서 쓰기

  1. uv 설치 (한 번만) — 맥은 터미널에, 윈도는 PowerShell에 붙여 넣습니다.

    • 맥: curl -LsSf https://astral.sh/uv/install.sh | sh

    • 윈도: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

  2. Claude 앱 설정 → 개발자(Developer) → 구성 편집(Edit Config) 으로 열린 claude_desktop_config.json에 아래 mcpServers 내용을 넣고 저장합니다. 앱이 uvx를 못 찾으면 command에 전체 경로를 씁니다(맥 터미널에서 which uvx로 확인, 예: /Users/이름/.local/bin/uvx).

  3. Claude 앱을 완전히 종료했다가 다시 열고 "이 메모를 1쪽 보고서로 만들어 줘"라고 요청합니다. 만든 파일은 ~/korean-report-hwpx/에 저장됩니다.

설정 내용

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 속 기호, 계층 건너뜀, □ 두 문장 이상, 명사형 종결 아닌 문장, 긴 제목, 기안문은 필수 키·to·disclosure 허용값·결재란 drafter/approver 필수·attachments 문자열 목록 검증

build_document

구조 JSON → 기관 서식 HWPX. 입력 정규화(기호·대시·앞 공백 제거) + 고칠 점(warnings) 반환. build_from_structure는 별칭. 기안문은 doc_type="official", 금액 한글 병기 경고·날짜 정규화 포함

list_ministries

지원 기관과 문서 종류별 지원 여부(보고서: 기관 규칙/공통 규칙, 보도자료: 본문 방식, 기안문: 공통 서식)

get_rules

기관·문서 종류별 서식 규칙값(계층별 기호·글꼴·크기·내어쓰기·빈 줄, 제목 상자·표 머리, 기안문은 rules_official/_공통.json)

draft_press_structure

사실 메모(누가·언제·무엇, 배경·핵심 내용·계획, 인용, 담당 부서, 숫자 등)를 보도자료 구조 JSON 초안으로 옮긴다. 메모에 없는 문장·숫자·이름을 만들지 않으며, 리드·인용·표·참고 자료를 규칙에 맞게 배치한다.

보도자료 작성 방법 (국립국어원 지침·정책브리핑 실측)

get_writing_guide(doc_type='press_release', ministry=기관)을 호출하면 보도자료 작성 방법(리드·제목·인용·숫자·쉬운 말)과 사실 메모 양식, 기관별 가상 예시를 함께 제공한다. 근거는 국립국어원 보도자료 작성 지침과 정책브리핑 보도자료 2,667건 실측이다.

사실 메모 예시(과학기술정보통신부 가상 사례):

{
  "kind": "보도자료",
  "ministry": "과학기술정보통신부",
  "release": "2026. 11. 4.(수) 조간",
  "headline": "어르신 디지털 배움터 키오스크 교육 4,820명 수료",
  "subtitles": ["교육장 37곳 운영 결과, 수료생 만족도 92.4%"],
  "who": "과학기술정보통신부(장관 ○○○)",
  "when": "11월 3일(화)",
  "what": "올해 어르신 디지털 배움터 키오스크 교육 운영 결과를 발표했다",
  "points": ["3월부터 10월까지 전국 교육장 37곳에서 어르신 4,820명이 교육을 마쳤다."],
  "numbers": [{"item": "수료 인원", "value": "4,820", "unit": "명", "basis": "2026. 3.~10."}],
  "quote": {"speaker": "○○○ 과학기술정보통신부 장관", "text": ["어르신 누구나 무인 기기를 불편 없이 쓸 수 있도록 가까운 곳에서 배울 기회를 넓히겠다."], "verb": "말했다"},
  "contact": {"dept": "과학기술정보통신부 디지털포용정책과", "people": [["책임자", "과장", "○○○", "(044-202-0000)"]]}
}

이후 draft_press_structure(facts, ministry) → 구조 JSON 초안 + missing·warnings → 문장 다듬기 → check_structure(structure, 'press_release', ministry=기관) → build_document(structure, 'press_release', 기관).

출처:

  • 국립국어원, 『유형별로 알아보는 보도자료 작성 길잡이』(2020) — G20

  • 국립국어원, 『보도자료 유형별 표준안 개발』(2020) — R20

  • 국립국어원, 『보도 자료 쓰기 길잡이』(2011) — G11

  • 국립국어원, 『개정판 한눈에 알아보는 공공언어 바로 쓰기』(2022) — H22

  • 문화체육관광부·국립국어원, 『쉬운 공공언어 쓰기 길잡이』(2014) — E14

  • 정책브리핑(korea.kr) 보도자료 2,667건 본문 실측(52개 중앙행정기관) — C

간소화 모드 (style="simplified")

AI가 읽기 쉬운 보고서 서식(번호 체계 표준화, 서술식 문장, 단순한 표). 항목 기호를 단계별 번호로 자동 부여하고, 제목 상자·표 머리 음영을 없앤 간결한 서식.

사용법: build_document(..., style="simplified") 또는 get_writing_guide(..., style="simplified")로 지정.

간소화 모드 특징:

  • 항목 기호(□ ㅇ ○ - * ※) 대신 단계별 번호 자동 부여: Ⅰ. Ⅱ. Ⅲ. (소제목) → 1. 2. 3. (대항목) → 가. 나. 다. (중항목) → 1) 2) 3) (소항목) → 가) 나) 다) (세항목)

  • 번호는 서버가 구조 JSON의 계층 수준(level)에서 계산하므로 사용자가 직접 번호를 쓰지 않음

  • 단계별 들여쓰기 유지

  • 서술식 문장 허용 (~합니다·~했다 등 동사형 종결 가능, 명사형 종결 경고 없음)

  • 제목 상자(테두리·음영) 없이 일반 제목 문단

  • 표 머리 음영 없음

  • 표 제목 자동 번호: 〈표 1〉 제목 형식 (caption에는 제목만 작성)

  • 표 셀 병합 금지: 구조에 병합이 있으면 같은 값이 행마다 반복되도록 풀어 씀

  • export_markdown=True: 같은 구조로 .md 파일 동시 저장 (GFM 표, #, ##, ### 제목 위계)

  • 줄 간격 150%, 문단 위 10pt(1수준)·5pt(그 외), 빈 줄 없이 문단 간격으로 구분

  • 번호는 글자로 넣음. 한글 '개요' 번호 연동은 다음 버전 예정

내부 결재 보고서 (report_kind="internal")

정보공개포털 내부 결재 보고서 실물 표본 측정값 반영: 라벨 칸 없는 제목, 작성일·부서 줄 '26. 10. 9.(금) / 과·팀명, 줄 간격 150%, 문단 위 10pt(□)·5pt(ㅇ·-).

예시:

{
  "title": "○○ 추진계획(안)", "date": "2026. 10. 7.", "dept": "○○과",
  "body": [
    {"type": "h", "text": "추진 배경"},
    {"type": "l1", "text": "민원 대기 시간 감소를 위해 AI 안내 도입 필요"},
    {"type": "l2", "text": "하루 평균 창구 민원 약 400건"},
    {"type": "caption", "text": "소요 예산"},
    {"type": "table", "rows": [["구분", "금액"], ["시스템 구축", "2억"]]}
  ]
}

→ 간소화 모드로 생성 시: Ⅰ. 추진 배경, 1. 민원 대기 시간 감소를 위해 AI 안내 도입 필요, 가. 하루 평균 창구 민원 약 400건, 〈표 1〉 소요 예산 형식으로 표시.

보고서 구조 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).

기안문·시행문(별지 제1호서식) 구조는 doc_type="official"로 요청합니다. 구조:

{
  "org": "행정안전부",            // 두문 행정기관명(필수). 상급기관 병기는 "국무조정실 ○○위원회"처럼 한 줄
  "to": "수신자 참조",             // 필수. "내부결재" | "○○장관(○○과장)" | "수신자 참조"
  "via": "",                       // 경유(선택). 있으면 "(경유)" 줄에 표시
  "title": "2026년 ○○ 계획 알림",  // 필수
  "body": [                        // 항목 번호(1.→가.→1)→가)→(1)→(가))는 서버가 부여
    {"type": "l1", "text": "..."},
    {"type": "l2", "text": "..."},
    {"type": "l3", "text": "..."},
    {"type": "table", "rows": [[...]]},
    {"type": "lines", "lines": ["..."]}
  ],
  "attachments": ["○○ 계획서 1부.", "○○ 명단 1부."],  // 선택
  "recipients": ["○○부장관", "○○청장"],                // to="수신자 참조"일 때 결문 발신 명의 다음 줄
  "sender": "행정안전부장관",            // 발신 명의(필수)
  "approval": {                          // 결재란(필수: drafter·approver)
    "drafter":   {"title": "주무관", "name": "", "mark": "★"},
    "reviewers": [{"title": "과장", "name": "", "opinion": false}],
    "approver":  {"title": "국장", "name": ""},
    "coordinators": [{"title": "○○과장"}]
  },
  "doc_no": {"issue": "○○과-1234", "issue_date": "2026. 10. 14.", "receive": "", "receive_date": ""},
  "contact": {"zip": "30112", "address": "세종특별자치시 ○○로 00", "homepage": "www.mois.go.kr",
              "phone": "044-000-0000", "fax": "044-000-0001", "email": "○○○@korea.kr", "disclosure": "공개"}
}

기안문 항목 번호는 l1→1. / l2→가. / l3→1) / l4→가) / l5→(1) / l6→(가). 같은 계층 안에서 순서대로 증가하고 상위 계층이 바뀌면 하위 번호 초기화(제2조①). 둘째 계층부터 상위 번호 시작 위치에서 2타(한 글자) 오른쪽 들여쓰기. 금액은 금113,560원(금일십일만삼천오백육십원)처럼 한글 병기를 붙여야 하며, 없으면 warnings에 "금액 한글 병기 필요(시행규칙 제2조②)"가 나옵니다(제2조②). 날짜는 YYYY-MM-DD·YYYY.MM.DD를 YYYY. MM. DD.로 정규화합니다(영 제7조⑤). disclosure는 "공개"|"부분공개"|"비공개"만 허용됩니다.

지원 기관 (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/.

  • 원자료는 정책브리핑에 공공누리로 공개된 보도자료이며, 이 저장소에는 원본 파일·본문·그림을 포함하지 않고 서식 수치만 담았습니다.

서식 근거 (쪽 설정)

모든 문서 종류(보고서·보도자료·기안문)의 편집 용지는 A4(210×297mm, HWPUNIT 59528×84188), 좌우 여백 20mm(HWPUNIT 5669), 위·아래 여백 15mm(HWPUNIT 4252), 머리말·꼬리말 10mm(HWPUNIT 2835), gutter 0을 기본값으로 쓴다. 본문폭(text width)은 width − left − right = 48190(HWPUNIT, 170mm)이며, 표(<hp:tbl>)의 폭은 본문폭을 넘지 않는다.

  • 근거: 정책브리핑(korea.kr) 보도자료 원본 2,667건(52개 중앙행정기관) 중 A4·좌우 20mm 2,640건, 위15·아래15·머리말10·꼬리말10 1,817건(최빈값). 과학기술정보통신부 118건 중 100건, 행정안전부 135건 중 120건이 이 설정과 일치.

  • 기관 템플릿(templates/<기관>.json의 page)이 있으면 그 기관의 최빈값(기관값)을 쓰고, 표본이 10건 미만이면 공통값(default)을 쓴다. 기관값은 korean_report_hwpx/rules/_쪽설정.json의 기관값에 근거와 함께 기록돼 있다.

  • 기안문 쪽 설정은 「행정업무의 운영 및 혁신에 관한 규정」 제7조⑥(용지 A4)에 따라 위 공통값을 쓴다.

  • 규칙값 파일: korean_report_hwpx/rules/_쪽설정.json.

유의

  • 결과물은 초안입니다. 보고·배포 전 한글에서 확인하세요.

  • 줄 끝(마지막 줄 한두 글자 등)은 글자 폭 추정으로 맞추므로 일부 남을 수 있습니다. macOS + 한컴오피스 한글이 있으면 polish=True로 실제 줄 배치를 받아 문단별 자간을 다시 고릅니다(한글 창이 여러 번 열리고 수 분 걸림).

  • 글꼴은 사용하는 컴퓨터에 설치된 글꼴로 표시됩니다(휴먼명조·HY헤드라인M 등 미설치 시 대체 글꼴).

  • 기안문·시행문은 doc_type="official"로 지원합니다(별지 제1호서식, rules_official/_공통.json). 항목 번호(1.→가.→1)→가)→(1)→(가))는 서버가 부여, 사용자는 번호를 쓰지 않습니다. 날짜는 YYYY-MM-DD·YYYY.MM.DD를 YYYY. MM. DD.로 정규화합니다.

라이선스

MIT © 2026 Upstage

Created by Mia(윤승미)

Available Tools

7 tools
build_documentA

보고서·보도자료(보도참고·설명·해명자료 포함)·기안문을 기관 서식 HWPX(한글 파일)로 만든다. 구조 JSON을 기관 서식 HWPX로 만든다(외부 전송 없음, 모두 로컬). 구조는 get_writing_guide 규칙대로 사용자 AI가 작성한다. structure는 JSON 문자열로 줘도 된다. doc_type='report': {title, date, dept, body, appendix} — ministry를 비우면 공통 서식(기관명 칸 비움). doc_type='press_release': {release, distribute, title, subtitles, body, appendix, contact} — ministry 필수. doc_type='official': {org, to, via, title, body, attachments, recipients, sender, approval, doc_no, contact} — 기안문·시행문(별지 제1호서식). body: [{type: l1l6|table|lines, text|rows|lines}] (문자열 목록 아님, 번호는 서버가 붙임), attachments: [str], approval: {drafter: {title, name, mark:'★'|'⊙'|''}, reviewers: [{title, name, opinion:bool}], approver: {title, name}, coordinators: [{title}]}, doc_no: {issue, issue_date, receive, receive_date}, contact: {zip, address, homepage, phone, fax, email, disclosure:'공개'|'부분공개'|'비공개'}. 예시는 get_writing_guide(doc_type='official').example_official. 입력은 정규화(text 앞 기호·대시·공백 제거)하고, 고칠 점을 warnings로 돌려준다 — 있으면 구조를 고쳐 다시 호출한다. ministry 인자로 check_structure에 기관을 넘겨 보도자료 작성 점검(E1E18)을 수행한다. out_path: 저장 경로(선택, 기본은 아웃폴더). 폴더면 그 안에 기본 파일 이름으로 저장, 확장자 없는 이름이면 .hwpx를 붙인다. logo_path: 기관 로고 그림(선택). slogan_path: 보도자료 슬로건 그림(선택). placeholder_contact: 보도자료 담당자가 없으면 '○○과 / 김○○ / 044-000-0000' 자리표시로 채움. polish: True면 맥 한컴오피스 한글로 실제 줄 배치를 받아 문단별 자간을 다듬음(맥+한글 필요, 수 분 소요). style: 'standard'(기본, 기존 동작) | 'simplified'(간소화 모드 — 항목 번호 자동 부여, 제목 상자 없음, 표 머리 음영 없음, 표 제목 자동 번호, 서술식 허용). export_markdown: True이면 같은 구조로 .md 파일을 HWPX 옆에 함께 저장(GFM 표, 병합 없이, 번호 위계는 #, ##, ###와 번호 텍스트). report_kind: 'standard'(기본, 기존 보고서 서식) | 'internal'(내부 결재 보고서 — 제목 상자 라벨 없음, 쪽 번호 "- n -", 작성일·부서 "'26. 10. 8.(목) / 과·팀명" 형식, 표 머리 음영 없음/회색, □ 글꼴 HY헤드라인M). target_pages: 목표 본문 쪽수(예: 1). 주면 분량을 재서 넘침·덜 참·붙임 없음을 경고. 돌려주는 값: {hwpx, doc_type, 문서종류, 기관, warnings, structure(정리된 구조), 분량(report일 때), md(export_markdown=True일 때)}. 같은 이름 .json에 구조도 저장.

Inputs: structure (required), style, polish, doc_type, +8 more.

build_from_structureC

build_document와 같다(별칭). structure는 JSON 문자열로 줘도 된다.

Inputs: structure (required), style, polish, doc_type, +8 more.

check_structureA

구조 JSON을 만들기 전에 점검만 한다(파일 생성 없음): 필수 필드, 알 수 없는 블록, text 속 기호, 계층 건너뜀, □ 두 문장 이상, 보고서 명사형 종결이 아닌 문장, 긴 제목 등. structure는 JSON 문자열로 줘도 된다. 보도자료를 ministry와 함께 점검하면 작성 점검(E1~E18: 리드·제목·인용·숫자·쉬운 말 등)을 추가로 수행한다. target_pages: 목표 본문 쪽수(예: 1). 주면 분량을 재서 넘침·덜 참·붙임 없음을 경고. report_kind: 'standard'(기본, 일반 보고서 서식) | 'internal'(내부 결재 보고서 — 제목 상자 라벨 없음, 쪽 번호, 작성일·부서 "'26. 10. 8.(목) / 과·팀명" 형식). 돌려주는 값: {ok, doc_type, warnings, 분량(report일 때)}. style: 'standard'(기본) | 'simplified'(간소화 모드 — 번호 수준 건너뜀, 표 제목 누락, 병합 사용, 5단계 초과 추가 점검).

Inputs: structure (required), style, doc_type, ministry, +2 more.

draft_press_structureA

사실 메모를 보도자료 구조 JSON 초안으로 옮긴다. facts는 산문이 아니라 JSON 객체(또는 그 문자열)이며, 필드는 get_writing_guide(doc_type='press_release')의 press_writing.facts_template을 따른다 (headline, release, who, when, what 또는 lead, background, points, numbers, plan, quote, appendix, contact; 설명·해명자료는 kind, issue, position, grounds). 예: {"headline": "○○ 시행", "release": "2026. 11. 3.(화) 조간", "who": "○○부(장관 ○○○)", "when": "11월 3일(화)", "what": "○○를 시행한다", "points": ["..."], "contact": {"dept": "○○과", "people": [["담당자", "사무관", "김○○", "044-000-0000"]]}} 메모에 없는 문장·숫자·이름을 만들지 않는다. 붙이는 고정 말은 조사(은/는), “ ”라고, ”라며, “, 인용 동사, 표 머리 구분·수치·기준·비교, 주요 수치, 참고 N뿐이다.

Inputs: facts (required), ministry.

get_rulesA

기관·문서 종류별 서식 규칙값: 계층별 기호·기호 앞 공백·글꼴·크기·줄 간격, 계층 사이 빈 줄 크기, 보고서는 제목 상자·표 머리 규칙 포함. ministry를 비우면 보고서 공통 규칙. 기안문(doc_type='official')은 rules_official/_공통.json 값만 반환(기관 지정 없음).

Inputs: doc_type, ministry.

get_writing_guideA

원고를 공문서 구조 JSON으로 바꿀 때 지켜야 할 작성 규칙과 스키마·예시. build_document 전에 먼저 확인한다. 보도자료를 쓸 때는 doc_type='press_release'와 ministry를 주면 작성 방법(리드·제목·인용·숫자·쉬운 말)과 사실 메모 양식, 기관별 가상 예시를 함께 준다. doc_type: 'report'(보고서) | 'press_release'(보도자료) | 'official'(기안문·시행문, 별지 제1호서식 — 결재란·문서번호·연락처 스키마와 예시 포함) | 'auto'(보고서·보도자료 둘 다 + 판단 기준). ministry: 기관 이름(선택). style: 'standard'(기본, 기존 동작) | 'simplified'(간소화 모드 — 항목 번호 자동 부여, 제목 상자 없음, 표 머리 음영 없음, 표 제목 자동 번호, 서술식 허용).

Inputs: style, doc_type, ministry.

list_ministriesA

지원 기관과 문서 종류별 지원 여부를 JSON 배열 하나(문자열)로 돌려준다: [{기관, 보고서, 보도자료, 기안문, 보도자료_본문방식}, ...]. 보고서: 기관 규칙(42곳) 또는 공통 규칙, 보도자료: 52개 기관, 기안문: rules_official/_공통.json. 보고서는 기관을 비우거나 '공통'으로 하면 기관 간 공통 서식으로 만든다. 기안문은 기관 지정 없이 공통 서식으로만 지원.

Inputs: no named parameters. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 7 tools

    Disambiguation3/5

    The core pipeline (get_writing_guide → draft_press_structure/check_structure → build_document) is clearly differentiated, but get_writing_guide, get_rules, and list_ministries all return per-ministry/per-doc-type configuration information and their boundaries (writing rules vs. formatting values vs. availability table) require reading careful descriptions. build_from_structure is explicitly documented as an alias of build_document, giving two names for identical behavior.

    Naming Consistency4/5

    All names follow a verb_object snake_case pattern (get_*, list_*, check_*, draft_*, build_*), which is predictable and readable. Minor deviation: build_document names an action+object while build_from_structure names an action+source, so the two siblings don't distinguish themselves through naming alone.

    Tool Count4/5

    Seven tools is well within a healthy scope for a document-generation server with a discover→validate→build workflow. The only bloat is build_from_structure, a pure duplicate of build_document that adds no capability.

    Completeness4/5

    The generation lifecycle is well covered: discover supported ministries, fetch formatting rules, fetch writing guidance, draft a press structure from facts, validate, build HWPX, and optionally export Markdown. Gaps are minor — there is no tool to read/parse an existing HWPX or to inspect/regenerate a previously built file, so agents cannot round-trip an existing document.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI models to read, create, and edit Korean HWPX documents with advanced support for tables, paragraphs, styles, and images. It features enhanced stability through atomic file writing and smart layout recalculation to prevent document corruption.
      34
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables secure local proofreading of Korean official documents (.hwpx/.hwp) using 3-layer AI correction for spelling, grammar, and official document style. Provides 50 administrative document templates for generating standardized official correspondence without cloud dependencies or API keys.
      24
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to control Hancom's HWP/HWPX documents (Korean word processor) via COM interface on Windows, supporting creation, editing, formatting, and export.
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Turns your intent and source facts into approval-ready Korean public-sector documents — reports, official letters, regulations, press releases, and slides — as HTML, PDF, HWPX, and PPTX. Everything runs locally so your documents never leave your machine; only formatting-rule fragments are fetched from a policy server.
      3
      -