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
Metadata
Release files for RDP-MCP 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| rdp_mcp-0.2.0.tar.gz | 14.8 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rdp_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 24.7 kB
Release files / rdp_mcp-0.2.0.tar.gz
| Download URL | rdp_mcp-0.2.0.tar.gz |
|---|---|
| Size | 14.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aee8dc31ef833518cd4f5d08cff3094e7d573ce0c07a5cddcbcc368759a4b0c6
|
|
BLAKE2b-256 checksum How to use checksums |
ad4581d677ad4357e3abfcb97c038c861f19306fe807a2b5471084f33f3a60e4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / rdp_mcp-0.2.0-py3-none-any.whl
| Download URL | rdp_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
125589aa456d388263a9edf91d7b5349f51f774389614bec4d9f96b50c1f595f
|
|
BLAKE2b-256 checksum How to use checksums |
42743dd0e26c6515d82f7019854a3500a3cfe0af60a991ab9d5887b7ca17895b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for RDP-MCP 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.