{"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","name":"io.github.cyanheads/chembl-mcp-server","description":"Link compounds to protein targets, rank bioactivity, and look up drug mechanisms and indications.","repository":{"url":"https://github.com/cyanheads/chembl-mcp-server","source":"github"},"version":"0.4.0","packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/chembl-mcp-server","version":"0.4.0","runtimeHint":"npx","transport":{"type":"stdio"},"environmentVariables":[{"description":"Set to 'duckdb' to enable the bioactivity DataCanvas spill and the chembl_dataframe_* SQL tools. When 'none', large bioactivity sets inline a preview but never spill.","format":"string","default":"none","name":"CANVAS_PROVIDER_TYPE"},{"description":"Base URL for the ChEMBL REST data API. Override for a private mirror or pinned host.","format":"string","default":"https://www.ebi.ac.uk/chembl/api/data","name":"CHEMBL_API_BASE_URL"},{"description":"Per-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).","format":"string","default":"30000","name":"CHEMBL_REQUEST_TIMEOUT_MS"},{"description":"Rows 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.","format":"string","default":"1000","name":"CHEMBL_MAX_PAGE_SIZE"},{"description":"Default result limit applied when callers omit it.","format":"string","default":"25","name":"CHEMBL_DEFAULT_LIMIT"},{"description":"Ceiling 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\".","format":"string","default":"50000","name":"CHEMBL_MAX_SPILL_ROWS"},{"description":"Most chembl_get_bioactivities spill-page requests in flight at once (1–6), shared by every call on the server.","format":"string","default":"4","name":"CHEMBL_MAX_CONCURRENT_PAGES"},{"description":"Time 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\".","format":"string","default":"45000","name":"CHEMBL_SPILL_DEADLINE_MS"},{"description":"Set to 'true' to register the opt-in chembl_dataframe_drop tool (absent from tools/list when off).","format":"string","default":"false","name":"CHEMBL_DATAFRAME_DROP_ENABLED"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"}]},{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"@cyanheads/chembl-mcp-server","version":"0.4.0","runtimeHint":"npx","transport":{"type":"streamable-http","url":"http://localhost:3010/mcp"},"environmentVariables":[{"description":"Selects the HTTP transport.","format":"string","value":"http","name":"MCP_TRANSPORT_TYPE"},{"description":"The hostname for the HTTP server.","format":"string","default":"127.0.0.1","name":"MCP_HTTP_HOST"},{"description":"The port to run the HTTP server on.","format":"string","default":"3010","name":"MCP_HTTP_PORT"},{"description":"The endpoint path for the MCP server.","format":"string","default":"/mcp","name":"MCP_HTTP_ENDPOINT_PATH"},{"description":"Authentication mode to use: 'none', 'jwt', or 'oauth'.","format":"string","default":"none","name":"MCP_AUTH_MODE"},{"description":"Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').","format":"string","default":"info","name":"MCP_LOG_LEVEL"},{"description":"Set to 'duckdb' to enable the bioactivity DataCanvas spill and the chembl_dataframe_* SQL tools. When 'none', large bioactivity sets inline a preview but never spill.","format":"string","default":"none","name":"CANVAS_PROVIDER_TYPE"},{"description":"Base URL for the ChEMBL REST data API. Override for a private mirror or pinned host.","format":"string","default":"https://www.ebi.ac.uk/chembl/api/data","name":"CHEMBL_API_BASE_URL"},{"description":"Per-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).","format":"string","default":"30000","name":"CHEMBL_REQUEST_TIMEOUT_MS"},{"description":"Rows 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.","format":"string","default":"1000","name":"CHEMBL_MAX_PAGE_SIZE"},{"description":"Default result limit applied when callers omit it.","format":"string","default":"25","name":"CHEMBL_DEFAULT_LIMIT"},{"description":"Ceiling 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\".","format":"string","default":"50000","name":"CHEMBL_MAX_SPILL_ROWS"},{"description":"Most chembl_get_bioactivities spill-page requests in flight at once (1–6), shared by every call on the server.","format":"string","default":"4","name":"CHEMBL_MAX_CONCURRENT_PAGES"},{"description":"Time 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\".","format":"string","default":"45000","name":"CHEMBL_SPILL_DEADLINE_MS"},{"description":"Set to 'true' to register the opt-in chembl_dataframe_drop tool (absent from tools/list when off).","format":"string","default":"false","name":"CHEMBL_DATAFRAME_DROP_ENABLED"}]}],"remotes":[{"type":"streamable-http","url":"https://chembl.caseyjhand.com/mcp"}]},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","statusChangedAt":"2026-10-18T04:28:59.703391Z","publishedAt":"2026-10-18T04:28:59.703391Z","updatedAt":"2026-10-18T04:28:59.703391Z","isLatest":true}}}
