Skip to content
Eden Engine

Normalize a Biomedical Identifier: Preferred ID, Label, Type and Equivalent IDs (Translator Node Normalizer)

rencinodenormalizer/normalize-identifier

Resolves one biomedical identifier (a CURIE such as MESH:D014867, NCBIGene:1017 or CHEBI:15377) to its preferred identifier and label, its Biolink types, every equivalent identifier from other vocabularies, and an information content score. Optional flags switch gene-protein and drug-chemical conflation, descriptions, per-identifier types and taxa. An identifier the service does not know comes back as null. Data from the Translator Node Normalizer (RENCI), served by Eden Engine; not an official RENCI product.

activeper callv1

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

Translator Node Normalizer (RENCI)

Source: Translator Consortium, RENCI Standards Reference Implementation team (infores:sri-node-normalizer). Served by Eden Engine; not an official RENCI 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.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "rencinodenormalizer/normalize-identifier" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "rencinodenormalizer/normalize-identifier" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "rencinodenormalizer/normalize-identifier", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "rencinodenormalizer/normalize-identifier", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not 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.

ChargePrice
Per call
$0.0026
Updated
Oct 21, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "curie"
  ],
  "properties": {
    "curie": {
      "type": "string",
      "pattern": "^[^\\s:]+:\\S+$",
      "maxLength": 200,
      "minLength": 3,
      "description": "One identifier as PREFIX:LOCAL, for example MESH:D014867, NCBIGene:1017 or UniProtKB:P24941. One per call."
    },
    "conflate": {
      "type": "boolean",
      "description": "Apply gene-protein conflation. The service defaults to true."
    },
    "description": {
      "type": "boolean",
      "description": "Include identifier descriptions where known. The service defaults to false."
    },
    "include_taxa": {
      "type": "boolean",
      "description": "Include taxa on equivalent identifiers. The service defaults to true."
    },
    "individual_types": {
      "type": "boolean",
      "description": "Include the Biolink types of each equivalent identifier. The service defaults to false."
    },
    "drug_chemical_conflate": {
      "type": "boolean",
      "description": "Apply drug-chemical conflation. The service defaults to true."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "description": "One key, the identifier asked for, mapped to its normalized node, or to null when the service does not know it.",
  "additionalProperties": {
    "type": [
      "object",
      "null"
    ],
    "properties": {
      "id": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "identifier": {
            "type": "string"
          },
          "description": {
            "type": "string"
          }
        },
        "description": "The preferred identifier.",
        "additionalProperties": true
      },
      "type": {
        "type": "array",
        "items": {
          "type": "string"
        },
        "description": "Biolink types, most specific first."
      },
      "information_content": {
        "type": "number",
        "description": "Information content score; higher is more specific."
      },
      "equivalent_identifiers": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "label": {
              "type": "string"
            },
            "identifier": {
              "type": "string"
            }
          },
          "additionalProperties": true
        },
        "description": "Every identifier the service treats as the same concept."
      }
    },
    "additionalProperties": true
  }
}