QGIS MCP의 개요
Nicolas Karasiak가 관리하는 QGIS MCP는 QGIS 플러그인을 통해 MCP 클라이언트를 실행 중인 QGIS Desktop에 연결합니다. QGIS 자체의 플러그인 관리자에서 설치하는 플러그인은 QGIS의 이벤트 루프 안에서 localhost 포트 9876으로 TCP 소켓 서버를 실행합니다. GitHub 아카이브에서 uvx로 실행하는 MCP 서버는 도구 호출을 PyQGIS 명령으로 바꿉니다. QGIS 3.28부터 4.x까지 지원하며, Claude Code, Codex, Gemini CLI, Cursor, VS Code, Claude Desktop과 열 개 남짓한 다른 클라이언트의 설정 방법이 문서화되어 있습니다.
지금 활발히 관리되는 QGIS 서버는 이것입니다. 더 잘 알려진 jjsantos01/qgis_mcp는 스타가 약 1,140개이지만 2025년 10월 1일 이후 커밋이 없습니다. nkarasiak/qgis-mcp는 2026년 3월에 만들어졌고, 스타는 약 403개이며, 2026년 10월 17일에 v0.15.2를 릴리스했습니다. 플러그인은 GPL v2 이상, MCP 서버는 MIT입니다.
QGIS MCP 설치 방법
uvx --from https://github.com/nkarasiak/qgis-mcp/archive/refs/heads/main.zip qgis-mcp-serverQGIS MCP, 쓸 만한 가치가 있습니까?
QGIS MCP는 대부분의 GIS 서버가 멈추는 '레이어를 불러와 렌더링하기' 수준의 데모를 훨씬 넘어섭니다. 125개의 도구는 프로젝트, 레이어, 커밋과 롤백을 지원하는 피처 편집, 필드 계산, 스타일 지정, PostgreSQL 연결과 SQL, 래스터 계산기와 구역 통계, 모델과 백그라운드 작업을 포 함한 Processing 도구 상자 전체, 출력 레이아웃과 아틀라스를 다룹니다. 에이전트가 세션을 바꾸기 전에 스냅샷을 남기는 체크포인트도 있습니다. 도구에는 readOnly, destructive, idempotent 주석이 붙어 있어, 이를 따르는 클라이언트는 피처를 삭제하기 전에 확인을 요청합니다.
설계에서 컨텍스트 비용에 신경 쓴 흔적이 보입니다. 기본인 granular 모드에서는 도구 목록이 큽니다. QGIS_MCP_TOOL_MODE=compound를 설정하면 동작과 매개변수를 받는 27개의 묶음 도구로 접히며, 모든 명령에는 여전히 접근할 수 있습니다. 서버 하나로 서로 다른 포트에 있는 여러 QGIS 창을 조작할 수도 있고, 창마다 자체 연결과 잠금이 있습니다. 다만 이 기능은 compound 모드에서 작동하지 않으며, 그 경우 서버는 엉뚱한 창에 쓰기를 보내는 대신 시작을 거부합니다.
위험은 도구 하나에 있습니다. execute_code는 임의의 PyQGIS를 실행하며, 기본적으로 소켓에는 인증이 없습니다. localhost에 바인딩되지만, 포트 9876에 닿을 수 있는 로컬 프로세스라면 무엇이든 QGIS를 조작할 수 있습니다. QGIS_MCP_TOKEN 공유 비밀을 쓰면 다른 사용자의 접근을 막을 수 있고, 플러그인은 이 토큰 없이는 루프백이 아닌 주소에 바인딩하기를 거부합니다. 올바른 기본값입니다. 설치 명령은 고정된 패키지가 아니라 GitHub의 main 브랜치 아카이브를 가져오므로, main이 갱신되면 다음 새로고침 때 실행되는 코드도 바뀝니다.
오래된 jjsantos01 서버와 비교하면 고민할 것이 없습니다. 그 프로젝트는 스타가 더 많지만 13개월째 커밋이 없고, 이 프로젝트는 몇 주마다 수정을 내보내며 열린 issue가 하나뿐입니다. 한계는 모든 QGIS 연결 도구에 공통입니다. 모델이 PyQGIS와 Processing 알고리즘 이름을 잘 알아야 하고, 잘못된 CRS나 조용한 재투영은 신입 분석가만큼이나 에이전트도 쉽게 저지릅니다.
제 역할을 하는 곳
군 의회의 도시계획 분석가
템플릿 하나로 모든 선거구의 필지 지도 시리즈 만들기
에이전트에게 필지 레이어와 선거구 레이어를 불러오고, 지도, 범례, 축척 막대가 있는 레이아웃을 만들고, 선거구 기준 아틀라스를 설정한 뒤 export_atlas로 PDF로 내보내게 합니다. 무료이며, 시리즈마다 레이아웃을 만지작거리던 한 시간을 아낍니다.
고객을 위해 후보지를 검토하는 환경 컨설턴트
후보지 40곳의 토지 피복 통계 계산하기
후보지 폴리곤에 대해 토지 피복 래스터의 zonal_statistics를 요청하고 표를 내보냅니다. 필드 계산을 잘못했을 때 되돌릴 수 있도록 먼저 체크포인트를 만드십시오.
QGIS 플러그인을 작성하는 GIS 개발자
코딩 에이전트가 실행 중인 QGIS에서 플러그인 변경을 테스트하게 하기
Claude Code에서 reload_plugin과 get_message_log를 써서 QGIS를 재시작하지 않고 반복 작업합니다. 공용 워크스테이션에서는 QGIS_MCP_TOKEN을 설정하십시오. 그렇지 않으면 어떤 로컬 프로세스에서든 execute_code에 닿을 수 있습니다.
도입 전 확인할 점
- 설정
- QGIS의 플러그인 관리자에서 QGIS MCP 플러그인을 설치하고, QGIS를 재시작한 뒤 Start Server를 누릅니다. 그다음 클라이언트에 uvx --from https://github.com/nkarasiak/qgis-mcp/archive/refs/heads/main.zip qgis-mcp-server를 추가합니다. 양쪽이 연결되면 ping 도구가 pong을 돌려줍니다. 업데이트 후에는 diagnose로 버전을 확인합니다.
- 연동
- 프로젝트, 레이어, 피처, 편집, 스타일, 연결, 렌더링, 프로세싱, 레이아웃, 아틀라스, 쿼리, 시스템에 걸친 125개의 도구가 있고, compound 모드에서는 27개입니다. QGIS_MCP_TRANSPORT로 Streamable HTTP를 쓸 수 있고, QGIS_MCP_INSTANCES로 여러 QGIS 창을 조작합니다.
- 데이터와 개인정보
- 모든 것이 로컬에서 실행됩니다. 지도 데이터와 속성은 클라이언트를 거쳐 모델 제공업체로 갑니다. localhost:9876의 소켓은 QGIS_MCP_TOKEN을 설정하지 않으면 인증이 없고, execute_code는 임의의 PyQGIS를 실행합니다. 웹 레이어와 PostgreSQL 연결은 외부 데이터를 가져오며, 모델이 그 데이터를 읽습니다.
- 대규모 사용 시 비용
