Skip to main content
Glama
CDISC Library MCP Server

CDISC Library MCP Server

by whereayan

get_datastructure

Read-only

Retrieve a complete variable table for one analysis data structure, grouped by variable set and listing each variable's name, label, core, and datatype.

Instructions

获取单个分析数据结构的完整变量表:按变量集分组,每个变量一行 (name / label / core / datatype)。这是唯一带 core 与类型的整表来源, 问“ADSL 有哪些变量(含 Required/Permissible)”就用它。

默认返回紧凑表(已去掉每个变量的 description); 整包原始载荷很大,确有必要时再传 raw=true。

示例: standard='adamig', version='latest', datastructure='ADSL'

Input Schema

NameRequiredDescriptionDefault
rawNotrue 时返回未经瘦身的原始 API 载荷(含 _links 等超媒体元数据);默认 false,返回已瘦身、更省 token 的响应
versionYes版本号,支持 '1-3' 或 '1.3' 格式;传 'latest' 自动解析为该产品当前最新版本
standardYes标准名称: sdtm, sdtmig, sendig, adam, adamig, cdash, cdashig
datastructureYes分析数据结构名,如 ADSL(受试者级分析数据集), BDS, OCCDS, TTE。大小写不敏感;不确定时先调 get_datastructures 看可用清单

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

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

readOnlyHint=true already tells the agent this is a safe read. The description adds real value beyond the annotation: the default response strips each variable's description to save tokens, and the raw payload is large and should be requested only on need, which is a cost/size disclosure the annotation does not carry. It does not discuss ordering, error behavior when a datastructure name is invalid, or whether the returned table is complete for the version.

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?

Front-loaded purpose sentence, followed by the default-vs-raw behavioral note and a compact example, with no filler. The repeated emphasis on 'only source with core and type' is close to redundancy with the purpose sentence but still earns its place as differentiation.

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?

With no output schema, the description carries the return-shape burden and does so: grouping by variable set, per-row fields, and what the compact mode removes. For a simple 4-parameter read tool this is nearly complete, leaving only failure modes and version-availability edge cases unaddressed.

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 coverage is 100%, so the baseline is 3, but the description adds practical meaning for raw: the compact default is the token-efficient choice, and the full payload is bulky, which the schema only describes neutrally. The worked example (standard='adamig', version='latest', datastructure='ADSL') also shows how the three required parameters combine in a real call.

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

Purpose5/5

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

The description gives a concrete verb, resource, and payload shape: fetch the full variable table for one analysis data structure, grouped by variable set, one row per variable with name/label/core/datatype. It also explicitly states a uniqueness claim ('the only full-table source that includes core and type'), which separates it from the get_datastructure_variables and get_datastructure_varsets siblings without opening a schema.

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

Usage Guidelines4/5

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

It supplies a concrete trigger question ('what variables does ADSL have, including Required/Permissible?') and the rule that raw=true should be passed only when genuinely needed. What's missing is an explicit named competitor such as get_datastructure_variables for row-level lookups; the differentiation is only implied by 'the only full-table source'.

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