MCP-Geo

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Can be used as a geocoding provider for the server through the GEOCODER_PROVIDER environment variable

  • Default geocoding provider through Nominatim (nominatim.openstreetmap.org) to provide geocoding and reverse geocoding capabilities

MCP-지오

GeoPY를 이용한 MCP 서버 지오코딩!

📋 시스템 요구 사항

  • 파이썬 3.6 이상

📦 종속성

필요한 모든 종속성을 설치하세요:

지엑스피1

필수 패키지

  • fastmcp : 모델 컨텍스트 프로토콜 서버를 구축하기 위한 프레임워크
  • geoPy : 위치에 접근하고 지오코딩/역지오코딩을 수행하는 Python 라이브러리입니다.

모든 종속성은 requirements.txt 에 지정되어 있어 쉽게 설치할 수 있습니다.

📑 목차

🛠️ MCP 도구

이 MCP 서버는 대규모 언어 모델(LLM)에 다음과 같은 지오코딩 도구를 제공합니다.

지오코드_위치

  • 사용자가 제공한 주소나 장소 이름을 입력받아 가장 일치하는 위도, 경도, 형식이 지정된 주소를 반환합니다.
  • 오류를 정상적으로 처리하고 위치를 찾을 수 없거나 오류가 발생하면 None을 반환합니다.

역방향 지오코드

  • 위도와 경도를 입력받아 가장 가까운 주소를 반환합니다.
  • 지도상의 특정 지점에 대한 설명 정보를 찾는 데 유용합니다.

지오코드_세부_정보

  • geocode_location과 비슷하지만 지오코더에서 지원하는 경우 경계 상자 및 더 자세한 주소 정보와 같은 추가 데이터를 반환합니다.

지오코드_다중_위치

  • 주소 문자열 목록을 받아서 각 주소에 대한 지오코딩 결과(위도/경도/주소) 목록을 반환합니다.
  • 지오코딩 서비스 할당량 초과를 피하기 위해 속도가 제한되었습니다.

역방향 지오코딩 다중 위치

  • [위도, 경도] 쌍의 목록을 허용하여 각각에 대한 역방향 지오코딩을 수행합니다.
  • 위도, 경도, 주소를 포함하는 사전 목록을 반환하고, 검색에 실패하면 None을 반환합니다. 이 역시 속도 제한이 있습니다.

주소 간 거리

  • 두 주소나 지명 사이의 거리를 계산합니다.
  • 2개의 주소와 측정 단위(마일/킬로미터)를 허용합니다.
  • 지정된 단위로 거리를 반환하거나, 두 주소 모두 지오코딩에 실패한 경우 None을 반환합니다.

좌표 간 거리

  • 두 개의 위도/경도 쌍 사이의 거리를 계산합니다.
  • 위도와 경도 2쌍과 측정 단위(킬로미터/마일)를 허용합니다.
  • 지정된 단위로 거리를 반환합니다.

🚀 시작하기

저장소를 복제합니다.

git clone https://github.com/webcoderz/MCP-Geo.git cd MCP-Geo

📦 설치 옵션

이 MCP 서버는 Claude Desktop이나 다른 곳에 설치할 수 있습니다. 필요에 가장 적합한 옵션을 선택하세요.

옵션 1: Claude Desktop용 설치

FastMCP를 사용하여 설치:

fastmcp install geo.py --name "MCP Geo"

옵션 2: 다른 곳에 설치

이 서버를 다른 곳에서 사용하려면:

  1. 설정 파일에 다음 구성을 추가합니다.
{ "mcp-geo": { "command": "uv", "args": [ "--directory", "MCP-Geo", "run", "geo.py" ], "env": { "NOMINATIM_URL": "${NOMINATIM_URL}", "SCHEME": "http", "GEOCODER_PROVIDER": "nominatim" } } }

🔒 안전 기능 • 속도 제한: 각 지오코딩 호출은 사용 제한을 위반하는 과도한 요청을 방지하기 위해 속도 제한(예: 1초 지연)을 적용합니다. • 오류 처리: 지오코딩 예외(시간 초과, 서비스 오류)를 포착하고 충돌 대신 안전한 None 결과를 반환합니다.

📚 개발 문서

이 서버를 확장하거나 수정하려면 다음을 수행하세요. • 각 도구의 구현 방식과 geopy 통합 방식을 geo.py에서 확인하세요. • 환경 변수를 조정하여 제공자(Nominatim, ArcGIS, Bing 등)를 변경하세요. • 경계 상자, 언어 설정 또는 고급 데이터 추출과 같은 고급 사용법은 geopy 공식 문서를 참조하세요.

⚙️ 환경 변수

환경 변수를 사용하여 서버를 구성합니다.

변하기 쉬운설명기본
GEOCODER_PROVIDER (선택 사항)"nominatim", "arcgis" 또는 "bing"지명
NOMINATIM_URL (선택 사항)Nominatim 도메인노미나팀.오픈스트리트맵.org
SCHEME (선택 사항)http/httpshttp
ARC_USERNAME (ArcGIS의 경우 선택 사항)ArcGIS 사용자 이름없음
ARC_PASSWORD (ArcGIS의 경우 선택 사항)ArcGIS 비밀번호없음
BING_API_KEY (Bing에 필요)Bing Maps 키입니다.없음

이러한 설정은 셸이나 환경의 MCP 설정 파일에서 설정할 수 있습니다. 더 많은 설정이 필요한 경우 geo.py 파일을 편집하여 사용 중인 지오코더에 추가하면 됩니다.

ID: ujss4qy5fs