cBioPortal MCP Server
A high-performance async Model Context Protocol (MCP) server that enables AI assistants to interact with cancer genomics data from cBioPortal, a platform for exploring multidimensional cancer genomics datasets. Built with modern asynchronous Python for significantly faster data retrieval.
Features
- 🔍 Cancer Studies: Browse and search cancer studies available in cBioPortal
- 🧬 Genomic Data: Access gene mutations, clinical data, and molecular profiles
- 🔎 Search Capabilities: Find studies, genes, and samples with keyword search
- 📊 Multiple Data Types: Retrieve mutations, clinical data, and study metadata
- ⚡ Async Performance: Fully asynchronous implementation for significantly faster data retrieval (up to 4.5x faster)
- 📚 Bulk Operations: Concurrent fetching of multiple studies and genes for enhanced performance
- 🔄 FastMCP Integration: Built on the high-performance FastMCP framework
Table of Contents
Installation
Prerequisites
- Python 3.8 or higher
- pip (Python package installer)
- Git (optional, for cloning the repository)
Set Up Environment
Option 1: Using venv and pip (standard method)
Install Dependencies with pip
Option 2: Using UV (faster alternative)
UV is a modern, high-performance Python package manager and environment manager that's significantly faster than pip.
Install Dependencies with UV
Download the Server
Download the cbioportal_server.py
script to your working directory or clone this repository:
Make the Script Executable (Linux/macOS only)
Usage
Starting the Server
To start the server with default settings:
This launches the server using the public cBioPortal API at https://www.cbioportal.org/api
.
Advanced Options
Customize server behavior with command-line arguments:
Configuration
Using with Claude Desktop
- Install Claude Desktop
- Open Claude Desktop
- Click on the MCP Servers icon in the toolbar
- Add a new MCP server with the following configuration:
Replace /path/to/cbioportal_server.py
with the actual path to your script.
Using with VS Code
Configure the MCP server in your workspace settings:
Available Tools
The cBioPortal MCP server provides the following tools:
Tool Name | Description |
---|---|
get_cancer_studies | List all available cancer studies in cBioPortal |
get_cancer_types | Get a list of all cancer types |
get_study_details | Get detailed information about a specific cancer study |
get_samples_in_study | Get a list of samples associated with a study |
get_genes | Get information about specific genes by their Hugo symbol or Entrez ID |
search_genes | Search for genes by keyword in their symbol or name |
get_mutations_in_gene | Get mutations in a specific gene for a given study |
get_clinical_data | Get clinical data for patients in a study |
get_molecular_profiles | Get a list of molecular profiles available for a study |
search_studies | Search for cancer studies by keyword |
get_multiple_studies | Fetch multiple studies concurrently for better performance |
get_multiple_genes | Retrieve multiple genes concurrently with automatic batching |
Examples
Here are examples of questions you can ask AI assistants connected to this server:
Performance
This server implements full asynchronous support for significantly improved performance when retrieving data from the cBioPortal API.
Benchmark Results
Our testing shows significant performance improvements with the async implementation:
- 4.57x faster for concurrent study fetching compared to sequential operations
- Efficient batched processing for retrieving multiple genes
- Consistent data quality between sequential and concurrent operations
Bulk Operation Benefits
The server provides specialized tools for bulk operations that leverage concurrency:
get_multiple_studies
: Fetches multiple studies in parallel using asyncio.gatherget_multiple_genes
: Implements smart batching for efficient concurrent gene retrieval
These methods include detailed performance metrics, such as execution time and batch counts, to help you understand the efficiency gains.
Troubleshooting
Server Fails to Start
- Ensure you have Python 3.8+ installed:
python --version
- Verify all dependencies are installed:
pip list | grep mcp
- Check for error messages in the console
Connection Issues with Claude Desktop
- Verify the path to the script is correct in your configuration
- Make sure the script has execute permissions
- Check the Claude logs for detailed error messages
API Connection Issues
- Ensure you have internet connectivity
- Verify that the cBioPortal API is accessible:
curl https://www.cbioportal.org/api/cancer-types
- Try using a different API endpoint if available
Development
Extending the Server
You can extend the functionality of the server by adding new methods to the CBioPortalMCPServer
class and registering them as tools:
Future Improvements
Potential improvements for future versions:
- Caching for frequently accessed data
- Authentication support for private cBioPortal instances
- Additional endpoints for more comprehensive data access
- Fine-tuning concurrency limits based on server capabilities
- Add request retry mechanisms for more robust error handling
- Implement more concurrent bulk operation methods for other endpoints
Updates and Maintenance
To update to the latest version of the MCP SDK:
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- cBioPortal for providing the open-access cancer genomics data platform
- Model Context Protocol for enabling AI-tool interactions
- FastMCP for the high-performance MCP server framework
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A server that enables AI assistants to interact with cancer genomics data from cBioPortal, allowing users to explore cancer studies, access genomic data, and retrieve mutations and clinical information.
Related MCP Servers
- -securityFlicense-qualityEnables AI assistants to interact with Metabase databases and dashboards, allowing users to list and execute queries, access data visualizations, and interact with database resources through natural language.Last updated -9JavaScript
- -securityFlicense-qualityEnables AI assistants to interact with Metabase, providing access to dashboards, questions, databases, and tools for executing queries and viewing data through natural language.Last updated -JavaScript
- -securityAlicense-qualityAn MCP server enabling AI assistants to search and analyze pharmaceutical data through Cortellis. Features comprehensive drug search, ontology exploration, and real-time clinical trial data access.Last updated -PythonMIT License
- -securityFlicense-qualityA Model Context Protocol server providing AI assistants with access to healthcare data tools, including FDA drug information, PubMed research, health topics, clinical trials, and medical terminology lookup.Last updated -1Python