ChEMBL MCP Server

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データに直接アクセスし、シームレスな統合を実現
Related MCP server: Unofficial PubChem MCP Server
インストール
前提条件
Node.js (v16 以上)
npmまたはyarn
設定
リポジトリをクローンします。
git clone <repository-url>
cd chembl-server依存関係をインストールします:
npm installプロジェクトをビルドします。
npm run buildドッカー
Dockerイメージの構築
Docker イメージをビルドします。
docker build -t chembl-mcp-server .Dockerで実行する
コンテナを実行します。
docker run -i chembl-mcp-serverMCP クライアント統合の場合、コンテナーを直接使用できます。
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": ["run", "-i", "chembl-mcp-server"],
"env": {}
}
}
}使用法
MCPサーバーとして
サーバーは、stdio 経由で通信する MCP サーバーとして実行されるように設計されています。
npm startMCPクライアント構成への追加
サーバーを 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の詳細については、以下をご覧ください。
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 リクエストには以下が含まれます。
ユーザーエージェント:
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ライセンス
貢献
リポジトリをフォークする
機能ブランチを作成する
変更を加える
該当する場合はテストを追加する
プルリクエストを送信する
サポート
問題や質問については:
ChEMBL APIドキュメントを確認する
モデルコンテキストプロトコル仕様を確認する
リポジトリで問題を開く
拡張自然について
この包括的な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- 谷本類似度を使用して化学的に類似した化合物を検索する
ターゲット分析と創薬ツール
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 Rule of Five を用いて薬物類似性を評価する
高度な検索と相互参照ツール
substructure_search- 特定の部分構造を含む化合物を検索するbatch_compound_lookup- 複数の ChEMBL ID を効率的に処理するget_external_references- 外部データベースへのリンクを取得するadvanced_search- 複数の化学的および生物学的フィルターを使用した複雑なクエリ
変更履歴
v1.0.0 - 初回リリース
包括的な化学情報:創薬のための27の専門ツール
コア機能:化合物検索、ターゲット分析、生物活性データ
高度な機能: 類似検索、バッチ処理、相互参照
リソーステンプレート: ChEMBLデータへのURIベースの直接アクセス
Docker サポート: セキュリティのベストプラクティスに基づいたコンテナ化されたデプロイメント
プロフェッショナルドキュメント: 完全なツールリファレンスと例
Augmented Natureによって開発:プロフェッショナルな化学情報プラットフォーム
Available Tools
27 toolsadvanced_searchC
Complex queries with multiple chemical and biological filters
| Name | Required | Description | Default |
|---|---|---|---|
| min_mw | No | Minimum molecular weight (Da) | |
| max_mw | No | Maximum molecular weight (Da) | |
| min_logp | No | Minimum LogP value | |
| max_logp | No | Maximum LogP value | |
| max_hbd | No | Maximum hydrogen bond donors | |
| max_hba | No | Maximum hydrogen bond acceptors | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states it performs 'complex queries' without detailing behavioral traits. It doesn't mention whether this is a read-only operation, potential performance impacts, rate limits, authentication needs, or what happens with no results. For a tool with 7 parameters and no annotation coverage, this is a significant gap in disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads key information ('complex queries with multiple chemical and biological filters'). It wastes no words, though it could be slightly more structured by specifying the resource being queried. Every word earns its place in conveying the tool's general purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, no output schema, no annotations), the description is incomplete. It doesn't explain what the tool searches (compounds? drugs?), what it returns, or behavioral aspects like error handling. For a tool named 'advanced_search' among many search siblings, more context is needed to guide proper use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all parameters well-documented in the input schema (e.g., molecular weight, LogP, hydrogen bond properties). The description adds no additional parameter meaning beyond stating 'multiple chemical and biological filters', which is already evident from the schema. Baseline score of 3 is appropriate as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Complex queries with multiple chemical and biological filters' indicates a search function with specific filter types, but it's vague about what resource is being searched (compounds, drugs, targets?) and doesn't clearly distinguish from siblings like 'search_compounds' or 'search_targets'. It provides a general category but lacks specificity about the exact operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. The description mentions 'complex queries with multiple filters' but doesn't specify scenarios where this is preferred over simpler search tools like 'search_compounds' or how it differs from other filter-based tools like 'search_by_activity_type'. Usage context is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_admet_propertiesC
Analyze ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity)
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL compound ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool analyzes ADMET properties but doesn't reveal how (e.g., via prediction models, database lookups, or calculations), what the output includes (e.g., scores, classifications, or warnings), or any constraints (e.g., rate limits, data freshness, or accuracy). For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. It uses parentheses to clarify the ADMET acronym, making it clear and well-structured. Every part of the sentence earns its place, avoiding redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of ADMET analysis, no annotations, and no output schema, the description is incomplete. It doesn't explain what the analysis entails, the format or meaning of results, or any behavioral traits (e.g., whether it's a read-only lookup or a computational prediction). For a tool with no structured support, more context is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'chembl_id' documented as 'ChEMBL compound ID'. The description adds no additional parameter semantics beyond this, such as format examples or validation rules. With high schema coverage, the baseline is 3, as the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: analyzing ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity) for compounds. It specifies the action ('Analyze') and the resource ('ADMET properties'), making it distinct from siblings like 'predict_solubility' or 'assess_drug_likeness'. However, it doesn't explicitly differentiate from all siblings (e.g., 'calculate_descriptors' might overlap), so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a ChEMBL ID), compare it to siblings like 'assess_drug_likeness' or 'predict_solubility', or specify use cases (e.g., for drug development vs. research). This leaves the agent with minimal context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
assess_drug_likenessB
Assess drug-likeness using Lipinski Rule of Five and other metrics
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | No | ChEMBL compound ID | |
| smiles | No | SMILES string (alternative to ChEMBL ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the assessment method (Lipinski Rule of Five and other metrics) but doesn't specify what the tool returns (e.g., scores, pass/fail status), whether it's a read-only operation, or any limitations like input constraints or performance characteristics. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded with the core functionality and uses specific terminology ('Lipinski Rule of Five'), making it easy to understand quickly. Every part of the sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (assessing drug-likeness with multiple metrics), no annotations, and no output schema, the description is minimally adequate. It covers the what and how but lacks details on output format, behavioral traits, and usage context. This leaves the agent with gaps, especially since there's no output schema to clarify return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear documentation for 'chembl_id' and 'smiles' as alternative identifiers. The description doesn't add any parameter-specific information beyond what's in the schema, such as format details or usage examples. With high schema coverage, the baseline score of 3 is appropriate as the schema handles the parameter semantics adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Assess drug-likeness using Lipinski Rule of Five and other metrics'. It specifies the action (assess), the resource (drug-likeness), and the methodology (Lipinski Rule of Five and other metrics). However, it doesn't explicitly differentiate from sibling tools like 'analyze_admet_properties' or 'calculate_descriptors', which might also evaluate compound properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for application, or comparisons to sibling tools such as 'analyze_admet_properties' or 'predict_solubility', which could also assess compound characteristics. Usage is implied but not explicitly defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
batch_compound_lookupC
Process multiple ChEMBL IDs efficiently
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_ids | Yes | Array of ChEMBL compound IDs (1-50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions 'efficiently' which suggests performance characteristics but doesn't specify rate limits, authentication requirements, error handling, or what 'process' actually entails (e.g., returns compound data, validates IDs). The description is too vague about the actual behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words, with zero wasted language. It's front-loaded with the core purpose and includes a performance hint ('efficiently'). Every word earns its place in this minimal description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is inadequate. It doesn't explain what 'process' means (what data is returned), doesn't mention the 1-50 item limit that's only in the schema, and provides no context about authentication, rate limits, or error conditions that would be important for an AI agent to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the parameter 'chembl_ids' well-documented in the schema (array of strings, 1-50 items). The description adds minimal value beyond what's in the schema - it mentions 'multiple ChEMBL IDs' which aligns with the array parameter but doesn't provide additional context about ID format or processing specifics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('process multiple ChEMBL IDs') and resource ('ChEMBL IDs'), making the purpose understandable. However, it doesn't differentiate this batch lookup tool from its sibling 'get_compound_info' which appears to handle individual compound lookups, missing an opportunity for clear sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'get_compound_info' for single lookups or 'search_compounds' for broader searches. The word 'efficiently' hints at performance benefits for batch operations but doesn't explicitly state this is for multiple IDs versus single ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_descriptorsC
Calculate molecular descriptors and physicochemical properties
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | No | ChEMBL compound ID | |
| smiles | No | SMILES string (alternative to ChEMBL ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what the tool does ('calculate') but doesn't describe how it behaves—e.g., whether it's a read-only operation, if it requires specific inputs, what the output format is, or any limitations like rate limits or computational intensity. This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Calculate molecular descriptors and physicochemical properties.' It's front-loaded with the core action and resource, with no unnecessary words or redundancy. Every part of the sentence contributes directly to understanding the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a calculation tool with no annotations and no output schema, the description is incomplete. It doesn't explain what descriptors or properties are calculated, the format of results, or any behavioral traits like error handling or performance. For a tool that likely returns complex data, more context is needed to be fully helpful to an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with both parameters ('chembl_id' and 'smiles') clearly documented. The description doesn't add any parameter-specific information beyond what the schema provides, such as explaining the relationship between the two parameters or usage examples. Since schema coverage is high, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Calculate molecular descriptors and physicochemical properties' specifies both the verb ('calculate') and the resource ('molecular descriptors and physicochemical properties'). It distinguishes from some siblings like 'get_compound_info' or 'search_compounds' by focusing on calculation rather than retrieval or search, though it doesn't explicitly differentiate from similar tools like 'analyze_admet_properties' or 'predict_solubility'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or comparisons to sibling tools like 'analyze_admet_properties' or 'assess_drug_likeness', which might overlap in functionality. Without such guidance, users must infer usage from the tool name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_activitiesC
Compare bioactivity data across multiple compounds or targets
| Name | Required | Description | Default |
|---|---|---|---|
| molecule_chembl_ids | Yes | Array of ChEMBL compound IDs (2-10) | |
| target_chembl_id | No | ChEMBL target ID for comparison | |
| activity_type | No | Activity type for comparison |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description mentions comparing data but doesn't explain what the comparison entails (e.g., statistical analysis, side-by-side display, correlation metrics), what format the output takes, whether there are rate limits, or what happens with invalid inputs. For a tool with 3 parameters and no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. There's no wasted language or unnecessary elaboration. It's appropriately sized for what it communicates, though what it communicates is somewhat limited in scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what the comparison output looks like, how results are structured, what happens when target_chembl_id is omitted, or what 'activity_type' encompasses. For a comparison tool with multiple inputs and no structured output documentation, more context is needed about the tool's behavior and results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented in the schema. The description adds minimal value beyond the schema - it mentions 'compounds or targets' which aligns with the molecule_chembl_ids and target_chembl_id parameters, but doesn't provide additional context about parameter relationships or usage. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: comparing bioactivity data across compounds or targets. It specifies the action ('compare') and resource ('bioactivity data'), but doesn't explicitly differentiate from sibling tools like 'search_activities' or 'get_dose_response' which might involve similar concepts. The description is specific enough to understand what the tool does without being tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are multiple sibling tools that deal with activities, compounds, and targets (e.g., 'search_activities', 'get_target_compounds', 'search_by_activity_type'), but the description doesn't explain what makes 'compare_activities' distinct or when it's the appropriate choice. No context about prerequisites or exclusions is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_assay_infoC
Get detailed information for a specific assay by ChEMBL assay ID
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL assay ID (e.g., CHEMBL1217643) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, if it requires authentication, rate limits, error conditions, or what 'detailed information' includes (e.g., fields, format). The description is minimal beyond stating the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and includes an example ID, making it appropriately sized for a simple lookup tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, potential response formats, or error handling. Given the complexity of biological data and lack of structured context, more detail is needed to guide effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents the single parameter 'chembl_id'. The description adds no additional parameter semantics beyond implying it's for a 'specific assay', which is already clear from the schema. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed information for a specific assay'), specifying it's by 'ChEMBL assay ID'. It distinguishes from siblings like 'get_compound_info' or 'get_target_info' by focusing on assays, but doesn't explicitly contrast with similar tools like 'search_activities' or 'search_by_activity_type'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, when-not-to-use scenarios, or compare with sibling tools like 'search_activities' for broader queries or 'get_compound_info' for compound-related data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compound_infoC
Get detailed information for a specific compound by ChEMBL ID
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL compound ID (e.g., CHEMBL59) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral context. It implies a read operation ('Get') but doesn't disclose rate limits, authentication needs, error handling, or what 'detailed information' includes (e.g., properties, activities). This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part ('Get detailed information', 'specific compound', 'by ChEMBL ID') earns its place by clarifying scope and requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (single parameter, no output schema, no annotations), the description is incomplete. It lacks details on return values (what 'detailed information' entails), behavioral traits (e.g., read-only nature, potential errors), and usage context compared to siblings. This leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter semantics beyond what the schema provides. Since schema description coverage is 100% (the 'chembl_id' parameter is fully documented with examples), the baseline score of 3 applies. The description doesn't compensate with additional context like format constraints or usage tips.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and resource ('specific compound by ChEMBL ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'get_compound_structure' or 'batch_compound_lookup' that also retrieve compound-related information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a ChEMBL ID), exclusions (e.g., not for batch queries), or comparisons to siblings like 'batch_compound_lookup' for multiple compounds or 'get_compound_structure' for structural data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compound_structureB
Retrieve chemical structure information in various formats
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL compound ID | |
| format | No | Structure format (default: smiles) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states this is a retrieval operation but doesn't mention whether it requires authentication, has rate limits, returns partial data on errors, or provides any metadata alongside the structure. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that gets straight to the point. Every word earns its place: 'retrieve' (action), 'chemical structure information' (resource), 'various formats' (key capability). There's no fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with 2 parameters and 100% schema coverage, the description is minimally adequate. However, with no output schema and no annotations, it should ideally explain what the return value contains (e.g., just the structure string or additional metadata). The description mentions 'information' which is vague about the return format.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters (chembl_id and format with enum values). The description adds minimal value beyond what's in the schema - it mentions 'various formats' which aligns with the format parameter but doesn't provide additional context about format differences or use cases. Baseline 3 is appropriate when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('retrieve') and resource ('chemical structure information'), specifying the type of data returned. It distinguishes from siblings like 'get_compound_info' by focusing specifically on structure formats rather than general compound metadata. However, it doesn't explicitly contrast with format-specific siblings like 'search_by_inchi'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose this over 'get_compound_info' (which might include structure data) or format-specific search tools like 'search_by_inchi'. There's no context about prerequisites, limitations, or appropriate use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dose_responseC
Get dose-response data and activity profiles for compounds
| Name | Required | Description | Default |
|---|---|---|---|
| molecule_chembl_id | Yes | ChEMBL compound ID | |
| target_chembl_id | No | ChEMBL target ID (optional filter) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions retrieving data but doesn't specify if this is a read-only operation, requires authentication, has rate limits, or what the output format might be. For a tool with no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff or redundancy. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what 'dose-response data and activity profiles' entail, how results are returned, or any behavioral traits. For a tool with no structured support, the description should do more to compensate, but it remains minimal.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters (molecule_chembl_id and target_chembl_id). The description doesn't add any extra meaning beyond the schema, such as example values or usage tips, so it meets the baseline for adequate but unenhanced parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resources ('dose-response data and activity profiles for compounds'), making it understandable. However, it doesn't differentiate from siblings like 'search_activities' or 'compare_activities', which might offer overlapping functionality, so it doesn't reach a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools like 'search_activities' or 'get_assay_info', there's no indication of context, prerequisites, or exclusions, leaving the agent to guess based on the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_drug_infoB
Get drug development status and clinical trial information
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL compound ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states what information is retrieved but doesn't cover aspects like rate limits, authentication needs, error handling, or the format/scope of returned data (e.g., pagination, completeness). This leaves significant gaps for an AI agent to understand how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded and appropriately sized, making it easy for an AI agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (single parameter, no output schema, no annotations), the description is minimally adequate. It covers the core purpose but lacks details on usage context, behavioral traits, and output expectations, which could hinder effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'chembl_id' clearly documented as 'ChEMBL compound ID'. The description doesn't add any extra meaning beyond this, such as examples or constraints, but the schema provides adequate baseline information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('Get') and resources ('drug development status and clinical trial information'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_compound_info' or 'search_drugs', which might also provide related drug information, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'get_compound_info', 'search_drugs'), there is no indication of context, prerequisites, or exclusions to help an AI agent choose appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_external_referencesB
Get links to external databases (PubChem, DrugBank, PDB, etc.)
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL compound or target ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'Get links', implying a read-only operation, but does not disclose any behavioral traits such as rate limits, authentication needs, error handling, or what the output format might be (e.g., list of URLs, structured data). This leaves significant gaps in understanding how the tool behaves beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get links to external databases (PubChem, DrugBank, PDB, etc.)'. It is front-loaded with the core purpose and includes helpful examples without unnecessary details. Every word earns its place, making it highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavioral aspects, usage context, and output. Without annotations or an output schema, the description should do more to compensate, but it only covers the basic purpose, leaving gaps in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'chembl_id' fully documented as 'ChEMBL compound or target ID'. The description does not add any additional meaning beyond this, as it does not explain parameter usage, constraints, or examples. With high schema coverage, the baseline score of 3 is appropriate, as the description does not compensate but also does not detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get links to external databases (PubChem, DrugBank, PDB, etc.)'. It specifies the verb 'Get' and the resource 'links to external databases', with examples provided. However, it does not explicitly differentiate from sibling tools like 'get_compound_info' or 'get_target_info', which might also provide external references, so it lacks sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, such as needing a ChEMBL ID, or compare it to sibling tools like 'get_compound_info' that might offer similar functionality. There is no explicit when-to-use or when-not-to-use context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_mechanism_of_actionB
Get mechanism of action and target interaction data
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL compound ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('get'), implying a read-only operation, but doesn't clarify aspects like rate limits, authentication needs, error handling, or response format. For a tool with no annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy to understand at a glance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter with full schema coverage but no annotations or output schema, the description is minimally adequate. It clarifies the tool's purpose but lacks details on behavioral traits, usage context, and return values, which are important for a data retrieval tool in a complex domain like drug discovery.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the single parameter 'chembl_id' clearly documented. The description doesn't add any meaning beyond the schema (e.g., it doesn't explain what a ChEMBL ID is or provide usage examples), so it meets the baseline score of 3 where the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('get mechanism of action and target interaction data') and identifies the resource (compound data via ChEMBL ID). However, it doesn't explicitly differentiate from sibling tools like 'get_compound_info' or 'get_target_info' that might provide overlapping or related data, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'get_compound_info', 'get_target_info', 'search_activities'), there's no indication of context, prerequisites, or exclusions for selecting this specific tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_target_compoundsC
Get compounds tested against a specific target
| Name | Required | Description | Default |
|---|---|---|---|
| target_chembl_id | Yes | ChEMBL target ID | |
| activity_type | No | Activity type filter (e.g., IC50, Ki, Kd) | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get'), implying a read-only operation, but doesn't cover critical aspects like rate limits, authentication needs, pagination, error handling, or what the return format looks like (e.g., list of compounds with activity data). This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero waste—it directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no annotations and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., compound IDs, activity values, structures) or behavioral traits like performance or constraints. For a data retrieval tool with three parameters, this leaves too many gaps for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all three parameters (target_chembl_id, activity_type, limit). The description doesn't add any parameter-specific details beyond what's in the schema, such as examples for target_chembl_id format or how activity_type filtering works in practice. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('compounds tested against a specific target'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'search_activities' or 'search_by_activity_type' that might also retrieve compound-activity data, which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare it to siblings like 'search_activities' or 'search_compounds', leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_target_infoC
Get detailed information for a specific target by ChEMBL target ID
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | Yes | ChEMBL target ID (e.g., CHEMBL2095173) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states it 'gets detailed information,' implying a read-only operation, but doesn't specify what 'detailed information' includes (e.g., structure, properties, metadata), whether it requires authentication, rate limits, error handling, or response format. For a tool with no annotations, this lacks critical behavioral context beyond the basic read intent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose ('Get detailed information for a specific target') and specifies the key identifier ('by ChEMBL target ID'). There is no wasted text, repetition, or unnecessary elaboration, making it highly concise and well-structured for quick understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a retrieval operation with one parameter), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'detailed information' entails, potential response formats, error cases, or usage context relative to siblings. For a tool in a server with many related tools (e.g., 'get_assay_info', 'get_compound_info'), more guidance is needed to ensure the AI can use it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'chembl_id' fully documented in the schema. The description adds no additional parameter semantics beyond what the schema provides (e.g., it doesn't explain format constraints or provide examples beyond the schema's example). With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('detailed information for a specific target'), specifying it's for a target identified by ChEMBL target ID. It distinguishes from siblings like 'search_targets' (which likely searches rather than retrieves specific info) and 'get_target_compounds' (which focuses on compounds, not target details). However, it doesn't explicitly differentiate from 'get_assay_info' or 'get_compound_info', which might be similar retrieval operations for different entities, so it's not fully specific to sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid ChEMBL ID), exclusions (e.g., not for searching), or direct comparisons to siblings like 'search_targets' (for finding targets) or 'get_target_compounds' (for related data). Usage is implied by the name and description but not explicitly stated, leaving gaps for an AI agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_target_pathwaysC
Get biological pathways associated with a target
| Name | Required | Description | Default |
|---|---|---|---|
| target_chembl_id | Yes | ChEMBL target ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves pathways but doesn't describe what 'associated' means (e.g., direct vs. indirect), potential limitations (e.g., data availability), or output format (e.g., list of pathways with details). This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., pathway names, IDs, or full details), potential errors, or behavioral traits like rate limits. For a tool with no structured output information, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with the parameter 'target_chembl_id' clearly documented as a 'ChEMBL target ID'. The description doesn't add any additional meaning beyond this, such as format examples or validation rules, but the schema provides sufficient baseline information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Get') and resource ('biological pathways associated with a target'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_target_info' or 'get_target_compounds', which might also provide target-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a valid ChEMBL ID), exclusions, or compare it to sibling tools like 'search_targets' or 'get_target_info', leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
predict_solubilityC
Predict aqueous solubility and permeability properties
| Name | Required | Description | Default |
|---|---|---|---|
| chembl_id | No | ChEMBL compound ID | |
| smiles | No | SMILES string (alternative to ChEMBL ID) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the prediction function but doesn't cover important aspects like whether this is a read-only operation, if it requires authentication, rate limits, computational cost, or what the output format looks like. For a prediction tool with zero annotation coverage, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - a single sentence that directly states the tool's function. There's no wasted language or unnecessary elaboration, making it easy to parse and understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a prediction tool with no annotations and no output schema, the description is incomplete. It doesn't explain what specific solubility/permeability properties are predicted, the prediction methodology, confidence metrics, or return format. Given the complexity of chemical property prediction and lack of structured metadata, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't add any parameter information beyond what's already in the schema (which has 100% coverage). It doesn't explain the relationship between chembl_id and smiles parameters, or provide guidance on when to use one versus the other. With complete schema coverage, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: predicting aqueous solubility and permeability properties. It uses specific verbs ('predict') and identifies the resource (compound properties), but doesn't explicitly differentiate from sibling tools like 'analyze_admet_properties' or 'assess_drug_likeness' which might overlap in functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, appropriate contexts, or how it differs from related tools like 'analyze_admet_properties' or 'calculate_descriptors' that might handle similar predictions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_activitiesC
Search bioactivity measurements and assay results
| Name | Required | Description | Default |
|---|---|---|---|
| target_chembl_id | No | ChEMBL target ID filter | |
| assay_chembl_id | No | ChEMBL assay ID filter | |
| molecule_chembl_id | No | ChEMBL compound ID filter | |
| activity_type | No | Activity type (e.g., IC50, Ki, EC50) | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions searching but doesn't describe what the search returns (format, structure), whether it's paginated, performance characteristics, or any limitations beyond what parameters imply. For a search tool with 5 parameters and no output schema, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized for a search tool and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 5 parameters, no annotations, and no output schema, the description is inadequate. It doesn't explain what results look like, how they're structured, or any behavioral aspects. With rich sibling tools and complex search functionality, more context about the tool's behavior and output is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 5 parameters thoroughly. The description adds no additional parameter information beyond what's in the schema. The baseline of 3 is appropriate when the schema does all the parameter documentation work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as searching 'bioactivity measurements and assay results' with a specific verb ('search') and resource type. It distinguishes from obvious siblings like 'search_compounds' or 'search_targets' by focusing on activity data, but doesn't explicitly differentiate from 'search_by_activity_type' or 'compare_activities' which might overlap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. With multiple search-related siblings like 'search_by_activity_type', 'search_compounds', 'search_targets', and 'compare_activities', the description offers no context about appropriate use cases, prerequisites, or distinctions from similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_activity_typeB
Find bioactivity data by specific activity type and value range
| Name | Required | Description | Default |
|---|---|---|---|
| activity_type | Yes | Activity type (e.g., IC50, Ki, EC50, Kd) | |
| min_value | No | Minimum activity value | |
| max_value | No | Maximum activity value | |
| units | No | Units filter (e.g., nM, uM) | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions the tool 'finds' data, implying a read-only operation, but doesn't specify whether it's safe, if it has rate limits, authentication requirements, or what the output format looks like. For a search tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Find bioactivity data by specific activity type and value range.' It's front-loaded with the core purpose and contains no wasted words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (5 parameters, no output schema, no annotations), the description is minimally adequate. It states the purpose but lacks behavioral details, usage context, and output information. With no annotations to fill gaps, the description should do more to compensate, but it meets the bare minimum for a search tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with clear parameter descriptions (e.g., 'Activity type (e.g., IC50, Ki, EC50, Kd)'). The description adds minimal value beyond the schema, only implying that parameters filter by 'activity type and value range.' Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Find bioactivity data by specific activity type and value range.' It specifies the verb ('Find') and resource ('bioactivity data'), and includes the key constraints ('by specific activity type and value range'). However, it doesn't explicitly differentiate from sibling tools like 'search_activities' or 'compare_activities,' which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With multiple sibling search tools (e.g., 'search_activities,' 'search_compounds,' 'advanced_search'), there's no indication of what makes this tool unique or when it should be preferred. The description only states what it does, not when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_inchiC
Search for compounds by InChI key or InChI string
| Name | Required | Description | Default |
|---|---|---|---|
| inchi | Yes | InChI key or InChI string | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the search action but doesn't describe what happens if no matches are found, whether results are paginated, what format they return, or any rate limits or authentication requirements. For a search tool with zero annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose with zero wasted words. It's appropriately sized for a straightforward search operation and front-loads the essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description is incomplete. It doesn't explain what kind of results to expect, their format, or any behavioral aspects like error handling. Given the context of chemical compound searching which could return complex data, more guidance would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already fully documents both parameters. The description mentions 'InChI key or InChI string' which aligns with the schema's parameter description but doesn't add meaningful semantic context beyond what's already in the structured data.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'compounds', specifying the search criteria as 'by InChI key or InChI string'. This distinguishes it from siblings like 'search_compounds' or 'substructure_search' which likely use different search methods, though it doesn't explicitly name those alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_compounds', 'substructure_search', or 'batch_compound_lookup'. It doesn't mention prerequisites, exclusions, or specific scenarios where InChI-based searching is preferred over other methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_by_uniprotC
Find ChEMBL targets by UniProt accession
| Name | Required | Description | Default |
|---|---|---|---|
| uniprot_id | Yes | UniProt accession number | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the action 'Find' but doesn't describe what 'Find' entails—whether it's a read-only query, what the output format might be, if there are rate limits, or authentication needs. For a search tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Find ChEMBL targets by UniProt accession'. It's front-loaded with the core purpose and appropriately sized for a simple search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a search function with 2 parameters), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what 'ChEMBL targets' are, what data is returned, or behavioral aspects like error handling. For a tool in a scientific context with siblings like 'advanced_search', more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for both parameters ('uniprot_id' and 'limit'). The description adds no additional parameter semantics beyond what the schema provides, such as examples of UniProt IDs or context for the limit. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Find' and the resource 'ChEMBL targets', specifying the lookup method 'by UniProt accession'. It distinguishes from siblings like 'search_targets' or 'get_target_info' by focusing on UniProt-based searching. However, it doesn't explicitly contrast with 'search_by_inchi' or other search tools, keeping it at 4 rather than 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_targets', 'get_target_info', or 'advanced_search'. It doesn't mention prerequisites, exclusions, or specific scenarios where this tool is preferred, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_compoundsC
Search ChEMBL database for compounds by name, synonym, or identifier
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (compound name, synonym, or identifier) | |
| limit | No | Number of results to return (1-1000, default: 25) | |
| offset | No | Number of results to skip (default: 0) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the search scope but does not cover critical aspects like whether the search is case-sensitive, the format of returned results, error handling, or performance characteristics (e.g., rate limits). This leaves significant gaps for a tool with three parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core functionality without unnecessary details. Every word contributes to understanding the tool's purpose, making it appropriately concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is insufficient for a search tool with three parameters. It does not explain the return format, result ordering, or potential limitations, leaving the agent with incomplete information to effectively use the tool in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents the parameters. The description adds minimal value by implying the 'query' parameter accepts multiple input types, but it does not provide additional syntax, examples, or constraints beyond what the schema already specifies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Search') and resource ('ChEMBL database for compounds'), specifying the search scope ('by name, synonym, or identifier'). However, it does not explicitly differentiate from sibling tools like 'search_by_inchi' or 'search_similar_compounds', which may have overlapping purposes but different search methods.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as 'search_by_inchi' or 'search_similar_compounds'. It lacks context about specific use cases, exclusions, or prerequisites, leaving the agent to infer usage based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_drug_indicationsC
Search for therapeutic indications and disease areas
| Name | Required | Description | Default |
|---|---|---|---|
| indication | Yes | Disease or indication search term | |
| drug_type | No | Drug type filter (e.g., Small molecule, Antibody) | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'search' implies a read-only operation, the description doesn't address important behavioral aspects like authentication requirements, rate limits, pagination behavior, or what format the results will be returned in. It provides minimal context beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 7 words, front-loading the core functionality without any unnecessary elaboration. Every word earns its place by communicating the essential purpose, though this brevity comes at the cost of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 3 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't explain what kind of results to expect, how results are structured, whether there's pagination, or how the search functionality differs from the many other search tools in the sibling list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the input schema already documents all three parameters thoroughly. The description adds no additional parameter semantics beyond what's in the schema - it doesn't explain relationships between parameters, provide examples of effective search terms, or clarify how the parameters interact during search execution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as searching for therapeutic indications and disease areas, which is a specific verb+resource combination. However, it doesn't differentiate itself from sibling tools like 'search_drugs', 'search_compounds', or 'search_targets' which might overlap in pharmaceutical search functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling search tools available (search_drugs, search_compounds, search_targets, etc.), there's no indication of what makes this tool distinct or when it should be preferred over other search options.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_drugsC
Search for approved drugs and clinical candidates
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Drug name or search query | |
| development_phase | No | Development phase filter (e.g., Approved, Phase III) | |
| therapeutic_area | No | Therapeutic area filter | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states what the tool does but doesn't describe how it behaves—no information about response format, pagination, rate limits, authentication needs, or error handling. This is inadequate for a search tool with multiple parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a search tool, with every word earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what the search returns, how results are structured, or any behavioral traits, leaving significant gaps for the agent to navigate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds no additional parameter semantics beyond implying a search scope ('approved drugs and clinical candidates'), which aligns with but doesn't enhance the schema. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('search') and resource ('approved drugs and clinical candidates'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'search_compounds' or 'search_drug_indications' that might overlap in scope, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_compounds' or 'advanced_search'. It lacks context about use cases, prerequisites, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_similar_compoundsB
Find chemically similar compounds using Tanimoto similarity
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | SMILES string of the query molecule | |
| similarity | No | Similarity threshold (0-1, default: 0.7) | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It mentions the similarity metric (Tanimoto) but doesn't disclose performance characteristics, data sources, rate limits, error conditions, or output format. For a search tool with no annotation coverage, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core purpose and includes the key technical detail (Tanimoto similarity) that defines the tool's approach.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description is insufficiently complete. It doesn't explain what the search returns (structures, IDs, properties?), how results are ordered, whether there's pagination, or what data sources are used. The agent would need to guess about the tool's behavior and outputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description adds no additional parameter information beyond what's in the schema (e.g., doesn't explain SMILES format details or similarity calculation nuances). Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Find chemically similar compounds') and method ('using Tanimoto similarity'), distinguishing it from siblings like 'search_compounds' (general search) or 'substructure_search' (structural matching). It precisely communicates the tool's purpose with technical specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'search_compounds' or 'substructure_search'. It doesn't mention prerequisites, typical use cases, or limitations, leaving the agent to infer usage from the name and parameters alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_targetsC
Search for biological targets by name or type
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Target name or search query | |
| target_type | No | Target type filter (e.g., SINGLE PROTEIN, PROTEIN COMPLEX) | |
| organism | No | Organism filter | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks behavioral details. It doesn't disclose whether this is a read-only operation, what the output format might be (e.g., list of targets with fields), any rate limits, authentication needs, or how results are sorted. 'Search' implies querying, but specifics are missing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy for an agent to parse quickly. Every part of the sentence contributes to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with 4 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what 'biological targets' entail, how results are returned, or any limitations (e.g., pagination, default behaviors). For a tool in a scientific context with many siblings, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all parameters. The description adds minimal value beyond the schema—it mentions 'name or type' which aligns with 'query' and 'target_type' parameters but doesn't provide additional context like example queries or how filters combine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Search for') and resource ('biological targets'), with specific search criteria ('by name or type'). It distinguishes from most siblings like 'search_compounds' or 'search_drugs' by focusing on targets, though it doesn't explicitly differentiate from 'get_target_info' which might retrieve rather than search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives is provided. It doesn't mention siblings like 'advanced_search' (which might offer more filters) or 'search_by_uniprot' (for specific identifier searches), leaving the agent to infer usage context from tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
substructure_searchC
Find compounds containing specific substructures
| Name | Required | Description | Default |
|---|---|---|---|
| smiles | Yes | SMILES string of the substructure query | |
| limit | No | Number of results to return (1-1000, default: 25) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'finds' compounds, implying a read-only operation, but doesn't mention any behavioral traits like performance characteristics, error handling, or what happens if no matches are found. This is a significant gap for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any fluff. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., compound IDs, structures, or metadata), how results are formatted, or any limitations. For a search tool with no structured output, this leaves critical gaps for an agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents both parameters ('smiles' and 'limit'). The description adds no additional meaning beyond what's in the schema, such as explaining what a 'substructure' means in this context or providing examples. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Find') and resource ('compounds containing specific substructures'), making it immediately understandable. However, it doesn't explicitly differentiate from sibling tools like 'search_compounds' or 'search_similar_compounds', which might have overlapping functionality, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools available (e.g., 'search_compounds', 'search_similar_compounds'), there's no indication of when this substructure-specific search is preferred, leaving the agent to guess based on context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
27 tool updates
- First observed
advanced_search - First observed
analyze_admet_properties - First observed
assess_drug_likeness - First observed
batch_compound_lookup - First observed
calculate_descriptors - First observed
compare_activities - First observed
get_assay_info - First observed
get_compound_info - First observed
get_compound_structure - First observed
get_dose_response - First observed
get_drug_info - First observed
get_external_references - First observed
get_mechanism_of_action - First observed
get_target_compounds - First observed
get_target_info - First observed
get_target_pathways - First observed
predict_solubility - First observed
search_activities - First observed
search_by_activity_type - First observed
search_by_inchi - First observed
search_by_uniprot - First observed
search_compounds - First observed
search_drug_indications - First observed
search_drugs - First observed
search_similar_compounds - First observed
search_targets - First observed
substructure_search
TDQS
Most tools have distinct purposes, such as 'get_compound_info' for compound details versus 'calculate_descriptors' for molecular properties, but some overlap exists, like 'search_compounds' and 'search_by_inchi', which could cause confusion as both search for compounds using different identifiers. Descriptions help clarify, but the overlap in search functionality is noticeable.
All tool names follow a consistent verb_noun pattern using snake_case, such as 'get_compound_info', 'search_targets', and 'predict_solubility'. This uniformity makes the tool set predictable and easy to navigate, with no deviations in naming conventions.
With 27 tools, the count is borderline high for a single server, potentially overwhelming for agents, but it aligns with the comprehensive scope of a chemical and biological database like ChEMBL. It feels heavy but not extreme, as the domain justifies many specialized operations.
The tool set provides complete coverage for the ChEMBL domain, including compound and target information retrieval, search capabilities, ADMET analysis, and drug development data. There are no obvious gaps; agents can perform full workflows from discovery to analysis without dead ends.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
ChEMBL MCP — drug discovery database (EBI).
Negative results intelligence for drug discovery — query measured failures via MCP.
Auditable MCP server for PubMed, Europe PMC, ClinicalTrials.gov, and bioRxiv/medRxiv queries
Biomedical data: compounds, drug info, and molecular targets
Related MCP Servers
- FlicenseCqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server providing advanced access to the UniProt protein database.2620-
- FlicenseBqualityFmaintenanceA comprehensive Model Context Protocol server providing access to over 110 million chemical compounds with extensive molecular properties, bioassay data, and chemical informatics tools from the PubChem database.3047-
- FlicenseAqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server for accessing the SureChEMBL chemical patent database.157-
- FlicenseNot gradedqualityDmaintenanceA FastMCP wrapper server that provides API access to the ChEMBL database, enabling users to query drug discovery data such as activities, assays, targets, and molecules.2-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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