efatura-kontrol nedir? e-Fatura XML'ini GİB'e göndermeden kontrol etmek, kurulum ve sınırlar
Asistanına bir e-Fatura, e-Arşiv, e-İrsaliye ya da zarf XML dosyasını verirsin; efatura-kontrol onu GİB'e göndermeden önce GİB'in yayımladığı XSD ve şematron kurallarıyla kendi bilgisayarında denetler, her bulguyu satır numarası, Türkçe açıklama ve düzeltme önerisiyle verir. Yazılımcılar ve entegratörler içindir: fatura kesmez, GİB'e göndermez, yalnız dosyayı okur. Tek bir geliştiricinin (Berkant Acun) açık kaynak topluluk projesi, GİB ile bir bağı yok; MIT lisanslı ve ücretsiz, README'ye göre hiçbir veri ağa gitmez. Önemli not: PyPI'de tek yayımlanmış sürüm 0.1.0 (21.09.2026) ve 5 araç sunuyor; README'deki 6. araç (örnek fatura) henüz sürümlenmemiş.
- Ne yapar
- e-Fatura XML'ini GİB kurallarına göre denetler
- Tür
- MCP sunucusu (topluluk projesi; yerel)
- Nerede
- Claude Desktop, Claude Code, Cursor, Cline
- Veri
- Yerelde çalışır; README: ağa gitmez
- Resmî mi
- Hayır; GİB ürünü değil, 0.1.0, 2 yıldız
- Türkçe
- Bulgu açıklamaları ve düzeltmeler Türkçe
- Ücret
- Ücretsiz (MIT); hesap ve anahtar yok
efatura-kontrol ne işe yarar?
MCP, yapay zekâ programlarının dış araçlara bağlanma standardıdır. efatura-kontrol ile asistanına "bu fatura XML'ini GİB kurallarına göre kontrol et" ya da "şu hata kodu ne demek?" diyebilirsin; asistan sunucudaki aracı çağırır, sonucu sana Türkçe anlatır. e-Fatura XML'i üreten bir yazılım geliştiriyorsan, hatayı GİB'e ya da entegratöre göndermeden önce, kendi bilgisayarında öğrenmek için kullanılır.
Fatura kesmez, GİB'e göndermez; README'ye göre veri ağa gitmez.
README'ye göre denetim dört katmandır: XML iyi biçimliliği ve boyutu; OASIS UBL 2.1 XSD şemaları ve GİB zarf şemaları; GİB'in e-Fatura Paketi şematronu (kural kümesi ve kod listeleri); satır, vergi, tevkifat ve dip toplam aritmetiği ile elektronik imzanın yapısı. Her bulgu seviye taşır: hata (GİB reddeder), uyarı (GİB reddetmeyebilir ama alıcı reddedebilir), bilgi (ör. "belge henüz imzalı değil").
| Araç | Türü | Ne yapar |
|---|---|---|
belge_dogrula | Okur | Dosya yolu ya da XML metniyle tam denetim |
belge_ozeti | Okur | Senaryo, taraflar, satırlar, vergiler, dip toplamlar, imza durumu |
bulgu_acikla | Okur | Bulgu kodunun açıklaması ve düzeltmesi |
kod_listesi, kod_listeleri | Okur | GİB kod listeleri (birim, para birimi, vergi, istisna vb.) ve değerleri |
ornek_fatura | Okur (XML üretir, dosya yazmaz) | İmzasız örnek fatura. README'de var, yayımlanmış 0.1.0 sürümünde yok |
Kaynak: README (MCP sunucusu) ve CHANGELOG. README araçların hepsinin salt okunur olduğunu ve hiçbirinin dosya yazmadığını söylüyor. Yazma yetkisi olan araç yok.
Kime yarar: e-Fatura XML'i üreten yazılımcılara, entegratörlere ve muhasebe yazılımı geliştiricilerine. Fatura kesmek isteyen bir işletme sahibiysen bu araç sana doğrudan fatura kesmez; faturanı kestiğin entegratörün kendi ekranı bunun yerine geçer.
efatura-kontrol nasıl kurulur?
Sunucu PyPI'deki efatura-kontrol paketinden çalışır. Önkoşul: Python 3.10 ya da üstü. Bağımlılıklar lxml ve SaxonC-HE (~40 MB). uvx kullanacaksan uv programı da gerekir. Komut ve JSON README'den aynen alındı.
README Claude Desktop, Claude Code ve Cursor için aynı yapılandırmayı veriyor. İstemcinin MCP ayarı dosyasına şunu ekle (README ayar dosyasının yolunu yazmıyor):
› {"mcpServers": {"efatura-kontrol": {"command": "uvx", "args": ["efatura-kontrol", "mcp"]}}}README Claude Code için aynı JSON'u gösteriyor; ayrı bir claude mcp add komutu yazmıyor. JSON'u Claude Code'un MCP ayar dosyasına ekle:
› {"mcpServers": {"efatura-kontrol": {"command": "uvx", "args": ["efatura-kontrol", "mcp"]}}}README Cursor için de aynı JSON'u gösteriyor:
› {"mcpServers": {"efatura-kontrol": {"command": "uvx", "args": ["efatura-kontrol", "mcp"]}}}README Cline gibi ajanların kurulumu llms-install.md dosyasıyla kendi başına yapabileceğini söylüyor. Bu dosya cline_mcp_settings.json içindeki mcpServers nesnesine aynı uvx girdisini (ek olarak disabled ve isteğe bağlı autoApprove alanlarıyla) eklemeyi anlatıyor.
› pip install efatura-kontroluv kurulamıyorsa llms-install.md yedek yol olarak şunu söylüyor: pip kurulumundan sonra yapılandırmada command olarak efatura-kontrol, args olarak ["mcp"] yaz.
İlk çalıştırmada SaxonC-HE (~40 MB) iner. İstemcin zaman aşımına düşmesin diye llms-install.md önce bir kez uvx efatura-kontrol --version komutunu çalıştırmanı öneriyor. Windows'ta istemci uvx'i bulamazsa, aynı dosya command alanına uvx.exe'nin tam yolunu yazmanı söylüyor.
!Yayımlanmış tek sürüm 0.1.0 (21.09.2026). README ve llms-install.md ise sonradan eklenenleri de anlatıyor: ornek_fatura aracı, mcp --http uzak mod ve Docker imajı. CHANGELOG'a göre bunlar [Unreleased] altında; yani uvx efatura-kontrol mcp ile gelen sürümde 5 araç var ve bu üçü olmayabilir. Hangi sürümü çalıştırdığını uvx efatura-kontrol --version ile kontrol et.
Uzak mod (mcp --http, Docker imajı) README'de anlatılıyor ve X-API-Key ile korunuyor; yayımlanmış sürümde bulunmadığı için bu sayfada kurulum adımı olarak verilmedi.
efatura-kontrol nasıl kullanılır?
Kurduktan sonra sohbette efatura-kontrol'ü an, dosya yolunu (ya da XML metnini) ver. Araç sonucu bulguları döndürür; yorumu asistan yapar ve yanlış olabilir, bu yüzden düzeltmeyi uygulamadan önce bulgu kodunu ve GİB'in özgün mesajını da oku.
!Araç "geçerli" dese bile bu, GİB'in faturayı kabul edeceği anlamına gelmez. README: "geçerli" yalnızca GİB'in yayımladığı XSD ve şematronu geçmek demektir; GİB sisteminin canlı kontrollerini (mükellef kayıtlı mı, etiket geçerli mi, mükerrer numara) yapmaz ve imzayı kriptografik olarak doğrulamaz. Bu bir mali müşavirlik ya da hukuki görüş değildir.
efatura-kontrol hangi programlarda çalışır?
| Claude DesktopVar | README MCP bölümünde adı geçiyor; yerel stdio sunucusu. |
|---|---|
| Claude CodeVar | README MCP bölümünde adı geçiyor; ayrı bir komut yazmıyor, JSON ayarı veriyor. |
| CursorVar | README MCP bölümünde adı geçiyor. |
| ClineVar | llms-install.md bu istemci için ayrı kurulum rehberi veriyor. |
| ChatGPT, tarayıcıdaki Claude, diğer programlarNet değil | Belgede adları geçmiyor. Sunucu yerel bir program olarak çalışıyor; "belgede yok" demek "çalışmaz" demek değildir. |
efatura-kontrol neye erişir, veri nereye gider?
Ona verdiğin e-Fatura, e-Arşiv, e-İrsaliye ya da zarf XML dosyalarını (dosya yoluyla ya da XML metniyle) ve pakete gömülü GİB kod listelerini okur.
MCP araçlarının hepsi salt okunur; README hiçbirinin dosya yazmadığını söylüyor. ornek_fatura da dosya yazmaz, XML metni döndürür.
README: "hiçbir veri ağa gitmez"; denetim GİB'e sormadan yerelde çalışır. Yalnızca kurulumda paket ve SaxonC-HE indirilir. Bu README'nin iddiasıdır.
Araç ağa çıkmasa da, dosyanın içeriği ve aracın sonucu sohbetin parçası olur; yani kullandığın yapay zekâ asistanı bunu görür. Faturalar VKN/TCKN, ad ve tutar içerir. Bu kısım aracın değil, asistanının gizlilik ayarına bağlıdır.
!Güvenlik taraması (15.10.2026): GitHub Security Advisories boş, GitHub Advisory Database'de ve OSV'de (PyPI) efatura-kontrol için kayıt yok, PyPI sayfasında bilinen açık listelenmemiş; depoda açık ya da kapalı issue yok. Kayıtlı uyarı görünmüyor. Bu "güvenli" demek değildir: proje 3 haftalık, tek geliştiricili ve 2 yıldızlı; bağımlılıklarının (lxml, saxonche, mcp) kendi kayıtları ayrıca kontrol edilmeli.
efatura-kontrol ücretsiz mi?
Yazılım ücretsiz ve MIT lisanslı; README ve pyproject.toml'da ücret ya da plan geçmiyor. Hesap, API anahtarı ya da ortam değişkeni gerekmiyor (llms-install.md). Kullandığın yapay zekâ asistanının kendi aboneliği ayrı bir konudur ve README onun hakkında bir şey yazmıyor.
- MIT: kodu kullanmak, değiştirmek, dağıtmak serbest
- Ticari ortamda kullanım MIT lisansı açısından serbest
- GİB'in yayımladığı XSD, şematron ve kod listeleri pakete türetilerek konulmuş; bu dosyaların kendi kullanım koşulları README'de ayrıca yazmıyor
Kaynak: README, pyproject.toml ve repodaki LICENSE dosyası. Bu bir hukuki görüş değildir; ticari dağıtım yapacaksan GİB dosyalarının koşullarını ayrıca kontrol et.
Türkiye'ye özel: GİB kuralları ve sınırlar
Araç GİB'in kendi dosyalarını kullanır: UBL-TR 1.2.1 Paketi ve e-Fatura Paketi (29), ebelge.gib.gov.tr adresinden indirilmiş; şematron güncellemesi 01.07.2026 tarihli (KAYNAKLAR.md). README'ye göre kurallar elle yazılmamış, GİB dosyalarından betikle türetilmiş; elle yazılan yalnızca Türkçe açıklamalar ve aritmetik kontrollerdir. GİB kuralları değişirse araç ancak yeni sürümle güncellenir.
| Kapsamda | Kapsam dışı (README) |
|---|---|
| e-Fatura, e-Arşiv fatura, e-İrsaliye, irsaliye ve uygulama yanıtı, zarf | e-Arşiv raporu (eArsivRaporu) ve e-Defter |
| XSD, GİB şematronu, aritmetik, imza yapısı | İmzanın kriptografik doğrulaması (sertifika, özet, zaman damgası) |
| Belgenin kendi içindeki tutarlılık | GİB canlı kontrolleri: mükellef kayıtlı mı, etiket geçerli mi, mükerrer numara |
!Bu sayfa mali müşavirlik ya da hukuki görüş değildir. Faturanın vergi mevzuatına uygunluğu için mali müşavirine ve entegratörüne danış. Araç bir resmî GİB ürünü değildir; README de GİB ile bir bağı olmadığını yazıyor.
Fatura XML'leri kişisel veri (ad, soyad, TCKN) içerebilir. Bu verileri bir yapay zekâ asistanına yüklemeden önce kendi veri sorumlusu yükümlülüklerini (KVKK) düşün; bu bir hukuki görüş değildir.
Sık sorunlar ve çözümleri
| Ne oluyor | Ne yapmalı |
|---|---|
| İlk çalıştırmada uzun bekleme ya da istemcide zaman aşımı | SaxonC-HE (~40 MB) ilk seferde iniyor ve şematron ~0,5 sn derleniyor (README). Önce terminalde uvx efatura-kontrol --version çalıştır (llms-install.md). |
Windows'ta istemci uvx'i bulamıyor | llms-install.md: command alanına uvx.exe'nin tam yolunu yaz. |
README'de geçen ornek_fatura aracı listede yok | CHANGELOG: bu araç [Unreleased]; PyPI'deki 0.1.0'da yok. Yeni sürüm çıkana kadar yayımlanmış sürümde bulunmaz. |
| Araç "geçerli" dedi ama GİB ya da entegratör reddetti | README sınırları: canlı GİB kontrolleri ve imzanın kriptografik doğrulaması yok; "geçerli" ek sunucu kontrollerine garanti değildir. Entegratörün kendi hata mesajını da incele. |
Uzak modda uzak-dosya-kapali hatası | README: uzak modda dosya parametresi kapalı; belgeyi xml parametresiyle metin olarak gönder. Uzak mod yayımlanmış sürümde olmayabilir. |
efatura-kontrol nasıl kaldırılır?
- MCP girdisi: İstemcinin MCP ayarından
efatura-kontrolgirdisini sil. - pip ile kurduysan:
pip uninstall efatura-kontrolile paketi kaldır.
README kaldırma adımı vermiyor; yukarıdakiler standart yöntemlerdir. uvx önbelleğini temizleme komutunu README yazmıyor.
Sık sorulan sorular
e-Fatura XML dosyası GİB'e göndermeden nasıl kontrol edilir?
efatura-kontrol bunun için yazılmış: XML'i GİB'in yayımladığı XSD ve şematron kurallarıyla, aritmetik ve imza yapısı açısından kendi bilgisayarında denetler. Komut satırında efatura-kontrol dogrula fatura.xml ya da MCP üzerinden asistanla kullanılır. "Geçerli" sonucu GİB'in kabul edeceğini garanti etmez.
e-Fatura şematron hatası ne demek?
Şematron, GİB'in belge içeriğine koyduğu kural kümesidir (ör. geçerli birim kodu, tevkifat oranı). efatura-kontrol her şematron bulgusuna sch-... biçiminde bir kod, GİB'in özgün mesajını, satır numarasını, Türkçe açıklamayı ve düzeltme önerisini verir; kodu bulgu_acikla aracıyla da sorabilirsin.
efatura-kontrol resmî bir GİB aracı mı?
Hayır. Tek bir geliştiricinin (Berkant Acun) MIT lisanslı topluluk projesi; README GİB ile bir bağı olmadığını yazıyor. Proje 21.09.2026'da açıldı, tek yayımlanmış sürümü 0.1.0 ve 2 yıldızı var.
Faturalarım internete gidiyor mu?
README "hiçbir veri ağa gitmez" diyor; denetim yerelde çalışıyor. Ancak yapay zekâ asistanına verdiğin dosyanın içeriği ve aracın sonucu sohbetin parçası olur, yani asistanın göreceği veridir.
efatura-kontrol ücretsiz mi, hesap ya da anahtar ister mi?
Ücretsiz ve MIT lisanslı. Hesap, API anahtarı ya da ortam değişkeni gerekmiyor. Python 3.10+ ve (uvx kullanıyorsan) uv gerekir.
efatura-kontrol fatura keser ya da GİB'e gönderir mi?
Hayır. Araçların hepsi salt okunur; fatura göndermez, dosya yazmaz, GİB'e bağlanmaz. Yalnız verdiğin XML'i denetler. README'deki ornek_fatura aracı imzasız, yalnız test ve öğrenme amaçlı örnek XML üretir ve yayımlanmış 0.1.0 sürümünde bulunmuyor.
İlgili rehberler
Kaynaklar
- efatura-kontrol README
- efatura-kontrol CHANGELOG
- efatura-kontrol llms-install.md
- efatura-kontrol KAYNAKLAR.md (GİB paketleri)
- PyPI efatura-kontrol
- GİB e-Belge duyuruları
Resmî kaynaklarda net olmayanlar: Yayımlanmış sürümle README farkı (araç sayısı, uzak mod, Docker imajı) · aracın gerçekten ağa çıkmadığı (yalnız README iddiası) · Claude Code ve Cursor'da çalıştığı (README adlarını yazıyor) · GİB'in gerçek kabul ve ret kararlarıyla uyumu (bağımsız doğrulama yok) · GİB dosyalarının yeniden dağıtım koşulları. Her biri ilgili bölümde yazılı.
