io.github.cyanheads/chembl-mcp-server

io.github.cyanheads/chembl-mcp-server

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

Connect this server

Add this to your MCP client config — claude_desktop_config.json (Claude Desktop) or .cursor/mcp.json (Cursor).Suits: Claude Desktop · Cursor.

{
  "mcpServers": {
    "chembl-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/chembl-mcp-server@0.5.0"
      ],
      "env": {
        "CANVAS_PROVIDER_TYPE": "duckdb",
        "CHEMBL_API_BASE_URL": "https://www.ebi.ac.uk/chembl/api/data",
        "CHEMBL_REQUEST_TIMEOUT_MS": "30000",
        "CHEMBL_MAX_PAGE_SIZE": "1000",
        "CHEMBL_DEFAULT_LIMIT": "25",
        "CHEMBL_MAX_SPILL_ROWS": "50000",
        "CHEMBL_MAX_CONCURRENT_PAGES": "4",
        "CHEMBL_SPILL_DEADLINE_MS": "45000",
        "CHEMBL_DATAFRAME_DROP_ENABLED": "false",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}
Environment variables
  • CANVAS_PROVIDER_TYPEDataCanvas provider for the bioactivity spill and the chembl_dataframe_* SQL tools; DuckDB is the default. Set to 'none' to disable it: large bioactivity sets then inline a preview but never spill.
  • CHEMBL_API_BASE_URLBase URL for the ChEMBL REST data API. Override for a private mirror or pinned host.
  • CHEMBL_REQUEST_TIMEOUT_MSPer-attempt timeout in milliseconds for an upstream ChEMBL request, capped by what is left of the call's time budget (45 s for most calls, CHEMBL_SPILL_DEADLINE_MS for a bioactivity spill).
  • CHEMBL_MAX_PAGE_SIZERows per upstream ChEMBL page (max 1000). The bioactivity spill walks pages of this size; an inline bioactivity page requests its limit, capped at this size.
  • CHEMBL_DEFAULT_LIMITDefault result limit applied when callers omit it.
  • CHEMBL_MAX_SPILL_ROWSCeiling on rows chembl_get_bioactivities stages to a DataCanvas table, and so on the upstream page walk behind it. Over the cap the response reports truncated: true and truncated_by: "row_cap".
  • CHEMBL_MAX_CONCURRENT_PAGESMost chembl_get_bioactivities spill-page requests in flight at once (1–6), shared by every call on the server.
  • CHEMBL_SPILL_DEADLINE_MSTime budget in milliseconds for one chembl_get_bioactivities spill, its count and page walk (10000–600000). At expiry the rows fetched so far stage with truncated: true and truncated_by: "time_budget".
  • CHEMBL_DATAFRAME_DROP_ENABLEDSet to 'true' to register the opt-in chembl_dataframe_drop tool (absent from tools/list when off).
  • MCP_LOG_LEVELSets the minimum log level for output (e.g., 'debug', 'info', 'warn').

A starting point — check the repository for exact arguments and setup. Restart your client after editing the config.

Category
Developer Tools
Version
0.5.0
Registry
active
Published
10/29/2026

Remotes

  • streamable-httphttps://chembl.caseyjhand.com/mcp
Browse all Developer Tools →

Add the badge to your site

Show visitors that io.github.cyanheads/chembl-mcp-server is listed here — it’s also the link we check for a free listing.

io.github.cyanheads/chembl-mcp-server — listed on Serverdex

HTML — for your website

<a href="https://serverdex.io/server/io-github-cyanheads-chembl-mcp-server?utm_source=badge"><img src="https://serverdex.io/brand/badge.svg" alt="io.github.cyanheads/chembl-mcp-server — listed on Serverdex" width="123" height="40" loading="lazy"></a>

Recommended. A dofollow link from your own domain is the one that counts for search engines, and it's the link we check for a free listing.

Markdown — for your README

[![io.github.cyanheads/chembl-mcp-server — listed on Serverdex](https://serverdex.io/brand/badge.svg)](https://serverdex.io/server/io-github-cyanheads-chembl-mcp-server?utm_source=badge)

Nice for visibility, but GitHub marks README links nofollow, so it doesn't pass authority. Use the HTML badge on your site as well.