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.1b3.tar.gz (54.3 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.1b3-py3-none-any.whl (60.3 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for rhea_mcp-0.1.1b3.tar.gz
Algorithm Hash digest
SHA256 2e5cfaf559d4f635c324de491de6ec902f2c2ffd9d20f2be3639f88e0fcb5676
MD5 501fc3739779261e16067eb84350a63f
BLAKE2b-256 945534c9debe07d8e02c4d64e7e40881d71382023064be5c53fabd728e49989e

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for rhea_mcp-0.1.1b3-py3-none-any.whl
Algorithm Hash digest
SHA256 ee28fe5ea52c453e26c1634d488a28a38ef8fefe08d2b2256ef4aab361f02c25
MD5 4d70a2f402df48aa96832dcc7ac4e20e
BLAKE2b-256 25f8c879efc93b2b39fe058b2740c1b0c710720b25103b50f23b75005bd924f7

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