Mirobody
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
作者による説明(英語の原文)
Link compounds to protein targets, rank bioactivity, and look up drug mechanisms and indications.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
CANVAS_PROVIDER_TYPE, CHEMBL_API_BASE_URL, CHEMBL_REQUEST_TIMEOUT_MS, CHEMBL_MAX_PAGE_SIZE, CHEMBL_DEFAULT_LIMIT, CHEMBL_MAX_SPILL_ROWS, CHEMBL_MAX_CONCURRENT_PAGES, CHEMBL_SPILL_DEADLINE_MS, CHEMBL_DATAFRAME_DROP_ENABLED, MCP_LOG_LEVEL必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://chembl.caseyjhand.com/mcpClaude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"chembl": {
"command": "npx",
"args": [
"-y",
"@cyanheads/chembl-mcp-server"
],
"env": {
"CANVAS_PROVIDER_TYPE": "your-value",
"CHEMBL_API_BASE_URL": "your-value",
"CHEMBL_REQUEST_TIMEOUT_MS": "your-value",
"CHEMBL_MAX_PAGE_SIZE": "your-value",
"CHEMBL_DEFAULT_LIMIT": "your-value",
"CHEMBL_MAX_SPILL_ROWS": "your-value",
"CHEMBL_MAX_CONCURRENT_PAGES": "your-value",
"CHEMBL_SPILL_DEADLINE_MS": "your-value",
"CHEMBL_DATAFRAME_DROP_ENABLED": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add --transport http chembl https://chembl.caseyjhand.com/mcpclaude mcp add chembl --env CANVAS_PROVIDER_TYPE=your-value --env CHEMBL_API_BASE_URL=your-value --env CHEMBL_REQUEST_TIMEOUT_MS=your-value --env CHEMBL_MAX_PAGE_SIZE=your-value --env CHEMBL_DEFAULT_LIMIT=your-value --env CHEMBL_MAX_SPILL_ROWS=your-value --env CHEMBL_MAX_CONCURRENT_PAGES=your-value --env CHEMBL_SPILL_DEADLINE_MS=your-value --env CHEMBL_DATAFRAME_DROP_ENABLED=your-value --env MCP_LOG_LEVEL=your-value -- npx -y @cyanheads/chembl-mcp-server動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"chembl": {
"url": "https://chembl.caseyjhand.com/mcp"
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"chembl": {
"command": "npx",
"args": [
"-y",
"@cyanheads/chembl-mcp-server"
],
"env": {
"CANVAS_PROVIDER_TYPE": "your-value",
"CHEMBL_API_BASE_URL": "your-value",
"CHEMBL_REQUEST_TIMEOUT_MS": "your-value",
"CHEMBL_MAX_PAGE_SIZE": "your-value",
"CHEMBL_DEFAULT_LIMIT": "your-value",
"CHEMBL_MAX_SPILL_ROWS": "your-value",
"CHEMBL_MAX_CONCURRENT_PAGES": "your-value",
"CHEMBL_SPILL_DEADLINE_MS": "your-value",
"CHEMBL_DATAFRAME_DROP_ENABLED": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"chembl": {
"type": "http",
"url": "https://chembl.caseyjhand.com/mcp"
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"chembl": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@cyanheads/chembl-mcp-server"
],
"env": {
"CANVAS_PROVIDER_TYPE": "your-value",
"CHEMBL_API_BASE_URL": "your-value",
"CHEMBL_REQUEST_TIMEOUT_MS": "your-value",
"CHEMBL_MAX_PAGE_SIZE": "your-value",
"CHEMBL_DEFAULT_LIMIT": "your-value",
"CHEMBL_MAX_SPILL_ROWS": "your-value",
"CHEMBL_MAX_CONCURRENT_PAGES": "your-value",
"CHEMBL_SPILL_DEADLINE_MS": "your-value",
"CHEMBL_DATAFRAME_DROP_ENABLED": "your-value",
"MCP_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://chembl.caseyjhand.com/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
CANVAS_PROVIDER_TYPE envCHEMBL_API_BASE_URL envCHEMBL_REQUEST_TIMEOUT_MS envCHEMBL_MAX_PAGE_SIZE envCHEMBL_DEFAULT_LIMIT envCHEMBL_MAX_SPILL_ROWS envCHEMBL_MAX_CONCURRENT_PAGES envCHEMBL_SPILL_DEADLINE_MS envCHEMBL_DATAFRAME_DROP_ENABLED envMCP_LOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月7日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
chembl_search_moleculesDiscovery entry point for compounds. Find by name / ChEMBL ID / InChIKey with the default search_type=name (supply query), or run a structure search with search_type exact | similarity | substructure (supply structure as a SMILES). At least one of query or structure is required,
chembl_get_bioactivitiesThe flagship compound↔target bioactivity bridge: measurements for a molecule (target deconvolution / selectivity), a target (lead finding), or both together (how potently one compound hits one target). Supply at least one of molecule_chembl_id (from chembl_search_molecules) or ta
chembl_search_targetsResolve a protein/gene/UniProt accession to the ChEMBL target ID that chembl_get_bioactivities needs for the target→leads workflow. Supply at least one of accession (UniProt, e.g. P00533), gene_symbol (e.g. EGFR), or query (free-text name); filter further by organism and target_t
chembl_get_drug_infoPharmacology for a drug (molecule): mechanism(s) of action, the molecular target(s) it acts on, action type (inhibitor / agonist / …), first-approval year, and clinical indications with the max phase reached for each. Supply molecule_chembl_id (from chembl_search_molecules) — a p
chembl_get_assayAssay provenance behind a bioactivity row: description, type (binding / functional / ADMET / toxicity), the target it measures, organism, and ChEMBL's 1–9 confidence score (9 = direct assay on the protein target, lower = homologous or indirect). Supply assay_chembl_id from a chem
chembl_dataframe_queryRun a read-only SQL SELECT over the bioactivity rows chembl_get_bioactivities staged on a canvas — rank, group, dedupe, and aggregate across the FULL set, not the inline preview. Reference each staged table by the name chembl_get_bioactivities returned — bioactivities for its pot
chembl_dataframe_describeList the tables and columns staged on a canvas by chembl_get_bioactivities — inspect before calling chembl_dataframe_query to write correct SQL. Returns each table with its row count, kind (table | view), and column names + types. Unavailable when the server sets CANVAS_PROVIDER_
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント cyanheads で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
215ミリ秒で応答(HTTP 200)
サインイン不要
7件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(0.5.0)がレジストリに届いたのは10 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Mirobody, FHIR MCP Server, Google Health MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.
MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications
Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
@cyanheads/chembl-mcp-server Link compounds to protein targets, rank bioactivity (IC50/Ki/EC50), and look up drug mechanisms and indications over ChEMBL via MCP. STDIO or Streamable HTTP. 7 Tools (+1 opt-in) • 2 Resources
Public Hosted Server: https://chembl.caseyjhand.com/mcp
Drug-discovery data from ChEMBL (EBI): the curated link between compounds, protein targets, and measured bioactivity (IC50/Ki/EC50), plus drug mechanisms and indications. Search compounds by name, ID, or structure, resolve targets, and rank the most potent measurements.
| Tool | Description | ||
|---|---|---|---|
chembl_search_molecules | Find compounds by name / ChEMBL ID / InChIKey, or run a structure search (exact \ | similarity \ | substructure) from a SMILES. |
chembl_get_bioactivities | The flagship compound↔target bridge: bioactivity measurements for a molecule (or its whole family of forms), 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_targets | Resolve a protein / gene symbol / UniProt accession to the ChEMBL target ID chembl_get_bioactivities needs. | ||
chembl_get_drug_info | Drug pharmacology — mechanism(s) of action, molecular target(s), action type, first-approval year, and clinical indications, across the drug's salts and other alternate forms. | ||
chembl_get_assay | Assay provenance behind a bioactivity row — type, target, organism, and ChEMBL's 1–9 confidence score. | ||
chembl_dataframe_query | Run a read-only SQL SELECT over the bioactivity rows staged on a canvas — rank, group, dedupe, aggregate across the full set. | ||
chembl_dataframe_describe | List the tables and columns staged on a canvas, so you can write correct SQL before querying. | ||
chembl_dataframe_drop | Drop 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. |
| Resource | Description |
|---|---|
chembl://molecule/{chemblId} | A molecule record by ChEMBL ID — the same shape a chembl_search_molecules row carries. |
chembl://target/{chemblId} | A target record by ChEMBL target ID — preferred name, type, organism, and component UniProt accessions + gene symbols. |
All resource data is also reachable via the tools, so tool-only MCP clients lose nothing. There are no prompts — the canonical workflows are short tool chains an agent composes directly, and the cross-server chain guidance ships as server-level instructions instead.
| Skill | Description |
|---|---|
chembl-guide | Gates and workflows for the chembl_* tools: pinning a protein to its single-protein target, ranking leads without mixing mutants or salts, reading selectivity with the inactive results, and checking assay provenance and approval status. Served as skill://chembl-guide/SKILL.md; also ships in plugin installs, the .mcpb bundle, the npm package, and the Docker image. |
chembl_search_molecules toolsearch_type=name matches drug names, synonyms, ChEMBL IDs, and InChIKeys in one query; a query that is exactly a ChEMBL ID or InChIKey routes to ChEMBL's single-record lookup instead of the fuzzy text index (totalCount: 1)search_type: exact, similarity (Tanimoto ≥ similarity_threshold, integer 40–100, default 70), or substructure — supply structure as a SMILES; max_phase_min (name search only) restricts to compounds at or above a max clinical phase. A SMILES ChEMBL cannot parse fails a similarity or substructure search on the first request as invalid_structure, not as an outagemax_phase, MW, AlogP, Lipinski rule-of-five violations, and QED; only search_type=similarity results carry a Tanimoto similarity percent — absent, not null, on other modesparent_chembl_id, the parent of its family: ERLOTINIB HYDROCHLORIDE (CHEMBL1079742) names CHEMBL553, and a compound with no recorded hierarchy names itself. A salt can rank ahead of its parent while holding a small share of the family's measurementsnextCursor / cursor, omitted (not null) on the last page — redeem a cursor with the same filters that minted it; a limit above 100 is served at 100, with a noticetotalCountCapped: true with a notice that at least that many match and the rest are out of reach — narrow the query to get under itmolecule_chembl_id into chembl_get_bioactivities or chembl_get_drug_infochembl_get_bioactivities toolmolecule_chembl_id or target_chembl_id; supplying both narrows to that compound–target pair — neither is a missing_filter errorinclude_alternate_forms: true widens molecule_chembl_id to its family — the parent and every salt and other alternate form ChEMBL files under it (imatinib CHEMBL941: 4,878 measurements alone, 5,802 across its forms); a salt's ID reaches the same family, and each row keeps the form it was measured on. The count, both views, cursor pages, and the spill read the same family; re-send the flag with a cursor. Without molecule_chembl_id the flag is an alternate_forms_without_molecule error"chembl941" and " CHEMBL941 " read as CHEMBL941, and a value that is no ChEMBL ID ("imatinib") fails with -32602 before any request, routing to the search tools — for molecule_chembl_id, when include_alternate_forms is off and the value goes straight to the filterstandard_type (IC50/Ki/EC50/…), pchembl_value_min, assay_type, organism, and variant; ranked on pchembl_value — comparable only within one standard_typeassay_type takes a code (B / F / A / T / P / U) or ChEMBL's name for it (binding, ADMET, …) in any case. standard_type matches exactly, case included — ChEMBL holds distinct types that differ only by case (Kd / KD) — and when nothing matches, the notice names a case variant ChEMBL records under the same filters ("ic50" → IC50)variant separates wild-type from mutant potency: "wild_type" keeps the measurements that record no variant, and any other value matches the whole recorded variant case-insensitively ("T315I", "F508del", "L858R,T790M" in ChEMBL's order, "UNDEFINED MUTATION") — "L858R" alone does not match "L858R,T790M"activity_comment (e.g. Not Active, often the only result when no value was measured) and data_validity_comment (e.g. Outside typical range), the assay's assay_variant_mutation and assay_variant_accession, and the source document_chembl_id and document_year for citationpotency_view selects potency_ranked (default, measurements with a derivable pchembl_value) or null_potency (the excluded rows); pchembl_value_min with null_potency is a contradictory_potency_filter error, and totalCount spans both viewsnumber | null at the service boundary — a missing potency reads as null, never 0bioactivities / bioactivities_null_potency); the canvas is on by default, and CANVAS_PROVIDER_TYPE=none turns it offCHEMBL_MAX_CONCURRENT_PAGES at a time (default 4) and stays inside a row cap, CHEMBL_MAX_SPILL_ROWS (default 50,000), and a time budget, CHEMBL_SPILL_DEADLINE_MS (default 45 s). When either bound stops it short of the view, the response reports truncated: true, staged_row_count, and truncated_by (row_cap or time_budget)limit (default 25) regardless of spill status; a limit above 1,000 is served at 1,000, with a noticecanvas_id back and each later non-cursor call re-stages that view's table with its own rows — even when they fit inline or none match — replacing the prior rows, while the other view's table stays put. A spill replaces the table only once it succeeds, so one that fails or is cancelled leaves the prior rows. At the per-tenant canvas cap, a spill without canvas_id fails as canvas_capacity_exhaustedcanvas_id), the view comes back a page at a time via nextCursor / cursor, omitted (not null) on the last page — redeem a cursor with the same filters and potency_view that minted it; a cursor page is served inline and never staged, even with the canvas enabledchembl_search_targets toolaccession (UniProt, e.g. P00533), gene_symbol, or query (free-text); narrow with organism and target_type — none supplied is a missing_input erroruniprot/protein server. accession and target_type are matched uppercase, the form ChEMBL records ("p00533" reads as P00533, "single protein" as SINGLE PROTEIN); gene_symbol and organism already match case-insensitivelynextCursor / cursor, the same contract as chembl_search_molecules, limit clamp includedtarget_chembl_id into chembl_get_bioactivitieschembl_get_drug_info toolmolecule_chembl_id (any case) or the molecule's standard InChIKey; ret冒頭だけを表示しています。続きはリポジトリで読めます