Skip to main content
Glama

E-Nabız MCP

E-Nabız (T.C. Sağlık Bakanlığı Kişisel Sağlık Sistemi) verilerinize bir LLM üzerinden erişmek için yerel bir MCP (Model Context Protocol) sunucusu.

⚠️ Kişisel kullanım. Bu araç yalnızca kendi hesabınıza, kendi kimlik bilgilerinizle erişmeniz içindir. Hassas sağlık verisi (PHI) işler; yerel stdio üzerinden çalışır, hiçbir veriyi harici servise göndermez.

Durum

🟢 Çekirdek çalışıyor: 47 tool / 20 veri alanı. Sağlık verisi salt-okunur; yazma yalnız MHRS randevu alma/iptalinde (iki adımlı onaylı). İlerleme: docs/STATUS.md.

Related MCP server: HealthLedger MCP

Amaç ve iyi niyet beyanı

Bu proje kişisel kullanım ve öğrenme amacıyla yazıldı: kendi sağlık geçmişinize bir LLM üzerinden anlamlı şekilde erişebilmek ("son beş yılda hangi tahlillerim referans dışıydı?") ve modern bir ASP.NET portalının XSRF + 2FA akışının nasıl çalıştığını anlamak. Bir güvenlik kontrolünü aşma, veri toplama ya da başkasının verisine erişme aracı değildir.

Bu bir niyet beyanından ibaret olmasın diye, her madde kodda doğrulanabilir:

İlke

Kodda karşılığı

Yalnızca kendi veriniz

Kimlik bilgileri yalnız .env'den okunur, tool argümanı değildir (LLM bağlamına hiç girmez). Başka bir hesaba erişecek bir yol yoktur — portal zaten kendi TC kimliğinize gelen SMS'i ister.

Sağlık veriniz salt-okunur

Hiçbir tool sağlık verinize yazmaz: e-Nabız'ın yazma uçlarına (/Sil, /Kaydet, /Iptal …) dokunulmaz. Bu bir söz değil, test edilen bir invaryant — keşif tarayıcısı bir yazma ucuna dokunursa suite kasten patlar (tests/test_discover_scan.py:45).

Randevu yazması sınırlı ve onaylı

MHRS randevu alabilir ve iptal edebilir — projenin tek yazma yüzeyi (giriş dışında). Tek adımda olmaz: book_prepare slotu sunucuda doğrulayıp confirm_token döner, book_confirm alır. Token yalnız doğrulanmış slot için üretilir ve süreç belleğinde tutulur, yani model bir slot id uydurup size randevu yazamaz. İptal confirm=True ister. Ayrıca çalışma-zamanı kapısı: yazma sınıfı bir uca allow_write=True demeden gidilirse istek WriteNotAllowed ile durur.

Dürüst tool anotasyonları

47 tool'un 39'u readOnlyHint: True. İşaretlenmeyen 8'i: login_start/login_verify (telefonunuza SMS gider, oturum yazılır) 4 MHRS randevu + 2 MHRS talep tool'u (gerçekten yazarlar). book_prepare bile False — çünkü MHRS o çağrıda slotu kilitliyor olabilir. Her şeye "salt-okunur" damgası vurulmadı.

Güvenlik kontrolleri atlatılmaz

reCAPTCHA çözülmez, SMS OTP kaldırılmaz veya kırılmaz — kod her zaman sizin kayıtlı telefonunuza gider ve giriş insan-döngüdedir. Otomasyon, kodu elle girmenin yerine geçer; kontrolün kendisini ortadan kaldırmaz.

Veri sizde kalır

Yalnız yerel stdio. Harici API, telemetri, analytics yok. PDF'ler diskinize chmod 600 ile iner; içerik LLM'e verilmez, yalnız {saved_path, byte_size, sha256, content_type} döner.

Portala saygı

İstekler arası hız sınırı (ENABIZ_MIN_INTERVAL, varsayılan 0.5 sn) — sunucuya yük bindirmemek için. Toplu/hızlı veri çekme aracı değildir.

PHI repoya girmez

Testler ağ kullanmaz, sentetik fixture ile çalışır. Ham portal yanıtları gitignore'dadır; bulgu dokümanlarına gerçek değer yazılmaz.

Resmî değildir. T.C. Sağlık Bakanlığı veya E-Nabız ile hiçbir bağlantısı, onayı ya da desteği yoktur. "E-Nabız" adı yalnızca aracın hangi sisteme eriştiğini tarif etmek için kullanılır.

Tıbbi tavsiye değildir. Araç verinizi yalnızca okur ve yapılandırır; örneğin out_of_range alanı basit bir sayısal aralık karşılaştırmasıdır — klinik bir yorum değil. Sağlığınıza dair kararlarda hekiminize danışın.

Geri mühendislik yalnızca yazarın kendi hesabına karşı, kendi verisiyle yapıldı; bulgular (docs/findings/) yapıyı ve alan adlarını belgeler, gerçek hasta verisi içermez.

Nasıl çalışır (özet)

E-Nabız portalı ASP.NET Core tabanlıdır ve giriş antiforgery (XSRF) çift-token, reCAPTCHA ve SMS OTP (2FA) ile korunur.

  • XSRF tamamen otomatik yönetilir (bkz. docs/findings/auth-flow.md).

  • reCAPTCHA çözülmez; SMS OTP kaldırılmaz — kod her zaman gerçek telefonunuza gider. Giriş varsayılan olarak insan-döngüde yapılır: SMS kodunu siz sağlarsınız. (Opsiyonel: kendi Mac'inizde iMessage'a düşen kodu, açık izninizle okuma — bkz. docs/privacy.md.)

Kurulum

Repoyu klonlamadan, uvx ile (önerilen):

uvx enabiz-mcp          # PyPI'dan indirir ve stdio sunucusunu başlatır

Geliştirme için, repodan:

uv sync
cp .env.example .env    # TCKIMLIK ve SIFRE'yi doldurun
uv run enabiz-mcp       # stdio MCP sunucusu

⚠️ uvx ile .env ÇALIŞMAZ. Kimlik bilgilerini aşağıdaki gibi istemcinin env bloğuyla verin. Sebep: python-dotenv .env'i çağıran modülün dosyasından yukarı doğru arar; uvx paketi uv önbelleğine kurduğu için o arama sizin proje dizininize hiç uğramaz. Repodan uv run ile çalışırken bulunur (venv repo içindedir), uvx ile bulunmaz — ve bu sessizce olur: hata ancak girişte "ENABIZ_TCKIMLIK ayarlı değil" olarak çıkar. (Ölçüldü.)

MCP istemci yapılandırması

Claude Desktop (claude_desktop_config.json) — uvx ile:

{
  "mcpServers": {
    "enabiz": {
      "command": "uvx",
      "args": ["enabiz-mcp"],
      "env": {
        "ENABIZ_TCKIMLIK": "<T.C. kimlik no>",
        "ENABIZ_SIFRE": "<portal şifresi>"
      }
    }
  }
}

Claude Code:

claude mcp add enabiz \
  --env ENABIZ_TCKIMLIK=<T.C. kimlik no> \
  --env ENABIZ_SIFRE=<portal şifresi> \
  -- uvx enabiz-mcp

Repodan çalıştırıyorsanız (.env bu durumda okunur, env bloğu gerekmez):

{
  "mcpServers": {
    "enabiz": {
      "command": "uv",
      "args": ["--directory", "/mutlak/yol/eNabizMCP", "run", "enabiz-mcp"]
    }
  }
}

Oturum ve inen dosyalar varsayılan olarak ~/.config/enabiz-mcp/ altında, chmod 600 ile durur (ENABIZ_SESSION_PATH / ENABIZ_DOWNLOAD_DIR ile değiştirilebilir).

Docker (ghcr.io)

Hazır imaj: ghcr.io/umutkdev/e-nabiz-mcp (linux/amd64 + linux/arm64). İmaj yalnızca kodu taşır — kimlik bilgisi ve sağlık verisi taşımaz; ikisi de çalışma zamanında sizin diskinizden bağlanır.

mkdir -p ~/enabiz-mcp-data          # ÖNCE siz oluşturun (aşağıdaki nota bakın)

docker run -i --rm --init \
  --user "$(id -u):$(id -g)" \
  -v ~/enabiz-mcp-data:/data \
  -v "$PWD/.env:/app/.env:ro" \
  --read-only --tmpfs /tmp:rw,noexec,nosuid,size=64m \
  ghcr.io/umutkdev/e-nabiz-mcp:latest

Bayrakların hepsi gereklidir, dekoratif değil:

Bayrak

Neden

-i

Şart. stdio sunucusu; stdin kapalıysa EOF görüp anında çıkar. -d ile ASLA çalıştırmayın.

-v .env:/app/.env:ro

Kimlik bilgilerinin tek doğru yolu. /app dışına bağlarsanız sessizce bulunmaz.

-v ~/enabiz-mcp-data:/data

Oturum kalıcılığı + inen PDF'ler. Yoksa her yeniden başlatma gerçek bir SMS OTP yakar.

--user

Linux'ta bind-mount sahipliği. macOS'ta zararsız.

--init

PID 1'deki Python'un varsayılan SIGTERM işleyicisi yoktur; docker stop bunsuz 10 sn bekler.

--read-only + --tmpfs

Sertleştirme; tek yazılabilir yol /data.

-e / --env-file KULLANMAYIN. Ölçüldü: --env-file .env ile başlatılan bir konteynerde docker inspect çıktısındaki .Config.Env alanı ENABIZ_SIFRE ve ENABIZ_TCKIMLIK değerlerini düz metin gösterir. T.C. Kimlik No geri alınamaz; mount edilen dosya docker inspectte görünmez. Bu yüzden .env dosya olarak bağlanır.

Neden /app/.env? .env'i bulan şey WORKDIR değil, venv'in konumudur: python-dotenv'in find_dotenv()'i çağıran modülün dosyasından yukarı yürür (/app/.venv/lib/python3.13/site-packages/enabiz_mcp/config.py → … → /app). .env'i /data'ya bağlarsanız hiç okunmaz ve hata ancak login sırasında "ENABIZ_TCKIMLIK ayarlı değil" olarak yüzeye çıkar. (Bu, tasarım sırasında ölçülerek doğrulandı.)

~/enabiz-mcp-data'yı neden önce siz oluşturuyorsunuz? Linux'ta Docker eksik bir bind-mount kaynağını root'a ait olarak yaratır. --user ile çalışan sunucu oraya yazamaz ve hata enabiz_login_start'ta, SMS gönderildikten sonra patlar — yani her denemede gerçek bir OTP yakılır. Dizin önceden varsa sorun oluşmaz.

MCP istemci yapılandırması (Docker)

$(id -u) ve ~ JSON içinde genişlemezid -u; id -g çıktısını ve mutlak yolları elle yazın:

{
  "mcpServers": {
    "enabiz": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "--init",
               "--user", "501:20",
               "-v", "/Users/KULLANICI/enabiz-mcp-data:/data",
               "-v", "/Users/KULLANICI/eNabizMCP/.env:/app/.env:ro",
               "--read-only", "--tmpfs", "/tmp",
               "ghcr.io/umutkdev/e-nabiz-mcp:latest"]
    }
  }
}

İnen PDF'ler konteynerde /data/downloads altına yazılır; host'ta ~/enabiz-mcp-data/downloads/ olarak, chmod 600 ile sizde kalır.

Giriş akışı

enabiz_login_start → telefona gelen kodu enabiz_login_verify'a girin. Oturum yerel olarak saklanır ve süresi (~30–60 dk) dolana dek yeniden kullanılır. Oturum düşerse veri tool'ları error: "auth_required" döner; yeniden giriş yapın.

Tool'lar (47)

Oturum: enabiz_login_start · enabiz_login_verify · enabiz_session_status

Özet: enabiz_get_health_summary (profil + alerji + tanı/aşı/ilaç/ziyaret sayıları + randevular, tek çağrı)

Tahliller: enabiz_list_lab_tests · enabiz_get_lab_trend

Reçete & ilaç: enabiz_list_prescriptions · enabiz_get_prescription_detail · enabiz_list_optical_prescriptions · enabiz_list_device_prescriptions · enabiz_list_medications · enabiz_get_drug_leaflet · enabiz_get_drug_usage_history

Klinik: enabiz_list_reports · enabiz_list_allergies · enabiz_list_diagnoses · enabiz_get_diagnosis_detail · enabiz_list_chronic_disease_followups · enabiz_list_vaccinations · enabiz_list_discharge_summaries · enabiz_list_pathology

Radyoloji: enabiz_list_radiology_studies · enabiz_get_radiology_report · enabiz_get_radiology_image_link

Ziyaret & randevu: enabiz_list_hospital_visits · enabiz_get_visit_detail · enabiz_list_appointments (salt-okunur; almaz/iptal etmez)

MHRS — arama (salt-okunur): enabiz_mhrs_list_provinces · enabiz_mhrs_list_districts · enabiz_mhrs_list_clinics · enabiz_mhrs_list_upcoming · enabiz_mhrs_list_history · enabiz_mhrs_search_institutions · enabiz_mhrs_search_slots · enabiz_mhrs_rebook_criteria · enabiz_mhrs_list_requests

MHRS — randevu (YAZMA): enabiz_mhrs_book_prepareenabiz_mhrs_book_confirm · enabiz_mhrs_book_cancel_prepare · enabiz_mhrs_cancel · enabiz_mhrs_create_request · enabiz_mhrs_delete_request

MHRS (prd.mhrs.gov.tr) e-Nabız'dan ayrı bir sistemdir; e-Nabız'ın "Randevu Al" düğmesinin arkasındaki SSO devriyle bağlanılır. enabiz_list_appointments e-Nabız'ın HTML tablosunu okur; MHRS tool'ları API'nin kendisini okur ve hrn (hasta randevu numarası) döndürür — tabloda olmayan, iptal için gereken anahtar.

Randevu alma/iptal iki adımlıdır. book_prepare(slot_id) yazmaz — slotu sunucuda doğrular ve onay özeti + confirm_token döner; randevuyu book_confirm(token) alır. Gerekçe: yanlış randevunun bedeli gerçek — randevusuna gitmeyen ve iptal etmeyen kişi aynı branştan 15 gün randevu alamaz (saglik.gov.tr TR,94138). (Para cezası iddiası yalandır; AA Teyit "Yanlış" damgalı.) Tek adımlı bir book(slot_id) tool'unda modelin uydurduğu bir slot id size gerçek bir branş yasağı yazdırabilirdi. Bkz. docs/notes/decisions.md D7.

Slot aramayı döngüye sokmayın: MHRS aşırı sorguyu RNDS1010 ile karşılar ve reCAPTCHA ister; captcha çözülmediği için tekrar denemek yalnız eşiği derinleştirir.

Profil & idari: enabiz_get_profile · enabiz_list_insurance · enabiz_list_materials_devices · enabiz_list_emergency_notes

Belge indirme: enabiz_download_document(kind=...)lab · pathology · discharge · radiology PDF'lerini tek uçtan indirir.

Tüm e-Nabız veri tool'ları salt-okunur. PDF tool'ları dosyayı ENABIZ_DOWNLOAD_DIR'e (varsayılan ~/.config/enabiz-mcp/downloads, chmod 600) kaydeder ve içerik yerine {saved_path, byte_size, sha256, content_type} döner.

Test

uv run pytest           # ağ yok; sentetik fixture (PHI'sız)

Gizlilik

Bkz. docs/privacy.md. Kimlik bilgileri yalnızca .env'de; oturum yerel dosyada sıkı izinle saklanır; ham sağlık verisi loglanmaz veya commit edilmez.

Kullanım şartları

E-Nabız'a otomatik/programatik erişim, portalın kullanım şartlarına tabi olabilir. Bu araç kişisel, meşru kendi-verinize-erişim amacıyla sağlanır; sorumluluk kullanıcıdadır.

Available Tools

32 tools
enabiz_download_documentA
Read-only

Bir sağlık belgesinin PDF'ini indirir ve yerel diske kaydeder.

kind ve ona ait parametreler (hepsi ilgili liste tool'unun çıktısından alınır):

  • "lab"card_tarih + kurum_kodu (enabiz_list_lab_tests). Opsiyonel: start_year/end_year, dil (tr-TR | en-US).

  • "pathology"reference_no + sys_no (enabiz_list_pathology).

  • "discharge"reference_no + sys_no (enabiz_list_discharge_summaries).

  • "radiology"order_id (enabiz_list_radiology_studies).

PDF ENABIZ_DOWNLOAD_DIR'e (chmod 600) yazılır; içerik LLM'e verilmez, yalnız {saved_path, byte_size, sha256, content_type} döner — PHI diskte kalır. Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault
dilNotr-TR
kindYes
sys_noNo
end_yearNo
order_idNo
card_tarihNo
kurum_koduNo
start_yearNo
reference_noNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses important behaviors beyond annotations: PDF is saved to a specific directory with chmod 600, the content is not passed to the LLM, only metadata is returned, and an error is thrown if no authenticated session exists. This fully addresses the readOnlyHint annotation by clarifying that server data is not modified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with a clear opening sentence followed by a bulleted list of document types and their parameters. Every sentence earns its place; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all necessary aspects: document types, parameter mapping, authentication requirement, output format, and file permissions. Despite having 9 parameters and only 1 required, the description makes usage straightforward. Output schema exists, so return values are handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, the description adds full meaning by mapping each 'kind' value to required and optional parameters (e.g., 'lab' requires card_tarih and kurum_kodu; optional start_year/end_year and dil). This is far beyond what the schema alone provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states exactly what the tool does: downloads a PDF health document and saves to disk. It lists the supported document types (lab, pathology, discharge, radiology) with their specific parameter requirements, clearly distinguishing this download action from sibling tools that list or retrieve data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on when to use: to download a PDF. It references sibling list tools for obtaining required parameter values and mentions authentication prerequisites. While it does not explicitly state when not to use, the context is clear enough for an agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_diagnosis_detailA
Read-only

Bir tanının detay metnini döndürür (sys_takip_no = liste tool'undan).

enabiz_list_diagnoses çıktısındaki sys_takip_no ile çağrılır. Detay HTML'i okunabilir düz metne indirgenir (uzunsa DETAIL_TEXT_LIMIT'te kırpılır). Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault
sys_takip_noYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the detail HTML is reduced to readable plain text and truncated if long (DETAIL_TEXT_LIMIT). Also states authentication requirement and error on missing auth. Annotations already mark readOnly and openWorld, but description adds specific behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, efficient description with purpose first, then source, then processing details and auth requirement. Every sentence adds value, no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given simple tool with output schema present, description covers purpose, input, processing, and authentication. No gaps for selecting and invoking correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, but description compensates fully by explaining sys_takip_no is from the list tool's output, giving clear context for the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it returns the detail text of a diagnosis ('detay metnini döndürür') using a specific identifier. Distinguishes from sibling tool enabiz_list_diagnoses by specifying input from that list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says to use with sys_takip_no from enabiz_list_diagnoses output. Mentions required authentication and error response. Does not provide explicit when-not-to-use or alternatives beyond the parent list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_drug_leafletA
Read-only

Bir ilacın prospektüs (kullanma talimatı) metnini döndürür.

barcode ve ilac_name, enabiz_list_medications çıktısındaki bir ilacın barcode / name alanlarından alınır. Prospektüs serbest metin olarak döner (uzunsa LEAFLET_TEXT_LIMIT'te kırpılır). Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault
barcodeYes
ilac_nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, openWorldHint), the description adds that leaflet text may be truncated at LEAFLET_TEXT_LIMIT and requires authenticated session, else returns auth_required error. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences front-loading purpose, followed by parameter source, behavior, and auth requirement. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, the description covers input source, truncation, and auth. It is sufficiently complete for a leaflet retrieval tool, though could mention language scope.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description explains that barcode and ilac_name are taken from enabiz_list_medications output fields, adding meaningful context to otherwise bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the leaflet text of a drug, specifying the resource and action. It distinguishes itself from siblings like enabiz_get_drug_usage_history by focusing on leaflets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description tells when to use the tool and explicitly states that input parameters should come from enabiz_list_medications output. It lacks explicit when-not-to-use but provides clear context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_drug_usage_historyA
Read-only

Bir ilacın (barkod) kullanım geçmişini döndürür.

barcode, enabiz_list_medications çıktısındaki bir ilacın barcode alanından alınır. Her kayıt tarih, ilaç adı/açıklaması, doz, kullanım sayısı, periyot ve kullanım şekli ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault
barcodeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and openWorldHint annotations, it describes the returned fields (date, drug name, dose, etc.) and the auth requirement. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear first sentence stating purpose, followed by parameter source, return fields, and auth note. Minimal wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, output schema exists), the description covers all necessary aspects: source of barcode, return fields, and authentication. It is complete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% coverage for barcode, but the description compensates by indicating it comes from enabiz_list_medications. However, it does not specify format constraints or examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states it returns the usage history of a drug given a barcode, distinguishing it from sibling tools like enabiz_list_medications which list available drugs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It mentions the barcode should be obtained from enabiz_list_medications and that an authenticated session is required, providing clear context for usage. However, it does not explicitly state when not to use this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_health_summaryA
Read-only

Birden çok alanı tek çağrıda derleyen salt-okunur sağlık özeti.

Döner: profil (kan grubu/boy/kilo), alerjiler (liste — güvenlik-kritik), tanı/aşı/ilaç/ziyaret sayıları ve randevular. Bir alan alınamazsa o alan {"error": ...} olur, diğerleri etkilenmez. Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral details beyond annotations: partial failure handling (per-field error objects) and authentication requirement. No contradiction with readOnlyHint or openWorldHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and well-structured: front-loaded purpose, then listed contents, error behavior, and auth requirement. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given empty input schema and existence of output schema, the description covers key aspects: aggregated fields, partial failures, auth requirement. It is complete for this composite tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With zero parameters, the baseline is 4. The description adds meaning by detailing the output fields, though parameter semantics dimension focuses on input.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it is a read-only health summary that compiles multiple fields (profile, allergies, counts, appointments) in one call, distinguishing it from sibling single-purpose tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for broad overviews and mentions authentication requirement, but does not explicitly state when not to use it or suggest alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_lab_trendA
Read-only

Bir tahlil testinin zaman içindeki trendini (geçmiş ölçümler) döndürür.

islem_tipi = enabiz_list_lab_tests çıktısındaki bir sonucun trend_code alanı (görünen test adından farklı olabilir; her zaman trend_code'u geçin). Her nokta tarih, sonuç, birim ve referans değeri ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault
islem_tipiYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide readOnlyHint=true and openWorldHint=true, and the description adds that each data point includes date, result, unit, and reference value. It also specifies that authentication is required and the error if missing. This goes beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is four lines long, concise, and front-loaded with the main purpose. It includes necessary details without excess. Slightly more structured formatting could improve readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists (not shown but noted), the description covers return content (date, result, unit, reference value) and authentication needs. It is complete for a straightforward data retrieval tool with sibling context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has one parameter with no description or enums (0% coverage). The description explains that the value should be the trend_code from the output of enabiz_list_lab_tests, distinguishing it from the display name. This adds critical guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns the trend of a lab test over time ("Bir tahlil testinin zaman içindeki trendini döndürür"), specifying both the resource (lab test trend) and action (retrieve past measurements). It is distinct from sibling tools like enabiz_list_lab_tests which list tests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains how to derive the parameter value from another tool's output ("islem_tipi = enabiz_list_lab_tests çıktısındaki bir sonucun trend_code alanı") and warns about the difference between display name and trend_code. It also notes authentication requirements and the error response. However, it does not explicitly state when not to use the tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_prescription_detailA
Read-only

Bir reçetenin ilaç ayrıntısını döndürür.

sys_takip_no ve prescription_no değerleri enabiz_list_prescriptions çıktısındaki ilgili reçeteden alınır. Kimlikli oturum gerektirir.

ParametersJSON Schema
NameRequiredDescriptionDefault
sys_takip_noYes
prescription_noYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, so the description's behavioral contribution is limited to stating the need for an authenticated session. It does not disclose traits like error handling, invalid IDs, or response format variations. The description adds some value but not rich beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences: first states the purpose, second provides parameter source and auth requirement. No wasted words, front-loaded with the primary action. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema and annotations (readOnlyHint, openWorldHint), the description covers purpose, parameter semantics, prerequisite tool, and authentication need. This is sufficient for a simple retrieval tool with two parameters. No significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description compensates by explaining that sys_takip_no and prescription_no are taken from enabiz_list_prescriptions output, adding meaning beyond the parameter names. It does not specify formats or constraints, but the contextual relationship is valuable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns drug details of a prescription, specifying the resource (prescription) and the type of details (drug). It also links to the sibling tool enabiz_list_prescriptions for obtaining the required parameters, effectively distinguishing this tool from the list tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly mentions that the parameters sys_takip_no and prescription_no come from the output of enabiz_list_prescriptions, and requires an authenticated session. This provides clear context for usage, though it does not list exclusions or alternatives beyond the implicit reference to the list tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_profileA
Read-only

E-Nabız profil özetini döndürür — salt-okunur.

Ad soyad, doğum tarihi, kan grubu, boy, kilo ve aile hekimi bilgisini döndürür. Gizlilik gereği TCKN, e-posta ve telefon dahil edilmez. Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true. The description adds that sensitive fields (TCKN, email, phone) are excluded and identifies an error case (auth_required). This provides useful behavioral context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with purpose, and uses bullet-like formatting to list returned/excluded fields. Every sentence provides value with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, annotations present, output schema exists), the description completely covers return fields, exclusions, and authentication requirements. It is self-contained for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so baseline is 4. The description adds no parameter info, but none is needed. The description is sufficient for a parameterless tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns the E-Nabız profile summary (verb+resource), lists included fields (name, blood type, etc.), and explicitly excludes sensitive data. This distinguishes it from sibling tools that focus on specific health records (e.g., diagnoses, prescriptions).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies that the tool requires an authenticated session and will error otherwise. It implies that it is for profile data only, but it does not explicitly say when not to use it or mention alternatives among the siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_radiology_reportA
Read-only

Bir radyolojik tetkikin raporunu (düz metin) döndürür.

order_id, enabiz_list_radiology_studies çıktısındaki ilgili çalışmadan alınır. Kimlikli oturum gerektirir.

ParametersJSON Schema
NameRequiredDescriptionDefault
order_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds that the tool returns plain text and requires an authenticated session, providing useful context beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short sentences. It front-loads the core purpose and provides essential context without any redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one parameter and an output schema, the description adequately covers purpose, parameter source, and authentication. It does not address error conditions or precise return format, but these are minor gaps given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no description for order_id (0% coverage). The description clarifies that order_id comes from the output of enabiz_list_radiology_studies, adding necessary semantics absent from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a radiology report as plain text. It distinguishes itself from siblings like enabiz_get_radiology_image_link (returns image link) and enabiz_list_radiology_studies (lists studies).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains where to obtain the required order_id (from enabiz_list_radiology_studies output) and that authentication is needed. However, it does not explicitly state when not to use this tool or mention alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_get_visit_detailA
Read-only

Bir hastane ziyaretinin detayını döndürür (tanılar + işlemler).

detail_ref = enabiz_list_hospital_visits çıktısındaki bir ziyaretin detail_ref alanı (opak referans). Sonuç diagnoses (tanı), preliminary_diagnoses (ön tanı), additional_diagnoses (ek tanı) ve procedures (işlemler) listeleriyle döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

ParametersJSON Schema
NameRequiredDescriptionDefault
detail_refYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and openWorldHint=true. The description adds that the tool returns specific lists (diagnoses, procedures) and requires an authenticated session, resulting in an auth_required error otherwise. This provides useful behavioral context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear first line and additional details in separate sentences. It avoids unnecessary verbosity but could be more structured (e.g., using bullet points). Overall efficient for its content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (context signal), the description does not need to detail return format but still provides a high-level list of returned fields. It also covers authentication requirements. Adequate for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It explains that detail_ref is an opaque reference from the output of enabiz_list_hospital_visits, providing essential semantic context for the single parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns details of a hospital visit including diagnoses and procedures, using a specific verb 'döndürür' (returns) and resource 'hastane ziyaretinin detayı'. It distinguishes itself from siblings like enabiz_get_diagnosis_detail by focusing on the full visit context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly notes that the detail_ref comes from enabiz_list_hospital_visits, guiding proper sequencing. It also mentions authentication is required, implying usage context. However, it does not explicitly state when not to use this tool versus alternatives, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_allergiesA
Read-only

E-Nabız alerji kayıtlarını listeler — salt-okunur.

Üç kategoriyi birleştirir: ilac (ilaç alerjileri), tani (tanı bazlı), deri (deri/prick testleri). Her kayıt tarih, kategori, alerji türü, ilaç adı ve belirtileri ile döner. category verilirse yalnız o kategori döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and openWorldHint. The description adds value by explaining truncation behavior (truncated: true), authentication error, and that results combine three categories. It also mentions the 'limit' parameter's effect (0 = unlimited).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loaded with purpose, and uses bullet points for parameters. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists and this is a list tool with few parameters, the description covers return fields (tarih, kategori, etc.), auth requirement, truncation, and parameter behavior comprehensively.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description explains both 'category' (if given, returns only that category) and 'limit' (default 50, 0 = unlimited, truncation flag) with sufficient detail beyond raw schema properties.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists allergy records (E-Nabız alerji kayıtlarını listeler) and specifies it is read-only (salt-okunur). It also explains the three categories combined (ilac, tani, deri), distinguishing it from sibling tools that list other health data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance by noting authentication requirements (kimlikli oturum gerektirir) and behavior when category parameter is provided (yalnız o kategori döner). It does not explicitly exclude other tools, but the specialization to allergies is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_appointmentsA
Read-only

E-Nabız (MHRS) randevularını listeler — salt-okunur.

Sayfada gösterilen randevuları döndürür (tarih/saat, kurum, klinik, muayene yeri, hekim, durum, tür). status_query verilirse durum alanında büyük/küçük harf duyarsız filtre uygular. Randevu almaz/iptal etmez. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
status_queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnlyHint and openWorldHint annotations, the description adds that it returns only displayed appointments, details limit behavior with truncated flag, and explicitly states no mutation. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, front-loading the purpose, then adding parameter details and constraints. Every sentence is informative without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema, the description adequately covers parameter behavior, auth requirements, and the read-only constraint. It could mention error handling beyond auth_required, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description thoroughly explains both parameters: limit's default and behavior, and status_query's case-insensitive filtering. This fully compensates for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists E-Nabız appointments, specifies it is read-only, and lists the fields returned. It distinguishes from siblings by focusing on appointments, with a specific verb and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains it does not take/cancel appointments and requires an authenticated session. However, it does not explicitly contrast with sibling tools or provide when-not-to-use guidance beyond the read-only nature.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_chronic_disease_followupsA
Read-only

E-Nabız kronik hastalık takip kayıtlarını listeler — salt-okunur.

Her kayıt takip tipi, kronik hastalık, takip tarihi, planlanan tarih ve gerçekleşme durumu ile döner. query verilirse kronik hastalık alanında büyük/küçük harf duyarsız filtre uygular. Bu, tanı geçmişinden (Hastaliklarim) AYRI bir alandır. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses read-only behavior (consistent with readOnlyHint), requires authenticated session with an explicit 'auth_required' error, explains limit parameter behavior (default 50, 0=unlimited, truncated flag), and describes case-insensitive filtering on query. This adds significant context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with the main purpose front-loaded. Each sentence adds meaningful information without redundancy. It is well-structured for quick comprehension.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 optional params), the description covers return fields, auth requirements, limit behavior, filtering, and truncation. With output schema present, no additional return value details are needed. The description is complete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to both parameters: limit with default, 0 meaning unlimited, and truncated flag; query with case-insensitive filtering on chronic disease field. Since schema coverage is 0%, the description compensates well. However, there is a minor inconsistency: schema default is null but description states default 50, which could cause confusion.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists chronic disease follow-up records and is read-only. It specifies the fields returned (follow-up type, chronic disease, dates, status) and explicitly distinguishes it from diagnosis history (Hastaliklarim), making the purpose unambiguous even among sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions this tool is separate from diagnosis history, providing implicit guidance to not confuse with other list tools. However, it does not explicitly name alternative tools or give when-not-to-use scenarios. The differentiation from diagnosis history is useful, but not fully comprehensive.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_device_prescriptionsA
Read-only

E-Nabız tıbbi cihaz reçetelerini yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl).

  • facility_query: verilirse TESİS bilgisinde büyük/küçük harf duyarsız filtre.

Her reçete tarih, reçete no, hekim ve tesis bilgisi ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
end_yearNo
start_yearNo
facility_queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond annotations (readOnlyHint, openWorldHint), the description details auth requirements, default year range, case-insensitive facility filtering, pagination with limit and truncation flag. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with bullet points, front-loaded with main purpose, every sentence adds necessary detail without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 optional parameters, output schema exists, annotations present, the description covers all behavioral aspects: auth, default ranges, filtering, pagination, and returned fields. Complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description fully explains parameters: start_year/end_year default to last 6 years, facility_query is case-insensitive filter, limit default 50 with 0 meaning unlimited and truncated flag. Adds significant value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists medical device prescriptions by year range. The name distinguishes it from sibling tools like enabiz_list_prescriptions and enabiz_list_optical_prescriptions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains parameters and defaults but does not explicitly state when to use this tool versus alternatives. It implies use for device prescriptions but lacks explicit when-not or sibling differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_diagnosesA
Read-only

E-Nabız tanı/hastalık geçmişini listeler — salt-okunur.

Her tanı tarih, tanı (ICD kodu + ad), klinik, hekim ve detay için sys_takip_no ile döner. query verilirse tanı metninde büyük/küçük harf duyarsız filtre uygular. Detay için enabiz_get_diagnosis_detail kullanın. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint and openWorldHint, but the description adds significant behavioral context: it describes the query parameter as case-insensitive filtering, explains the limit parameter behavior (default 50, 0 means unlimited, and a truncated flag), and specifies the authentication error message ('auth_required'). This goes well beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a purpose line, then details on output fields, query behavior, authentication, and limit parameter. Every sentence adds value, and the most critical info (what it does) is front-loaded. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 2 parameters and no output schema? Actually context says has output schema true, but description still provides sufficient output structure (date, diagnosis with ICD code+name, clinic, physician, sys_takip_no). It also covers auth, error handling, and limit behavior. Complete for a list tool with this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% coverage (no property descriptions), so the description must fully explain parameters. It does: 'query' for case-insensitive filtering on diagnosis text, and 'limit' for maximum records (default 50, 0=unlimited) with a truncated flag. This adds complete meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists E-Nabız diagnosis/disease history and is read-only. It distinguishes itself from sibling tools by mentioning the detail tool enabiz_get_diagnosis_detail. The verb 'listeler' (lists) and resource 'tanı/hastalık geçmişini' (diagnosis/disease history) are specific.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool (to list diagnoses) and when to use the alternative enabiz_get_diagnosis_detail for details. It also mentions the authentication requirement and the error response, giving the agent clear context for decision-making.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_discharge_summariesA
Read-only

E-Nabız epikrizlerini (taburcu özetleri) yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 11 takvim yılı (bu yıl - 10 … bu yıl; epikrizler ömür-boyu, seyrek kayıtlardır → geniş varsayılan).

  • query: verilirse hastane/klinik alanında büyük/küçük harf duyarsız filtre.

Her epikriz tarih, referans no, hastane, klinik, hekim ve PDF için sys_no ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
end_yearNo
start_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint and openWorldHint. The description adds behavioral details: requires authentication, returns auth_required error, truncation flag, default year range, and return fields. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with bullet points for readability. Each sentence adds value, though slightly verbose with code-style formatting. Could be streamlined but effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers parameters, defaults, error handling, truncation, return fields, and auth requirement. With output schema present, it is mostly complete. Minor gap: no mention of pagination beyond limit and truncation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description fully compensates. It explains each parameter: start_year/end_year defaults, query case-insensitive filter, limit max records and default. Adds meaning beyond schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists discharge summaries (epikrizler) by year range, with a specific verb and resource. It distinguishes from sibling tools by specifying the unique resource type (taburcu özetleri).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing discharge summaries but does not explicitly state when to use this over alternatives like other list tools. It provides context (requires authenticated session) but no exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_emergency_notesA
Read-only

E-Nabız acil durum notlarını listeler — salt-okunur.

Her not tarih, konu ve açıklama ile döner. query verilirse konuda büyük/küçük harf duyarsız filtre uygular. Kimlikli oturum gerektirir.

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds value by explaining the return format (date, subject, description), the case-insensitive query filter on subject, the limit behavior with default, and the truncated flag for open-world indication. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3-4 sentences) with a clear front-loaded structure: purpose, return fields, filter, limit details. Every sentence provides essential information without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 2 parameters and an output schema (not shown), the description covers input semantics, output fields, and the truncated indicator. It is complete for an agent to understand usage and response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains both parameters: 'limit' (max records, default 50, 0=unlimited, with truncated output) and 'query' (case-insensitive filter on subject). This compensates entirely for the missing schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'E-Nabız acil durum notlarını listeler' (lists emergency notes) and 'salt-okunur' (read-only), specifying the verb and resource. The tool name and context with siblings confirm it is a list tool for emergency notes, distinct from other list tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing emergency notes but does not provide when-to-use guidance versus sibling list tools. It mentions 'Kimlikli oturum gerektirir' (requires authenticated session) but lacks explicit exclusions or alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_hospital_visitsA
Read-only

E-Nabız hastane ziyaretlerini (muayeneler) yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl; ziyaret sık bir alandır; daha eski kayıtlar için aralığı genişletin).

  • query: verilirse hastane/klinik alanında büyük/küçük harf duyarsız filtre.

Her ziyaret tarih, hastane, klinik/branş, hekim ve takip no ile döner (özet). Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
end_yearNo
start_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description adds behavioral details beyond annotations: requires authenticated session (auth_required error), returns truncated flag, default limit 50, case-insensitive query, and summary fields. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is concise and well-structured with bullet points. First sentence states purpose, followed by parameter details. No wasted words; appropriate length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete coverage for a list tool with 4 optional parameters. Includes auth requirements, default behavior, filter mechanics, limit, and return indicators (truncated flag). Output schema exists but not needed due to comprehensive description.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters are fully explained in the description despite 0% schema coverage. Describes start_year/end_year range defaults, query as case-insensitive filter, and limit with default value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists hospital visits (examinations) by year range, using a specific verb and resource. It distinguishes itself from sibling tools that list other entities like appointments or diagnoses.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance on default year range, optional query filter, and limit parameter. Does not explicitly state when not to use, but context from sibling tools suggests this is the appropriate tool for listing visits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_insuranceA
Read-only

E-Nabız sigorta kayıtlarını listeler — salt-okunur.

Her kayıt açıklama, sigorta kodu, tarih aralığı, ek süre ve durum ile döner. query verilirse açıklamada büyük/küçük harf duyarsız filtre uygular. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds details beyond annotations: describes return fields, query case-insensitivity, auth requirement with error, limit behavior with truncated flag. Doesn't contradict annotations (readOnlyHint, openWorldHint).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise, two paragraphs and a bullet. Front-loaded main purpose. Every sentence adds value; no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers fields returned, filtering, auth error, limit truncation. Output schema exists so return format is documented. Complete for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description fully explains both parameters: limit (max records, default 50, 0=unlimited, truncated indicator) and query (case-insensitive filter on description).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists insurance records (sigorta kayıtlarını listeler) and explicitly marks as read-only (salt-okunur). Differentiates from sibling tools by domain (insurance).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage: fetch insurance records when needed. Provides query filtering and auth requirement but no explicit when-not or alternative tool comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_lab_testsA
Read-only

E-Nabız tahlil (laboratuvar) sonuçlarını yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl).

  • test_query: verilirse test adında büyük/küçük harf duyarsız filtre uygular. Belirli bir testi arıyorsanız MUTLAKA kullanın — yanıt aksi hâlde çok büyük olur.

  • limit: en fazla kaç TEST SONUCU döner (varsayılan 50; 0 = sınırsız). Raporlar en yeniden başlayarak bu sayıya ulaşana dek eklenir.

truncated: true ise liste kırpılmıştır — test_query ile daraltın. Kimlikli oturum gerektirir; oturum yoksa/düşmüşse error: "auth_required" döner. Sonuçlar tarih/ziyaret bazlı gruplanır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
end_yearNo
start_yearNo
test_queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond readOnlyHint and openWorldHint annotations, description discloses hazards (large response without query), auth requirement, error format, and grouping behavior. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured bullet points, each sentence adds value. No redundancy. Front-loaded with main purpose then parameter details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (listing, filtering, truncation, auth) and presence of output schema, description covers return grouping, truncated flag, and error handling. Complete for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters are fully explained with default behaviors and usage tips (e.g., limit default 50, test_query for filtering). Schema has 0% description coverage, so description adds all necessary meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'list lab test results by year range'. The tool name and description specify lab tests, distinguishing it from siblings like enabiz_list_medications or enabiz_list_vaccinations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: default year range, recommendation to use test_query for specific tests to avoid large responses, and explains what to do if truncated. Lacks explicit when-not-to-use but is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_materials_devicesA
Read-only

E-Nabız tıbbi malzeme/cihaz kayıtlarını listeler — salt-okunur.

5 kategoriyi birleştirir: diger, vucut, isitme, goz, ozel_yapim. Her kayıt işlem tarihi, marka, raf ömrü, ürün tanımı ve kategori ile döner. category verilirse yalnız o kategori döner. Kimlikli oturum gerektirir.

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
categoryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, openWorldHint=true), the description adds behavioral details: explains category combination, limit behavior (default 50, 'truncated: true' if exceeded), and authentication requirement. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short (3 paragraphs), front-loaded with purpose, and every sentence provides necessary detail. No redundant or vague statements.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of an output schema (so return values are documented elsewhere), the description covers all essential aspects: purpose, filtering, parameter behavior, and authentication. It is complete for the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully compensates by explaining both parameters: 'limit' (max records, default 50, 0=unlimited, truncated flag) and 'category' (allows filtering from five listed values: diger, vucut, isitme, goz, ozel_yapim). Adds significant meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists medical material/device records (verb 'listeler' + resource 'tıbbi malzeme/cihaz kayıtları'), specifies it combines 5 categories, and filters by category. It distinguishes well from sibling list tools like enabiz_list_allergies or enabiz_list_appointments.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use the tool (listing medical devices with category filtering) and mentions requirements (authenticated session). However, it does not explicitly state when not to use it or compare to alternatives, leaving some ambiguity among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_medicationsA
Read-only

E-Nabız kullanılan ilaçları yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl).

  • drug_query: verilirse ilaç adında büyük/küçük harf duyarsız filtre.

Her ilaç reçete tarihi, barkod, ad, doz, periyot, kullanım, kutu adedi, hastane ve klinik ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
end_yearNo
drug_queryNo
start_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses authentication requirement and truncation behavior beyond annotations; adds value without contradicting readOnlyHint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured bullet points, concise yet complete, no wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers year range, filter, limit, authentication, truncation; output schema handles return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 4 parameters fully described with defaults and behavior, compensating for 0% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists medications by year range, distinguishing it from sibling list tools for other health data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Specifies when to use (list medications by year range) and how to filter; could improve by explicitly contrasting with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_optical_prescriptionsA
Read-only

E-Nabız optik (gözlük/lens) reçetelerini yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl).

  • type_query: verilirse reçete TÜRÜNDE büyük/küçük harf duyarsız filtre.

Her reçete tarih, reçete no, tür ve hekim ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
end_yearNo
start_yearNo
type_queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and open-world; description adds auth requirement, default year range, filtering, limit behavior, truncation flag, and return fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with bullet points and front-loaded purpose, but could be slightly more concise; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given lack of parameter descriptions in schema, the description provides complete context for selecting and invoking the tool, including auth, parameters, and response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description compensates fully by explaining all four parameters, including defaults and behavior (year range, type_query case-insensitivity, limit values).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it lists optical (glasses/lens) prescriptions filtered by year range, distinguishing from general prescriptions sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly notes auth requirement and default behavior (year range), but does not explicitly contrast with sibling tools like enabiz_list_prescriptions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_pathologyA
Read-only

E-Nabız patoloji kayıtlarını yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 11 takvim yılı (bu yıl - 10 … bu yıl; patoloji seyrek, ömür-boyu kayıtlardır → geniş varsayılan).

  • query: verilirse hastane/klinik alanında büyük/küçük harf duyarsız filtre.

Her kayıt tarih, referans no, hastane, klinik, hekim ve PDF için sys_no ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
end_yearNo
start_yearNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Description provides behavioral details beyond annotations: requires auth, returns auth_required error, returns truncated flag, includes sys_no for PDF. Does not contradict annotations (readOnlyHint, openWorldHint).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and well-structured: main purpose first, then bullet-pointed parameter explanations. No unnecessary text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Description covers all relevant aspects: parameter defaults, filter behavior, output fields, error case, and truncation indicator. With output schema present, return value explanation is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema coverage, description fully documents each parameter: start_year/end_year default range, query filter behavior, limit default and unlimited option. Adds meaning beyond type.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Purpose is clearly stated: list pathology records by year range. The verb 'list' and resource 'pathology' are specific, and the description distinguishes from siblings like lab tests or medications.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains parameters and defaults but does not explicitly state when to use this tool versus alternatives among many sibling list tools. The name implies the domain, but no direct comparison or exclusion is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_prescriptionsA
Read-only

E-Nabız reçetelerini yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl).

  • doctor_query: verilirse hekim adında büyük/küçük harf duyarsız filtre.

Her reçete metadatası döner (tarih, no, tür, hekim). İlaç ayrıntısı için enabiz_get_prescription_detail'i sys_takip_no + prescription_no ile çağırın. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
end_yearNo
start_yearNo
doctor_queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint and openWorldHint. The description adds behavioral details: default year range (last 6 years), doctor query filtering, limit with truncation, and auth error response. This provides useful context beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a one-line purpose, clear bullet points for parameters, and a brief note on return values and auth. No redundant or missing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 optional parameters and presence of output schema, the description adequately covers default behavior, filtering, pagination (limit/truncated), and error handling. It also links to the related detail tool, making it complete for a list operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description fully explains each parameter: start_year/end_year defaults, doctor_query case-insensitive filtering, limit default (50) and behavior for 0 (unlimited) and truncated flag. This adds significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists E-Nabız prescriptions by year range, with a specific verb and resource. It distinguishes itself from the sibling 'enabiz_get_prescription_detail' by noting that drug details require that tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides when to use (listing prescriptions) and mentions an alternative (enabiz_get_prescription_detail for details). It also notes auth requirements. However, it does not explicitly state when not to use this tool or other conditions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_radiology_studiesA
Read-only

E-Nabız radyolojik tetkik/görüntü kayıtlarını listeler.

Sayfada gösterilen çalışmaları döndürür (tarih, kurum, açıklama). Her kaydın order_id alanı, raporu almak için enabiz_get_radiology_report'a verilir. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true (safe read) and openWorldHint=true (dynamic results). The description adds valuable behavioral details: authentication requirement, error message on failure, limit semantics (default 50, 0=unlimited, truncated flag), and the fact that it returns studies displayed on the current page. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with no wasted words. It starts with the primary purpose, then provides necessary behavioral and parameter details in a structured way. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existence of an output schema (not shown), the description adequately covers usage context: purpose, authentication, parameter, and relation to sibling tool. It mentions key output fields (date, institution, description, order_id) and behavior like pagination via limit and truncated. No gaps are apparent for a list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter limit has schema coverage 0%, so the description fully compensates. It explains the default value (50), the meaning of 0 (unlimited), and the truncated flag behavior. This is complete and precise, exceeding the schema's minimal definition.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists radiological examination/image records from E-Nabız. It mentions returned fields (date, institution, description) and distinguishes from sibling tools by specifying that order_id is used for enabiz_get_radiology_report. The verb 'listeler' (lists) combined with the specific resource makes the purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context: requires authenticated session (auth_required error) and explains limit parameter behavior. It implicitly guides when to use this tool versus the report tool by linking order_id. However, it does not explicitly state when not to use it or contrast with other list tools, though the sibling context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_reportsA
Read-only

E-Nabız sağlık raporlarını yıl aralığına göre listeler.

  • start_year / end_year: yıl aralığı. Verilmezse son 6 takvim yılı (bu yıl - 5 … bu yıl).

  • type_query: verilirse rapor türünde büyük/küçük harf duyarsız filtre.

Her rapor tarih, no, takip no, tür, geçerlilik aralığı ve tanı ile döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
end_yearNo
start_yearNo
type_queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, indicating a safe read operation. The description adds behavioral details: requirement of authenticated session, structure of returned reports (date, number, type, etc.), and the truncated flag. This complements the annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, with a clear first sentence stating the purpose, followed by bullet-point parameter details, return field list, auth note, and limit behavior. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the 0% schema description coverage and presence of an output schema, the description is fairly complete: it explains parameters, defaults, error conditions, and response structure. However, it does not mention ordering or pagination beyond limit, so slightly incomplete for full autonomous use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 0% description coverage, but the description fully explains all four parameters: start_year/end_year (year range with default last 6 years), type_query (case-insensitive filter), limit (max records with default 50, 0=unlimited, and truncated response). This provides complete semantics beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists health reports by year range ('E-Nabız sağlık raporlarını yıl aralığına göre listeler'), specifying the verb (list), resource (health reports), and scope (year range). It distinguishes from sibling list tools like enabiz_list_lab_tests or enabiz_list_prescriptions by its resource focus.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on usage: it requires authenticated session (indicated by the auth_required error), and explains default behavior for parameters. However, it does not explicitly state when to prefer this tool over alternatives, though the tool's name and resource specificity imply its appropriate use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_list_vaccinationsA
Read-only

E-Nabız aşı takvimini listeler — salt-okunur.

Her aşı işlem zamanı, aşı adı, doz ve yapılma yeri ile döner. query verilirse aşı adında büyük/küçük harf duyarsız filtre uygular. Kimlikli oturum gerektirir; yoksa error: "auth_required".

  • limit: en fazla kaç kayıt döner (varsayılan 50; 0 = sınırsız). truncated: true ise liste kırpılmıştır.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description matches annotations (readOnlyHint=true, openWorldHint=true) by stating 'salt-okunur' and explains the truncated flag behavior. It also discloses the auth requirement and error response for missing auth. No contradictions and adds useful context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (3 sentences plus bullet), every sentence carries value. Front-loaded with purpose and read-only nature, followed by param details in logical order. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the presence of output schema (not shown), the description covers all essential behavioral details: auth requirement, filtering, pagination behavior, and truncation. It is complete for a list tool with 2 optional parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description carries the full burden. It explains query as case-insensitive filter on vaccine name, limit with default 50, 0=unlimited, and the truncated flag. This adds significant meaning beyond the input schema's basic types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists the E-Nabız vaccination schedule (aşı takvimi) and explicitly marks it as read-only (salt-okunur). It distinguishes itself from sibling tools that handle different health data like allergies, appointments, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description specifies prerequisites: requires an authenticated session (Kimlikli oturum gerektirir) and explains behavior for limit and query parameters. However, it does not explicitly state when not to use this tool or compare it to other list tools, though the broader sibling context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_login_startA

E-Nabız girişini başlatır (adım 1/2).

.env'deki kimlik bilgilerini doğrular ve kayıtlı telefona SMS onay kodu gönderilmesini tetikler. Dönen step == "sms_required" ise, kullanıcının telefonuna gelen kodu enabiz_login_verify ile girin.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses that the tool sends an SMS OTP and returns a status indicating SMS is required. Given annotations (readOnlyHint=false, openWorldHint=true), this adds useful context about the mutation (sending SMS) without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is just two sentences, front-loaded with the main purpose, and every sentence adds value. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-step authentication tool, the description fully covers what the tool does, its side effect (sending SMS), and how to proceed. The output schema is not detailed, but the description adequately explains the expected response.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters (100% coverage), so the baseline is 4. The description does not need to add parameter details; it correctly mentions the implicit use of .env credentials, which is sufficient.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states that the tool starts E-Nabız login (step 1/2), validates credentials from .env, and triggers an SMS OTP. It clearly distinguishes from the sibling `enabiz_login_verify` by naming it as the next step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains that this is the first step and that if the returned step is 'sms_required', the user should use `enabiz_login_verify`. It implicitly requires .env credentials. It does not explicitly state when not to use it, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_login_verifyA

E-Nabız girişini tamamlar (adım 2/2).

Telefona gelen SMS onay kodunu (otp_code) gönderir. Başarılıysa kimlikli oturum yerel dosyaya kaydedilir ve sonraki çağrılarda yeniden kullanılır. Önce enabiz_login_start çağrılmış olmalıdır.

ParametersJSON Schema
NameRequiredDescriptionDefault
otp_codeYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes session persistence locally and reuse, and success condition. Annotations (mutating, open world) are complemented, not contradicted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with purpose, no extraneous information. Excellent conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers purpose, prerequisite, success behavior, and session saving. Missing error handling details, but tool is simple and output schema exists to document return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has single string parameter with 0% description coverage. Description adds that it is the SMS OTP code sent to phone, providing necessary context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it completes E-Nabız login (step 2/2) by sending SMS OTP code, distinguishing it from sibling tools that handle data retrieval or login initiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states prerequisite: enabiz_login_start must be called first. Does not list when not to use, but context of two-step login is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

enabiz_session_statusA
Read-only

Mevcut E-Nabız oturum ve yapılandırma durumunu döndürür.

authenticated, oturumun sunucuda GERÇEKTEN geçerli olduğunu tek bir hafif istekle doğrular. false ise enabiz_login_startenabiz_login_verify.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare `readOnlyHint=true` and `openWorldHint=true`, covering safety. Description adds behavioral context: it performs a lightweight verification request and outlines the next steps if the session is invalid, which is beyond what annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the main purpose. Every sentence is informative and there is no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, an existing output schema, and clear annotations, the description fully covers the tool's purpose, behavior, and usage flow. It is complete for the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters in the schema (0 params), so baseline is 4. The description adds meaning by explaining the returned `authenticated` field and its implications, compensating for the lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool returns current e-Nabız session and configuration status. The verb 'returns' and specific resource 'session and configuration status' make it unambiguous. It is distinct from sibling tools which handle data retrieval or login flows.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description explains when the `authenticated` field indicates the session is valid, and if false, directs to use `enabiz_login_start` followed by `enabiz_login_verify`. This provides clear context for usage but does not explicitly list other sibling tools as alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 32 tool updatesv0.1.0
    • First observedenabiz_download_document
    • First observedenabiz_get_diagnosis_detail
    • First observedenabiz_get_drug_leaflet
    • First observedenabiz_get_drug_usage_history
    • First observedenabiz_get_health_summary
    • First observedenabiz_get_lab_trend
    • First observedenabiz_get_prescription_detail
    • First observedenabiz_get_profile
    • First observedenabiz_get_radiology_image_link
    • First observedenabiz_get_radiology_report
    • First observedenabiz_get_visit_detail
    • First observedenabiz_list_allergies
    • First observedenabiz_list_appointments
    • First observedenabiz_list_chronic_disease_followups
    • First observedenabiz_list_device_prescriptions
    • First observedenabiz_list_diagnoses
    • First observedenabiz_list_discharge_summaries
    • First observedenabiz_list_emergency_notes
    • First observedenabiz_list_hospital_visits
    • First observedenabiz_list_insurance
    • First observedenabiz_list_lab_tests
    • First observedenabiz_list_materials_devices
    • First observedenabiz_list_medications
    • First observedenabiz_list_optical_prescriptions
    • First observedenabiz_list_pathology
    • First observedenabiz_list_prescriptions
    • First observedenabiz_list_radiology_studies
    • First observedenabiz_list_reports
    • First observedenabiz_list_vaccinations
    • First observedenabiz_login_start
    • First observedenabiz_login_verify
    • First observedenabiz_session_status

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose, targeting specific health record types or actions (e.g., listing vs. getting details for lab, radiology, prescriptions). No two tools are ambiguous; even similar tools like enabiz_list_prescriptions and enabiz_list_medications differ in scope (prescriptions vs. individual medication usage).

Naming Consistency5/5

All tools follow a consistent 'enabiz_verb_noun' pattern using snake_case. Verbs like 'list_', 'get_', 'download_', 'login_', and 'session_' are used uniformly. The only slight deviation is 'enabiz_download_document' using 'download' instead of 'get', but this is justified as it downloads a file rather than returning data.

Tool Count4/5

32 tools is on the higher end but appropriate for a comprehensive healthcare portal covering numerous data types (e.g., diagnoses, medications, lab, radiology, allergies, etc.). The count is not overwhelming given the domain's breadth; each tool serves a specific, non-redundant function.

Completeness4/5

The server provides comprehensive read-only access to nearly all health record categories (e.g., diagnoses, medications, lab, radiology, vaccinations, allergies, reports). Minor gaps include no update/create capabilities and no cross-document search, but these are expected for a patient-facing MCP focused on data retrieval.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/UmutKDev/enabiz-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server