search_compoundsLABSCO SUMMARY
Chemistry-aware search, not string matching.
The reason this is worth a connection rather than a browser tab is that the queries are chemical: similarity by Tanimoto score, substructure containment, InChI keys, activity types with value ranges. Those are the questions a name-based search cannot answer, and they are what turn a model into something useful on a compound series rather than on a single molecule.
What it is
An unofficial MCP server over ChEMBL's public REST API, aimed at drug discovery and chemical informatics work: compound and target lookup, bioactivity and assay data, clinical and mechanism-of-action information, and property analysis. It is not affiliated with ChEMBL.
What you get
search_compounds— by name, synonym or identifier, paginated up to 1000 resultsget_compound_info— the full record for a ChEMBL ID such asCHEMBL25search_targets— biological targets by name, filtered by target type and organismsearch_activities— bioactivity measurements filtered by target, assay, molecule and activity type such as IC50, Ki or EC50batch_compound_lookup— up to 50 ChEMBL IDs processed in one call- Structure work: InChI key and InChI string lookup, structures as SMILES, InChI, MOL or SDF, Tanimoto similarity search and substructure search
- Property analysis: ADMET, molecular descriptors, solubility and permeability prediction, and drug-likeness by Lipinski's Rule of Five
- Drug development data: approved drugs and clinical candidates, development status, therapeutic indications and mechanism of action
- Cross-references out to PubChem, DrugBank and PDB, and
chembl://resource URIs for compound, target, assay, activity and search
Requirements
Node.js v16 or higher; build from source with npm install and npm run build, or use the Docker image built from the included Dockerfile. The package is chembl-server. No API key and no account — everything comes from ChEMBL's public REST API, which also means the rate at which you can hammer it is theirs to decide, not yours.
Setup effort
Run a container — build the image from the repository, then point your client at it
USE CASES
Going from a drug name to its record
Search by name or synonym, then pull the full compound record for the ChEMBL ID you settle on.
Finding what has been tested against a target
Look up the target by name and organism, then pull bioactivity measurements filtered by activity type.
Exploring around a hit
Run similarity or substructure search from a structure and read the properties of what comes back.
Processing a list of IDs
Submit up to fifty ChEMBL IDs in one call rather than looping one request at a time.
27 tools
Listed in project docs. Your client may show a different list.
get_compound_infosearch_by_inchiget_compound_structuresearch_similar_compoundssearch_targetsget_target_infoget_target_compoundssearch_by_uniprotget_target_pathwayssearch_activitiesget_assay_infosearch_by_activity_typeget_dose_responsecompare_activitiessearch_drugsget_drug_infosearch_drug_indicationsget_mechanism_of_actionanalyze_admet_propertiescalculate_descriptorspredict_solubilityassess_drug_likenesssubstructure_searchbatch_compound_lookupget_external_referencesadvanced_searchBEFORE YOU INSTALL
What to know first
Tools you get
27 tools named in the project's documentation.
Requires
docker on PATH
Where it runs
The documented client runs the server on your machine.
INSTALLATION
Connect your client
Build the image from the repository, then point your client at it.
Server setup
git clone https://github.com/Augmented-Nature/ChEMBL-MCP-Server.git
cd ChEMBL-MCP-Server
docker build -t chembl-mcp-server .MCP Clients
Claude Desktop
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": [
"run",
"-i",
"chembl-mcp-server"
],
"env": {}
}
}
}