Teninq

cdisc-mcp

Community Teninq
Updated

cdisc-mcp

CDISC Library MCP Server โ€” exposes CDISC standards data (SDTM, ADaM, CDASH, Controlled Terminology) as MCP tools that AI assistants can call directly.

For a full guide covering installation, API key setup, connecting to Claude Desktop or VS Code, tool reference, and troubleshooting, see the User Manual.

Installation

# Install with development dependencies (recommended)
pip install -e ".[dev]"

# Install runtime only
pip install -e .

Configuration

A CDISC Library personal API key is required. Obtain one at https://library.cdisc.org.

Linux / macOS

export CDISC_API_KEY=your_api_key_here

Windows (Command Prompt)

set CDISC_API_KEY=your_api_key_here

Windows (PowerShell)

$env:CDISC_API_KEY = "your_api_key_here"

Running the Server

# Via installed entry point
cdisc-mcp

# Via Python module
python -m cdisc_mcp.server

Available Tools (12)

Tool Description
list_products List all available CDISC standards and their published versions
search_cdisc Search across all CDISC standards by keyword
get_sdtm_domains List all SDTM domains for a given version
get_sdtm_domain_variables Get all variables defined in an SDTM domain
get_sdtm_variable Get the full definition of a specific SDTM variable
get_adam_datastructures List all ADaM data structures for a given version
get_adam_variable Get the definition of a specific ADaM variable
get_cdash_domains List all CDASH domains for a given version
get_cdash_domain_fields Get all data collection fields for a CDASH domain
list_ct_packages List all available Controlled Terminology packages
get_codelist Get a specific CT codelist definition and metadata
get_codelist_terms List all valid terms in a CT codelist (max 100)

Web Explorer (Optional)

A lightweight browser UI for interactively testing tools without an AI client.

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

# Set API key and start the bridge server
set CDISC_API_KEY=your_api_key_here   # Windows CMD
python web/app.py

Open http://localhost:8080 in your browser. The explorer lets you select any of the 12 tools, fill in parameters, run them, and inspect syntax-highlighted JSON responses.

Development

Running Tests

# Run full test suite with coverage (must reach 80%)
pytest

# Run specific test files
pytest tests/test_config.py tests/test_client.py tests/test_response_formatter.py tests/test_tools.py -v

Project Structure

src/cdisc_mcp/
    __init__.py          # Package version
    client.py            # Async HTTP client with caching and retry
    config.py            # Configuration from environment variables
    errors.py            # Custom exception types
    response_formatter.py # Response cleaning and truncation
    server.py            # FastMCP server entry point
    tools/
        search.py        # list_products, search_cdisc
        sdtm.py          # SDTM domain and variable tools
        adam.py          # ADaM data structure and variable tools
        cdash.py         # CDASH domain and field tools
        terminology.py   # Controlled Terminology tools
        _validators.py   # Input validation helpers
web/
    app.py               # FastAPI bridge server (HTTP โ†’ tool functions)
    index.html           # Single-file browser explorer UI
tests/
    test_config.py
    test_client.py
    test_response_formatter.py
    test_tools.py
    test_errors.py
    test_server.py
    unit/                # Additional unit tests
    integration/         # Integration tests

Code Quality

# Linting
ruff check src/ tests/

# Type checking
mypy src/

MCP Server ยท Populars

MCP Server ยท New