VeriTR
VeriTR is an MCP server that lets AI agents find, fetch, and compare official Turkish public data (TÜİK, TCMB, and municipal open-data portals) via a normalized indicator registry and raw dataset catalog.
Search normalized indicators (
search_indicators) by natural language in Turkish/English, with filters for category, provider, frequency, or geography.Fetch time series (
get_series) for indicators likepopulation.total, with flexible date formats, geography (country/province/region), optional dimensions, and JSON/CSV output.Rank regions at one point in time (
get_snapshot) to answer "top/bottom provinces" questions.Compare regions (
compare_regions) for one indicator across multiple provinces over time.Compare multiple indicators (
compare_series) across different institutions, with optional normalization and correlation; frequency mismatches are reported, not hidden.Run deterministic statistics (
analyze_series) such as growth rates, moving averages, rebasing, and summary stats.Inspect indicator metadata (
get_metadata) for units, frequency, allowed dimensions, source dataset, and official URLs.Search raw datasets (
search_datasets) and read their rows (get_dataset) — especially for İstanbul municipal data not forced into the normalized indicator namespace.Check provider health (
get_sources) to diagnose missing API keys, outages, or unsupported topics.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@VeriTR How has Turkey's population changed since 2000?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🇹🇷 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.
Related MCP server: MoSPI MCP Server
💬 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ı?"
"Türkiye'de kaç elektrikli araba var, son 5 yılda nasıl değişti?"
"Konut satışları en çok hangi ilde arttı?"
"Trafik kazalarında ölen kişi sayısı illere göre nasıl dağılıyor?"
"Yükseköğretim mezunu oranı son 15 yılda nasıl değişti?"
"Atıl işgücü oranı ile dar tanımlı işsizliği karşılaştır."
"İstihdamın sektörlere dağılımı 2005'ten bu yana nasıl değişti?"
"Hangi ilde çocuklar en uzun süre okulda kalıyor?"
"İ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." ← konut endeksi TCMB anahtarı isterAgent gerekli göstergeleri kendisi bulur, verileri VeriTR üzerinden çeker, dönemleri eşleştirir ve kaynağıyla birlikte cevap üretir.
🚀 5 Dakikada Başla
Kurulum
uvx veritr-mcpHepsi bu. API anahtarı gerekmez — TÜİK ve belediye verileri anahtarsız çalışır.
uv kullanmıyorsanız:
pip install veritr-mcp
veritr-mcpKaynaktan çalıştırmak (katkı vermek) için CONTRIBUTING.md.
Claude Desktop / Claude Code
claude_desktop_config.json dosyanıza ekleyin:
{
"mcpServers": {
"veritr": {
"command": "uvx",
"args": ["veritr-mcp"]
}
}
}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"
}
}
}
}Anahtar olmadan da çalışır: TCMB not_configured görünür, diğer kaynaklar sorunsuz devam eder.
Docker
docker compose up -d
# MCP: http://localhost:8000/mcp
# Health: http://localhost:8000/healthRemote MCP
Hosted sunucu yol haritasında; henüz bir adres yok. Kodda hiçbir domain gömülü değildir, VERITR_PUBLIC_URL ile verilir.
🏗️ 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 AgentsBir 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 |
| Doğal dille gösterge bulur. get_series'ten önce kullanılır. |
|
| Bir göstergenin zaman serisini getirir. En temel tool. |
|
| Tek bir dönemde tüm illeri sıralar. |
|
| Bir göstergeyi birkaç ilde karşılaştırır. |
|
| Birkaç göstergeyi — farklı kurumlardan olsa da — yan yana koyar. |
|
| Deterministik istatistik: artış hızı, hareketli ortalama, endeksleme. |
|
| Bir göstergenin birimi, frekansı, ayarlanabilir boyutları ve kaynağı. |
|
| Ham veri setlerinde arama — İstanbul'a dair şehir soruları buradan. |
|
| Bulunan ham veri setinin sütunlarını ve satırlarını okur. |
|
| Tüm kaynakların canlı durumu. |
|
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, doğurganlık, işgücü, eğitim, tarım, ulaşım, trafik, konut satışları, üretim endeksleri, dış ticaret, GSYH, çevre, su/atık, bilişim, kültür | ✅ | 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ındaAnahtar gerekmeden ne kadar yol gidilir? Epey: nüfus, doğurganlık, işgücü, eğitim, ulaşım, trafik, konut satışları, üretim endeksleri, dış ticaret, GSYH ve çevre göstergelerinin tamamı TÜİK'ten, şehir verileri belediyelerden anahtarsız gelir. Fiyat istatistikleri de dahil: TÜFE ve Yİ-ÜFE'yi TÜİK üretir, TCMB yalnızca yeniden dağıtır — VeriTR doğrudan kaynağa bağlandığı için manşet enflasyon, üretici enflasyonu, gıda fiyat endeksi, bölgesel fiyat düzeyi ve güven endeksleri anahtarsız çalışır. TCMB anahtarı bunlara konut fiyat endeksini ve finansal serileri (döviz kurları, politika faizi) ekler.
Bugün 82 normalize gösterge (nüfus, doğurganlık, evlenme ve boşanma, işgücü, eğitim, beyin göçü, tarım, ulaşım, trafik güvenliği, konut satışları, üretim endeksleri, dış ticaret, GSYH, çevre, su ve atık, bilişim/e-ticaret, kültür, iş demografisi, enflasyon ve fiyat endeksleri, bölgesel pahalılık, güven endeksleri, döviz) ve ~1450 aranabilir ham veri seti (TÜİK 408 + üç 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_AN_INDICATOR.md — yeni gösterge eklemek (kod yazmadan, en kolay ilk katkı) 📖 docs/ADDING_A_PROVIDER.md — yeni kurum eklemek 📋 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.
Available Tools
10 toolsanalyze_seriesA
Run deterministic statistics over a single series (growth rates, moving average, rebasing to 100, min/max/mean). Prefer this over doing the arithmetic yourself when the series has many observations — it avoids transcription errors.
Inputs: indicator (required), window, end_date, geography, +2 more. Returns: object
compare_regionsA
Compare ONE indicator across SEVERAL regions over time.
Each region gets its own series plus a summary (first/last value, total change). For comparing several indicators instead, use compare_series.
Inputs: regions (required), indicator (required), end_date, start_date. Returns: object
compare_seriesA
Compare SEVERAL indicators — possibly from different institutions — side by side.
This is what makes cross-source questions answerable, e.g. TÜİK population against TCMB house prices. Frequency mismatches are reported explicitly and never silently resampled. Set normalize=true when units differ.
Inputs: indicators (required), end_date, correlate, geography, +2 more. Returns: object
get_datasetA
Read the columns and rows of a raw dataset found via search_datasets.
This is the path for municipal (İBB) data, which is deliberately NOT mapped into the normalized indicator namespace — use get_series for national indicators and this for city datasets. Returns the field list, a page of rows, the total row count, and the source licence. Page with offset; the response says how many rows were withheld.
Inputs: dataset_id (required), limit, offset, provider. Returns: object
get_metadataA
Get the full definition of an indicator: unit, frequency, geography coverage, which dimensions you may override in get_series, the source dataset, and the official URL. Call this when get_series arguments are unclear.
Inputs: indicator (required). Returns: object
get_seriesA
Fetch a time series for one indicator. This is the primary data tool.
Returns compact [period, value] pairs plus the source institution and dataset id.
Omitting geography returns every region the indicator covers — combine with
limit for national comparisons, or use get_snapshot for a single-year ranking.
Inputs: indicator (required), limit, format, end_date, +3 more. Returns: object
get_snapshotA
Get one indicator's value across ALL regions at a single point in time, ranked.
Use this for "which provinces have the highest/lowest X" questions instead of calling get_series once per province.
Inputs: indicator (required), top, date, ascending. Returns: object
get_sourcesA
List every institution VeriTR can reach, with live availability status.
Use this when a query fails, to tell the user whether the problem is a missing API key, a provider outage, or an unsupported topic.
Inputs: no named parameters. Returns: object
search_datasetsA
Search the raw dataset catalogs of the source institutions.
Use this when search_indicators returns nothing useful, and always for city-level questions about İstanbul (transport, traffic, environment, culture, infrastructure) — İBB publishes ~560 municipal datasets that have no VeriTR indicator id. Follow up with get_dataset to read the rows. NOTE: TÜİK serves its catalog metadata in English only, so English keywords ('unemployment', 'vehicle') match better for TÜİK; İBB is indexed in Turkish.
Inputs: query (required), limit, provider. Returns: object
search_indicatorsA
Search VeriTR's normalized indicator catalog.
USE THIS FIRST, before get_series, whenever the exact indicator id is unknown. Returns VeriTR indicator ids (e.g. 'population.total') that get_series accepts. Search works in Turkish and English and is accent-insensitive.
Inputs: query (required), limit, category, provider, +2 more. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 10 tools
Each tool has a distinct access pattern or comparison dimension: normalized indicators vs raw datasets, time-series vs single-snapshot, multi-region vs multi-indicator. The search tools are explicitly differentiated by when to use each.
All tool names follow a consistent snake_case verb_noun pattern: search_*, get_*, compare_*, analyze_series. The naming makes the action and target clear without ambiguity.
Ten tools is a well-scoped size for a data-access server. Each tool earns its place and covers a distinct query need without redundancy or bloat.
The surface covers the full read-only lifecycle: discovery, retrieval, comparison, metadata, source diagnostics, and lightweight analysis. No obvious dead ends or missing operations for the stated purpose.
Maintenance
Related MCP Connectors
Hosted MCP server for live public-data APIs and Skills for AI agents.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
MCP server for building and testing AI agents with multi-model experimentation and insights.
Agent-native MCP server over 49M+ US public and government records, privacy-first, always current.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that connects AI agents to over 200 tools across 27 Brazilian public APIs, covering economic, legislative, transparency, and judicial data. It enables users to query and cross-reference extensive government datasets from sources like IBGE, the Central Bank, and the Brazilian Congress.2271,855MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for accessing India's Ministry of Statistics and Programme Implementation (MoSPI) data APIs. Enables natural language queries for economic, demographic, and social indicators via a 4-tool workflow.MIT
- AlicenseAqualityDmaintenanceMCP Server for accessing 36 Brazilian public data sources and 1 agent, enabling AI agents to query government data on economy, legislation, transparency, judiciary, elections, environment, health, and more.61MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides verified official Turkish electricity system data (from TEİAŞ and EÜAŞ) via tools for querying generation, installed capacity, demand, and import/export, enabling natural language access to energy statistics.MIT