Biochemical Reaction Search by Compound or Keyword (Rhea)
rhea/search-reactions
Searches the Rhea database of expert-curated biochemical reactions for a compound name or other keyword that appears in the reaction equation, ignoring case. Returns each matching reaction's Rhea id (without the RHEA: prefix), plain-text equation, curation status, and balanced and transport flags, in id order, paged with limit and offset. A query that matches nothing returns an empty list. Up to 100 reactions per call. Rhea data under CC BY 4.0, served by Eden Engine; not an official Rhea or SIB product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.
Data source
Data from Rhea, the expert-curated biochemical reaction database of the SIB Swiss Institute of Bioinformatics (rhea-db.org), licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/); changes: reaction rows selected from the SPARQL result set and reshaped into flat objects. Credit: Rhea (rhea-db.org). Served by Eden Engine; not an official Rhea or SIB product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "rhea/search-reactions" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "rhea/search-reactions" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "rhea/search-reactions", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "rhea/search-reactions", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 21, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"query",
"limit"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Maximum number of reactions to return, 1 to 100. Required: a broad query matches thousands of reactions."
},
"query": {
"type": "string",
"pattern": "^(?=.*[A-Za-z0-9])[A-Za-z0-9 .,+'()/_-]+$",
"maxLength": 100,
"minLength": 1,
"description": "Text to find in the reaction equation, ignoring case: a compound name such as caffeine or NADPH, or a fragment of one. It is matched as one literal piece of text, as written, so write NADP(+) the way Rhea does and not NADP+. Letters, digits, spaces and . , + ' ( ) / _ - only, with at least one letter or digit."
},
"offset": {
"type": "integer",
"default": 0,
"minimum": 0,
"description": "Number of reactions to skip, for paging. Leave out for the first page."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"results"
],
"properties": {
"results": {
"type": "array",
"items": {
"type": "object",
"required": [
"id",
"equation"
],
"properties": {
"id": {
"type": "string",
"description": "Rhea reaction id without the RHEA: prefix, for example 17061."
},
"status": {
"type": "string",
"description": "Curation status, for example approved."
},
"comment": {
"type": "string",
"description": "Curator comment, often empty."
},
"balanced": {
"type": "boolean",
"description": "Whether the reaction is atom- and charge-balanced."
},
"equation": {
"type": "string",
"description": "Plain-text reaction equation, substrates = products."
},
"transport": {
"type": "boolean",
"description": "Whether the reaction is a transport reaction."
},
"htmlequation": {
"type": "string",
"description": "The equation as HTML markup with compound links; escape or sanitise before rendering."
}
},
"additionalProperties": true
},
"description": "Rhea reactions, in the order Rhea returns them. Empty when nothing matches."
}
},
"description": "The matching reactions, as a results list (empty when nothing matches).",
"additionalProperties": true
}