This is a Cloudflare Workers-based Model Context Protocol (MCP) server that provides tools for querying the CIViC (Clinical Interpretation of Variants in Cancer) API.
The CIViC database is a crowd-sourced repository of clinical interpretations of cancer variants. This MCP server enables structured queries and data analysis of cancer genomics information through natural language interactions with AI assistants.
Python 3.11.7
pip install -r requirements.txtThe MCP Server can be called directly from the command line with the optional arguments disease and therapy to get CIViC evidence items:
python MCP_query_evidence.py --mp "EGFR" --disease "Lung Non-small Cell Carcinoma" --therapy "Erlotinib"We provide an example of doing this with GPT4o-mini. A personal API key is required, update the variable OPENAI_API_KEY in local_hosting/message_MCP_CIViC.py
python local_hosting/message_MCP_CIViC.py --msg "What is the clinical significance of EGFR variants in CIViC?" MCP.Claude.Setup.1.480p.mp4
Install Node.js (https://nodejs.org/)
Click "LTS" (Recommended for Most Users) — this gives you Node.js and npx Download and install it like any normal app
Once installed: On Windows: Open “Command Prompt” or “PowerShell” On macOS: Open “Terminal”
Then run:
node -v
npx -vConfirm that both give versions.
Add this configuration to your claude_desktop_config.json file:
{
"mcpServers": {
"civic-mcp-server": {
"command": "npx",
"args": [
"mcp-remote",
"https://civic-mcp-server.larscivic.workers.dev/mcp"
]
}
}
}Alternativly, the MCP server can be added as a connector (currently limited to paid Claude users). For more details visit https://support.claude.com/en/articles/11176164-pre-built-web-connectors-using-remote-mcp
Once configured, restart Claude Desktop. The server provides two main tools:
get_variant_evidence: Return up to 10 evidence items for a CIViC molecular profileget_variant_assertions: Return CIViC assertions for a molecular profile
All output files are located in QA_results.zip. experiment_QA_agent_MCP.py and experiment_QA_no_mcp.py are first called to ask GPT-5 for the Evidence Type of each CIViC triplet. This generates files like {Molecular_Profile}_{Disease}_{Therapy}_{Evidence Type}.txt in the dirs QA_eval_civic_mcp_evidence_type and QA_eval_civic_no_mcp_evidence_type. Next, experiment_QA_agent_MCP_significance.py and experiment_QA_agent_no_MCP_significance.py are called to ask GPT-5 about each CIViC Significance that corresponds to the previously identified Evidence Types. This generates files like {Molecular_Profile}_{Disease}_{Therapy}__{Evidence Type}_{Significance}.txt in the dirs QA_eval_civic_mcp_significance and QA_eval_civic_no_mcp_significance.
eval_QA_significance.py is then used to measure the performance using each of these significance txt files based on CIViC Evidence Items in data/CIViC_evidence_extracts_clinical_trials_curators.csv. The CIViC Evidence Items used here were extracted on 7/14/2025.
python experiment_QA_agent_MCP.py
python experiment_QA_agent_MCP_significance.py
python eval_QA_significance.pyMIT License with Academic Citation Requirement - see LICENSE.md