# chembl-mcp-server [Health: Active]

**Category:** 🧬 Biology & Bioinformatics  
**Repository:** https://github.com/cyanheads/chembl-mcp-server  
**GitHub Stars:** 2  
**npm Downloads (last month):** 1240  
**Views:** 2  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/chembl-mcp-server

## Description
Link compounds to protein targets, rank bioactivity, and look up drug mechanisms and indications.

## Tools
Capabilities this server exposes over MCP:

- **chembl_search_molecules** — Find compounds by name / ChEMBL ID / InChIKey, or run a structure search (exact \
- **chembl_get_bioactivities** — The flagship compound↔target bridge: bioactivity measurements for a molecule (or its whole family of forms), a target, or **both** (the compound×target pair), ranked on `pchembl_value`, or the measurements without one via `potency_view`. Large sets spill to a canvas.
- **chembl_search_targets** — Resolve a protein / gene symbol / UniProt accession to the ChEMBL target ID `chembl_get_bioactivities` needs.
- **chembl_get_drug_info** — Drug pharmacology — mechanism(s) of action, molecular target(s), action type, first-approval year, and clinical indications, across the drug's salts and other alternate forms.
- **chembl_get_assay** — Assay provenance behind a bioactivity row — type, target, organism, and ChEMBL's 1–9 confidence score.
- **chembl_dataframe_query** — Run a read-only SQL `SELECT` over the bioactivity rows staged on a canvas — rank, group, dedupe, aggregate across the full set.
- **chembl_dataframe_describe** — List the tables and columns staged on a canvas, so you can write correct SQL before querying.
- **chembl_dataframe_drop** — Drop a named staged table from a canvas. Opt-in via `CHEMBL_DATAFRAME_DROP_ENABLED=true` — absent from `tools/list` when off, since TTL already reclaims staged tables.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `bunx` (confidence: high):

```json
"mcpServers": {
  "chembl-mcp-server": {
    "command": "bunx",
    "args": ["@cyanheads/chembl-mcp-server@latest"]
  }
}
```

## Documentation

## What chembl-mcp-server does

chembl-mcp-server exposes ChEMBL’s curated relationships between compounds, protein targets, and measured bioactivity through MCP. It also covers drug pharmacology, including mechanisms of action, molecular targets, action types, first-approval years, and clinical indications across alternate drug forms.

The Biology & Bioinformatics server supports both direct lookups and multi-step research workflows. An agent can find a molecule, resolve a protein or gene to a ChEMBL target, retrieve measurements for either entity or their intersection, and inspect the assay behind a result.

## How it works

Molecule searches accept names, synonyms, ChEMBL IDs, InChIKeys, or SMILES-based structure searches. Exact, similarity, and substructure modes are available; similarity results include Tanimoto percentages. Search results expose properties such as maximum clinical phase, molecular weight, AlogP, Lipinski rule-of-five violations, QED, and parent compound relationships.

Target searches resolve protein names, gene symbols, or UniProt accessions to ChEMBL target IDs. Those IDs can then be passed to the bioactivity tool. Bioactivity queries may filter by molecule, target, compound-target pair, standard type, minimum pChEMBL value, assay type, organism, or variant. Measurements are ranked by pChEMBL value when applicable, and alternate salts or forms can be included for a molecule family.

Large bioactivity responses can be staged on a canvas. Read-only SQL queries can then rank, group, deduplicate, or aggregate the staged rows. Resources at `chembl://molecule/{chemblId}` and `chembl://target/{chemblId}` provide molecule and target records directly.

## Setup and configuration

The server supports STDIO and Streamable HTTP. It can be installed through the npm package `@cyanheads/chembl-mcp-server`, including an `npx`-based MCP configuration, or run from the published Docker image. A hosted endpoint is available at `https://chembl.caseyjhand.com/mcp`.

The `chembl_dataframe_drop` tool is opt-in. Set `CHEMBL_DATAFRAME_DROP_ENABLED=true` to expose it; otherwise staged tables are reclaimed through their time-to-live behavior and the tool is omitted from the tool list.

## Tools and capabilities

- `chembl_search_molecules` searches by text or identifier and performs exact, similarity, or substructure searches from SMILES.
- `chembl_search_targets` maps protein names, gene symbols, and UniProt accessions to ChEMBL target IDs.
- `chembl_get_bioactivities` retrieves and filters molecule, target, or pairwise measurements, including alternate molecular forms.
- `chembl_get_drug_info` returns mechanisms, targets, action types, approval year, and indications for drugs and their forms.
- `chembl_get_assay` provides assay type, target, organism, and ChEMBL’s confidence score for a bioactivity record.
- `chembl_dataframe_describe` lists staged tables and columns, while `chembl_dataframe_query` runs read-only SQL over staged bioactivity data.
- `chembl_dataframe_drop` removes a named staged table when explicitly enabled.

## Limitations and notes

pChEMBL rankings are comparable only within the same standard type. Standard-type matching is case-sensitive, so values such as `Kd` and `KD` may represent separate ChEMBL records. Variant filters distinguish wild-type measurements from recorded mutations and match complete recorded variant strings.

Name searches stop counting and paging at 10,000 matches, while substructure searches cap at 30,000. A capped result must be narrowed to reach a smaller result set. Structure searches can fail with an invalid-structure response when ChEMBL cannot parse the supplied SMILES. Bioactivity results use cursors for pagination, and cursor requests must retain the filters that created them.

_Full upstream README: https://allmcps.com/mcp/chembl-mcp-server/readme_

