Skip to main content

A scalable MCP (Model Context Protocol) tool framework to serve thousands of biomedical tools for Large Language Models.

Project description

Rhea

PyPI - Version Docker Pulls coverage tests

A scalable MCP (Model Context Protocol) tool framework to serve thousands of biomedical tools for Large Language Models.

Example executions with Claude:

How it works?

The MCP server first provides a single tool, find_tools which accepts a natural language query to select relevant tools. For example, an LLM (or user) can provide a query of "I need a tool to convert a CSV file to tabular.", which the server will then perform a RAG on a collection of tools to populate the server with n most relevant tools to the query. Once the server is populated, the LLM/user will have access to those relevant tools, along with their parameter annotations and documentations.

To provide file inputs/outputs with the tool agents, we utilize ProxyStore with a Redis backend, providing keys to the tool when a file input is required.

When a tool is called, the server utilizes Parsl to spawn an Academy agent that creates an environment for the tool, installing necessary requirements and pulling program files from a S3 object store. The agent will be provided the arguments provided by the MCP server, and return its stdout/stderr along with any output files as ProxyStore keys.

Setup

Requirements

  • uv - Package manager for Python projects.
  • docker - To run tools locally (external executor comming soon!)

Additionally, the server will need to point to an existing OpenAI-like endpoint (for embedding), Postgres, Redis, and MinIO server. Documentation coming soon.

Instalation

After cloning the repository, use uv to configure the virtual environment.

uv sync

Configuring Environment

An example .env file is provided in .env.example. Datasets coming soon!

Installing into Claude Desktop

In your claude_desktop_config.json file, add the following entry (Make sure to replace location_of_repo with the actual location!):

macOS/Linux

{
  "mcpServers": {
    "Rhea": {
        "command": "bash",
        "args": [
            "-lc",
            "cd location_of_repo && uv run -m server.mcp_server"
        ]
    }
  }
}

Windows (WSL)

{
  "mcpServers": {
    "Rhea": {
        "command": "wsl.exe",
        "args": [
            "bash",
            "-lc",
            "cd location_of_repo && uv run -m server.mcp_server"
        ]
    }
  }
}

Testing with MCP Inspector

To test the tools with MCP Inspector:

npx @modelcontextprotocol/inspector

And set the following configuration parameters:

Parameter Value
Transport Type STDIO
Command uv
Arguments run -m server.mcp_server
Request Timeout 600000
Reset Timeouts on Progress True
Maximum Total Timeout 600000
Proxy Session Token Token provided within CLI

Note: The timeouts are a temporary workaround to make sure the MCP client does not timeout during long tool executions. Better progress reporting is coming soon.

Running with SSE Transport

By default, the MCP server will start with STDIO transport for use with Claude Desktop. To enable SSE transport layer:

uv run -m rhea.server.mcp_server --transport sse

Running with Streamable HTTP

Work in progress!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rhea_mcp-0.1.1b4.tar.gz (57.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rhea_mcp-0.1.1b4-py3-none-any.whl (63.5 kB view details)

Uploaded Python 3

File details

Details for the file rhea_mcp-0.1.1b4.tar.gz.

File metadata

  • Download URL: rhea_mcp-0.1.1b4.tar.gz
  • Upload date:
  • Size: 57.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.13

File hashes

Hashes for rhea_mcp-0.1.1b4.tar.gz
Algorithm Hash digest
SHA256 cda38c6a0f1a7f15d5b60589ce925a9a66ae464eafa7f4fce3dfa0cce0878183
MD5 853e275461144a1a75925a2e8b8864b0
BLAKE2b-256 367a2a6e9d018ad2200620921872ebf38b979956ad91b8988c4ee2180eca4030

See more details on using hashes here.

File details

Details for the file rhea_mcp-0.1.1b4-py3-none-any.whl.

File metadata

  • Download URL: rhea_mcp-0.1.1b4-py3-none-any.whl
  • Upload date:
  • Size: 63.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.13

File hashes

Hashes for rhea_mcp-0.1.1b4-py3-none-any.whl
Algorithm Hash digest
SHA256 f7dbe0a9813d210da39742a9cee92cd2416fc5735a4e6954ee303f1d234997fe
MD5 707ac24d832e27ff9de6a04a2047392a
BLAKE2b-256 45bd5dce8abbdf20283fbf6676e53b36ee4938d63d30610ef00487947a9be528

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page