Skip to main content
Glama

ChEMBL MCP サーバー ロゴ

ChEMBL MCP サーバー

ChEMBL化学データベースへの高度なアクセスを提供する包括的なモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、AIアシスタントとMCPクライアントがChEMBLのREST APIを介して高度な創薬研究、化学情報科学分析、生物活性調査を直接実行できるようにする22の専用ツールを提供します。

Augmented Nature

特徴

コア化学物質の検索と取得(5つのツール)

  • 化合物検索:化合物名、同義語、または識別子でChEMBLデータベースを検索します

  • 詳細な化合物情報: 構造、特性、注釈を含む包括的な化合物情報を取得します。

  • InChIベースの検索: InChIキーまたはInChI文字列で化合物を検索

  • 構造検索: さまざまな形式 (SMILES、InChI、MOL、SDF) で化学構造情報を取得します。

  • 類似検索:谷本類似度を使用して化学的に類似した化合物を検索します

ターゲット分析と創薬(5つのツール)

  • ターゲット検索: 名前またはタイプで生物学的ターゲットを検索します

  • 詳細なターゲット情報: 包括的なターゲット情報と注釈を取得します

  • ターゲット化合物: 特定のターゲットに対して化合物をテストする

  • UniProt 統合: UniProt アクセッション番号で ChEMBL ターゲットを検索

  • ターゲットパスウェイ:関連する生物学的パスウェイとメカニズム

生体活性とアッセイデータ(5つのツール)

  • 活性検索:生物活性の測定値とアッセイ結果を検索

  • 詳細なアッセイ情報: 包括的なアッセイプロトコルと条件を入手

  • アクティビティタイプ検索: 特定のアクティビティタイプと値の範囲で生物活性データを検索します

  • 用量反応分析:用量反応データと活動プロファイルを取得します

  • 活性比較: 複数の化合物またはターゲット間の生物活性データを比較します

医薬品開発と臨床データ(4つのツール)

  • 医薬品検索:承認薬および臨床候補薬の検索

  • 医薬品開発状況:医薬品の開発状況と臨床試験情報を入手します

  • 治療適応症:治療適応症と疾患領域の検索

  • 作用機序:作用機序と標的相互作用データを取得します

化学特性分析(4つのツール)

  • ADMET分析:ADMET特性(吸収、分布、代謝、排泄、毒性)を分析

  • 分子記述子:分子記述子と物理化学的性質を計算する

  • 溶解度予測:水溶性と透過性の特性を予測します

  • 薬物類似性評価:リピンスキーの5つの法則やその他の指標を使用して薬物類似性を評価する

高度な検索と相互参照(4つのツール)

  • 部分構造検索: 特定の部分構造を含む化合物を検索

  • バッチ処理: 複数の ChEMBL ID を効率的に処理します

  • 外部参照: 外部データベース (PubChem、DrugBank、PDB など) へのリンクを取得します。

  • 高度な検索: 複数の化学的および生物学的フィルターを使用した複雑なクエリ

リソーステンプレート

  • URIテンプレートを介してChEMBLデータに直接アクセスし、シームレスな統合を実現

インストール

前提条件

  • Node.js (v16 以上)

  • npmまたはyarn

設定

  1. リポジトリをクローンします。

git clone <repository-url> cd chembl-server
  1. 依存関係をインストールします:

npm install
  1. プロジェクトをビルドします。

npm run build

ドッカー

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サーバーとして

サーバーは、stdio 経由で通信する MCP サーバーとして実行されるように設計されています。

npm start

MCPクライアント構成への追加

サーバーを MCP クライアント構成に追加します (例: Claude Desktop)。

{ "mcpServers": { "chembl": { "command": "node", "args": ["/path/to/chembl-server/build/index.js"], "env": {} } } }

利用可能なツール

1. 検索化合物

名前、同義語、または識別子で化合物を 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. 検索対象

名前またはタイプで生物学的ターゲットを検索します。

パラメータ:

  • query (必須): ターゲット名または検索クエリ

  • target_type (オプション): ターゲットタイプフィルター (例: 単一タンパク質、タンパク質複合体)

  • organism (オプション):生物フィルター

  • limit (オプション): 返される結果の数 (1-1000、デフォルト: 25)

例:

{ "query": "dopamine receptor", "organism": "Homo sapiens", "limit": 5 }

4. 検索アクティビティ

生物活性の測定値とアッセイ結果を検索します。

パラメータ:

  • 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. バッチ複合ルックアップ

複数の 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 call { "tool": "search_compounds", "arguments": { "query": "aspirin", "limit": 5 } }

詳細な化合物情報を取得する

アスピリンに関する包括的な情報を取得します。

// Tool call { "tool": "get_compound_info", "arguments": { "chembl_id": "CHEMBL25" } }

ターゲットベースの検索

ドーパミン受容体に対してテストされた化合物を検索します。

// Tool call { "tool": "search_targets", "arguments": { "query": "dopamine receptor D2", "organism": "Homo sapiens" } }

生体活性分析

特定のターゲットに対する IC50 データを検索します。

// Tool call { "tool": "search_activities", "arguments": { "target_chembl_id": "CHEMBL2095173", "activity_type": "IC50", "limit": 100 } }

バッチ処理

複数の化合物を効率的に処理します。

// Tool call { "tool": "batch_compound_lookup", "arguments": { "chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642", "CHEMBL1201585"] } }

API統合

このサーバーはChEMBL REST APIと統合されており、プログラムによる化学データへのアクセスを可能にします。ChEMBLの詳細については、以下をご覧ください。

すべての API リクエストには以下が含まれます。

  • ユーザーエージェント: 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 # Main server implementation ├── build/ # Compiled JavaScript output ├── package.json # Node.js dependencies and scripts ├── tsconfig.json # TypeScript configuration └── README.md # This file

依存関係

  • @modelcontextprotocol/sdk : サーバー実装用のコア MCP SDK

  • axios : ChEMBL APIリクエスト用のHTTPクライアント

  • typescript : 開発用の TypeScript コンパイラ

ライセンス

MITライセンス

貢献

  1. リポジトリをフォークする

  2. 機能ブランチを作成する

  3. 変更を加える

  4. 該当する場合はテストを追加する

  5. プルリクエストを送信する

サポート

問題や質問については:

  1. ChEMBL APIドキュメントを確認する

  2. モデルコンテキストプロトコル仕様を確認する

  3. リポジトリで問題を開く

拡張自然について

この包括的なChEMBL MCPサーバーは、AIを活用したバイオインフォマティクスおよび計算化学ソリューションのリーディングイノベーターである**Augmented Nature**によって開発されました。Augmented Natureは、人工知能と化学研究のギャップを埋める高度なツールの開発を専門としており、研究者が化学および生物学データからより深い洞察を引き出すことを可能にします。

完全なツールリファレンス

コア化学物質検索・取得ツール

  1. search_compounds - 名前、同義語、または識別子で ChEMBL データベースを検索します

  2. get_compound_info - ChEMBL IDで詳細な化合物情報を取得します

  3. search_by_inchi - InChIキーまたはInChI文字列で化合物を検索

  4. get_compound_structure - さまざまな形式で化学構造を取得します

  5. search_similar_compounds - 谷本類似度を使用して化学的に類似した化合物を検索する

ターゲット分析と創薬ツール

  1. search_targets - 名前またはタイプで生物学的ターゲットを検索します

  2. get_target_info - ChEMBLターゲットIDで詳細なターゲット情報を取得する

  3. get_target_compounds - 特定のターゲットに対してテストされた化合物を取得する

  4. search_by_uniprot - UniProt アクセッション番号で ChEMBL ターゲットを検索

  5. get_target_pathways - ターゲットに関連付けられた生物学的経路を取得する

生体活性およびアッセイデータツール

  1. search_activities - 生物活性の測定値とアッセイ結果を検索

  2. get_assay_info - ChEMBL アッセイ ID で詳細なアッセイ情報を取得します

  3. search_by_activity_type - アクティビティの種類と値の範囲で生物活性データを検索します

  4. get_dose_response - 用量反応データと活動プロファイルを取得する

  5. compare_activities - 複数の化合物の生物活性データを比較する

医薬品開発と臨床データツール

  1. search_drugs - 承認された医薬品と臨床候補薬を検索

  2. get_drug_info - 医薬品の開発状況と臨床試験情報を取得する

  3. search_drug_indications - 治療適応症と疾患領域の検索

  4. get_mechanism_of_action - 作用機序とターゲット相互作用データを取得する

化学特性分析ツール

  1. analyze_admet_properties - ADMET プロパティを分析する

  2. calculate_descriptors - 分子記述子と物理化学的性質を計算する

  3. predict_solubility - 水溶解度と透過性特性を予測する

  4. assess_drug_likeness - Lipinski Rule of Five を用いて薬物類似性を評価する

高度な検索と相互参照ツール

  1. substructure_search - 特定の部分構造を含む化合物を検索する

  2. batch_compound_lookup - 複数の ChEMBL ID を効率的に処理する

  3. get_external_references - 外部データベースへのリンクを取得する

  4. advanced_search - 複数の化学的および生物学的フィルターを使用した複雑なクエリ

変更履歴

v1.0.0 - 初回リリース

  • 包括的な化学情報:創薬のための27の専門ツール

  • コア機能:化合物検索、ターゲット分析、生物活性データ

  • 高度な機能: 類似検索、バッチ処理、相互参照

  • リソーステンプレート: ChEMBLデータへのURIベースの直接アクセス

  • Docker サポート: セキュリティのベストプラクティスに基づいたコンテナ化されたデプロイメント

  • プロフェッショナルドキュメント: 完全なツールリファレンスと例

  • Augmented Natureによって開発:プロフェッショナルな化学情報プラットフォーム

Related MCP Servers

View all related MCP servers

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Augmented-Nature/ChEMBL-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server