|
<< İçindekileri Görüntülemek İçin Tıklayın >> Yer: Teknik Kılavuzlar > Netsim System Agent İstemci Protokolü Referansı > 12. MCP > 12.1 MCP kipi (stdio, -MCP) |
NetsimSystemAgent.exe -MCP ajanı standart giriş/çıkış üzerinden konuşan bir MCP sunucusuna çevirir. Araçlar koddan değil veritabanından gelir, ve her aktif veritabanı kendi araç kümesini getirir:
SELECT * FROM WEBSENDP
WHERE KAYIT_DURUMU IN ('A','O') AND HTTP_METHOD IN ('MCP','Local MCP')
Bir satırın WEB_ENDPOINT_KODU aracın adı, ACIKLAMA_TEXT açıklaması, PARAMETRELER girdi şeması (JSON), SCRIPT_TEXT çalıştırılacak metindir. Yalnızca SCRIPT_DILI değeri SQL OPEN ve SQL EXECUTE olan satırlar çalıştırılır.
| Yeni araç eklemek | WEBSENDP tablosuna satır eklemek yeterlidir; C++ tarafında değişiklik gerekmez. |
| Hangi veritabanları | -DATABASE <ad> verilmişse yalnızca o kayıt; verilmemişse MASTER'da kayıtlı, istemci bağlantısı kurulabilen bütün veritabanları. Her kayıt kendi bağlantısını tembel açar ve araçlarını kendi WEBSENDP'sinden yükler. Ulaşılamayan bir veritabanının araçları o listede yer almaz, diğerleri sunulur. Hiç kayıt yoksa liste yalnızca reload_tools'u taşır (veritabanı kaydedildikten sonra çağırılacak araç odur); kayıt var ama hiçbirine bağlanılamıyorsa yerleşik ivd__* araçları da sunulur ve durum günlüğe yazılır. tools/list her koşulda bir araç listesi döndürür. |
| Araç adı | Tek veritabanı sunulurken PATH'in kendisi. Birden fazla veritabanı varken <önek>__<PATH>; önek kayıt adının küçük harfli biçimidir, [a-z0-9_-] dışındaki her karakter _ olur (NETSIM → netsim__). Toplam ad 64 karakteri aşarsa o araç sunulmaz. Çağrı, önekten bulunan veritabanının bağlantısında koşar. |
| Ne zaman görünür | Araç listesi süreç başına bir kez yüklenir. Yeni satır MCP süreci yeniden başlatılınca ya da yerleşik reload_tools aracı çağrılınca görünür: sunucu listeleri düşürür, notifications/tools/list_changed gönderir, istemci tools/list'i yeniler. Araç her listede vardır ve veritabanı ön eki taşımaz. |
| Bozuk satır | PARAMETRELER geçerli JSON değilse o araç günlüğe yazılıp atlanır; diğerleri yüklenir. |
| Parametre sırası | Konumsaldır ve WEBSENDP bölümündeki Parametre sırası kuralı aynen geçerlidir — MCP'ye özgü bir davranış değildir. |
| Yardım ve belge havuzları | Yerleşik araçlar aynı yapıdaki iki havuzu sunar. Müşteri belgeleri (veritabanı başına belge havuzu; database argümanı, yoksa -DATABASE) için doc_collections, doc_search (tam metin; Türkçe harfler aksansız yazımla da eşleşir; koleksiyon süzgeci), doc_get (konu adıyla ya da bağlı olduğu varlıkla), doc_entity (form sınıfı, işlem kodu, modül: öznitelikler, ilişkiler, eski adlar, bağlı konular, çevrimiçi yardım adresi), doc_entities, doc_links, doc_stats; NETSİM yardımı (yardım havuzu, paketteki help.db) için help_search, help_get_topic, help_form_info, help_stats. Yardım havuzu conf'taki docs/help dosyasıdır (öndeğer ajanın dizinindeki help.db); belge havuzunu ALTER DATABASE … SET DOCUMENTS veritabanına bağlar. İkisi de salt okunur açılır; belge koleksiyonları AdminREST EXECCOMMAND IMPORTDOC ile alınır. Havuz yoksa araçlar help pool not found ya da document pool not imported döner. Ayrı dizinden çalışan bir MCP kopyasının conf'unda docs/help ajanın dosyasını gösterir. MCP bütün koleksiyonları görür; araçlar her listede yer alır. doc_search anlamca yakın konuları da bulur (mode: fts tam metin, vector anlam, hybrid ikisinin birleşimi). Bunun için sorgu gömme modeli help.db'nin dizininde models\e5-int8\ altında (model_int8.onnx, tokenizer.json) ve ONNX Runtime kitaplığı ajanın yanında (onnxruntime.dll; Linux'ta libonnxruntime.so) durur. Biri yoksa vector ve hybrid açık bir hata iletisi döner, fts çalışmaya devam eder. |
| Yetki | MCP yolunda ROLE_KODU okunmaz. Süreç yereldir, onu başlatan kullanıcının yetkisiyle ve MASTER kaydındaki veritabanı kimliğiyle koşar; güven modeli “kullanıcıya eşit”dir. |