ChEMBL MCP Server
Used for HTTP requests to the ChEMBL REST API, enabling data retrieval for compound information, target analysis, bioactivity data, and other chemical research capabilities.
Supports containerized deployment of the ChEMBL MCP server, allowing users to run the server in an isolated environment with all dependencies.
Runtime environment for the ChEMBL MCP server, used to execute the server application and process requests.
Programming language used for development of the ChEMBL MCP server, providing type safety and modern language features.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ChEMBL MCP Serversearch for compounds similar to aspirin"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.

Unofficial ChEMBL MCP Server
A comprehensive Model Context Protocol (MCP) server providing advanced access to the ChEMBL chemical database. This server offers 22 specialized tools enabling AI assistants and MCP clients to perform sophisticated drug discovery research, chemical informatics analysis, and bioactivity investigations directly through ChEMBL's REST API.
Developed by Augmented Nature
Features
Core Chemical Search & Retrieval (5 tools)
Compound Search: Search the ChEMBL database by compound name, synonym, or identifier
Detailed Compound Info: Retrieve comprehensive compound information including structure, properties, and annotations
InChI-based Search: Find compounds by InChI key or InChI string
Structure Retrieval: Get chemical structure information in various formats (SMILES, InChI, MOL, SDF)
Similarity Search: Find chemically similar compounds using Tanimoto similarity
Target Analysis & Drug Discovery (5 tools)
Target Search: Search for biological targets by name or type
Detailed Target Info: Retrieve comprehensive target information and annotations
Target Compounds: Get compounds tested against specific targets
UniProt Integration: Find ChEMBL targets by UniProt accession numbers
Target Pathways: Associated biological pathways and mechanisms
Bioactivity & Assay Data (5 tools)
Activity Search: Search bioactivity measurements and assay results
Detailed Assay Info: Get comprehensive assay protocols and conditions
Activity Type Search: Find bioactivity data by specific activity type and value range
Dose-Response Analysis: Get dose-response data and activity profiles
Activity Comparison: Compare bioactivity data across multiple compounds or targets
Drug Development & Clinical Data (4 tools)
Drug Search: Search for approved drugs and clinical candidates
Drug Development Status: Get drug development status and clinical trial information
Therapeutic Indications: Search for therapeutic indications and disease areas
Mechanism of Action: Get mechanism of action and target interaction data
Chemical Property Analysis (4 tools)
ADMET Analysis: Analyze ADMET properties (Absorption, Distribution, Metabolism, Excretion, Toxicity)
Molecular Descriptors: Calculate molecular descriptors and physicochemical properties
Solubility Prediction: Predict aqueous solubility and permeability properties
Drug-Likeness Assessment: Assess drug-likeness using Lipinski Rule of Five and other metrics
Advanced Search & Cross-References (4 tools)
Substructure Search: Find compounds containing specific substructures
Batch Processing: Process multiple ChEMBL IDs efficiently
External References: Get links to external databases (PubChem, DrugBank, PDB, etc.)
Advanced Search: Complex queries with multiple chemical and biological filters
Resource Templates
Direct access to ChEMBL data via URI templates for seamless integration
Related MCP server: Unofficial PubChem MCP Server
Installation
Prerequisites
Node.js (v16 or higher)
npm or yarn
Setup
Clone the repository:
git clone <repository-url>
cd chembl-serverInstall dependencies:
npm installBuild the project:
npm run buildDocker
Building the Docker Image
Build the Docker image:
docker build -t chembl-mcp-server .Running with Docker
Run the container:
docker run -i chembl-mcp-serverFor MCP client integration, you can use the container directly:
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": ["run", "-i", "chembl-mcp-server"],
"env": {}
}
}
}Usage
As an MCP Server
The server is designed to run as an MCP server that communicates via stdio:
npm startAdding to MCP Client Configuration
Add the server to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"chembl": {
"command": "node",
"args": ["/path/to/chembl-server/build/index.js"],
"env": {}
}
}
}Available Tools
1. search_compounds
Search the ChEMBL database for compounds by name, synonym, or identifier.
Parameters:
query(required): Search query (compound name, synonym, or identifier)limit(optional): Number of results to return (1-1000, default: 25)offset(optional): Number of results to skip (default: 0)
Example:
{
"query": "aspirin",
"limit": 10
}2. get_compound_info
Get detailed information for a specific compound by ChEMBL ID.
Parameters:
chembl_id(required): ChEMBL compound ID (e.g., CHEMBL25)
Example:
{
"chembl_id": "CHEMBL25"
}3. search_targets
Search for biological targets by name or type.
Parameters:
query(required): Target name or search querytarget_type(optional): Target type filter (e.g., SINGLE PROTEIN, PROTEIN COMPLEX)organism(optional): Organism filterlimit(optional): Number of results to return (1-1000, default: 25)
Example:
{
"query": "dopamine receptor",
"organism": "Homo sapiens",
"limit": 5
}4. search_activities
Search bioactivity measurements and assay results.
Parameters:
target_chembl_id(optional): ChEMBL target ID filterassay_chembl_id(optional): ChEMBL assay ID filtermolecule_chembl_id(optional): ChEMBL compound ID filteractivity_type(optional): Activity type (e.g., IC50, Ki, EC50)limit(optional): Number of results to return (1-1000, default: 25)
Example:
{
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 50
}5. batch_compound_lookup
Process multiple ChEMBL IDs efficiently.
Parameters:
chembl_ids(required): Array of ChEMBL compound IDs (1-50)
Example:
{
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642"]
}Resource Templates
The server provides direct access to ChEMBL data through URI templates:
1. Compound Information
URI:
chembl://compound/{chembl_id}Description: Complete compound information for a ChEMBL ID
Example:
chembl://compound/CHEMBL25
2. Target Information
URI:
chembl://target/{chembl_id}Description: Complete target information for a ChEMBL target ID
Example:
chembl://target/CHEMBL2095173
3. Assay Information
URI:
chembl://assay/{chembl_id}Description: Complete assay information for a ChEMBL assay ID
Example:
chembl://assay/CHEMBL1217643
4. Activity Information
URI:
chembl://activity/{activity_id}Description: Bioactivity measurement data for an activity ID
Example:
chembl://activity/12345678
5. Search Results
URI:
chembl://search/{query}Description: Search results for compounds matching the query
Example:
chembl://search/aspirin
Examples
Basic Compound Search
Search for aspirin-related compounds:
// Tool call
{
"tool": "search_compounds",
"arguments": {
"query": "aspirin",
"limit": 5
}
}Get Detailed Compound Information
Retrieve comprehensive information about aspirin:
// Tool call
{
"tool": "get_compound_info",
"arguments": {
"chembl_id": "CHEMBL25"
}
}Target-based Search
Find compounds tested against dopamine receptors:
// Tool call
{
"tool": "search_targets",
"arguments": {
"query": "dopamine receptor D2",
"organism": "Homo sapiens"
}
}Bioactivity Analysis
Search for IC50 data against a specific target:
// Tool call
{
"tool": "search_activities",
"arguments": {
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 100
}
}Batch Processing
Process multiple compounds efficiently:
// Tool call
{
"tool": "batch_compound_lookup",
"arguments": {
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642", "CHEMBL1201585"]
}
}API Integration
This server integrates with the ChEMBL REST API for programmatic access to chemical data. For more information about ChEMBL:
ChEMBL Website: https://www.ebi.ac.uk/chembl/
API Documentation: https://chembl.gitbook.io/chembl-interface-documentation/web-services
REST API Guide: https://www.ebi.ac.uk/chembl/api/data/docs
All API requests include:
User-Agent:
ChEMBL-MCP-Server/1.0.0Timeout: 30 seconds
Base URL:
https://www.ebi.ac.uk/chembl/api/data
Error Handling
The server includes comprehensive error handling:
Input Validation: All parameters are validated using type guards
API Errors: Network and API errors are caught and returned with descriptive messages
Timeout Handling: Requests timeout after 30 seconds
Graceful Degradation: Partial failures are handled appropriately
Development
Build the Project
npm run buildDevelopment Mode
Run TypeScript compiler in watch mode:
npm run devProject Structure
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 fileDependencies
@modelcontextprotocol/sdk: Core MCP SDK for server implementation
axios: HTTP client for ChEMBL API requests
typescript: TypeScript compiler for development
License
MIT License
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
Support
For issues and questions:
Check the ChEMBL API documentation
Review the Model Context Protocol specification
Open an issue on the repository
About Augmented Nature
This comprehensive ChEMBL MCP Server is developed by Augmented Nature, a leading innovator in AI-powered bioinformatics and computational chemistry solutions. Augmented Nature specializes in creating advanced tools that bridge the gap between artificial intelligence and chemical research, enabling researchers to unlock deeper insights from chemical and biological data.
Complete Tool Reference
Core Chemical Search & Retrieval Tools
search_compounds- Search ChEMBL database by name, synonym, or identifierget_compound_info- Get detailed compound information by ChEMBL IDsearch_by_inchi- Find compounds by InChI key or InChI stringget_compound_structure- Retrieve chemical structures in various formatssearch_similar_compounds- Find chemically similar compounds using Tanimoto similarity
Target Analysis & Drug Discovery Tools
search_targets- Search for biological targets by name or typeget_target_info- Get detailed target information by ChEMBL target IDget_target_compounds- Get compounds tested against specific targetssearch_by_uniprot- Find ChEMBL targets by UniProt accessionget_target_pathways- Get biological pathways associated with targets
Bioactivity & Assay Data Tools
search_activities- Search bioactivity measurements and assay resultsget_assay_info- Get detailed assay information by ChEMBL assay IDsearch_by_activity_type- Find bioactivity data by activity type and value rangeget_dose_response- Get dose-response data and activity profilescompare_activities- Compare bioactivity data across multiple compounds
Drug Development & Clinical Data Tools
search_drugs- Search for approved drugs and clinical candidatesget_drug_info- Get drug development status and clinical trial informationsearch_drug_indications- Search for therapeutic indications and disease areasget_mechanism_of_action- Get mechanism of action and target interaction data
Chemical Property Analysis Tools
analyze_admet_properties- Analyze ADMET propertiescalculate_descriptors- Calculate molecular descriptors and physicochemical propertiespredict_solubility- Predict aqueous solubility and permeability propertiesassess_drug_likeness- Assess drug-likeness using Lipinski Rule of Five
Advanced Search & Cross-Reference Tools
substructure_search- Find compounds containing specific substructuresbatch_compound_lookup- Process multiple ChEMBL IDs efficientlyget_external_references- Get links to external databasesadvanced_search- Complex queries with multiple chemical and biological filters
Changelog
v1.0.0 - Initial Release
Comprehensive Chemical Intelligence: 27 specialized tools for drug discovery
Core Functionality: Compound search, target analysis, bioactivity data
Advanced Features: Similarity search, batch processing, cross-references
Resource Templates: Direct URI-based access to ChEMBL data
Docker Support: Containerized deployment with security best practices
Professional Documentation: Complete tool reference and examples
Developed by Augmented Nature: Professional chemical informatics platform
Citation
If you use this project in your research or publications, please cite it as follows:
author = {Moudather Chelbi},
title = {ChEMBL MCP Server},
year = {2025},
howpublished = {https://github.com/Augmented-Nature/ChEMBL-MCP-Server},
note = {Accessed: 2025-06-29}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