GIS MCP 서버
GIS 라이브러리(현재 Shapely 및 PyProj 지원)를 사용하여 대규모 언어 모델(LLM)을 GIS 작업에 연결하는 모델 컨텍스트 프로토콜(MCP) 서버 구현으로, AI 도우미가 공간 작업과 변환을 수행할 수 있습니다.
알파
버전 0.2.0(알파)이 현재 활발하게 개발 중입니다. 이 프로젝트 구축에 기여해 주실 개발자분들과 여러분의 참여를 환영합니다.
🎥 데모
Related MCP server: Math-MCP
📋 목차
🚀 특징
🔍 포괄적인 기하 연산(교집합, 합집합, 버퍼 등)
🌐 고급 좌표 변환 및 투영
📏 정확한 거리 및 면적 계산
🗺️ 공간 분석 및 검증
🛠️ MCP 호환 클라이언트와의 간편한 통합
📋 필수 조건
Python 3.10 이상
MCP 호환 클라이언트(Claude Desktop 또는 Cursor 등)
패키지 설치를 위한 인터넷 연결
🛠️ 설치
귀하의 요구 사항에 가장 적합한 설치 방법을 선택하세요.
📦 pip 설치
대부분의 사용자에게 pip 설치가 권장됩니다.
uv 패키지 관리자를 설치하세요:
지엑스피1
가상 환경 만들기(Python 3.10+):
uv venv --python=3.10패키지를 설치하세요:
uv pip install gis-mcp서버를 시작합니다:
gis-mcppip 구성
Claude 또는 Cursor와 함께 pip 설치를 사용하려면 다음 구성을 추가하세요.
클로드 데스크탑:
윈도우:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\Users\\YourUsername\\.venv\\Scripts\\gis-mcp",
"args": []
}
}
}리눅스/맥:
{
"mcpServers": {
"gis-mcp": {
"command": "/home/YourUsername/.venv/bin/gis-mcp",
"args": []
}
}
}커서 IDE ( .cursor/mcp.json 생성):
윈도우:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\Users\\YourUsername\\.venv\\Scripts\\gis-mcp",
"args": []
}
}
}리눅스/맥:
{
"mcpServers": {
"gis-mcp": {
"command": "/home/YourUsername/.venv/bin/gis-mcp",
"args": []
}
}
}구성 후:
YourUsername실제 사용자 이름으로 바꿔야 합니다.개발 설치의 경우
/path/to/gis-mcp프로젝트의 실제 경로로 바꾸십시오.변경 사항을 적용하려면 IDE를 다시 시작하세요.
이제 Claude나 Cursor를 통해 모든 GIS 작업을 사용할 수 있습니다!
🛠️ 개발 설치
기여자 및 개발자를 위한 정보:
uv 패키지 관리자를 설치하세요:
pip install uv가상 환경 만들기:
uv venv --python=3.10개발 모드에서 패키지를 설치하세요:
uv pip install -e .서버를 시작합니다:
python -m gis_mcp개발 구성
Claude 또는 Cursor와 함께 개발 설치를 사용하려면 다음 구성을 추가하세요.
클로드 데스크탑:
윈도우:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\path\\to\\gis-mcp\\.venv\\Scripts\\python",
"args": ["-m", "gis_mcp"]
}
}
}리눅스/맥:
{
"mcpServers": {
"gis-mcp": {
"command": "/path/to/gis-mcp/.venv/bin/python",
"args": ["-m", "gis_mcp"]
}
}
}커서 IDE ( .cursor/mcp.json 생성):
윈도우:
{
"mcpServers": {
"gis-mcp": {
"command": "C:\\path\\to\\gis-mcp\\.venv\\Scripts\\python",
"args": ["-m", "gis_mcp"]
}
}
}리눅스/맥:
{
"mcpServers": {
"gis-mcp": {
"command": "/path/to/gis-mcp/.venv/bin/python",
"args": ["-m", "gis_mcp"]
}
}
}구성 후:
YourUsername실제 사용자 이름으로 바꿔야 합니다.개발 설치의 경우
/path/to/gis-mcp프로젝트의 실제 경로로 바꾸십시오.변경 사항을 적용하려면 IDE를 다시 시작하세요.
이제 Claude나 Cursor를 통해 모든 GIS 작업을 사용할 수 있습니다!
🛠️ 사용 가능한 도구
Shapely Operations
기본 작업
도구 | 설명 |
| 사용자 정의 가능한 매개변수를 사용하여 형상 주변에 버퍼를 만듭니다. |
| 두 기하학의 교집합 찾기 |
| 두 개의 기하학을 결합합니다 |
| 기하학의 차이점을 찾으세요 |
| 기하학 사이의 대칭적 차이점을 찾으세요 |
기하학적 속성
도구 | 설명 |
| 기하학의 볼록 껍질 계산 |
| 기하학의 경계 상자 가져오기 |
| 기하학의 최소 회전된 사각형을 구합니다. |
| 기하학의 중심을 구하다 |
| 기하학의 경계를 구하다 |
| 기하학의 좌표를 얻으세요 |
| 기하학의 유형을 가져옵니다 |
변형
도구 | 설명 |
| 지정된 각도와 원점으로 기하학을 회전합니다. |
| x 및 y 요소로 기하학 크기 조정 |
| x, y, z 오프셋으로 기하학 변환 |
고급 작업
도구 | 설명 |
| 기하학의 삼각형을 만듭니다 |
| 점에서 보로노이 다이어그램을 만듭니다. |
| 여러 개의 기하학의 합집합을 만듭니다. |
측정
도구 | 설명 |
| 기하학의 길이를 구하세요 |
| 기하학의 면적을 구하다 |
검증 및 단순화
도구 | 설명 |
| 지오메트리가 유효한지 확인하세요 |
| 기하학을 유효하게 만드세요 |
| 지정된 허용오차로 기하학을 단순화합니다. |
PyProj 작업
좌표 변환
도구 | 설명 |
| CRS 간 좌표 변환 |
| CRS 사이에 기하학을 투영합니다. |
CRS 정보
도구 | 설명 |
| CRS에 대한 자세한 정보를 얻으세요 |
| 사용 가능한 모든 CRS 목록 가져오기 |
| 주어진 좌표에 대한 UTM 영역 가져오기 |
| 주어진 좌표에 대한 UTM CRS 가져오기 |
| 주어진 좌표에 대한 지구 중심 CRS 가져오기 |
측지 계산
도구 | 설명 |
| 측지 계산에 대한 정보를 얻으세요 |
| 지점 간 측지 거리 계산 |
| 주어진 거리와 방위각에서 지점을 계산합니다. |
| 측지 계산을 사용하여 다각형의 면적 계산 |
🛠️ 클라이언트 개발
도구 사용 예:
버퍼 작업
Tool: buffer
Parameters: {
"geometry": "POINT(0 0)",
"distance": 10,
"resolution": 16,
"join_style": 1,
"mitre_limit": 5.0,
"single_sided": false
}좌표 변환
Tool: transform_coordinates
Parameters: {
"coordinates": [0, 0],
"source_crs": "EPSG:4326",
"target_crs": "EPSG:3857"
}측지 거리
Tool: calculate_geodetic_distance
Parameters: {
"point1": [0, 0],
"point2": [10, 10],
"ellps": "WGS84"
}🔮 계획된 기능
더 많은 GIS 라이브러리(GDAL/OGR)에 대한 지원 추가
고급 공간 인덱싱 구현
래스터 작업에 대한 지원 추가
네트워크 분석 기능 구현
3D 기하학에 대한 지원 추가
성능 최적화 구현
🤝 기여하기
여러분의 참여를 환영합니다! 다음과 같은 방법으로 도움을 주세요.
저장소를 포크하세요
기능 브랜치를 생성합니다(
git checkout -b feature/AmazingFeature)변경 사항을 커밋합니다(
git commit -m 'Add some AmazingFeature')브랜치에 푸시(
git push origin feature/AmazingFeature)풀 리퀘스트 열기
PR 설명에 문제와 해결책을 명확하게 설명해 주세요. 해당되는 경우 관련 이슈 번호를 포함하세요.
📄 라이센스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
🔗 관련 프로젝트
모델 컨텍스트 프로토콜 - 핵심 MCP 구현
Shapely - 기하학적 객체의 조작 및 분석을 위한 Python 패키지
PyProj - PROJ 라이브러리에 대한 Python 인터페이스
📞 지원
지원이 필요하면 GitHub 저장소에서 이슈를 열어주세요.