Skip to main content
Glama

medical.cha2ds2_vasc

Read-onlyIdempotent

Calculates the CHA2DS2-VASc stroke risk score for atrial fibrillation patients from age, sex, and clinical factors, returning a 0–9 score with low, moderate, or high risk.

Instructions

심방세동 환자의 뇌졸중 위험 점수 CHA2DS2-VASc를 계산한다. C=울혈성심부전, H=고혈압, A2=75세 이상(2점), D=당뇨, S2=뇌졸중/TIA(2점), V=혈관질환, A=6574세(1점), Sc=여성. 총 09점이며 risk_level은 0점 low, 1점 moderate, 2점 이상 high. age는 0~130 정수, 나머지는 bool이어야 하고 문자열 'true'는 거부한다. 판단 보조용이며 임상 결정을 대신하지 않는다.

Input Schema

NameRequiredDescriptionDefault
ageYes
chfNo
femaleYes
diabetesNo
hypertensionNo
stroke_or_tiaNo
vascular_diseaseNo

Output Schema

NameRequiredDescriptionDefault
_metaNo서버가 붙이는 영수증(integrity), 엔진, 힌트
scoreYes
traceYes계산 근거(tool, formula, inputs, steps, output)
risk_levelYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.3.0

TDQS

A4.3/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld=false, and the description adds behavior beyond them: the full weight table (A2=2점, S2=2점, A=1점), the 0~9 total range, the risk_level thresholds (0=low, 1=moderate, 2+=high), and strict input validation (age 0~130 integer, booleans required, string 'true' rejected). That tells the agent what output categories to expect and how to avoid a failed call.

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

Conciseness4/5

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

Purpose and population are front-loaded, and the dense middle sentence carries real content (component weights, score range, risk bands). It is long, but every clause adds usable information; a slightly tighter break between the scoring rules, the input types, and the disclaimer would improve scanability.

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

Completeness4/5

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

An output schema exists, so return values need not be explained, yet the description still supplies the risk_level banding that matters most for interpreting the result. Combined with per-factor scoring and input type rules, an agent has everything needed to call and interpret it correctly; only error/edge-case handling is left implicit.

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

Parameters4/5

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

Schema description coverage is 0%, so the description bears the burden, and it largely meets it: each clinical factor is mapped to its scoring meaning (C→chf, H→hypertension, A2→age≥75, D→diabetes, S2→stroke_or_tia, V→vascular_disease, Sc→female), plus type constraints for age and the booleans. It stops short of naming the parameters explicitly or noting that all booleans except female are optional with default false, which the agent must still read from the schema.

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

Purpose5/5

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

States a specific verb (계산한다) and a specific named resource (CHA2DS2-VASc stroke-risk score) with an explicit target population (심방세동 환자). It even decomposes the acronym into its components, so an agent can distinguish it from the other clinical scoring sibling (medical.has_bled) without opening the schema.

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

Usage Guidelines3/5

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

The target population ('심방세동 환자') and the caveat '판단 보조용이며 임상 결정을 대신하지 않는다' imply when it applies. However, there is no explicit routing guidance — it never says to use medical.has_bled instead when the question is bleeding risk rather than stroke risk, and no prerequisites or exclusions are given.

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

Deploy Server

Other Tools