Skip to main content
Glama
zirve-finansman-mcp

zirve-finansman-mcp

by yibudak

zirve-finansman-mcp

CI PyPI Python Lisans: AGPL-3.0

Zirve Finansman'ın genel muhasebe verisini yapay zekâ ajanlarına açan, salt okunur bir MCP sunucusu. Zirve'nin MSSQL veritabanına bağlanır. Ajan hesap planını, fişleri, yevmiye satırlarını ve demirbaş kartlarını okur, mizan ve muavin alır.

Ön muhasebeyi başka bir sistemde tutup resmî defteri Zirve'de işleyen şirketler için yazıldı. İki sistemi de gören bir ajan, eksik ya da tutarı uyuşmayan kayıtları kendisi bulur.

Unofficial bir projedir. Zirve Yazılım'la bir bağı yoktur, Zirve Yazılım tarafından desteklenmez. "Zirve" adı sahibinin markasıdır.

Araçlar

Araç

İşlevi

firmalari_listele

Firmaları, kayıt bulunan yılları ve boş yılları listeler

hesap_ara

Hesap planında ada, kod ön ekine veya VKN/TCKN'ye göre arar

mizan

Hesap bazında borç, alacak ve bakiye verir (detay ya da ana hesap seviyesinde, tarih aralığıyla)

muavin

Bir hesabın hareketlerini devreden ve yürüyen bakiyeyle verir

yevmiye_ara

Yevmiye satırlarını evrak no, VKN, açıklama, hesap, tutar ve tarihe göre arar

fisleri_listele

Fiş başlıklarını listeler, belli bir tarihten sonra kaydedilenleri süzer

fis_getir

Bir fişi başlığı ve satırlarıyla getirir (satırlar sayfalı)

demirbas_ara

Demirbaş kartlarını ada, koda, alış tarihine ve satış durumuna göre arar

demirbas_getir

Bir demirbaş kartını yıllık değerleme ve amortisman satırlarıyla getirir

Araçların hiçbiri veri yazmaz. Serbest SQL çalıştıran bir araç da bilerek eklenmedi.

Related MCP server: SPIP SQL MCP Server

Kurulum

Python 3.10 veya üstü, uv ve Zirve'nin SQL Server'ına ağ erişimi gerekir.

1. Salt okunur bir SQL kullanıcısı açın

Sunucuyu Zirve'nin kendi SQL kullanıcısıyla ya da sa ile çalıştırmayın. Verinin değişmeyeceğini veritabanı yetkisi garanti etmeli. sql/create_readonly_login.sql betiğini bir SQL yöneticisine çalıştırtın. Betik yalnızca SELECT yetkisi olan bir kullanıcı açar.

2. Bağlantı bilgisini bulun

Zirve çoğu kurulumda ZRVSQL2014 gibi adlandırılmış bir instance ve dinamik bir TCP portu kullanır. Portu sunucuda şu sorguyla görürsünüz:

SELECT DISTINCT local_tcp_port FROM sys.dm_exec_connections WHERE local_tcp_port IS NOT NULL;

Dinamik port, SQL servisi yeniden başlayınca değişebilir. İki çözümü var: SQL Server Configuration Manager'dan sabit port verin ya da ZIRVE_SERVER değerini HOST\INSTANCE biçiminde yazın. İkinci yol için sunucuda SQL Browser servisi çalışmalı ve UDP 1434 açık olmalı.

3. MCP istemcisine ekleyin

{
  "mcpServers": {
    "zirve": {
      "command": "uvx",
      "args": ["zirve-finansman-mcp"],
      "env": {
        "ZIRVE_SERVER": "192.0.2.10",
        "ZIRVE_PORT": "1433",
        "ZIRVE_USER": "zirve_mcp_ro",
        "ZIRVE_PASSWORD": "parolanız",
        "ZIRVE_FIRMA": "FIRMA_ADI"
      }
    }
  }
}

Paketi PyPI yerine doğrudan depodan çalıştırmak için args değerini şöyle yazın:

["--from", "git+https://github.com/yibudak/zirve-finansman-mcp", "zirve-finansman-mcp"]

Ortam değişkenleri

Değişken

Açıklama

ZIRVE_SERVER

Sunucu adresi veya HOST\INSTANCE. Zorunlu

ZIRVE_PORT

TCP portu. Instance adı yazdıysanız gerekmez

ZIRVE_USER, ZIRVE_PASSWORD

Salt okunur SQL kullanıcısı ve parolası

ZIRVE_FIRMA

Varsayılan firma. Zirve giriş ekranındaki "Firma Tanıtıcı Adı"

ZIRVE_QUERY_TIMEOUT

Sorgu zaman aşımı, saniye cinsinden. Varsayılan 30

Bilmeniz gerekenler

Kapsam genel muhasebe ve demirbaş kartlarıyla sınırlı. Ticari modül (fatura, stok, cari kartlar), bordro ve beyannameler okunmaz.

Demirbaş kartları firmanın _GENEL veritabanında durur. Yetki betiği o veritabanında yalnızca iki demirbaş tablosunu açar. Yıllık amortisman satırlarını Zirve, Demirbaşlar > Raporlar ekranı çalıştırıldığında üretir. Bazı yıllar eksik ya da eski kalabilir, kesin tutar için muhasebe kaydına bakın.

Sorgular kilit almadan okur (READ UNCOMMITTED). Bu sayede muhasebe programı hiç beklemez. Bedeli şu: o anda kaydedilmekte olan bir fişi yarım görebilirsiniz.

Zirve tutarları float olarak saklar. Sunucu sonuçları kuruşa yuvarlar.

mizan ve muavin araçları, Zirve'nin "kapanış fişi hariç" mizanı gibi kapanış fişini varsayılan olarak saymaz. Kapanış fişi kapanis_dahil ile dahil edilirse kapanmış yıllarda bütün bakiyeler sıfır çıkar.

Metin aramaları büyük-küçük harf ve Türkçe karakter ayrımı gözetmez: "CIVATA", "civata" ve "CİVATA" aynı kayıtları bulur.

Zirve'de bir fiş düzeltilince Refno değişir. Fişi sonradan yeniden bulmak için Fisno kullanın.

Proje, Zirve Finansman V9 ve SQL Server 2014 üzerinde denendi.

Şema notları

Zirve veritabanı şemasını belgelemiyor. Çalışan bir kurulumu inceleyerek çıkardığım notlar docs/zirve-sema.md dosyasında: veritabanlarının düzeni, çekirdek tablolar, kod alanlarının anlamları. Hangi bilginin doğrulandığı, hangisinin veriden çıkarıldığı orada işaretli.

Geliştirme

uv sync
uv run pytest
uv run ruff check .
uv run ruff format --check .

Testler veritabanı gerektirmez. Katkı için ayrıntılar CONTRIBUTING.md dosyasında.

Güvenlik

Bir güvenlik açığı bulursanız herkese açık issue açmayın. GitHub'daki "Report a vulnerability" bağlantısından özel olarak bildirin. Ayrıntılar SECURITY.md dosyasında.

Lisans

AGPL-3.0-or-later. Sunucuyu değiştirip ağ üzerinden başkalarına kullandırırsanız değiştirdiğiniz kaynak kodu da aynı lisansla paylaşmanız gerekir.

Available Tools

9 tools
demirbas_araA
Read-only

Demirbaş (sabit kıymet) kartlarında arama yapar. Kartlar yıldan bağımsızdır, yil parametresi yoktur.

arama: demirbaş adında geçen metin. kod_on_eki: demirbaş kodu başlangıcı (çoğu kurulumda kod, demirbaşın muhasebe hesap koduyla aynıdır; ör. "253", "254.01"). durum: "hepsi", "aktif" (satılmamış) veya "satilan". alis_baslangic/alis_bitis: alış tarihi aralığı. toplam alanı sayfalamadan bağımsız adet ve alış tutarıdır. HesapKodu demirbaşın muhasebe hesabıdır; hareketleri için muavin(hesap_kodu=...) kullanın.

Inputs: arama, durum, firma, limit, +4 more.

demirbas_getirA
Read-only

Bir demirbaş kartını yıllık değerleme ve amortisman satırlarıyla getirir.

kod: demirbaş kodu (demirbas_ara sonucundaki Kod). yillar: her yıl için dönem başı değer, yeniden değerleme, dönem amortismanı (DonemAmortismani), birikmiş amortisman ve devreden net değer. Dikkat: yıllık satırları Zirve, Demirbaşlar > Raporlar ekranı çalıştırıldığında üretir; bazı yıllar eksik ya da güncel olmayabilir. Kesin tutar için muhasebe kaydına (muavin) bakın.

Inputs: kod (required), firma.

firmalari_listeleB
Read-only

Zirve'deki firmaları listeler: yillar yevmiye kaydı bulunan, bos_yillar veritabanı olup boş olan yıllar.

Inputs: no named parameters.

fis_getirA
Read-only

Tek bir muhasebe fişini başlığı ve yevmiye satırlarıyla getirir (satırlar sayfalıdır).

refno: fişin Refno değeri (yevmiye_ara, muavin ve fisleri_listele sonuçlarında bulunur). satir_sayisi fişteki toplam satırdır; devami_var ise sonraki_offset ile devam edin. Not: Zirve'de bir fiş düzeltildiğinde Refno değişir; kalıcı referans olarak Fisno kullanın.

Inputs: refno (required), yil, firma, limit, +1 more.

fisleri_listeleA
Read-only

Muhasebe fişlerinin başlıklarını listeler (en son kaydedilen önce).

baslangic/bitis: fiş tarihi aralığı. kayit_tarihinden_sonra: kayıt zamanı (Kayittarihi) bu andan sonra olan fişler; YYYY-AA-GG ya da saatle YYYY-AA-GG SS:DD:SS. "Son kontrolden beri ne girildi" sorusu için. fis_no: fiş numarası (baştaki sıfırlar olmadan da verilebilir). kullanici: fişi kaydeden Zirve kullanıcısı (Ozkod). Btop/Atop fişin borç/alacak toplamıdır. Satırlar için fis_getir kullanın.

Inputs: yil, bitis, firma, limit, +5 more.

hesap_araA
Read-only

Hesap planında arama yapar (cari hesaplar dahil; ör. 120=alıcılar, 320=satıcılar).

arama: hesap adında geçen metin (büyük-küçük harf ve Türkçe karakter ayrımı gözetmez). kod_on_eki: hesap kodu başlangıcı (ör. "120" veya "320.01"). vergi_no: hesaba tanımlı VKN/TCKN. sadece_detay: yalnızca kayıt girilebilen alt hesaplar. Hesap kartlarının çoğunda VKN boştur; vergi_no ile sonuç çıkmazsa yevmiye_ara(vergi_no=..., hesap_on_eki="120" veya "320") ile carinin hesap kodunu yevmiye satırlarından bulun.

Inputs: yil, arama, firma, limit, +4 more.

mizanA
Read-only

Mizan: hesap bazında borç/alacak toplamları ve bakiye (yevmiye satırlarından hesaplanır).

kod_on_eki: yalnızca bu kodla başlayan hesaplar (ör. "120"). baslangic/bitis: fiş tarihi aralığı (boşsa tüm yıl; açılış fişi 1 Ocak tarihlidir). seviye: "detay" (alt hesap) veya "ana" (ilk 3 hane). Bakiye = Borc - Alacak (pozitif borç bakiyesi). toplam alanı sayfalamadan bağımsız genel toplamdır. kapanis_dahil: Zirve'nin "kapanış fişi hariç" mizanı gibi, varsayılan olarak kapanış fişi (Fistur 9) sayılmaz; True verilirse kapanmış yıllarda tüm bakiyeler sıfırlanır.

Inputs: yil, bitis, firma, limit, +6 more.

muavinA
Read-only

Muavin (hesap ekstresi): tek bir hesabın hareketleri ve yürüyen bakiyesi.

hesap_kodu: tam hesap kodu (ör. "120.00010"; hesap_ara ile bulunur). baslangic verilirse o tarihten önceki hareketler "devreden" olarak özetlenir. Bakiye pozitifse borç, negatifse alacak bakiyesidir. kapanis_dahil: mizan ile tutarlı olsun diye kapanış fişi (Fistur 9) varsayılan olarak sayılmaz; True verilirse kapanmış yılda kapanış bakiyesi sıfır çıkar. Ana hesap ya da olmayan kod verilirse hata döner.

Inputs: hesap_kodu (required), yil, bitis, firma, +4 more.

yevmiye_araA
Read-only

Yevmiye satırlarında arama yapar; dış sistem kayıtlarını Zirve'de bulmak için ana araçtır.

evrak_no: fatura/belge numarasında geçen metin. vergi_no: satırdaki VKN/TCKN (tam eşleşme). aciklama: satır açıklamasında geçen metin (büyük-küçük harf ve Türkçe karakter ayrımı gözetmez). hesap_on_eki: hesap kodu başlangıcı (ör. "120", "600"). tutar_min/tutar_max: satırın TL tutarı (borç veya alacak); tam tutar için ikisine aynı değeri verin. baslangic/bitis: fiş tarihi aralığı. En az bir filtre verin.

Inputs: yil, bitis, firma, limit, +8 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 9 tools

    Disambiguation4/5

    The tools mostly target distinct resources and actions: company listing, voucher headers, voucher detail, journal-line search, account search, trial balance, ledger, and fixed assets. There is some potential overlap among fisleri_listele, yevmiye_ara, and fis_getir, and between mizan and muavin, but the descriptions clarify header/line/detail and balance/statement scopes.

    Naming Consistency4/5

    Most names follow a readable Turkish object_action pattern in snake_case, such as firmalari_listele, hesap_ara, yevmiye_ara, and fis_getir. The bare report nouns mizan and muavin are minor deviations but still fit the accounting domain.

    Tool Count5/5

    Nine tools is well-scoped for a finance/accounting query server, with each tool covering a distinct reporting or lookup need. There is no obvious redundant or bloated tool surface.

    Completeness4/5

    The surface covers core read-only finance workflows: companies, voucher listing/detail/search, account search, trial balance, ledger, and fixed assets. It lacks write operations and broader finance modules such as invoice or current-account management, but as a reporting/query MCP it is largely complete.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      C
      maintenance
      A read-only MCP server for the NuMetric.work accounting/POS/ERP platform, exposing 38 tools to query live business data such as financial statements, invoices, taxes, projects, inventory, and documents. It enables AI assistants to answer from real accounting data without any create, edit, or delete capabilities.
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides read-only Microsoft SQL Server database access to AI agents with row-level security, enabling SELECT queries, table metadata, and schema introspection through MCP.
      23 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      A read-only MCP server for Microsoft SQL Server that enables AI agents to safely explore and query SQL Server databases.
      1,560 npm
      MIT
    • F
      license
      Not graded
      quality
      C
      maintenance
      Enables governed, read-only SQL analytics, hybrid RAG knowledge search, financial metric calculation, and database schema introspection through MCP, with role-based access control, audit logging, and AI observability.
      -