Skip to main content

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)

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

{
  "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 offset parameter
  • 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 condition
  • limit: 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").

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:

  1. Edit the source files in src/riboseq_mcp/
  2. The main server logic is in server.py
  3. 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

  1. Check that your claude_desktop_config.json is valid JSON
  2. Verify the path to the RDP-MCP-server directory is correct
  3. Restart Claude Desktop completely
  4. 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:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

License

[Same as RiboSeq.Org Data Portal]

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)

Source distribution for RDP-MCP 0.2.0
File Size Uploaded Provenance
rdp_mcp-0.2.0.tar.gz 14.8 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for RDP-MCP 0.2.0
File Interpreter ABI Platform
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.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page