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.1b5.tar.gz (57.7 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.1b5-py3-none-any.whl (63.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: rhea_mcp-0.1.1b5.tar.gz
  • Upload date:
  • Size: 57.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for rhea_mcp-0.1.1b5.tar.gz
Algorithm Hash digest
SHA256 6368daf54cd35cc4bf9d1f2c4f29fdec2b4716e184bb707669bc58c48ad2a02d
MD5 e0aac1ce453d04e6335be71523245e1e
BLAKE2b-256 07a75ed4a1635eff51def6545e4cd6f65b43a6c96c023eeec31ae343120f25cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: rhea_mcp-0.1.1b5-py3-none-any.whl
  • Upload date:
  • Size: 63.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for rhea_mcp-0.1.1b5-py3-none-any.whl
Algorithm Hash digest
SHA256 19bdba2b305f58327b14c2a09468deb11f81bf8cf504072b679986f70b62d860
MD5 24d38f96ee6c64b174352da9221505ee
BLAKE2b-256 68c8253f73ebb9fb784f3ce2791187a3bbdd59f68aec0e13a0380723233864e1

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