Skip to main content
Glama
İzmir Açık Veri MCP
by batuoncel

İzmir Açık Veri MCP

İzmir'in açık verisini (ulaşım, nöbetçi eczane, hava kalitesi, duyurular) MCP üzerinden Claude'a bağlayan sunucu. Yaşar Üniversitesi Gen-AI / Mekatronik Lab, Proje 09.

Durum (1. hafta)

Araç

Ne yapar

Kaynak

merhaba

Bağlantı testi

-

otobus_konumlari

Bir ESHOT hattındaki otobüslerin canlı konumu

openapi.izmir.bel.tr/api/iztek/hatotobuskonumlari/{hatNo}

Related MCP server: IzmirMCP

Kurulum

Gereken: Node.js 20+

npm install
npm run build

Claude olmadan test etmek için (MCP Inspector):

npm run inspect

Claude Desktop'a bağlama

Ayar dosyasını açmanın en kolay yolu: Claude Desktop → Ayarlar → Developer → Edit Config. Elle açmak isterseniz:

Sistem

Ayar dosyası

Windows

%APPDATA%\Claude\claude_desktop_config.json

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Dosyaya şunu ekleyin (dosyada başka ayarlar varsa sadece mcpServers kısmını ekleyin) ve yolu kendi klasörünüze göre değiştirin:

{
  "mcpServers": {
    "izmir-acik-veri": {
      "command": "node",
      "args": ["C:\\yol\\izmir-mcp\\build\\index.js"]
    }
  }
}

macOS'ta yol şöyle olur: "/Users/kullanici/izmir-mcp/build/index.js"

Sonra Claude Desktop'ı tamamen kapatıp açın (Windows'ta sistem tepsisinden, macOS'ta Cmd+Q ile).

macOS notları (Claude Desktop yeni sürüm)

  • Ayarlarda Developer → Edit Config yoksa dosyayı Terminal'den oluşturun. Önce which node ile Node'un tam yolunu öğrenin (örn. /usr/local/bin/node), sonra "command" alanına "node" yerine bu tam yolu yazın.

  • Dosya yoksa klasörü ve dosyayı şöyle oluşturabilirsiniz: mkdir -p ~/Library/Application\ Support/Claude, sonra open -e ile açıp JSON'u yapıştırın.

  • Bağlantı çalışıyorsa sunucu Ayarlar → Customize → Connectors altında izmir-acik-veri olarak görünür.

Claude Code'a bağlama

izmir-mcp klasörünün içinde:

claude mcp add izmir-acik-veri --scope user -- node "$(pwd)/build/index.js"

Windows PowerShell'de $(pwd)/build/index.js yerine tam yolu yazın. Kontrol için Claude Code'da /mcp yazın.

Deneme soruları

  • "merhaba aracını Batu için çalıştır"

  • "35 numaralı hatta şu an kaç otobüs var?"

API notları (1. hafta testi)

  • Canlı otobüs konumu çalışıyor. Dikkat: KoorX = enlem, KoorY = boylam, ondalık ayracı virgül ("38,42").

  • Nöbetçi eczaneler (/api/ibb/nobetcieczaneler) 200 dönüyor; 2. haftanın kaynak adayı.

  • API kararsız: aynı uç nokta bazen zaman aşımına düşüyor, bazen 0,5 sn'de dönüyor. acikveriwapi.izmir.bel.tr (durak/hat listeleri) testte 40 sn içinde cevap vermedi. Bu yüzden önbellek (Redis) ve yeniden deneme şart.

  • Veri kataloğu: https://acikveri.bizizmir.com (CKAN API: /api/3/action/package_search?q=eshot)

Sonraki adımlar

    1. hafta: kalan iki kaynağın testi (eczane, hava kalitesi), durak bazlı "durağa yaklaşan otobüsler"

  • Önbellek + yeniden deneme, uzak (HTTP) sürüm + API anahtarı, Docker

Lisans

MIT

Available Tools

2 tools
merhabaMerhabaA

Sunucunun çalıştığını test eder. Verilen isme İzmir'den selam döner.

Inputs: isim (required).

otobus_konumlariHattaki otobüslerin anlık konumuA

Bir ESHOT otobüs hattındaki (ör. 35, 202) tüm otobüslerin canlı konumunu (enlem/boylam) getirir. 'yon' alanı ESHOT'un yön kodudur (0 veya 1) ve otobüsün hattın iki yönünden hangisinde gittiğini gösterir; hangi kodun hangi uca gittiği henüz doğrulanmadı, bu yüzden kullanıcıya yön adı söyleme, sadece aynı yönde giden otobüsleri grupla. Aynı otobusId birden fazla konum kaydında görünebilir; otobüs sayısı olarak benzersiz otobusId sayısını kullan.

Inputs: hatNo (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.8/5.0

    Scored across 2 tools

    Disambiguation5/5

    The two tools are clearly distinct: 'merhaba' is a trivial connectivity/greeting test, while 'otobus_konumlari' retrieves live bus positions for a specified route. There is no realistic overlap or risk of an agent confusing them.

    Naming Consistency4/5

    Both names are lowercase Turkish and use underscores for multiword concepts ('otobus_konumlari'), which is reasonably consistent. However, neither follows an action-oriented verb_noun convention, and 'merhaba' is a single-word outlier.

    Tool Count3/5

    Only two tools exist, and one is a non-domain smoke-test greeting. The single real data tool makes the surface feel thin for a server branded as an İzmir open-data source.

    Completeness2/5

    The server exposes only live vehicle positions for one transit mode, with no tools for listing lines, stops, schedules, or other İzmir open datasets implied by the server name. This leaves major gaps for an 'open data' MCP surface.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides real-time access to İzmir's public transportation data, including bus locations, schedules, and route information for ESHOT, İZBAN, Metro, and Tram services. It enables AI assistants to perform transit queries, calculate fares, and locate nearby stations using the Model Context Protocol.
      34 npm
      1
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for accessing real-time Izmir public transport data (IZBAN, ESHOT, Tram, Metro, Ferry, Train) including bus locations, schedules, and stop information.
      67 npm
      6
      Apache 2.0
    • A
      license
      A
      quality
      B
      maintenance
      Connects Claude to live TransMilenio bus positions, official schedules, stop arrivals, alerts, and route history so users can ask natural-language questions about Bogotá transit and compare scheduled service with what is actually on the street.
      13
      1
      MIT