VeriTR
MCP server that unifies official Turkish open data sources into a single interface, letting AI agents query and compare normalized indicators like population, inflation, and GDP through natural language.
README
🇹🇷 VeriTR
Türkiye'nin verisi. Yapay zekânın bağlamı.
VeriTR, Türkiye'deki resmi ve açık veri kaynaklarını Claude, ChatGPT, Gemini ve diğer AI agent'ların kullanabileceği tek bir Model Context Protocol (MCP) sunucusunda birleştiren açık kaynaklı bir projedir.
TÜİK'ten nüfus, TCMB'den ekonomik göstergeler, İBB'den İstanbul'un şehir verileri; ilerleyen sürümlerde SGK'dan istihdam, YSK'dan seçim… Kaynağı aramak yerine soruyu sorun.
Neden VeriTR?
Türkiye'nin kamu verisi dağınıktır. Nüfus TÜİK'te, enflasyon ve konut fiyatları TCMB'de, istihdam SGK'da, bütçe Hazine'de, seçim sonuçları YSK'da, şehir verileri onlarca ayrı belediye portalında durur. Her kurumun kendi arayüzü, kendi kod sistemi, kendi tarih biçimi ve kendi "il" tanımı vardır. Bir soruya cevap vermek için önce hangi kurumun hangi tabloyu tuttuğunu bilmek gerekir.
Bu yük, bugün bir AI agent'ın üzerine yıkılıyor. Agent ya veriyi bulamıyor ya da ezberinden — kaynaksız ve çoğu zaman yanlış — cevap veriyor.
VeriTR bu kaynakları AI agent'lar için tek bir MCP arayüzünde birleştirir. Kurum isimleri yerine normalize göstergeler (population.total, economy.cpi), kurum kodları yerine ortak coğrafya ve tarih modeli, ve her sonucun yanında hangi kurumun hangi veri setinden geldiği bulunur.
💬 VeriTR ile neler sorabilirsiniz?
"İstanbul'un nüfusu son 20 yılda nasıl değişti?"
"Türkiye'deki genç işsizlik oranının son 15 yıllık değişimini göster."
"2025'te nüfusu en fazla olan 10 şehri sırala."
"İstanbul, Ankara ve İzmir'in nüfus artış hızını karşılaştır."
"Türkiye'de araç sayısı en fazla olan illeri bul."
"Kişi başına düşen geliri en yüksek ve en düşük illeri karşılaştır."
"Doğurganlık hızı Türkiye'de son 15 yılda nasıl değişti?"
"Güneydoğu Anadolu ile Ege'nin kişi başı gelirini karşılaştır."
"Türkiye'nin sera gazı emisyonları 1990'dan bu yana nasıl arttı?"
"İstanbul'da trafik kazası duyurularını içeren veri setini bul ve göster."
"İzmir'in açık veri portalında ulaşımla ilgili neler var?"
"Konut fiyat endeksi ile TÜFE'yi 2015'ten bu yana karşılaştır." ← TCMB anahtarı ister
Agent gerekli göstergeleri kendisi bulur, verileri VeriTR üzerinden çeker, dönemleri eşleştirir ve kaynağıyla birlikte cevap üretir.
🚀 5 Dakikada Başla
Claude Desktop / Claude Code
claude_desktop_config.json dosyanıza ekleyin:
{
"mcpServers": {
"veritr": {
"command": "uvx",
"args": ["veritr-mcp"]
}
}
}
Hepsi bu. API anahtarı gerekmez — TÜİK verileri anahtarsız çalışır.
TCMB'nin finansal serilerini de istiyorsanız evds2.tcmb.gov.tr adresinden ücretsiz bir anahtar alın:
{
"mcpServers": {
"veritr": {
"command": "uvx",
"args": ["veritr-mcp"],
"env": {
"EVDS_API_KEY": "buraya-anahtarınız"
}
}
}
}
Terminal
uvx veritr-mcp
veya:
pip install veritr-mcp
Kaynaktan
git clone https://github.com/veritr/veritr-mcp.git
cd veritr-mcp
uv sync
uv run veritr-mcp
Remote MCP
Coming soon — hosted sunucu henüz yayında değil. Kendi sunucunuzu çalıştırmak isterseniz:
docker compose up -d
# MCP: http://localhost:8000/mcp
# Health: http://localhost:8000/health
🏗️ Mimari
flowchart LR
A[Claude / ChatGPT / Gemini] --> B[VeriTR MCP]
B --> C[Unified Data Layer]
C --> D[TÜİK]
C --> E[TCMB]
C --> J[Belediyeler<br/>İBB · İzmir · Konya]
C -.-> F[SGK]
C -.-> G[HMB]
C -.-> H[YSK]
C -.-> I[MGM]
Kesikli çizgiler yol haritasındaki kaynakları gösterir.
VeriTR iki erişim yolu sunar ve hangisinin doğru olduğunu tool açıklamaları anlatır:
- Normalize gösterge (
get_series) — ulusal, karşılaştırılabilir seriler.population.totalkimin yayımladığından bağımsızdır. - Ham veri seti kataloğu (
search_datasets→get_dataset) — belediye verileri ve henüz normalize edilmemiş kurum veri setleri. Belediye verisi bilinçli olarak gösterge namespace'ine zorlanmaz: "metro yolcu sayısı" ile "ağaç envanteri" ortak bir modele oturmaz, oturtmaya çalışmak veriyi çarpıtır.
CKAN belediye açık verisinde fiilî standart olduğu için yeni bir şehir eklemek tek satırlık bir tablo kaydıdır — adapter kodu değişmez.
Verinin izlediği yol:
Resmi Kaynaklar TÜİK .Stat API, TCMB EVDS, İBB CKAN, …
↓
Provider Adapters her kurum için bağımsız, izole edilmiş adapter
↓
Normalization coğrafya (81 il), dönem, frekans, birim
↓
Indicator Registry population.total, economy.cpi, …
↓
MCP Tools search_indicators, get_series, compare_series, …
↓
AI Agents
Bir kaynağın çökmesi diğerlerini etkilemez: TÜİK erişilemezse agent bunu provider_unavailable olarak görür ve diğer kaynaklara erişmeye devam eder.
🧰 Tool'lar
| Tool | Ne işe yarar | Örnek |
|---|---|---|
search_indicators |
Doğal dille gösterge bulur. get_series'ten önce kullanılır. | search_indicators("işsizlik") |
get_series |
Bir göstergenin zaman serisini getirir. En temel tool. | get_series("population.total", geography="TR-34", start_date="2015") |
get_snapshot |
Tek bir dönemde tüm illeri sıralar. | get_snapshot("population.total", date="2025", top=10) |
compare_regions |
Bir göstergeyi birkaç ilde karşılaştırır. | compare_regions("population.total", regions=["TR-34","Ankara","35"]) |
compare_series |
Birkaç göstergeyi — farklı kurumlardan olsa da — yan yana koyar. | compare_series(["economy.cpi","housing.house_price_index"], normalize=True) |
analyze_series |
Deterministik istatistik: artış hızı, hareketli ortalama, endeksleme. | analyze_series("population.total", operations=["growth_rate"]) |
get_metadata |
Bir göstergenin birimi, frekansı, ayarlanabilir boyutları ve kaynağı. | get_metadata("population.median_age") |
search_datasets |
Ham veri setlerinde arama — İstanbul'a dair şehir soruları buradan. | search_datasets("metro yolcu") |
get_dataset |
Bulunan ham veri setinin sütunlarını ve satırlarını okur. | get_dataset("hourly-public-transport-data-set") |
get_sources |
Tüm kaynakların canlı durumu. | get_sources() |
Coğrafya her biçimde kabul edilir — ülke (TR, Türkiye), 81 il (TR-34, 34, İstanbul, istanbul, TR100), 12 İBBS Düzey-1 bölgesi (TR9) ve 26 Düzey-2 alt bölgesi (TRC1 → Gaziantep, Adıyaman, Kilis).
Dönem de öyle: 2024, 2024-Q1, 2024-01, 2024M01, 01-2024, 15.01.2024.
📊 Kaynaklar
| Kaynak | Veri | Durum | API Key |
|---|---|---|---|
| TÜİK | Nüfus, demografi, doğurganlık, işgücü, eğitim, ulaşım, dış ticaret, bölgesel GSYH, çevre | ✅ | Hayır |
| TCMB EVDS | TÜFE, ÜFE, konut fiyat endeksi, döviz, faiz | ✅ | Evet |
| İBB Açık Veri | İstanbul: ulaşım, trafik, çevre, kültür, altyapı (~560 veri seti) | ✅ | Hayır |
| İzmir BB Açık Veri | İzmir: ulaşım, çevre, şehir hizmetleri (~256 veri seti) | ✅ | Hayır |
| Konya BB Açık Veri | Konya: ulaşım, altyapı, şehir hizmetleri (~233 veri seti) | ✅ | Hayır |
| SGK | Sosyal güvenlik ve istihdam | 🗺️ | – |
| HMB | Bütçe ve kamu maliyesi | 🗺️ | – |
| SBB | Ekonomik ve sosyal göstergeler | 🗺️ | – |
| YSK | Seçim sonuçları ve katılım | 🗺️ | – |
| MGM | Meteoroloji | 🗺️ | – |
| Sağlık Bakanlığı | Hastane, personel, sağlık göstergeleri | 🗺️ | – |
| Enerji Bakanlığı | Elektrik üretimi, yenilenebilir enerji | 🗺️ | – |
| Ticaret Bakanlığı | İthalat, ihracat | 🗺️ | – |
| Diğer belediyeler | Ankara, Bursa, Antalya, Kocaeli, Gaziantep | 🗺️ | – |
| Eurostat / OECD / World Bank | Uluslararası karşılaştırma | 🗺️ | – |
✅ Destekleniyor 🚧 Geliştiriliyor 🗺️ Yol haritasında
Bugün 33 normalize gösterge (nüfus, doğurganlık, hanehalkı, işgücü, eğitim, ulaşım, dış ticaret, GSYH, çevre, fiyatlar, döviz) ve ~1400 aranabilir ham veri seti (TÜİK 367 + üç belediye ~1050) mevcut. Her göstergenin her coğrafya seviyesinde gerçekten veri döndürdüğü günlük canlı testlerle doğrulanıyor.
Registry sürekli genişliyor — katkı vermek kolay.
🔎 Veriler nereden geliyor?
VeriTR herhangi bir resmi kurum değildir ve veri üretmez.
Veriler ilgili kurumların kendi resmi/açık kaynaklarından, herkese açık arayüzleri üzerinden alınır. VeriTR yalnızca üç şey yapar: erişim, standardizasyon ve agent entegrasyonu.
Her sonuç şu bilgileri taşır:
{
"source": {
"provider": "tuik",
"institution": "Türkiye İstatistik Kurumu",
"dataset": "TR,DF_ADNKS_T30,1.1",
"retrieved_at": "2026-08-11T12:08:55+00:00",
"official_url": "https://databrowser2.tuik.gov.tr/vizualize.html?..."
}
}
Böylece agent "TÜİK'e göre…" diyebilir ve kullanıcı aynı veriyi kurumun kendi sitesinde doğrulayabilir.
Verilerin güncelliği, doğruluğu ve kullanım koşulları tamamen ilgili kaynak kuruma bağlıdır. VeriTR'nin MIT lisansı yalnızca bu deponun kodunu kapsar; kurumlardan alınan verileri kapsamaz.
Dürüstlük ilkeleri
VeriTR veriyi sessizce değiştirmez:
- Frekans uyumsuzluğu gizlenmez. Aylık TÜFE ile yıllık nüfusu karşılaştırırsanız uyarı alırsınız; arka planda sessiz bir toplulaştırma yapılmaz.
- Kırpma duyurulur. Sonuç listesi kısaltıldıysa kaç kaydın düştüğü açıkça söylenir.
- Eksik veri uydurulmaz. Kurum bir değeri yayımlamamışsa
nulldöner, interpolasyon yapılmaz. - Veri sınırları yazılıdır. Kurum bir göstergeyi yalnızca son yıl için yayımlıyorsa bu, göstergenin açıklamasında söylenir — agent "veri yok" sanmaz.
- Korelasyon nedensellik değildir. Korelasyon çıktısı bu uyarıyı her zaman taşır.
⚠️ Sorumluluk Reddi
VeriTR; TÜİK, TCMB, SGK veya diğer kamu kurumlarıyla bağlantılı değildir, bu kurumlar tarafından desteklenmemekte veya onaylanmamaktadır. Tüm kurum adları ve markalar ilgili sahiplerine aittir.
🗺️ Yol Haritası
v0.1 — ✅ TÜİK + TCMB EVDS · normalize gösterge registry'si · search_indicators, get_series, get_metadata, compare_series, compare_regions, get_snapshot, analyze_series · cache · CSV/JSON export · Docker + Streamable HTTP
v0.2 — SGK · Hazine ve Maliye Bakanlığı · genişletilmiş gösterge kataloğu · hosted Remote MCP
v0.3 — YSK (seçim) · MGM (meteoroloji) · Sağlık Bakanlığı · Enerji Bakanlığı
v0.4 — Kalan belediye adapter'ları (Ankara, Bursa, Antalya, Kocaeli, Gaziantep) — İstanbul, İzmir ve Konya v0.1'de geldi
v1.0 — Uluslararası karşılaştırma (Eurostat, OECD, World Bank, IMF, ILOSTAT) · VeriTR Explorer · stabil API
Ayrıntılar ve tekil görevler için issue'lara bakın.
🤝 Katkı
VeriTR'nin büyümesinin ana yolu topluluk provider'ları. Yeni bir kurum eklemek kasıtlı olarak kolay tutuldu: bir adapter sınıfı, bir YAML gösterge dosyası ve fixture'lı testler.
📖 docs/ADDING_A_PROVIDER.md — adım adım rehber 📋 CONTRIBUTING.md — geliştirme akışı ve kalite ölçütleri 🔒 SECURITY.md — güvenlik açığı bildirimi
uv sync
uv run pytest # offline testler
uv run pytest -m live # kurumların canlı API'lerine karşı
uv run ruff check src tests
uv run mypy
📄 Lisans
Kod MIT lisansıyla dağıtılır. Kurumlardan alınan veriler bu lisansın kapsamı dışındadır ve kendi kullanım koşullarına tabidir.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
E2B
Using MCP to run code via e2b.