Location Services Python ★ 202

jagan-shanmugam/open-streetmap-mcp

OpenStreetMap entegrasyonlu, konum tabanlı hizmetler ve coğrafi veri sağlayan bir MCP sunucusu.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "jagan-shanmugam-open-streetmap-mcp": {
      "command": "python",
      "args": [
        "-m",
        "open_streetmap_mcp"
      ]
    }
  }
}

OpenStreetMap (OSM) MCP Sunucusu

OpenStreetMap MCP sunucu uygulaması, konum tabanlı hizmetler ve jeocoğrafik veri ile LLM yeteneklerini geliştir.

Demo

Buluşma Noktası Optimizasyonu

Meeting Point Use Case

Mahalle Analizi

Neighborhood Analysis Use Case

Otopark Arama

Parking Search Use Case

Kurulum

Claude Desktop, Cursor, Windsurf vb. MCP Host'larında

  • osm-mcp-server: Ana sunucu, genel kullanım için mevcuttur.

    "mcpServers": {
      "osm-mcp-server": {
        "command": "uvx",
        "args": [
          "osm-mcp-server"
        ]
      }
    }
    

Özellikler

Bu sunucu, LLM'lerin OpenStreetMap verileriyle etkileşim kurması için araçlar sağlayarak, konum tabanlı uygulamaları şu şekilde etkinleştir:

  • Adresleri ve yer adlarını koordinatlara dönüştür
  • Koordinatları adreslere ters dönüştür
  • Yakındaki ilgi noktaları bul
  • Konumlar arasında yol tarifleri al
  • Sınırlayıcı kutu içinde kategoriye göre yerleri ara
  • Birden fazla kişi için optimal buluşma noktalarını öner
  • Alanları keşfet ve kapsamlı konum bilgisi al
  • Bir konumun yakınında okullar ve eğitim kurumlarını bul
  • Ev ve iş arasında işe gidiş-gelişleri analiz et
  • Konnektör ve güç filtrelemesiyle EV şarj istasyonlarını konumlandır
  • Gayrimenkul için mahalle yaşanabilirlik analizini gerçekleştir
  • Kullanılabilirlik ve ücret bilgisiyle otopark tesislerini bul

Bileşenler

Kaynaklar

Sunucu konum tabanlı kaynakları uygular:

  • location://place/{query}: Ad veya adres ile yerleri hakkında bilgi al
  • location://map/{style}/{z}/{x}/{y}: Belirtilen koordinatlardaki stillendirilmiş harita kutucuklarını al

Araçlar

Sunucu birçok jeocoğrafik aracı uygular:

  • geocode_address: Metni coğrafik koordinatlara dönüştür
  • reverse_geocode: Koordinatları insan tarafından okunabilir adreslere dönüştür
  • find_nearby_places: Bir konumun yakınındaki ilgi noktalarını keşfet
  • get_route_directions: Konumlar arasında adım adım yönleri al
  • search_category: Bir alandaki belirli kategorilerin yerlerini bul
  • suggest_meeting_point: Birden fazla kişi için optimal buluşma noktaları bul
  • explore_area: Bir mahalle hakkında kapsamlı veri al
  • find_schools_nearby: Belirli bir konumun yakınında eğitim kurumlarını konumlandır
  • analyze_commute: Ev ve iş arasında ulaşım seçeneklerini karşılaştır
  • find_ev_charging_stations: Filtreleme ile EV şarj altyapısını konumlandır
  • analyze_neighborhood: Gayrimenkul için mahalle yaşanabilirliğini değerlendir
  • find_parking_facilities: Bir varış noktasının yakınında otopark seçeneklerini konumlandır

Yerel Test

Sunucuyu Çalıştırma

Sunucuyu yerel olarak çalıştırmak için:

  1. Paketi geliştirme modunda kurun:
pip install -e .
  1. Sunucuyu başlatın:
osm-mcp-server
  1. Sunucu başlayacak ve standart giriş/çıkışta MCP isteklerini dinleyecektir.

Örnek İstemcilerle Test Etme

Depo examples/ dizininde iki örnek istemci içerir:

Temel İstemci Örneği

client.py, OSM MCP sunucusunun temel kullanımını gösterir:

python examples/client.py

Bu işlem şunları yapacaktır:

  • Yerel olarak çalışan sunucuya bağlan
  • San Francisco hakkında bilgi al
  • Bölgedeki restoranları ara
  • İlerleme izlemesiyle kapsamlı harita verileri al

LLM Entegrasyonu Örneği

llm_client.py, LLM entegrasyonu için tasarlanmış bir yardımcı sınıf sağlar:

python examples/llm_client.py

Bu örnek, bir LLM'nin Konum Asistanını nasıl kullanabileceğini gösterir:

  • Metin sorgularından konum bilgisi al
  • Yakındaki ilgi noktaları bul
  • Konumlar arasında yönleri al
  • Optimal buluşma noktaları bul
  • Mahalleleri keşfet

Kendi İstemcinizi Yazma

Kendi istemcinizi oluşturmak için:

  1. MCP istemcisini içe aktarın:
from mcp.client import Client
  1. İstemciyi sunucu URL'iniz ile başlatın:
client = Client("http://localhost:8000")
  1. Araçları çağırın veya kaynaklara erişin:
# Örnek: Bir adresi coğrafya kodla
results = await client.invoke_tool("geocode_address", {"address": "New York City"})

Yerel sunucu için Claude Desktop yapılandırması

MacOS'ta: ~/Library/Application\ Support/Claude/claude_desktop_config.json Windows'ta: %APPDATA%/Claude/claude_desktop_config.json

Geliştirme/Yayınlanmamış Sunucuları Yapılandırması
"mcpServers": {
  "osm-mcp-server": {
    "command": "uv",
    "args": [
      "--directory",
      "/path/to/osm-mcp-server",
      "run",
      "osm-mcp-server"
    ]
  }
}

Geliştirme

Oluşturma ve Yayınlama

Paketi dağıtım için hazırlamak üzere:

  1. Bağımlılıkları senkronize edin ve lockfile'ı güncelleyin:
uv sync
  1. Paket dağıtımları oluşturun:
uv build

Bu, dist/ dizininde kaynak ve wheel dağıtımları oluşturacaktır.

  1. PyPI'ye yayınlayın:
uv publish

Not: PyPI kimlik bilgilerini ortam değişkenleri veya komut bayrakları aracılığıyla ayarlamanız gerekecektir.

Hata Ayıklama

MCP sunucuları stdio üzerinden çalıştığından, hata ayıklama zor olabilir. En iyi hata ayıklama deneyimi için MCP Inspector kullanmanızı şiddetle tavsiye ederiz.

MCP Inspector'ı npm ile bu komut aracılığıyla başlatabilirsiniz:

npx @modelcontextprotocol/inspector uv --directory /path/to/osm-mcp-server run osm-mcp-server

Başlatıldığında, Inspector hata ayıklamaya başlamak için tarayıcınızda erişebileceğiniz bir URL gösterecektir.

Benzer MCP sunucuları

Daha fazla: Location Services →