sinmb79/Construction-project-master

건설/건축 공사 사업계획을 AI와 함께 만듭니다

8
GitHub 스타
0
포크
Python
언어
MIT
라이선스
2026.04.04
최근 푸시
2026.04.03
별표한 날

AI 분석

설치 난이도: 보통
큐레이터 노트
한국 건설/토목 프로젝트 기획 자동화에 관심이 있다면 참고할 가치가 있습니다. 특히 MCP 프로토콜을 활용한 AI 에이전트 연동 사례로 유용하며, 도메인 특화 프롬프트 템플릿과 다양한 출력 형식(Excel, Word, SVG, DXF, PNG)을 지원하는 점이 인상적입니다.

강점

  • 한국 건설/토목 프로젝트 기획에 특화된 20개의 MCP 도구를 제공하여 자연어 입력만으로 인허가 검토, 물량 산정, 단가 조회, 문서/도면 생성, 3D 렌더링까지 자동화할 수 있습니다.
  • 다양한 MCP 클라이언트(Claude, ChatGPT 등)와 호환되며, HTTP 스트리밍 프로토콜을 지원하여 확장성이 좋습니다.
  • Gemini 기반 3D Bird's-Eye View 및 Perspective View 생성 기능을 포함하여 시각적 산출물까지 제공합니다.

약점

  • README에 프로젝트 구조가 일부만 표시되어 있어 전체 코드베이스 파악이 어렵습니다.
  • API 키 설정이 여러 개(DATA_GO_KR_API_KEY, VWORLD_API_KEY, GEMINI_API_KEY) 필요하여 초기 설정이 다소 복잡할 수 있습니다.
  • 로컬 서버를 ChatGPT에 연결하려면 cloudflared 같은 터널링 도구가 추가로 필요합니다.

주의사항

  • 해당 프로젝트는 아직 초기 단계(8 stars, 0 forks)이므로 프로덕션 환경에서 사용 시 충분한 테스트가 필요합니다.
  • API 키를 안전하게 관리해야 하며, 특히 Windows DPAPI 기반 암호화 저장소 사용을 권장합니다.
  • 생성된 문서/도면/렌더의 정확성은 입력 데이터와 API 응답에 의존하므로, 실제 업무에 사용하기 전에 검증이 필요합니다.

시작 가이드

  • 저장소를 클론하고 requirements.txt로 의존성을 설치한 후, .env 파일에 API 키를 설정하여 서버를 실행해보세요.
  • 제공된 예시(도로 프로젝트 파싱, 인허가 절차 확인, SVG 도면 생성, Bird's-Eye View 렌더)를 따라 기능을 테스트해보세요.
  • Claude Desktop 또는 ChatGPT Developer Mode에 MCP 서버를 연결하여 실제 워크플로우에서 활용해보세요.

README 한국어 번역

이 번역은 AI가 원문 README를 옮긴 것입니다. 원문이 항상 우선합니다.

CivilPlan MCP v2.0.0

한국형 토목·건축 프로젝트 기획을 MCP 도구로 구조화하고 문서·도면·3D 렌더까지 생성하는 서버입니다.

소개

CivilPlan MCP는 자연어 프로젝트 설명을 받아 인허가 검토, 물량 산정, 단가 조회, 투자 문서 작성, SVG/DXF 도면 생성, 3D Bird's-Eye View 렌더링까지 연결하는 20개 MCP 도구를 제공합니다.

주요 흐름은 프로젝트 파싱 → 법적·사업성 검토 → 산출물 생성입니다.

flowchart LR
    A["사용자 요청<br/>Natural-language request"] --> B["civilplan_parse_project"]
    B --> C["법적·기획 분석<br/>legal / planning analysis"]
    B --> D["물량·단가·사업성<br/>quantity / pricing / feasibility"]
    B --> E["문서·도면 생성<br/>docs / drawings"]
    B --> F["3D 렌더 생성<br/>bird's-eye / perspective render"]
    C --> G["MCP 응답 JSON"]
    D --> G
    E --> G
    F --> G

누가 쓰면 좋은가

대상 쓰는 이유
지자체·공공 발주 담당자 초기 타당성, 절차, 예산 초안이 빠르게 필요할 때 사용합니다.
토목·건축 엔지니어 기획 단계 물량, 단가, 문서 초안을 자동화할 수 있습니다.
개발사업 기획자 자연어 설명만으로 구조화된 프로젝트 데이터와 시각 자료를 얻을 수 있습니다.
AI 에이전트 운영자 Claude, ChatGPT, 기타 MCP 클라이언트에 토목/건축 전용 도구 세트를 연결할 수 있습니다.

주요 기능

v2.0.0 변경점

항목 설명
civilplangeneratebirdseye_view Gemini 기반 3D Bird's-Eye View와 Perspective View를 한 번에 생성합니다.
GEMINIAPIKEY 설정 .env와 Windows DPAPI 기반 setup_keys.py 양쪽에서 Gemini 키를 읽습니다.
도메인 프롬프트 템플릿 도로, 건축, 상하수도, 하천, 조경, 복합 프로젝트별 렌더 문구를 분리했습니다.
총 20개 MCP 도구 기존 기획/문서/도면 도구에 3D 시각화를 추가했습니다.

도구 목록

기획·분석 도구

도구 설명
civilplanparseproject 자연어 프로젝트 설명을 구조화된 JSON으로 변환합니다.
civilplangetlegal_procedures 사업 조건에 맞는 인허가·환경 절차를 정리합니다.
civilplangetphase_checklist 단계별 체크리스트를 생성합니다.
civilplanevaluateimpact_assessments 영향평가 필요 여부를 검토합니다.
civilplanestimatequantities 개략 물량을 산정합니다.
civilplangetunit_prices 지역 보정이 반영된 단가를 조회합니다.
civilplangetapplicable_guidelines 적용 대상 설계 기준을 찾습니다.
civilplanfetchguideline_summary 기준 전문의 핵심 항목을 요약합니다.
civilplanselectbid_type 발주·입찰 방식을 추천합니다.
civilplanestimatewaste_disposal 건설폐기물 물량과 처리비를 계산합니다.
civilplanqueryland_info 토지·지목·용도지역 정보를 조회합니다.
civilplananalyzefeasibility IRR, NPV, DSCR 등 사업성을 계산합니다.
civilplanvalidateagainst_benchmark 공공 기준이나 벤치마크와 비교합니다.

문서·도면 도구

도구 설명
civilplangenerateboq_excel BOQ Excel 파일을 생성합니다.
civilplangenerateinvestment_doc 투자·사업계획 Word 문서를 생성합니다.
civilplangeneratebudget_report 예산 보고서를 작성합니다.
civilplangenerateschedule 일정표 Excel 파일을 생성합니다.
civilplangeneratesvg_drawing SVG 개략 도면을 생성합니다.
civilplangeneratedxf_drawing DXF CAD 도면을 생성합니다.
civilplangeneratebirdseye_view Bird's-Eye / Perspective PNG 렌더를 생성합니다.

지원 도메인

도메인 설명
토목_도로 도로, 진입로, 포장, 차선 중심 프로젝트
건축 건물, 복지관, 학교, 오피스 등 건축 프로젝트
토목_상하수도 상수도, 하수도, 우수도, 관로 중심 프로젝트
토목_하천 하천 정비, 제방, 배수, 수변 구조물 프로젝트
조경 공원, 녹지, 식재, 휴게 공간 프로젝트
복합 다분야가 섞인 복합 개발 프로젝트

빠른 시작 가이드

1. 저장소 받기

git clone https://github.com/sinmb79/Construction-project-master.git
cd Construction-project-master
python -m venv.venv

2. 가상환경 활성화와 패키지 설치

# Windows.venv\Scripts\activate

# macOS / Linux
source.venv/bin/activate

python -m pip install -r requirements.txt

3. API 키 설정

방법 명령 설명
.env 파일 copy.env.example.env (Windows)<br/>cp.env.example.env (macOS/Linux) 로컬 개발용으로 가장 단순합니다.
암호화 저장소 python setup_keys.py Windows DPAPI에 키를 암호화 저장합니다.

.env 예시는 아래와 같습니다.

DATA_GO_KR_API_KEY=
VWORLD_API_KEY=
GEMINI_API_KEY=

4. 서버 실행

python server.py

실행 주소는 http://127.0.0.1:8765/mcp 입니다.

5. MCP 클라이언트 연결

Claude Code

claude mcp add --transport http civilplan http://127.0.0.1:8765/mcp

Claude Desktop

항목
서버 유형 HTTP MCP server
URL http://127.0.0.1:8765/mcp
Windows 설정 파일 %APPDATA%\Claude\claudedesktopconfig.json

HTTP MCP 서버를 추가한 뒤 Claude Desktop을 재시작하세요.

ChatGPT Developer Mode

단계 설명
1 ChatGPT에서 Settings → Apps → Advanced settings → Developer mode를 켭니다.
2 Create app를 눌러 원격 MCP 서버를 등록합니다.
3 로컬 서버는 직접 연결되지 않으므로 터널 URL이 필요합니다.

cloudflared 예시는 아래와 같습니다.

cloudflared tunnel --url http://127.0.0.1:8765

터널이 만든 HTTPS URL을 ChatGPT 앱 생성 화면에 넣으세요.

기타 MCP 클라이언트

항목
프로토콜 Streaming HTTP
URL http://127.0.0.1:8765/mcp

실전 사용 예시

예시 1: 도로 프로젝트 파싱

AI에게 이렇게 말하세요

도로 신설 L=890m B=6m 아스콘 2차선 상하수도 경기도 화성시 2026~2028

호출되는 도구

civilplan_parse_project(
    description="도로 신설 L=890m B=6m 아스콘 2차선 상하수도 경기도 화성시 2026~2028"
)

결과 예시

{
  "project_id": "PRJ-20260404-001",
  "domain": "토목_도로",
  "sub_domains": ["토목_상하수도"],
  "project_type": ["도로", "하수도"],
  "road": {
    "length_m": 890.0,
    "width_m": 6.0,
    "lanes": 2,
    "pavement": "아스콘"
  },
  "region": "경기도",
  "year_start": 2026,
  "year_end": 2028,
  "parsed_confidence": 0.92
}

예시 2: 인허가 절차 확인

AI에게 이렇게 말하세요

경기도 공공 도로 사업(총사업비 10.67억, 연장 890m)에 필요한 인허가를 정리해줘

호출되는 도구

civilplan_get_legal_procedures(
    domain="토목_도로",
    project_type="도로",
    total_cost_billion=10.67,
    road_length_m=890,
    development_area_m2=None,
    region="경기도",
    has_farmland=False,
    has_forest=False,
    has_river=False,
    is_public=True
)

결과 예시

{
  "summary": {
    "total_procedures": 3,
    "mandatory_count": 2,
    "optional_count": 1,
    "estimated_prep_months": 12,
    "critical_path": [
      "도시·군관리계획 결정",
      "개발행위허가",
      "소규모환경영향평가"
    ]
  },
  "timeline_estimate": {
    "인허가완료목표": "착공 18개월 전"
  }
}

예시 3: SVG 도면 생성

AI에게 이렇게 말하세요

위 프로젝트로 개략 평면도 SVG를 만들어줘

호출되는 도구

civilplan_generate_svg_drawing(
    drawing_type="평면도",
    project_spec=project_spec,
    quantities=quantities,
    scale="1:200",
    output_filename="road-plan.svg"
)

결과 예시

{
  "status": "success",
  "file_path": "output/road-plan.svg",
  "drawing_type": "평면도",
  "quantity_sections": ["earthwork", "pavement", "drainage"]
}

예시 4: Bird's-Eye View 렌더 생성

AI에게 이렇게 말하세요

이 도로 사업을 발표용 3D 조감도와 사람 시점 투시도로 만들어줘

호출되는 도구

civilplan_generate_birdseye_view(
    project_summary="경기도 화성시 도로 신설 890m, 폭 6m, 2차선 아스콘 포장, 상하수도 포함",
    project_spec=project_spec,
    svg_drawing="<svg>...</svg>",
    resolution="2K"
)

결과 예시

{
  "status": "success",
  "project_id": "PRJ-20260404-001",
  "model": "gemini-3-pro-image-preview",
  "resolution": "2K",
  "reference_image_path": "output/PRJ-20260404-001_reference.png",
  "birdseye_view": {
    "status": "success",
    "path": "output/PRJ-20260404-001_birdseye.png"
  },
  "perspective_view": {
    "status": "success",
    "path": "output/PRJ-20260404-001_perspective.png"
  }
}

프로젝트 구조

Construction-project-master/
├─ server.py                      # 서버 실행 진입점
├─ setup_keys.py                  # 암호화 키 저장 유틸
├─ requirements.txt               # 런타임 의존성
├─ pyproject.toml                 # 패키지 메타데이터
├─ README.md                      # 사용 가이드
├─ civilplan_mcp/
│  ├─ __init__.py                 # 버전 정보
│  ├─ config.py                   # 설정·경로·API 키 로딩
│  ├─ models.py                   # 도메인 enum
│  ├─ secure_store.py             # DPAPI 키 저장
│  ├─ prompts/
│  │  └─ birdseye_templates.py    # 도메인별 렌더 프롬프트
│  ├─ services/
│  │  └─ gemini_image.py          # Gemini 이미지 래퍼
│  ├─ tools/
│  │  ├─ birdseye_generator.py    # 3D 렌더 도구
│  │  ├─ drawing_generator.py     # SVG 도면 생성
│  │  ├─ dxf_generator.py         # DXF 도면 생성
│  │  └─...

원본 저장소: sinmb79/Construction-project-master

라이선스: MIT

게재 제외를 원하시면 삭제 요청을 보내주세요.