Token导航 LogoToken导航

MCP Server · 数据服务

Cdisc MCP

CDISC MCP Server 是一个连接AI助手与CDISC Library REST API的服务,提供11种结构化工具用于查询临床试验数据标准(SDTM、ADaM、CDASH、CT)。

stdio官方级别未说明来源级核验工具 11
PythonClaude数据分析CursorVS Code

快速开始

作者 / 组织
Teninq
提供方
Teninq

工具数量

11

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

Cdisc MCP 属于数据服务类 MCP Server,公开资料标注 11 个工具,通过stdio 本地进程接入,适配 Claude、Cursor、VS Code,有可以直接复制的安装命令;接入前要先准备 API Key。

分类

数据服务

传输方式

stdio

认证方式

API Key

部署方式

支持远程部署

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 11 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

CDISC库MCP服务器 --直接从AI助手查询临床数据标准(SDTM、ADaM、CDASH、CT)。

🌐 翻译: 中文 README · 日本语README

______________________________________________________________________

这是什么?

这 CDISC MCP服务器 将AI助手(Claude、VS Code Copilot、Cursor等)连接到 CDISC库REST API,公开了11个用于查询临床试验数据标准的结构化工具。问你的AI助手一些问题,比如:

*“SDTM AE域中有哪些变量?”*/m *“显示ADaM IG 1.3中的ADSL变量”* *“列出所有可用的受控术语包”*

有关完整的设置说明,请参阅 用户手册→。参见 例子→ 以获取真实的对话样本。

______________________________________________________________________

快速开始

0·一线AI安装

让AI助手为您安装一切:

curl -fsSL https://raw.githubusercontent.com/Teninq/cdisc-mcp/main/install.md
将输出粘贴到Claude、Copilot或任何AI聊天中——它将阅读指南并交互式地引导您完成整个设置。

______________________________________________________________________

1·获取CDISC库API密钥

注册地址: https://library.cdisc.org 并获得个人API密钥。

2·安装

# Runtime only
pip install -e .

# With dev dependencies
pip install -e ".[dev]"

# With web explorer
pip install -e ".[web]"

3·设置API密钥

# Linux / macOS
export CDISC_API_KEY=your_key_here

# Windows — Command Prompt
set CDISC_API_KEY=your_key_here

# Windows — PowerShell
$env:CDISC_API_KEY = "your_key_here"

4·跑步

# Start MCP server (for AI assistant integration)
cdisc-mcp

# OR: Start Web Explorer (quick interactive testing)
python web/app.py

______________________________________________________________________

Web Explorer——快速交互式测试

验证设置和探索工具的最快方法 没有任何AI客户端.

# 1. Install web dependencies
pip install -e ".[web]"

# 2. Set your API key
export CDISC_API_KEY=your_key_here   # Linux/macOS
set CDISC_API_KEY=your_key_here      # Windows CMD
$env:CDISC_API_KEY = "your_key_here" # Windows PowerShell

# 3. Start the bridge server
python web/app.py

# 4. Open in browser
#    → http://localhost:8080

资源管理器提供:

  • 侧边栏导航 --按标准(SDTM/ADaM/CDASH/术语)组织的所有11个工具
  • 自动生成的表单 --版本和域的下拉菜单,变量的文本输入
  • 实时JSON响应 --语法突出显示,可复制输出,具有响应时间
  • 网桥状态指示器 -确认您的API密钥和连接
提示: 使用带破折号的版本字符串-- 3-4 不 3.4, 1-3 不 1.3. 示例:SDTM-IG 3-4,ADaM IG 1-3,CDASH-IG 2-0

______________________________________________________________________

可用工具

#工具标准说明
1list_products--列出所有可用的CDISC标准和已发布版本
2get_sdtm_domainsSDTM列出SDTM-IG版本中的所有数据集
3get_sdtm_domain_variablesSDTM列出SDTM域/数据集中的所有变量
4get_sdtm_variableSDTM获取特定SDTM变量的完整定义
5get_adam_datastructuresADaM列出ADaM IG版本中的所有数据结构
6get_adam_variableADaM获取特定ADaM变量的定义
7get_cdash_domainsCDASH列出CDASH-IG版本中的所有域
8get_cdash_domain_fieldsCDASH获取CDASH域的所有数据收集字段
9list_ct_packagesCT列出所有可用的受控术语包
10get_codelistCT获取CT代码表的定义和元数据
11get_codelist_termsCT列出CT代码列表中的所有有效术语

版本参考

标准可用版本(使用破折号)
SDTM-IG3-4 · 3-3 · 3-2 · 3-1-3
ADaM IG1-3 · 1-2 · 1-1 · 1-0
CDASH-IG2-1 · 2-0 · 1-1-1

______________________________________________________________________

连接到AI助手

克劳德桌面版

添加 claude_desktop_config.json:

{
  "mcpServers": {
    "cdisc": {
      "command": "cdisc-mcp",
      "env": {
        "CDISC_API_KEY": "your_key_here"
      }
    }
  }
}

VS代码/光标

添加 .vscode/mcp.json 或等效的MCP配置:

{
  "servers": {
    "cdisc": {
      "command": "cdisc-mcp",
      "env": {
        "CDISC_API_KEY": "your_key_here"
      }
    }
  }
}

克劳德代码(CLI)

Claude Code在两个范围内支持MCP服务器: 用户 (全球,所有项目)和 项目 (仅限本地当前项目)。

选项A--CLI命令(推荐)

# Add globally (available in all projects)
claude mcp add cdisc-mcp -e CDISC_API_KEY=your_key_here -- python -m cdisc_mcp.server

# Add for the current project only
claude mcp add cdisc-mcp --scope project -e CDISC_API_KEY=your_key_here -- python -m cdisc_mcp.server

# Verify the server was registered
claude mcp list

选项B——编辑 ~/.claude.json 直接

{
  "mcpServers": {
    "cdisc-mcp": {
      "command": "python",
      "args": ["-m", "cdisc_mcp.server"],
      "env": {
        "CDISC_API_KEY": "your_key_here"
      }
    }
  }
}
提示: 如果 CDISC_API_KEY 已在您的系统环境中,省略 env 完全阻塞——Claude Code会自动继承它。

注册后,请确认 /mcp 在任何Claude Code会话中,然后以对话方式使用这些工具:

User: What SDTM domains are defined in version 3.4?
Claude: [calls get_sdtm_domains with version="3-4"] ...

______________________________________________________________________

在自己的Python工具中使用

您可以使用官方的MCP客户端SDK从任何Python脚本以编程方式调用CDISC MCP工具。

安装客户端

pip install mcp

最小示例

import asyncio
import os
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

SERVER = StdioServerParameters(
    command="python",
    args=["-m", "cdisc_mcp.server"],
    env={"CDISC_API_KEY": os.environ["CDISC_API_KEY"]},
)

async def main():
    async with stdio_client(SERVER) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()

            # List all available tools
            tools = await session.list_tools()
            print([t.name for t in tools.tools])

            # Call a tool
            result = await session.call_tool(
                "get_sdtm_domains",
                arguments={"version": "3-4"},
            )
            print(result.content[0].text)

asyncio.run(main())

可重复使用的助手

import asyncio, os, json
from contextlib import asynccontextmanager
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client

_SERVER = StdioServerParameters(
    command="python",
    args=["-m", "cdisc_mcp.server"],
    env={"CDISC_API_KEY": os.environ["CDISC_API_KEY"]},
)

@asynccontextmanager
async def cdisc_session():
    """Async context manager that yields an initialised MCP session."""
    async with stdio_client(_SERVER) as (read, write):
        async with ClientSession(read, write) as session:
            await session.initialize()
            yield session

async def call(tool: str, **kwargs) -> dict:
    async with cdisc_session() as s:
        result = await s.call_tool(tool, arguments=kwargs)
        return json.loads(result.content[0].text)

# --- Usage examples ---
async def demo():
    # Fetch SDTM domains
    domains = await call("get_sdtm_domains", version="3-4")

    # Fetch all variables in the AE domain
    variables = await call("get_sdtm_domain_variables", version="3-4", domain="AE")

    # Look up a single variable
    aeterm = await call("get_sdtm_variable", version="3-4", domain="AE", variable="AETERM")

    print(aeterm)

asyncio.run(demo())

可用工具签名(快速参考)

# Products / versions
await session.call_tool("list_products", {})

# SDTM
await session.call_tool("get_sdtm_domains",          {"version": "3-4"})
await session.call_tool("get_sdtm_domain_variables", {"version": "3-4", "domain": "AE"})
await session.call_tool("get_sdtm_variable",         {"version": "3-4", "domain": "AE", "variable": "AETERM"})

# ADaM
await session.call_tool("get_adam_datastructures",   {"version": "1-3"})
await session.call_tool("get_adam_variable",         {"version": "1-3", "data_structure": "ADSL", "variable": "USUBJID"})

# CDASH
await session.call_tool("get_cdash_domains",         {"version": "2-0"})
await session.call_tool("get_cdash_domain_fields",   {"version": "2-0", "domain": "AE"})

# Controlled Terminology
await session.call_tool("list_ct_packages",          {})
await session.call_tool("get_codelist",              {"package_id": "sdtmct-2024-03-29", "codelist_id": "C66781"})
await session.call_tool("get_codelist_terms",        {"package_id": "sdtmct-2024-03-29", "codelist_id": "AGEU"})
版本格式: 始终使用破折号,而不是点-- "3-4" 不 "3.4".

______________________________________________________________________

建筑

MCP Client (Claude / VS Code / Cursor)
        │
        │  MCP protocol (stdio)
        ▼
   server.py  ──── FastMCP tool registration
        │
        ▼
   tools/  ──────── domain functions (sdtm, adam, cdash, terminology, search)
        │
        ▼
   client.py  ───── CDISCClient (async HTTP · TTL cache · retry)
        │
        │  HTTPS
        ▼
   library.cdisc.org/api  ──── CDISC Library REST API

关键设计决策:

  • CDISCClient 是一个具有1小时TTL内存缓存的单例异步HTTP客户端
  • 仅 429 和 5xx 重新尝试响应; 4xx 立即提高
  • 工具函数是纯异步的——无需打补丁即可独立测试
  • format_response() HAL条 _links 元数据,提取用于LLM消费的结构化数据

______________________________________________________________________

发展

开发工作流程(先开发,分支合并SOP): 看 贡献指南.

运行测试

# Full suite with coverage (≥80% required)
pytest

# Specific modules
pytest tests/test_tools.py tests/test_client.py -v

# Single test
pytest tests/test_tools.py::test_list_products -v

代码质量

ruff check src/ tests/    # Linting
mypy src/                 # Type checking

GitHub分支保护(必需检查)

配置 main 分支保护要求:

  • CI Tests / tests
  • CI Lint / lint
  • CI Types / types

项目结构

src/cdisc_mcp/
├── server.py              # FastMCP server + tool registration
├── client.py              # Async HTTP client (cache, retry)
├── config.py              # Config dataclass + env loader
├── errors.py              # AuthenticationError, ResourceNotFoundError, RateLimitError
├── response_formatter.py  # HAL response normalization
└── tools/
    ├── search.py          # list_products (product catalog)
    ├── sdtm.py            # SDTM domain/variable tools
    ├── adam.py            # ADaM datastructure/variable tools
    ├── cdash.py           # CDASH domain/field tools
    ├── terminology.py     # CT package/codelist tools
    └── _validators.py     # Path traversal guards
web/
├── app.py                 # FastAPI bridge server
└── index.html             # Single-file browser explorer
tests/
├── test_config.py
├── test_client.py
├── test_response_formatter.py
├── test_tools.py
├── test_errors.py
└── test_server.py

______________________________________________________________________

许可证

MIT许可证。

______________________________________________________________________

专为使用CDISC标准的临床数据专业人员而设计。

用户手册 · 例子 · CDISC图书馆 · API文件

工具与能力

工具数量

11

资源数量

0

提示词数量

0

能力标签

临床数据标准Python本地部署AI助手集成RESTAPI临床试验数据查询

支持客户端

ClaudeCursorVS Code

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 工具数量 11 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor、VS Code,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备API Key,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到API Key的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Cdisc MCP

MCP World · 本页

11stdio有2 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Cdisc MCP 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Cdisc MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Cdisc MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Cdisc MCP 需要 API Key 吗?

公开资料标注的认证方式是API Key,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Cdisc MCP 支持哪些客户端?

公开资料标注支持 Claude、Cursor、VS Code;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP