MCP server for querying the RiboSeq.Org Data Portal - access ribosome profiling data through Claude and other LLMs
Project description
RDP-MCP
An MCP (Model Context Protocol) server that provides AI assistants like Claude with direct access to query the RiboSeq.Org Data Portal.
What is this?
This MCP server allows you to use Claude Desktop (or any MCP-compatible client) to search and explore ribosome profiling datasets through natural language. Instead of manually browsing the web portal, you can ask Claude questions like:
- "Find all human liver samples treated with cycloheximide"
- "Show me yeast ribosome profiling data from 2023"
- "Get the BAM file links for samples in study PRJNA123456"
Installation
Prerequisites
- Python 3.10 or higher
- Claude Desktop (or another MCP-compatible client)
Install via uvx (Recommended)
The easiest way to use this MCP server is with uvx, which comes with modern Python installations:
# Test that it works
uvx --from /path/to/RiboSeqOrg-DataPortal/RDP-MCP-server RDP-MCP
Install via pip
Alternatively, install it in development mode:
cd RDP-MCP-server
pip install -e .
Configuration
Claude Desktop
Add this to your Claude Desktop configuration file:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
Using uvx (recommended):
{
"mcpServers": {
"riboseq": {
"command": "uvx",
"args": [
"--from",
"/path/to/RiboSeqOrg-DataPortal/RDP-MCP-server",
"RDP-MCP"
]
}
}
}
Using pip install:
{
"mcpServers": {
"riboseq": {
"command": "RDP-MCP"
}
}
}
After updating the configuration, restart Claude Desktop.
Available Tools
The MCP server provides the following tools:
count_samples ⭐ NEW
Count samples without fetching data - much more efficient than querying all results!
Returns just the total count of samples matching your filters. Perfect for questions like:
- "How many human liver samples are in the database?"
- "How many samples use cycloheximide?"
Supports all the same filters as query_samples
query_samples
Search for ribosome profiling samples using metadata filters.
Features:
- Filter by any metadata field
- Pagination support via
offsetparameter - Optional pagination metadata with
paginated=true - No truncation issues - safely handle large result sets
Example parameters:
ScientificName: Organism (e.g., "Homo sapiens", "Mus musculus")TISSUE: Tissue type (e.g., "liver", "brain")CELL_LINE: Cell line (e.g., "HEK293", "HeLa")INHIBITOR: Translation inhibitor (e.g., "CHX", "harringtonine")LIBRARYTYPE: Library type (e.g., "RPF", "RNA")CONDITION: Experimental conditionlimit: Maximum results (default: 100)offset: Skip N results for pagination (default: 0)paginated: Return metadata (total, has_more, etc.) - default: false
get_sample_details
Get complete metadata for a specific sample by its Run accession (e.g., "SRR123456").
get_file_links
Retrieve download URLs for all data files associated with a sample:
- FASTA reads
- BAM alignment files
- BigWig coverage files (forward and reverse)
- QC reports (FastQC, fastp, RiboMetric, adapter reports)
search_by_organism
Search all samples from a specific organism, with optional additional filters.
Now supports pagination via offset and paginated parameters.
list_available_fields
Get a list of all queryable metadata fields.
Example Usage with Claude
Once configured, you can ask Claude:
"How many human liver samples are in the database?"
Claude will use count_samples:
{
"ScientificName": "Homo sapiens",
"TISSUE": "liver"
}
Returns: {"count": 1234}
"Find all mouse brain samples with cycloheximide treatment"
Claude will use query_samples:
{
"ScientificName": "Mus musculus",
"TISSUE": "brain",
"INHIBITOR": "CHX"
}
"Show me the next 100 results"
Claude will use query_samples with pagination:
{
"ScientificName": "Mus musculus",
"TISSUE": "brain",
"INHIBITOR": "CHX",
"offset": 100,
"limit": 100
}
"Get the BigWig files for sample SRR8428520"
Claude will use get_file_links:
{
"run_id": "SRR8428520"
}
Development
To modify or extend the MCP server:
- Edit the source files in
src/riboseq_mcp/ - The main server logic is in
server.py - API client wrapper is in
api_client.py
Project Structure
RDP-MCP-server/
├── pyproject.toml # Package configuration
├── README.md # This file
└── src/
└── riboseq_mcp/
├── __init__.py # Package initialization
├── server.py # MCP server implementation
└── api_client.py # RiboSeq API client
Troubleshooting
MCP server not appearing in Claude
- Check that your
claude_desktop_config.jsonis valid JSON - Verify the path to the RDP-MCP-server directory is correct
- Restart Claude Desktop completely
- Check Claude Desktop logs for errors
API connection errors
The server connects to https://rdp.ucc.ie by default. If the portal is down or unreachable, queries will fail. You can check the portal's status by visiting it in a browser.
Python version issues
Ensure you're using Python 3.10 or higher:
python --version
Contributing
This MCP server is part of the RiboSeq.Org Data Portal project. To contribute:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
License
[Same as RiboSeq.Org Data Portal]
Links
Support
For issues or questions:
- Open an issue on the GitHub repository
- Contact the RiboSeq.Org team through the portal
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rdp_mcp-0.2.0.tar.gz.
File metadata
- Download URL: rdp_mcp-0.2.0.tar.gz
- Upload date:
- Size: 14.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aee8dc31ef833518cd4f5d08cff3094e7d573ce0c07a5cddcbcc368759a4b0c6
|
|
| MD5 |
26c494c5a4b5fb5c97fff61d59db2e40
|
|
| BLAKE2b-256 |
ad4581d677ad4357e3abfcb97c038c861f19306fe807a2b5471084f33f3a60e4
|
File details
Details for the file rdp_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: rdp_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
125589aa456d388263a9edf91d7b5349f51f774389614bec4d9f96b50c1f595f
|
|
| MD5 |
fd51a344ff9ad08733891c804dc14d01
|
|
| BLAKE2b-256 |
42743dd0e26c6515d82f7019854a3500a3cfe0af60a991ab9d5887b7ca17895b
|