E-Nabız MCP
This MCP server provides read-only, local access to your personal E-Nabız (Turkish Ministry of Health Personal Health System) data via 32 tools, enabling an LLM to interact with your health records without exposing sensitive data to external services.
Session Management
Log in via SMS OTP (2FA), verify the OTP, and check session status.
Health Summary
Single-call overview of your profile, allergies, and counts of diagnoses, vaccinations, medications, visits, and upcoming appointments.
Lab Tests
List lab results by year range (with optional name filter); view historical trends for specific tests.
Prescriptions & Medications
List general, optical, and device prescriptions; get prescription details; list all medications used; retrieve drug leaflets; track drug usage history by barcode.
Clinical Records
Allergies, diagnoses (with ICD codes and detail), chronic disease follow-ups, vaccinations, discharge summaries (epicrises), pathology records, and health reports.
Radiology
List radiology studies, retrieve text reports, and get DICOM viewer links for imaging.
Visits & Appointments
List hospital visits and get per-visit details (diagnoses, procedures); list MHRS appointments (read-only — no booking or cancellation).
Profile & Administrative
Profile summary (blood type, height, weight, family doctor), insurance/SGK records, medical materials/devices (5 categories), and emergency notes.
Document Downloads
Download PDFs (lab results, pathology, discharge summaries, radiology reports) to local disk with strict permissions. Only the file path, size, and SHA256 hash are returned to the LLM — document content is never exposed.
Privacy & Safety: All data is processed locally via stdio, nothing is sent to external services, and all access is strictly read-only.
Optionally reads SMS verification codes from iMessage on macOS to automate the login process for the E-Nabız health portal.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@E-Nabız MCPlist my recent lab tests"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
Sağlık veriniz salt-okunur | Hiçbir tool sağlık verinize yazmaz: e-Nabız'ın yazma uçlarına ( |
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: |
Dürüst tool anotasyonları | 47 tool'un 39'u |
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 |
Portala saygı | İstekler arası hız sınırı ( |
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ırGeliştirme için, repodan:
uv sync
cp .env.example .env # TCKIMLIK ve SIFRE'yi doldurun
uv run enabiz-mcp # stdio MCP sunucusu⚠️
uvxile.envÇALIŞMAZ. Kimlik bilgilerini aşağıdaki gibi istemcininenvbloğuyla verin. Sebep:python-dotenv.env'i çağıran modülün dosyasından yukarı doğru arar;uvxpaketi uv önbelleğine kurduğu için o arama sizin proje dizininize hiç uğramaz. Repodanuv runile çalışırken bulunur (venv repo içindedir),uvxile 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-mcpRepodan ç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:latestBayrakların hepsi gereklidir, dekoratif değil:
Bayrak | Neden |
| Şart. stdio sunucusu; stdin kapalıysa EOF görüp anında çıkar. |
| Kimlik bilgilerinin tek doğru yolu. |
| Oturum kalıcılığı + inen PDF'ler. Yoksa her yeniden başlatma gerçek bir SMS OTP yakar. |
| Linux'ta bind-mount sahipliği. macOS'ta zararsız. |
| PID 1'deki Python'un varsayılan SIGTERM işleyicisi yoktur; |
| Sertleştirme; tek yazılabilir yol |
-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şlemez — id -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_prepare → enabiz_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_appointmentse-Nabız'ın HTML tablosunu okur; MHRS tool'ları API'nin kendisini okur vehrn(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_tokendöner; randevuyubook_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ı birbook(slot_id)tool'unda modelin uydurduğu bir slot id size gerçek bir branş yasağı yazdırabilirdi. Bkz.docs/notes/decisions.mdD7.Slot aramayı döngüye sokmayın: MHRS aşırı sorguyu
RNDS1010ile 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 toolsenabiz_download_documentARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| dil | No | tr-TR | |
| kind | Yes | ||
| sys_no | No | ||
| end_year | No | ||
| order_id | No | ||
| card_tarih | No | ||
| kurum_kodu | No | ||
| start_year | No | ||
| reference_no | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_detailARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| sys_takip_no | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_leafletARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes | ||
| ilac_name | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_historyARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| barcode | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_summaryARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_trendARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| islem_tipi | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_detailARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| sys_takip_no | Yes | ||
| prescription_no | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_profileARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_image_linkARead-only
Bir radyolojik tetkikin DICOM görüntüleyici linkini (URL) döndürür.
accession_number, enabiz_list_radiology_studies çıktısındaki ilgili
çalışmadan alınır (yalnız görüntüsü olan çalışmalarda dolu). Binary değil,
bir URL döner. Kimlikli oturum gerektirir; yoksa error: "auth_required".
| Name | Required | Description | Default |
|---|---|---|---|
| accession_number | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint and openWorldHint. The description adds beyond annotations: it returns a URL (not binary), requires authenticated session, and gives the exact error message on auth failure. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the main purpose. Every sentence adds value: what it returns, how to get input, auth requirement. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 present), the description does not need to explain return values. It covers input source, output type, auth requirement, and error condition. 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has only one parameter (accession_number) with 0% description coverage. The description compensates fully by explaining that the value comes from enabiz_list_radiology_studies and is only filled for studies with images. This adds crucial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a DICOM viewer link (URL) for a radiological examination, using a specific verb and resource. It distinguishes from siblings like enabiz_get_radiology_report and enabiz_list_radiology_studies by mentioning the output type (URL vs report) and data source.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to source the accession_number from enabiz_list_radiology_studies output and notes that it only returns a link for studies with images. It also specifies authentication is required and mentions the error on auth failure. However, it does not explicitly say when not to use this tool versus alternatives, though the context implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
enabiz_get_radiology_reportARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| order_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_detailARead-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".
| Name | Required | Description | Default |
|---|---|---|---|
| detail_ref | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_allergiesARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_appointmentsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_followupsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_prescriptionsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_year | No | ||
| start_year | No | ||
| facility_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_diagnosesARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_summariesARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| end_year | No | ||
| start_year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_notesARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_visitsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| end_year | No | ||
| start_year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_insuranceARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_testsARead-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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_year | No | ||
| start_year | No | ||
| test_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_devicesARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| category | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_medicationsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_year | No | ||
| drug_query | No | ||
| start_year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_prescriptionsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_year | No | ||
| start_year | No | ||
| type_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_pathologyARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | ||
| end_year | No | ||
| start_year | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_prescriptionsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_year | No | ||
| start_year | No | ||
| doctor_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_studiesARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_reportsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| end_year | No | ||
| start_year | No | ||
| type_query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_vaccinationsARead-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: trueise liste kırpılmıştır.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| otp_code | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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_statusARead-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_start → enabiz_login_verify.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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.
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.
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.
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.
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.
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.
32 tool updates
v0.1.0- First observed
enabiz_download_document - First observed
enabiz_get_diagnosis_detail - First observed
enabiz_get_drug_leaflet - First observed
enabiz_get_drug_usage_history - First observed
enabiz_get_health_summary - First observed
enabiz_get_lab_trend - First observed
enabiz_get_prescription_detail - First observed
enabiz_get_profile - First observed
enabiz_get_radiology_image_link - First observed
enabiz_get_radiology_report - First observed
enabiz_get_visit_detail - First observed
enabiz_list_allergies - First observed
enabiz_list_appointments - First observed
enabiz_list_chronic_disease_followups - First observed
enabiz_list_device_prescriptions - First observed
enabiz_list_diagnoses - First observed
enabiz_list_discharge_summaries - First observed
enabiz_list_emergency_notes - First observed
enabiz_list_hospital_visits - First observed
enabiz_list_insurance - First observed
enabiz_list_lab_tests - First observed
enabiz_list_materials_devices - First observed
enabiz_list_medications - First observed
enabiz_list_optical_prescriptions - First observed
enabiz_list_pathology - First observed
enabiz_list_prescriptions - First observed
enabiz_list_radiology_studies - First observed
enabiz_list_reports - First observed
enabiz_list_vaccinations - First observed
enabiz_login_start - First observed
enabiz_login_verify - First observed
enabiz_session_status
TDQS
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).
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.
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.
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
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
Hosted MCP server exposing US hospital procedure cost data to AI assistants
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Hosted MCP server for Cliniko — patients, appointments, availability, and invoices for AI agents.
Hosted MCP server for the Healthie EHR & telehealth API: patients, appointments, charting, tasks.
Related MCP Servers
- AlicenseBqualityAmaintenanceA local-first MCP server that enables AI agents to read user-authorized Google Health API v4 data from Fitbit, Pixel Watch, and partners via OAuth, with tokens never leaving the machine.261,09753MIT
- AlicenseBqualityBmaintenanceA local-first, model-agnostic MCP server that stores personal health data in a SQLite file and provides analysis-ready views for any AI client to log, retrieve, and reason over health records.79MIT
- FlicenseNot gradedqualityBmaintenanceSelf-hosted MCP server that provides read-only access to Google Health API v4, enabling analysis of personal health data via OpenAI Responses API or ChatGPT.-
- FlicenseNot gradedqualityCmaintenanceAn educational healthcare assistant MCP server that provides medication information, interaction checks, symptom guidance, and health topic searches using local data and a local LLM.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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