Shiranui
# Shiranui
Shiranui is [the Model Context Protocol](https://modelcontextprotocol.io/introduction)(MCP) Server for retreiving the clinical standard contents in [the CDISC Library](https://library.cdisc.org/browser/#/).
This MCP server is built with [Python FastMCP](https://github.com/jlowin/fastmcp).
https://github.com/user-attachments/assets/9cd7e1a6-2750-4910-bb03-763c323b9f22
## Support CDISC Library API
- v2 Biomedical Concept Endpoints
- v2 Dataset Specialization Endpoints
- Controlled Terminology Codelist Endpoints
- ADaM Variable Metadata Endpoints
- SDTM Metadata Endpoints
- CDASH Metadata Endpoints
- SEND Metadata Endpoints
- Search Tool
## Requirements
- [Python v3.13](https://www.python.org/downloads/) and [UV](https://docs.astral.sh/uv/getting-started/installation/) were installed on your device.
- You have the [CDISC Library API Key](https://api.developer.library.cdisc.org/signin?returnUrl=%2Fapi-details).
## Installation
Download Shiranui from the [Releases Page](https://github.com/i-akiya/Shiranui/releases).
### Mac and Linux
```bash
cd /your/shiranui/dir
uv sync
```
Set your API key as an environment variable named CDISC_LIBRARY_API_KEY.
### Windows
Use back slash "\\" for path separator charactor.
```powershell
cd C:\your\shiranui\dir
uv sync
```
Set your API key as an environment variable named CDISC_LIBRARY_API_KEY.
## Configure mcp client
### LM Studio
#### Mac and Linux
```
{
"mcpServers": {
"Shiranui": {
"command": "uv",
"args": [
"run",
"/full/path/to/shiranui/dir/.venv/bin/shiranui"
]
}
}
}
```
#### Windows
Use slash"/" for path separator charactor.
```
{
"mcpServers": {
"Shiranui": {
"command": "uv",
"args": [
"run",
"C:/full/path/to/shiranui/dir/.venv/Scripts/shiranui"
]
}
}
}
```
You need to replace "/full/path/to/shiranui/dir" to match your own environment.
In addition to LM Studio, it may also work with Claude Desktop, Codename Goose, and other MCP Clients.
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
TDQS
Scored across 31 tools
Many tools form near-duplicate clusters, especially the five SDTM dataset specialization tools and the Biomedical Concept tools (get_latest_bc vs get_latest_bc_cat vs get_latest_bc_list). Several descriptions even reference the wrong function name, e.g., get_latest_bc's usage calls get_latest_bc_cat, increasing confusion.
Tools consistently use get_ prefix and snake_case, but word order and qualifier placement vary unpredictably: get_sdtm_dataset_specialization_list_for_package vs get_sdtm_dataset_specialization_package_list, and get_ct_latest_version vs get_sdtm_latest_version. Singular/plural forms are also mixed, and abbreviations like bc, ct, cdashig are inconsistently placed.
31 tools is excessive for what is essentially a read-only metadata retrieval API. Many tools could be consolidated with standard and version parameters, and the count exceeds the reasonable upper bound for a coherent tool set.
The set covers SDTM, ADaM, CDASH, SEND, Controlled Terminology, Biomedical Concepts, dataset specializations, and search, so major workflows are supported. Minor gaps exist, such as no direct ADaM-IG version tool or general package list, but these are workable.