A side-by-side look at the Chembl MCP Server and Opentargets MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Chembl MCP Server for biology & bioinformatics work as a local process; choose Opentargets for biology & bioinformatics as a local process. You can also run both side by side in one mcpServers block.
CANVAS_PROVIDER_TYPE, CHEMBL_MAX_SPILL_ROWS, CHEMBL_DATAFRAME_DROP_ENABLED.chembl_search_molecules, chembl_get_bioactivities, chembl_search_targets.MCP_TRANSPORT, FASTMCP_SERVER_HOST, FASTMCP_SERVER_PORT, OPEN_TARGETS_API_URL, OPEN_TARGETS_RATE_LIMIT_RPS, OPEN_TARGETS_RATE_LIMIT_BURST, OPEN_TARGETS_RATE_LIMIT_ENABLED.get_target_alternative_genes, get_target_associated_diseases, get_target_chemical_probes.Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Biology & Bioinformatics | Biology & Bioinformatics |
| Quality signal | 56/100 · Good | 61/100 · Good |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | No auth required |
| Pricing | Not declared | Free |
| Required env vars | CANVAS_PROVIDER_TYPECHEMBL_MAX_SPILL_ROWSCHEMBL_DATAFRAME_DROP_ENABLED | MCP_TRANSPORTFASTMCP_SERVER_HOSTFASTMCP_SERVER_PORTOPEN_TARGETS_API_URLOPEN_TARGETS_RATE_LIMIT_RPSOPEN_TARGETS_RATE_LIMIT_BURSTOPEN_TARGETS_RATE_LIMIT_ENABLED |
| Verified owner | Community listing | Community listing |
| GitHub stars | 1 | 19 |
| Directory activity | 1 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 8 | 68 |
| Full listing | View Chembl MCP Server | View Opentargets |
chembl_search_moleculesFind compounds by name / ChEMBL ID / InChIKey, or run a structure search (exact \chembl_get_bioactivitiesThe flagship compound↔target bridge: bioactivity measurements for a molecule, 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_targetsResolve a protein / gene symbol / UniProt accession to the ChEMBL target ID `chembl_get_bioactivities` needs.chembl_get_drug_infoDrug pharmacology — mechanism(s) of action, molecular target(s), action type, first-approval year, and clinical indications.chembl_get_assayAssay provenance behind a bioactivity row — type, target, organism, and ChEMBL's 1–9 confidence score.chembl_dataframe_queryRun a read-only SQL `SELECT` over the bioactivity rows spilled to a canvas — rank, group, dedupe, aggregate across the full set.chembl_dataframe_describeList the tables and columns staged on a canvas, so you can write correct SQL before querying.chembl_dataframe_dropDrop 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.get_target_alternative_genesList alternate gene symbols and database cross-references for a target.get_target_associated_diseasesList diseases linked to a target with association scores.get_target_chemical_probesList available chemical probes and their quality metrics.get_target_classReturn ChEMBL target class annotations for a gene.get_target_depmap_essentialityFetch DepMap CRISPR essentiality scores across cell lines.get_target_expressionReturn baseline expression measurements for a target across biosamples.get_target_genetic_constraintFetch genetic constraint metrics (gnomAD) for a target.get_target_hallmarksReturn cancer hallmark annotations associated with a target.get_target_homologuesRetrieve cross-species homologues for a target gene.get_target_infoRetrieve core identity details for a target gene.get_target_interactionsRetrieve protein interaction partners for a target from curated databases.get_target_known_drugsReturn compounds with known activity on the target.Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
{
"mcpServers": {
"chembl-mcp-server": {
"command": "bunx",
"args": [
"@cyanheads/chembl-mcp-server@latest"
],
"env": {
"CANVAS_PROVIDER_TYPE": "YOUR_CANVAS_PROVIDER_TYPE_HERE",
"CHEMBL_MAX_SPILL_ROWS": "YOUR_CHEMBL_MAX_SPILL_ROWS_HERE",
"CHEMBL_DATAFRAME_DROP_ENABLED": "YOUR_CHEMBL_DATAFRAME_DROP_ENABLED_HERE"
}
}
}
}
{
"mcpServers": {
"opentargets": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/nickzren/opentargets-mcp",
"opentargets-mcp"
],
"env": {
"MCP_TRANSPORT": "YOUR_MCP_TRANSPORT_HERE",
"FASTMCP_SERVER_HOST": "YOUR_FASTMCP_SERVER_HOST_HERE",
"FASTMCP_SERVER_PORT": "YOUR_FASTMCP_SERVER_PORT_HERE",
"OPEN_TARGETS_API_URL": "YOUR_OPEN_TARGETS_API_URL_HERE",
"OPEN_TARGETS_RATE_LIMIT_RPS": "YOUR_OPEN_TARGETS_RATE_LIMIT_RPS_HERE",
"OPEN_TARGETS_RATE_LIMIT_BURST": "YOUR_OPEN_TARGETS_RATE_LIMIT_BURST_HERE",
"OPEN_TARGETS_RATE_LIMIT_ENABLED": "YOUR_OPEN_TARGETS_RATE_LIMIT_ENABLED_HERE"
}
}
}
}