🚀 非公式ChEMBL MCPサーバー
ChEMBL化学データベースへの高度なアクセスを提供する包括的なモデルコンテキストプロトコル(MCP)サーバーです。このサーバーは22の専用ツールを提供し、AIアシスタントやMCPクライアントがChEMBLのREST APIを通じて、高度な創薬研究、化学情報解析、生物活性調査を直接実行できます。
開発元: Augmented Nature
✨ 主な機能
核心的な化学検索と取得(5つのツール)
- 化合物検索: 化合物名、同義語、または識別子でChEMBLデータベースを検索します。
- 詳細な化合物情報: 構造、特性、注釈を含む包括的な化合物情報を取得します。
- InChIベースの検索: InChIキーまたはInChI文字列で化合物を検索します。
- 構造取得: さまざまな形式(SMILES、InChI、MOL、SDF)で化学構造情報を取得します。
- 類似性検索: Tanimoto類似性を使用して化学的に類似した化合物を検索します。
ターゲット分析と創薬(5つのツール)
- ターゲット検索: 名前またはタイプで生物学的ターゲットを検索します。
- 詳細なターゲット情報: 包括的なターゲット情報と注釈を取得します。
- ターゲット化合物: 特定のターゲットに対してテストされた化合物を取得します。
- UniProt統合: UniProtアクセッション番号でChEMBLターゲットを検索します。
- ターゲット経路: 関連する生物学的経路とメカニズムを取得します。
生物活性とアッセイデータ(5つのツール)
- 活性検索: 生物活性測定値とアッセイ結果を検索します。
- 詳細なアッセイ情報: 包括的なアッセイプロトコルと条件を取得します。
- 活性タイプ検索: 特定の活性タイプと値の範囲で生物活性データを検索します。
- 用量反応分析: 用量反応データと活性プロファイルを取得します。
- 活性比較: 複数の化合物またはターゲット間で生物活性データを比較します。
医薬品開発と臨床データ(4つのツール)
- 医薬品検索: 承認済み医薬品と臨床開発候補を検索します。
- 医薬品開発ステータス: 医薬品の開発ステータスと臨床試験情報を取得します。
- 治療適応症: 治療適応症と疾患領域を検索します。
- 作用機序: 作用機序とターゲット相互作用データを取得します。
化学特性分析(4つのツール)
- ADMET分析: ADMET特性(吸収、分布、代謝、排泄、毒性)を分析します。
- 分子記述子: 分子記述子と物理化学的特性を計算します。
- 溶解性予測: 水溶性と透過性特性を予測します。
- 医薬品適合性評価: Lipinskiの五の法則などの指標を使用して医薬品適合性を評価します。
高度な検索と相互参照(4つのツール)
- 部分構造検索: 特定の部分構造を含む化合物を検索します。
- バッチ処理: 複数のChEMBL IDを効率的に処理します。
- 外部参照: 外部データベース(PubChem、DrugBank、PDBなど)へのリンクを取得します。
- 高度な検索: 複数の化学的および生物学的フィルターを使用した複雑なクエリを実行します。
リソーステンプレート
- URIテンプレートを介してChEMBLデータに直接アクセスし、シームレスな統合を実現します。
📦 インストール
前提条件
- Node.js (v16以上)
- npmまたはyarn
セットアップ
- リポジトリをクローンします:
git clone <repository-url>
cd chembl-server
- 依存関係をインストールします:
npm install
- プロジェクトをビルドします:
npm run build
Docker
Dockerイメージのビルド
Dockerイメージをビルドします:
docker build -t chembl-mcp-server .
Dockerでの実行
コンテナを実行します:
docker run -i chembl-mcp-server
MCPクライアントとの統合には、コンテナを直接使用できます:
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": ["run", "-i", "chembl-mcp-server"],
"env": {}
}
}
}
💻 使用例
MCPサーバーとしての使用
サーバーは、標準入出力を介して通信するMCPサーバーとして実行するように設計されています:
npm start
MCPクライアント設定への追加
サーバーをMCPクライアント設定(例: Claude Desktop)に追加します:
{
"mcpServers": {
"chembl": {
"command": "node",
"args": ["/path/to/chembl-server/build/index.js"],
"env": {}
}
}
}
利用可能なツール
1. search_compounds
化合物名、同義語、または識別子でChEMBLデータベースを検索します。
パラメーター:
query
(必須): 検索クエリ(化合物名、同義語、または識別子)
limit
(オプション): 返す結果の数 (1 - 1000、デフォルト: 25)
offset
(オプション): スキップする結果の数 (デフォルト: 0)
例:
{
"query": "aspirin",
"limit": 10
}
2. get_compound_info
ChEMBL IDで特定の化合物の詳細情報を取得します。
パラメーター:
chembl_id
(必須): ChEMBL化合物ID(例: CHEMBL25)
例:
{
"chembl_id": "CHEMBL25"
}
3. search_targets
名前またはタイプで生物学的ターゲットを検索します。
パラメーター:
query
(必須): ターゲット名または検索クエリ
target_type
(オプション): ターゲットタイプフィルター(例: SINGLE PROTEIN, PROTEIN COMPLEX)
organism
(オプション): 生物種フィルター
limit
(オプション): 返す結果の数 (1 - 1000、デフォルト: 25)
例:
{
"query": "dopamine receptor",
"organism": "Homo sapiens",
"limit": 5
}
4. search_activities
生物活性測定値とアッセイ結果を検索します。
パラメーター:
target_chembl_id
(オプション): ChEMBLターゲットIDフィルター
assay_chembl_id
(オプション): ChEMBLアッセイIDフィルター
molecule_chembl_id
(オプション): ChEMBL化合物IDフィルター
activity_type
(オプション): 活性タイプ(例: IC50, Ki, EC50)
limit
(オプション): 返す結果の数 (1 - 1000、デフォルト: 25)
例:
{
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 50
}
5. batch_compound_lookup
複数のChEMBL IDを効率的に処理します。
パラメーター:
chembl_ids
(必須): ChEMBL化合物IDの配列 (1 - 50)
例:
{
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642"]
}
リソーステンプレート
サーバーは、URIテンプレートを介してChEMBLデータに直接アクセスできます:
1. 化合物情報
- URI:
chembl://compound/{chembl_id}
- 説明: ChEMBL IDの完全な化合物情報
- 例:
chembl://compound/CHEMBL25
2. ターゲット情報
- URI:
chembl://target/{chembl_id}
- 説明: ChEMBLターゲットIDの完全なターゲット情報
- 例:
chembl://target/CHEMBL2095173
3. アッセイ情報
- URI:
chembl://assay/{chembl_id}
- 説明: ChEMBLアッセイIDの完全なアッセイ情報
- 例:
chembl://assay/CHEMBL1217643
4. 活性情報
- URI:
chembl://activity/{activity_id}
- 説明: 活性IDの生物活性測定データ
- 例:
chembl://activity/12345678
5. 検索結果
- URI:
chembl://search/{query}
- 説明: クエリに一致する化合物の検索結果
- 例:
chembl://search/aspirin
基本的な使用法
基本的な化合物検索
アスピリン関連の化合物を検索します:
{
"tool": "search_compounds",
"arguments": {
"query": "aspirin",
"limit": 5
}
}
詳細な化合物情報の取得
アスピリンに関する包括的な情報を取得します:
{
"tool": "get_compound_info",
"arguments": {
"chembl_id": "CHEMBL25"
}
}
ターゲットベースの検索
ドーパミン受容体に対してテストされた化合物を検索します:
{
"tool": "search_targets",
"arguments": {
"query": "dopamine receptor D2",
"organism": "Homo sapiens"
}
}
生物活性分析
特定のターゲットに対するIC50データを検索します:
{
"tool": "search_activities",
"arguments": {
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 100
}
}
バッチ処理
複数の化合物を効率的に処理します:
{
"tool": "batch_compound_lookup",
"arguments": {
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642", "CHEMBL1201585"]
}
}
📚 ドキュメント
API統合
このサーバーは、化学データへのプログラムによるアクセスのためにChEMBL REST APIと統合されています。ChEMBLに関する詳細情報は以下を参照してください:
- ChEMBLウェブサイト: https://www.ebi.ac.uk/chembl/
- APIドキュメント: https://chembl.gitbook.io/chembl-interface-documentation/web-services
- REST APIガイド: https://www.ebi.ac.uk/chembl/api/data/docs
すべてのAPIリクエストには以下が含まれます:
- User-Agent:
ChEMBL-MCP-Server/1.0.0
- タイムアウト: 30秒
- ベースURL:
https://www.ebi.ac.uk/chembl/api/data
エラーハンドリング
サーバーには包括的なエラーハンドリングが含まれています:
- 入力検証: すべてのパラメーターは型ガードを使用して検証されます。
- APIエラー: ネットワークとAPIエラーはキャッチされ、説明的なメッセージとともに返されます。
- タイムアウト処理: リクエストは30秒後にタイムアウトします。
- 緩やかな劣化: 部分的な失敗は適切に処理されます。
開発
プロジェクトのビルド
npm run build
開発モード
TypeScriptコンパイラをウォッチモードで実行します:
npm run dev
プロジェクト構造
chembl-server/
├── src/
│ └── index.ts # メインサーバーの実装
├── build/ # コンパイルされたJavaScript出力
├── package.json # Node.jsの依存関係とスクリプト
├── tsconfig.json # TypeScriptの設定
└── README.md # このファイル
依存関係
- @modelcontextprotocol/sdk: サーバー実装のためのコアMCP SDK
- axios: ChEMBL APIリクエストのためのHTTPクライアント
- typescript: 開発用のTypeScriptコンパイラ
📄 ライセンス
MITライセンス
コントリビュート
- リポジトリをフォークします。
- 機能ブランチを作成します。
- 変更を加えます。
- 適用可能な場合はテストを追加します。
- プルリクエストを送信します。
サポート
問題や質問については以下を行ってください:
- ChEMBL APIドキュメントを確認します。
- Model Context Protocol仕様を確認します。
- リポジトリに問題を登録します。
Augmented Natureについて
この包括的なChEMBL MCPサーバーは、AI駆動のバイオインフォマティクスと計算化学ソリューションのリーディングイノベーターである**Augmented Nature**によって開発されています。Augmented Natureは、人工知能と化学研究の間のギャップを埋める高度なツールを作成することに特化しており、研究者が化学および生物学的データからより深い洞察を引き出せるようにしています。
完全なツールリファレンス
核心的な化学検索と取得ツール
search_compounds
- 名前、同義語、または識別子でChEMBLデータベースを検索します。
get_compound_info
- ChEMBL IDで詳細な化合物情報を取得します。
search_by_inchi
- InChIキーまたはInChI文字列で化合物を検索します。
get_compound_structure
- さまざまな形式で化学構造を取得します。
search_similar_compounds
- Tanimoto類似性を使用して化学的に類似した化合物を検索します。
ターゲット分析と創薬ツール
search_targets
- 名前またはタイプで生物学的ターゲットを検索します。
get_target_info
- ChEMBLターゲットIDで詳細なターゲット情報を取得します。
get_target_compounds
- 特定のターゲットに対してテストされた化合物を取得します。
search_by_uniprot
- UniProtアクセッションでChEMBLターゲットを検索します。
get_target_pathways
- ターゲットに関連する生物学的経路を取得します。
生物活性とアッセイデータツール
search_activities
- 生物活性測定値とアッセイ結果を検索します。
get_assay_info
- ChEMBLアッセイIDで詳細なアッセイ情報を取得します。
search_by_activity_type
- 活性タイプと値の範囲で生物活性データを検索します。
get_dose_response
- 用量反応データと活性プロファイルを取得します。
compare_activities
- 複数の化合物間で生物活性データを比較します。
医薬品開発と臨床データツール
search_drugs
- 承認済み医薬品と臨床開発候補を検索します。
get_drug_info
- 医薬品の開発ステータスと臨床試験情報を取得します。
search_drug_indications
- 治療適応症と疾患領域を検索します。
get_mechanism_of_action
- 作用機序とターゲット相互作用データを取得します。
化学特性分析ツール
analyze_admet_properties
- ADMET特性を分析します。
calculate_descriptors
- 分子記述子と物理化学的特性を計算します。
predict_solubility
- 水溶性と透過性特性を予測します。
assess_drug_likeness
- Lipinskiの五の法則を使用して医薬品適合性を評価します。
高度な検索と相互参照ツール
substructure_search
- 特定の部分構造を含む化合物を検索します。
batch_compound_lookup
- 複数のChEMBL IDを効率的に処理します。
get_external_references
- 外部データベースへのリンクを取得します。
advanced_search
- 複数の化学的および生物学的フィルターを使用した複雑なクエリを実行します。
変更履歴
v1.0.0 - 最初のリリース
- 包括的な化学知能: 創薬のための27の専用ツール
- 核心機能: 化合物検索、ターゲット分析、生物活性データ
- 高度な機能: 類似性検索、バッチ処理、相互参照
- リソーステンプレート: URIベースのChEMBLデータへの直接アクセス
- Dockerサポート: セキュリティベストプラクティスを備えたコンテナ化されたデプロイ
- 専門的なドキュメント: 完全なツールリファレンスと使用例
- Augmented Natureによる開発: 専門的な化学情報プラットフォーム
引用
このプロジェクトを研究や出版物で使用する場合は、以下のように引用してください:
@misc{chemblmcp2025,
author = {Moudather Chelbi},
title = {ChEMBL MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ChEMBL-MCP-Server},
note = {Accessed: 2025-06-29}
}