ChEMBL MCP Server

ChEMBL MCP 服务器
全面的模型上下文协议 (MCP) 服务器,提供对 ChEMBL 化学数据库的高级访问。该服务器提供 22 种专用工具,使 AI 助手和 MCP 客户端能够直接通过 ChEMBL 的 REST API 进行复杂的药物发现研究、化学信息学分析和生物活性研究。
由增强自然开发
特征
核心化学品搜索与检索(5 种工具)
化合物搜索:按化合物名称、同义词或标识符搜索 ChEMBL 数据库
详细化合物信息:检索全面的化合物信息,包括结构、属性和注释
基于 InChI 的搜索:通过 InChI 键或 InChI 字符串查找化合物
结构检索:获取各种格式的化学结构信息(SMILES、InChI、MOL、SDF)
相似性搜索:使用 Tanimoto 相似性查找化学相似的化合物
目标分析与药物发现(5 种工具)
目标搜索:按名称或类型搜索生物目标
详细目标信息:检索全面的目标信息和注释
目标化合物:针对特定目标测试化合物
UniProt 集成:通过 UniProt 登录号查找 ChEMBL 目标
靶向通路:相关生物通路和机制
生物活性和分析数据(5 种工具)
活性搜索:搜索生物活性测量和分析结果
详细检测信息:获取全面的检测方案和条件
活性类型搜索:按特定活性类型和值范围查找生物活性数据
剂量反应分析:获取剂量反应数据和活性概况
活性比较:比较多个化合物或靶标的生物活性数据
药物开发与临床数据(4 种工具)
药物搜索:搜索已批准的药物和临床候选药物
药物研发现状:获取药物研发现状和临床试验信息
治疗适应症:搜索治疗适应症和疾病领域
作用机制:获取作用机制和靶向相互作用数据
化学性质分析(4种工具)
ADMET分析:分析ADMET特性(吸收、分布、代谢、排泄、毒性)
分子描述符:计算分子描述符和物理化学性质
溶解度预测:预测水溶解度和渗透性
药物相似性评估:使用 Lipinski 五规则和其他指标评估药物相似性
高级搜索和交叉引用(4 种工具)
子结构搜索:查找含有特定子结构的化合物
批处理:高效处理多个 ChEMBL ID
外部参考:获取外部数据库的链接(PubChem、DrugBank、PDB 等)
高级搜索:具有多个化学和生物过滤器的复杂查询
资源模板
通过 URI 模板直接访问 ChEMBL 数据,实现无缝集成
Related MCP server: Unofficial PubChem MCP Server
安装
先决条件
Node.js(v16 或更高版本)
npm 或 yarn
设置
克隆存储库:
git clone <repository-url>
cd chembl-server安装依赖项:
npm install构建项目:
npm run buildDocker
构建Docker镜像
构建 Docker 镜像:
docker build -t chembl-mcp-server .使用 Docker 运行
运行容器:
docker run -i chembl-mcp-server对于 MCP 客户端集成,您可以直接使用容器:
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": ["run", "-i", "chembl-mcp-server"],
"env": {}
}
}
}用法
作为 MCP 服务器
该服务器设计为作为通过 stdio 进行通信的 MCP 服务器运行:
npm start添加至 MCP 客户端配置
将服务器添加到您的 MCP 客户端配置(例如,Claude Desktop):
{
"mcpServers": {
"chembl": {
"command": "node",
"args": ["/path/to/chembl-server/build/index.js"],
"env": {}
}
}
}可用工具
1. 搜索化合物
按名称、同义词或标识符搜索 ChEMBL 数据库中的化合物。
参数:
query(必需):搜索查询(化合物名称、同义词或标识符)limit(可选):返回的结果数(1-1000,默认值:25)offset(可选):要跳过的结果数(默认值:0)
例子:
{
"query": "aspirin",
"limit": 10
}2. 获取化合物信息
通过 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秒
基本网址:
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 MCP 服务器由**Augmented Nature**开发,该公司是人工智能生物信息学和计算化学解决方案领域的领先创新者。Augmented Nature 专注于开发先进的工具,弥合人工智能与化学研究之间的差距,使研究人员能够从化学和生物数据中获得更深入的洞察。
完整工具参考
核心化学搜索和检索工具
search_compounds- 按名称、同义词或标识符搜索 ChEMBL 数据库get_compound_info- 根据 ChEMBL ID 获取详细的化合物信息search_by_inchi- 通过 InChI 键或 InChI 字符串查找化合物get_compound_structure- 检索各种格式的化学结构search_similar_compounds- 使用 Tanimoto 相似性查找化学相似的化合物
目标分析和药物发现工具
search_targets- 按名称或类型搜索生物目标get_target_info- 根据 ChEMBL 目标 ID 获取详细的目标信息get_target_compounds- 获取针对特定目标测试的化合物search_by_uniprot- 通过 UniProt 接入查找 ChEMBL 目标get_target_pathways- 获取与目标相关的生物途径
生物活性和分析数据工具
search_activities- 搜索生物活性测量和分析结果get_assay_info- 根据 ChEMBL 检测 ID 获取详细的检测信息search_by_activity_type- 根据活性类型和值范围查找生物活性数据get_dose_response- 获取剂量反应数据和活动概况compare_activities- 比较多种化合物的生物活性数据
药物开发和临床数据工具
search_drugs- 搜索已批准的药物和临床候选药物get_drug_info- 获取药物开发状态和临床试验信息search_drug_indications- 搜索治疗适应症和疾病领域get_mechanism_of_action- 获取作用机制和目标相互作用数据
化学性质分析工具
analyze_admet_properties- 分析 ADMET 属性calculate_descriptors- 计算分子描述符和物理化学性质predict_solubility- 预测水溶性和渗透性assess_drug_likeness- 使用 Lipinski 五规则评估药物相似性
高级搜索和交叉引用工具
substructure_search- 查找含有特定子结构的化合物batch_compound_lookup- 高效处理多个 ChEMBL IDget_external_references- 获取外部数据库的链接advanced_search- 具有多个化学和生物过滤器的复杂查询
变更日志
v1.0.0 - 初始版本
综合化学情报:27 种药物研发专用工具
核心功能:化合物搜索、靶标分析、生物活性数据
高级功能:相似性搜索、批处理、交叉引用
资源模板:基于 URI 直接访问 ChEMBL 数据
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