AACT_MCP
Documentation
AACT Clinical Trials MCP Server
Query the AACT (ClinicalTrials.gov) database directly from Claude. Explore 70+ tables of clinical trial data — studies, interventions, outcomes, sponsors, facilities — using read-only SQL with buffered pagination.
Why AACT over the ClinicalTrials.gov API?
The ClinicalTrials.gov API returns one JSON record per trial — useful for quick lookups, but awkward for analytics. Want the average duration of Phase 2 NSCLC trials from 2020-2025? With the API you'd filter trials, extract dates from each JSON record, then compute durations client-side. With AACT, that's a single SQL query.
A structured PostgreSQL database makes it far easier to aggregate, combine, and summarize clinical trial data in any way you need. And for AI-assisted analysis, SQL is a standard that LLMs handle extremely well — fewer mistakes, less context to manage, better performance, and lower cost compared to parsing bespoke API responses.
> Note: This is an independent, third-party integration. It is not affiliated with or endorsed by the Clinical Trials Transformation Initiative (CTTI) or Duke University. However, we released a case study with CTTI on integrating their database with Claude - see AACT case study.
Tools
| Tool | Description |
|---|---|
| `database_info` | Confirm database connection, server time, and data currency |
| `list_tables` | Discover all available tables with approximate row counts |
| `describe_table` | Inspect column names, types, distinct counts, and sample values |
| `get_column_values` | Get distinct values for a column with counts — essential before filtering |
| `search_columns` | Find columns by keyword across all tables (e.g. `masking` -> `designs.masking`) |
| `read_query` | Execute a SELECT, CTE, or EXPLAIN query with buffered results and preview |
| `fetch_rows` | Page through buffered query results without re-querying |
All tables join on `nct_id`.
Setup
1. Create a free account at https://aact.ctti-clinicaltrials.org/users/sign_up
2. Install the plugin (see options below)
3. Enter your AACT credentials when prompted
Installation
Option 1: Claude Desktop Plugin (recommended)
Download the latest `.mcpb` file from Releases and open it in Claude Desktop. You'll be prompted for your AACT credentials.
Option 2: Published package
Add to your `claude_desktop_config.json` (`~/Library/Application Support/Claude/claude_desktop_config.json` on macOS, `%APPDATA%\Claude\claude_desktop_config.json` on Windows):
{
"mcpServers": {
"aact": {
"command": "uvx",
"args": ["mcp-server-aact"],
"env": {
"DB_USER": "your_username",
"DB_PASSWORD": "your_password"
}
}
}
}Option 3: Docker
{
"mcpServers": {
"aact": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"--env", "DB_USER=your_username",
"--env", "DB_PASSWORD=your_password",
"navisbio/mcp-server-aact:latest"
]
}
}
}Option 4: From source
git clone https://github.com/navisbio/mcp-server-aact.git
cd mcp-server-aact
uv sync{
"mcpServers": {
"aact": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-server-aact", "mcp-server-aact"],
"env": {
"DB_USER": "your_username",
"DB_PASSWORD": "your_password"
}
}
}
}Example Prompts
1. Competitive landscape analysis
> "Who are the top 10 sponsors of Phase 3 Alzheimer's disease trials? Break down by trial status."
The server will discover relevant tables, check enum values for phase and status, then build a query joining `studies`, `conditions`, and `sponsors`.
2. Drug pipeline search
> "Find all actively recruiting Phase 2 and Phase 3 trials for pembrolizumab in non-small cell lung cancer. Show NCT ID, title, enrollment, and lead sponsor."
Uses `get_column_values` to confirm phase format (`PHASE2`, `PHASE3`), then queries across `studies`, `browse_interventions`, and `conditions`.
3. Endpoint analysis
> "What are the most common primary outcome measures in completed Phase 3 type 2 diabetes trials?"
Joins `studies` with `outcomes` to analyze endpoint patterns, grouped by outcome measure type.
4. Geographic distribution
> "How many clinical trial sites does a typical rare disease trial have? Show the top countries by site count."
Queries the `facilities` table joined with `conditions` to map trial geography.
Privacy
This server is read-only and does not collect or store any personal data. See PRIVACY.md for details.
Troubleshooting
Connection or authentication errors
- Verify your AACT credentials at https://aact.ctti-clinicaltrials.org/users/sign_in
- The AACT database undergoes weekly maintenance (typically weekends) — try again later if the connection is refused
- Ensure `DB_USER` and `DB_PASSWORD` are set correctly in your config
`spawn uvx ENOENT` error
The system cannot find `uvx`. Use the full path:
{
"mcpServers": {
"aact": {
"command": "/Users/username/.local/bin/uvx",
"args": ["mcp-server-aact"],
"env": {
"DB_USER": "your_username",
"DB_PASSWORD": "your_password"
}
}
}
}Contributing
- Open an issue on GitHub
- Email: jonas.walheim@navis-bio.com
License
MIT
Frequently asked questions
What is AACT_MCP?
AACT_MCP is a Model Context Protocol (MCP) server listed in the TrackMCP directory.
How do I install AACT_MCP?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is AACT_MCP open source?
Yes — it is hosted on GitHub at https://github.com/navisbio/aact_mcp and has 16 stars.
Related MCP tools
Cognee is the open-source AI memory platform for agents. Give your AI agents persistent long-term memory across sessions with a self-hosted knowledge graph engine.
Python SQL Parser and Transpiler
MCP server that interacts with Obsidian via the Obsidian rest API community plugin
Open-source meeting transcription API for Google Meet, Microsoft Teams & Zoom. Auto-join bots, real-time WebSocket transcripts, MCP server for AI agents. Self-host or use hosted SaaS.
A super light-weight embedded code search engine CLI (AST based) that just works - improves speed and efficiency for coding agent 🌟 Star if you like it!
Official MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP