saidsurucu/ihale-mcp
If you are the rightful owner of ihale-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
İhale MCP is a FastMCP server designed to facilitate access to public tenders in Turkey, specifically from the EKAP v2 portal.
İhale MCP: Türkiye Kamu İhaleleri için MCP Sunucusu
Bu proje, Türkiye'deki kamu ihalelerine (ekap.kik.gov.tr
) erişimi kolaylaştıran bir FastMCP sunucusu oluşturur. Bu sayede, EKAP v2 portalından ihale arama, ihale detaylarını getirme ve ihale duyurularını Markdown formatında alma işlemleri, Model Context Protocol (MCP) destekleyen LLM (Büyük Dil Modeli) uygulamaları (örneğin Claude Desktop veya 5ire) ve diğer istemciler tarafından araç (tool) olarak kullanılabilir hale gelir.
🎯 Temel Özellikler
- EKAP v2 portalına programatik erişim için standart bir MCP arayüzü.
- Aşağıdaki yetenekler:
- Detaylı İhale Arama: İhale adı/içeriği, IKN numarası, ihale türü, il, tarih aralıkları ve 17+ boolean filtre ile kapsamlı arama.
- İhale Detayları: Belirli bir ihalenin tam detaylarını (özellikler, OKAS kodları, idare bilgileri, işlem kuralları) getirme.
- İhale Duyuruları: İhale ile ilgili tüm duyuruları (Ön İlan, İhale İlanı, Sonuç İlanı vb.) otomatik HTML-to-Markdown dönüşümü ile getirme.
- OKAS Kod Arama: Türk kamu alım sınıflandırma kodlarında arama yapma.
- İdare Arama: Bakanlık, belediye, üniversite gibi kamu kurumlarını arama.
- İlan.gov.tr Entegrasyonu: Resmi devlet ilanları, UYAP e-satış, icra/mahkeme satışları, kamu personel duyuruları ve tebligat aramalar.
- İhale metinlerinin LLM'ler tarafından daha kolay işlenebilmesi için HTML'den Markdown formatına çevrilmesi.
- Claude Desktop uygulaması ile kolay entegrasyon.
- İhale MCP, 5ire gibi Claude Desktop haricindeki MCP istemcilerini de destekler.
🚀 Claude Haricindeki Modellerle Kullanmak İçin Çok Kolay Kurulum (Örnek: 5ire için)
Bu bölüm, İhale MCP aracını 5ire gibi Claude Desktop dışındaki MCP istemcileriyle kullanmak isteyenler içindir.
- Python Kurulumu: Sisteminizde Python 3.11 veya üzeri kurulu olmalıdır. Kurulum sırasında "Add Python to PATH" (Python'ı PATH'e ekle) seçeneğini işaretlemeyi unutmayın. Buradan indirebilirsiniz.
- Git Kurulumu (Windows): Bilgisayarınıza git yazılımını indirip kurun. "Git for Windows/x64 Setup" seçeneğini indirmelisiniz.
uv
Kurulumu:- Windows Kullanıcıları (PowerShell): Bir CMD ekranı açın ve bu kodu çalıştırın:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- Mac/Linux Kullanıcıları (Terminal): Bir Terminal ekranı açın ve bu kodu çalıştırın:
curl -LsSf https://astral.sh/uv/install.sh | sh
- Windows Kullanıcıları (PowerShell): Bir CMD ekranı açın ve bu kodu çalıştırın:
- Microsoft Visual C++ Redistributable (Windows): Bazı Python paketlerinin doğru çalışması için gereklidir. Buradan indirip kurun.
- İşletim sisteminize uygun 5ire MCP istemcisini indirip kurun.
- 5ire'ı açın. Workspace -> Providers menüsünden kullanmak istediğiniz LLM servisinin API anahtarını girin.
- Tools menüsüne girin. +Local veya New yazan butona basın.
- Tool Key:
ihalemcp
- Name:
İhale MCP
- Command:
uvx --from git+https://github.com/saidsurucu/ihale-mcp ihale-mcp
- Save butonuna basarak kaydedin.
- Tool Key:
- Şimdi Tools altında İhale MCP'yi görüyor olmalısınız. Üstüne geldiğinizde sağda çıkan butona tıklayıp etkinleştirin (yeşil ışık yanmalı).
- Artık İhale MCP ile konuşabilirsiniz.
⚙️ Claude Desktop Manuel Kurulumu
-
Ön Gereksinimler: Python,
uv
, (Windows için) Microsoft Visual C++ Redistributable'ın sisteminizde kurulu olduğundan emin olun. Detaylı bilgi için yukarıdaki "5ire için Kurulum" bölümündeki ilgili adımlara bakabilirsiniz. -
Claude Desktop Settings -> Developer -> Edit Config.
-
Açılan
claude_desktop_config.json
dosyasınamcpServers
altına ekleyin:{ "mcpServers": { "İhale MCP": { "command": "uvx", "args": [ "--from", "git+https://github.com/saidsurucu/ihale-mcp", "ihale-mcp" ] } } }
-
Claude Desktop'ı kapatıp yeniden başlatın.
🛠️ Kullanılabilir Araçlar (MCP Tools)
Bu FastMCP sunucusu LLM modelleri için aşağıdaki araçları sunar:
-
search_tenders
: EKAP v2 portalında kapsamlı ihale arama yapar.- Ana Parametreler:
search_text
,ikn_year
,ikn_number
,tender_types
,tender_date_start/end
,announcement_date_start/end
- Boolean Filtreler:
e_ihale
,ortak_alim_mi
,kismi_teklif_mi
,yabanci_isteklilere_izin_veriliyor_mu
ve 13+ daha fazla filtre - Liste Filtreleri:
provinces
,tender_statuses
,tender_methods
,okas_codes
,authority_ids
,proposal_types
,announcement_types
- Arama Kapsamı:
search_in_title
,search_in_announcement
,search_in_tech_spec
vb. 11 farklı alan - Döndürdüğü Değer: Sayfalanmış ihale listesi, toplam sonuç sayısı
- Ana Parametreler:
-
search_okas_codes
: OKAS (kamu alım sınıflandırma) kodlarında arama yapar.- Parametreler:
search_term
,kalem_turu
(1=Mal, 2=Hizmet, 3=Yapım),limit
- Döndürdüğü Değer: OKAS kodları, açıklamaları ve kategorileri
- Parametreler:
-
search_authorities
: Türk kamu kurumlarında arama yapar.- Parametreler:
search_term
,limit
- Döndürdüğü Değer: Kurum ID'leri, isimleri ve hiyerarşik bilgileri
- Parametreler:
-
get_recent_tenders
: Son N gündeki ihaleleri getirir.- Parametreler:
days
(1-30),tender_types
,limit
- Döndürdüğü Değer: Yakın tarihli ihale listesi
- Parametreler:
-
get_tender_announcements
: Belirli bir ihalenin tüm duyurularını getirir.- Parametreler:
tender_id
,include_html
- Döndürdüğü Değer: Otomatik HTML-to-Markdown dönüştürülmüş ihale duyuruları
- Parametreler:
-
get_tender_details
: Belirli bir ihalenin kapsamlı detaylarını getirir.- Parametreler:
tender_id
- Döndürdüğü Değer: İhale özellikleri, OKAS kodları, idare bilgileri, işlem kuralları ve otomatik markdown'a çevrilmiş duyuru özetleri
- Parametreler:
-
search_ilan_ads
: İlan.gov.tr'de resmi devlet ilanlarında arama yapar.- Parametreler:
search_text
,city_plate
,ad_type_filter
,ad_source_filter
,publish_date_min/max
,price_min/max
- İlan Türleri: İCRA, İHALE, TEBLİGAT, PERSONEL
- İlan Kaynakları: UYAP (E-SATIŞ icra/mahkeme satışları), BIK (Basın İlan Kurumu)
- Döndürdüğü Değer: Resmi devlet ilanları, kategori bilgileri, şehir sayıları
- Parametreler:
-
get_ilan_ad_detail
: Belirli bir ilan için detaylı bilgileri getirir.- Parametreler:
ad_id
- Döndürdüğü Değer: İlan başlığı, otomatik HTML-to-Markdown çevrilmiş içerik, ilan veren kurum bilgileri, lokasyon, kategoriler
- Parametreler:
🧩 Doğrudan Temin (Direct Procurement – Doğrudan Temin) Araçları
Doğrudan Temin ekranındaki filtrelerle uyumlu ek MCP araçları:
-
search_direct_procurements
: Doğrudan Temin listesi (Direct Procurement list).- Önemli Parametreler (English with Türkçe):
year (Yıl)
,dt_no / dt_number (DT No / DT Sayı)
dt_type (Tür)
: 1=Goods (Mal), 2=Construction (Yapım), 3=Service (Hizmet), 4=Consultancy (Danışmanlık)e_price_offer (E‑Fiyat Teklifi)
→eihale=true/false
status_id/status_text (Durum)
: 202=Doğrudan Temin Duyurusu Yayımlanmış, 3=Teklifler Değerlendiriliyor, 4=Doğrudan Temin Sonuçlandırıldı, 5=Sonuç Bilgileri Gönderildi, 15=Sonuç Duyurusu Yayımlanmışdate_start/date_end (Teklif tarihi)
→dtTarihiBaslangic/Bitis
province_plate/province_name (İl)
scope_id/scope_text (Kapsam)
: 101=4734, 102=İstisna, 103=Kapsam Dışıauthority_id (İdare ID token)
(idareAra’dan),parent_authority_code (Bağlı Olduğu Üst İdare / ustIdareKod)
- Not: Bazı filtreler (Durum/Kapsam/İdare) oturum gerektirebilir. Gerekirse
cookies
(Çerez) header değeri verilebilir; istemci ayrıca otomatik ısınma (warm‑up) yapar.
- Önemli Parametreler (English with Türkçe):
-
get_direct_procurement_details
: DT detayları (Details) –dogrudanTeminId (E10)
+idareId (E11)
ile. -
search_direct_procurement_authorities
: İdare (Authority) araması; dönentoken
,search_direct_procurements
içindeauthority_id
olarak kullanılır. -
search_direct_procurement_parent_authorities
: Üst İdare (Parent Authority) araması; dönentoken
,parent_authority_code (ustIdareKod)
olarak kullanılır.
Örnek (Examples)
search_direct_procurements(
dt_type=1, # Goods (Mal)
province_name="Antalya", # İl adı
status_text="Doğrudan Temin Duyurusu Yayımlanmış",
date_start="2025-09-01",
date_end="2025-09-11"
)
# İdare ara → token’ı listede kullan
search_direct_procurement_authorities("antalya")
# => take authorities[0].token as authority_id
search_direct_procurements(
authority_id="<EIdareToken>",
parent_authority_code="44|07", # Bağlı Olduğu Üst İdare (ustIdareKod)
year=2025, dt_number=1493227
)
İhale Türleri
- 1 - Mal: Malzeme ve ekipman alımları
- 2 - Yapım: İnşaat ve altyapı projeleri
- 3 - Hizmet: Hizmet sözleşmeleri
- 4 - Danışmanlık: Danışmanlık hizmetleri
Örnek Kullanımlar
EKAP v2 İhaleleri
- Pazar Araştırması: Belirli sektör veya bölgelerdeki fırsatları takip etme
- Uygunluk İzleme: Mevzuata uygunluk için ihale duyurularını takip etme
- İş Zekası: Kamu harcama modellerini ve trendlerini analiz etme
- Bildirim Sistemleri: Belirli ihale türleri için uyarı sistemleri kurma
- Veri Analizi: Araştırma ve analiz için ihale verilerini çıkarma
İlan.gov.tr Resmi İlanları
- UYAP E-SATIŞ Takibi: İcra dairesi ve mahkeme satışlarını izleme
- Personel Duyuruları: Kamu personel alım ilanlarını takip etme
- Tebligat İzleme: Resmi tebligat ve duyuruları takip etme
- Belediye İhaleleri: Yerel yönetim ihale ilanlarını izleme
- Emlak Satışları: Kamu kurumlarının emlak satış ilanları
Yeni Özellikler
✅ 17+ Boolean Filtre: e-İhale, ortak alım, kısmi teklif, yabancı katılım vb. ✅ Liste Filtreleri: İller, ihale durumları, usulleri, OKAS kodları, idare ID'leri ✅ Arama Kapsamı Kontrolü: IKN, başlık, duyuru, teknik şartname vb. alanlarda arama ✅ İdare Arama: 72,000+ kamu kurumunda arama (bakanlık, belediye, üniversite) ✅ İhale Duyuruları: Otomatik HTML-to-Markdown dönüşümü ile tam duyuru metinleri ✅ Kapsamlı İhale Detayları: Tüm ihale metadata'sı, özellikler, kurallar bir arada ✅ İlan.gov.tr Entegrasyonu: 20,000+ resmi devlet ilanı aramalar ✅ UYAP E-SATIŞ: 46,000+ icra/mahkeme satış ilanlarına özel erişim ✅ İlan Detayları: Otomatik HTML-to-Markdown dönüşümü ile tam ilan içerikleri ✅ Çoklu İlan Türü: İCRA, İHALE, TEBLİGAT, PERSONEL kategorileri
API Hız Limitleri
Bu sunucu EKAP portalının hız limitlerini gözetir. Üretim kullanımı için aşağıdakileri göz önünde bulundurun:
- API çağrılarını azaltmak için istek önbellekleme
- Üstel geri çekilme ile yeniden deneme mantığı
- Yüksek hacimli kullanım için istek sırası
📜 Lisans
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE
dosyasına bakınız.
Sorumluluk Reddi
Bu, Türk hükümetinin EKAP portalı ile resmi olmayan bir entegrasyondır. Kullanıcılar portalın hizmet şartlarına ve geçerli düzenlemelere uymakla yükümlüdür. Yazarlar Türk hükümeti veya EKAP portalı ile bağlantılı değildir.