Türkiye Vergi MCP
Enables Turkish tax research, calculation, and document management using official GİB resources, including legislation search, tax computation, invoice validation, and circular drafting.
README
Türkiye Vergi MCP
Resmî Gelir İdaresi Başkanlığı (GİB) kaynaklarını kullanan, yerel çalışabilen ve yapılandırılmış sonuç üreten Model Context Protocol sunucusu.
Bu proje şu yetenekleri tek sunucuda toplar:
- Kanun, madde, tebliğ, sirküler, özelge, yönetmelik ve karar arama
- Resmî belge tam metni ve tarih aralığına göre değişiklik tarama
- KDV, KDV tevkifatı, stopaj ve gecikme zammı hesaplama
- Canlı GİB vergi takvimi ve isteğe bağlı ICS çıktısı
- UBL-TR/e-Fatura XML ile CSV/XLSX fatura denetimi
- Resmî kanıt bağlantıları içeren şirket içi vergi sirküleri taslağı
Bu sunucu genel bilgilendirme ve araştırma amaçlıdır. Hukuki görüş veya mali müşavirlik hizmeti vermez. İşleme özgü sonuçlar güncel resmî metin ve yetkili uzman tarafından doğrulanmalıdır.
Hızlı başlangıç
Gereksinimler: Python 3.11–3.14 ve uv.
uv sync --native-tls --extra dev
uv run vergi-mcp
stdio taşıması kullanılır; masaüstü MCP istemcileri için önerilen çalışma
şeklidir. Sunucu standart çıktıya log yazmaz, dolayısıyla JSON-RPC akışı bozulmaz.
Genel bir MCP istemci yapılandırması:
{
"mcpServers": {
"vergi": {
"command": "uv",
"args": [
"--directory",
"C:\\PROJE\\vergiMcp",
"run",
"vergi-mcp"
]
}
}
}
Yolu kendi proje klasörünüzle değiştirin. API anahtarı gerekmez.
Sunulan MCP araçları
| Araç | İşlev |
|---|---|
saglik_kontrolu |
Sunucu sürümü ve isteğe bağlı canlı GİB erişimi |
mevzuat_ara |
Tüm resmî vergi belge türlerinde arama |
ozelge_ara |
Konu, kanun ve tarih filtreli özelge arama |
mevzuat_belgesi_getir |
Arama sonucundaki GİB sayfasını temiz metin olarak alma |
mevzuat_degisikliklerini_bul |
Tarih aralığındaki yeni düzenlemeleri tarama |
kdv_hesapla |
KDV hariç/dâhil ve isteğe bağlı tevkifat hesabı |
stopaj_hesapla |
Brüt/net stopaj ve isteğe bağlı KDV hesabı |
gecikme_zammi_oranlari |
Yürürlük tarihli resmî oran tablosu |
gecikme_zammi_hesapla |
Tam ay ve günlük kesirleri dikkate alan hesaplama |
vergi_takvimi |
Canlı beyan/ödeme takvimi ve ICS çıktısı |
fatura_denetle |
XML, CSV veya XLSX fatura kontrolü |
sirkuler_taslagi_olustur |
Kaynak bağlantılı Markdown sirküler taslağı |
resmi_kaynaklari_listele |
Kullanılan birincil kaynak kataloğu |
Kaynaklar ayrıca vergi://resmi-kaynaklar,
vergi://oranlar/gecikme-zammi ve vergi://yasal-uyari URI’leriyle sunulur.
Örnek istekler
Bir MCP istemcisinde doğal dille şunları isteyebilirsiniz:
- “KDV tevkifatı konusunda 2026 özelgelerini ara ve kaynaklarını göster.”
- “118.000 TL KDV dâhil tutarı %20 KDV ve 7/10 tevkifatla hesapla.”
- “1 Ocak–31 Temmuz 2026 arasındaki KDV son tarihlerini ICS olarak getir.”
- “Bu UBL-TR XML faturasındaki matematik ve zorunlu alan hatalarını denetle.”
- “Son altı aydaki e-Defter düzenlemelerinden yönetim sirküleri taslağı hazırla.”
Fatura denetimi
Üç girdi biçimi desteklenir:
- Doğrudan
xml_icerigi - Base64 kodlu
base64_xml - Yerel
.xml,.csvveya.xlsxiçindosya_yolu
Yerel dosya okuma varsayılan olarak yalnızca sunucunun başlatıldığı klasörle
sınırlıdır. İzinli kökleri .env içinde noktalı virgülle belirleyebilirsiniz:
VERGI_MCP_ALLOWED_INPUT_DIRS=C:\Faturalar;D:\Kontrol
VERGI_MCP_MAX_INPUT_BYTES=10485760
VERGI_MCP_MAX_INVOICE_ROWS=10000
Denetleyici:
- DTD/haricî varlık işlemeden güvenli XML ayrıştırır.
- UBL 2.1/TR profil alanlarını ve taraf kimliklerini kontrol eder.
- Satır, vergi, tevkifat ve ödenecek tutar matematiğini
Decimalile karşılaştırır. - CSV/XLSX sütunlarını Türkçe ve İngilizce yaygın başlıklarla eşler.
- VKN/TCKN değerlerini çıktıda maskeleyerek raporlar.
- Dosya içeriğini hiçbir dış servise göndermez.
Bu kontrol, GİB’in tam XSD/Schematron doğrulaması veya XMLDSig/XAdES imza doğrulaması değildir. Sonuç modeli bunu açıkça belirtir; “GİB tarafından geçerli” iddiasında bulunmaz. Tam resmî doğrulama için GİB’in güncel UBL-TR 1.2.1 XSD, Schematron/kod listesi ve uygun XPath 2.0 motoru ayrıca kurulmalıdır.
Hesaplamaların kapsamı
- Para hesabında ikili kayan nokta yerine
DecimalveROUND_HALF_UPkullanılır. - KDV ve stopaj oranları kullanıcı girdisidir; işlem sınıflandırması otomatik hukuki karar olarak verilmez.
- Gecikme zammı oranları yürürlük başlangıç/bitiş tarihleriyle
tax_rates.jsoniçinde tutulur. - Gecikme zammı motoru tam ayları, günlük kesirleri, dönem içi oran değişikliklerini, günlük oranın altı ondalığa yukarı tamamlanmasını ve asgari 1 TL kuralını raporlar.
- Tecil, iflas, aciz, mücbir sebep ve benzeri özel durumlar standart hesap dışında bırakılır ve sonuçta uyarı olarak gösterilir.
Streamable HTTP
Yerel HTTP endpoint’i çalıştırmak için:
uv run vergi-mcp-http
Endpoint http://127.0.0.1:8000/mcp olur. Kimlik doğrulamasız HTTP taşıması
güvenlik nedeniyle yalnızca loopback adresinde başlatılır. Özellikle mükellef veya
fatura verisi işlenecekse sunucuyu doğrudan internete açmayın. Uzak dağıtım için
OAuth/token doğrulaması, TLS, erişim kaydı ve veri saklama politikası ekleyin.
Yapılandırma
Tüm değişkenler VERGI_MCP_ önekini kullanır. Örnekler
.env.example dosyasındadır.
| Değişken | Varsayılan | Açıklama |
|---|---|---|
VERGI_MCP_REQUEST_TIMEOUT_SECONDS |
25 |
GİB HTTP zaman aşımı |
VERGI_MCP_CACHE_TTL_SECONDS |
600 |
Salt okunur yanıt önbelleği |
VERGI_MCP_ALLOWED_INPUT_DIRS |
. |
Okunabilecek yerel klasörler |
VERGI_MCP_MAX_INPUT_BYTES |
10485760 |
Azami fatura boyutu |
VERGI_MCP_MAX_INVOICE_ROWS |
10000 |
Azami tablo satırı |
VERGI_MCP_HTTP_HOST |
127.0.0.1 |
Yerel HTTP bind adresi |
VERGI_MCP_HTTP_PORT |
8000 |
Yerel HTTP portu |
VERGI_MCP_LOG_LEVEL |
INFO |
stderr log seviyesi |
Test ve kalite kontrolleri
uv run pytest
uv run pytest --cov=vergi_mcp --cov-report=term-missing
uv run ruff check .
uv run mypy src
uv run python scripts/live_smoke.py
uv run python scripts/http_smoke.py
Test paketi saf hesaplamaları, XML/tablo ayrıştırmayı, dosya yolu sınırlarını, GİB yanıt normalizasyonunu ve MCP’nin bellek içi araç sözleşmelerini kapsar.
Mimari
src/vergi_mcp/
├── server.py MCP araç, kaynak ve prompt kayıtları
├── config.py Ortam ayarları ve dosya erişim sınırları
├── clients/gib.py GİB HTTP adaptörü, retry ve önbellek
├── services/mevzuat.py Mevzuat/özelge/değişiklik araması
├── services/calendar.py Canlı vergi takvimi
├── services/calculations.py Decimal tabanlı hesap motorları
├── services/invoice.py UBL-TR ve tablo denetimi
├── services/circular.py Kanıt tabanlı sirküler taslağı
└── data/tax_rates.json Yürürlük tarihli oran verisi
İş mantığı MCP dekoratörlerinden ayrıdır; servisler doğrudan test edilebilir. GİB’in ön yüz API’sinin yayımlanmış bir OpenAPI sözleşmesi bulunmadığı için bütün uçlar tek bir değiştirilebilir adaptörde tutulur ve beklenmeyen yanıtlar sessizce yanlış sonuca çevrilmez.
Veri güncelliği
Mevzuat ve takvim her çağrıda GİB’den alınır ve kısa süreli önbelleğe konur. Hesaplama oranları sürümlü yerel veridir. Oran dosyası güncellenirken:
- GİB’in resmî oran geçmişini kontrol edin.
- Yeni kaydı yürürlük tarihi ve kaynak URL’siyle ekleyin.
- Önceki kaydın
effective_totarihini kapatın. - Oran sınır ve geçiş testlerini çalıştırın.
Lisans
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。