@pipeworx/bindingdb

Connect: https://gateway.pipeworx.io/bindingdb/mcp · Install: one-click buttons

No MCP client? Skip the connection: POST https://gateway.pipeworx.io/v1/tools/search_packs {"query":"..."} to find a tool below, GET /v1/tools/<name> for its schema, POST the same URL with arguments for the data — see For AI agents.

Tools: 3

Measured protein/small-molecule binding affinities from BindingDB — Ki, Kd, IC50 and EC50 values in nM, each curated out of a published paper and carrying the PubMed ID it came from.

Tools

  • bindingdb_ligands_by_uniprot(uniprot, cutoff?, limit?) — every ligand BindingDB has measured against a UniProt target, sorted by potency. Answers “what compounds bind this protein and how tightly”.
  • bindingdb_targets_by_smiles(smiles, similarity?, limit?) — the protein targets a compound (or a structurally similar one) has been measured against, with species. Answers compound-to-target and off-target questions.
  • bindingdb_by_pdb(pdb, limit?) — affinities for the ligands associated with a PDB structure entry, linking a solved co-crystal to published potency.

Auth

Keyless. No registration, no header.

Data sources

Things that will otherwise cost you an afternoon:

  • The base path is /rest/, not /rwd/bind/rest/. The latter is in older docs and 404s from Tomcat with an HTML body. /axis2/services/BDBService/... is also dead.
  • The JSON envelope key does not match the endpoint name. All three respond under getLindsByUniprotsResponse / getLindsByUniprotResponse / getLindsByPDBsResponse — note “Linds”, a typo that is part of the contract. The compound endpoint additionally prefixes every field with bdb..
  • getLigandsByPDBs answers HTTP 500 with a SQL error in the body when it holds no data for that PDB ID — 2RH1 and 1ZZ1 both do this, 3EML works. That is an absent-data signal wearing a server-error costume; the pack says so rather than letting it read as an outage.
  • Response size scales hard with cutoff. P24941 at cutoff 1 is 387 KB, at 10 is 1.1 MB, at 100 is 2.2 MB; P00533 at 100 is 5 MB. The default here is 10.
  • An affinity of "0.000" means unreported, not infinitely potent. Values arrive as strings and may carry a qualifier (<1, >10000, " 348000"), so the pack splits them into affinity_nm + qualifier and nulls the zeros rather than ranking them first.
  • getLigandsByUniprots returns rows for related targets as well as the exact accession you asked for — the query field on each row says which target the measurement is actually against.

Tools

  • bindingdb_ligands_by_uniprot — Measured binding affinities (Ki, Kd, IC50, EC50 in nM) for every ligand BindingDB has curated against a UniProt target, each with the PubMed ID of the paper it was measured in. AUTHORITATIVE for “what
  • bindingdb_targets_by_smiles — Given a compound SMILES, the protein targets BindingDB has measured it (or a structurally similar compound) against, with species and affinity. AUTHORITATIVE for compound-to-target and off-target look
  • bindingdb_by_pdb — Measured binding affinities for the ligands associated with a PDB structure entry, linking a solved co-crystal to the potency numbers published for that target. AUTHORITATIVE for “what is the measured

Tools

  • bindingdb_by_pdb — Measured binding affinities for the ligands associated with a PDB structure entry, linking a solved co-crystal to the potency numbers published for that target. AUTHORITATIVE for what is the measured
  • bindingdb_ligands_by_uniprot — Measured binding affinities (Ki, Kd, IC50, EC50 in nM) for every ligand BindingDB has curated against a UniProt target, each with the PubMed ID of the paper it was measured in. AUTHORITATIVE for what
  • bindingdb_targets_by_smiles — Given a compound SMILES, the protein targets BindingDB has measured it (or a structurally similar compound) against, with species and affinity. AUTHORITATIVE for compound-to-target and off-target look

Regenerated from source · build September 18, 2026