ChEMBL MCP Server

Servidor MCP de ChEMBL
Un servidor integral de Protocolo de Contexto de Modelo (MCP) que proporciona acceso avanzado a la base de datos química de ChEMBL. Este servidor ofrece 22 herramientas especializadas que permiten a los asistentes de IA y clientes MCP realizar investigaciones sofisticadas de descubrimiento de fármacos, análisis químico-informáticos e investigaciones de bioactividad directamente a través de la API REST de ChEMBL.
Desarrollado por Augmented Nature
Características
Búsqueda y recuperación de sustancias químicas básicas (5 herramientas)
Búsqueda de compuestos : busque en la base de datos ChEMBL por nombre de compuesto, sinónimo o identificador
Información detallada del compuesto : recupere información completa del compuesto, incluida la estructura, las propiedades y las anotaciones
Búsqueda basada en InChI : encuentre compuestos por clave InChI o cadena InChI
Recuperación de estructuras : obtenga información sobre la estructura química en varios formatos (SMILES, InChI, MOL, SDF)
Búsqueda de similitud : encuentre compuestos químicamente similares utilizando la similitud de Tanimoto
Análisis de objetivos y descubrimiento de fármacos (5 herramientas)
Búsqueda de objetivos : busque objetivos biológicos por nombre o tipo
Información detallada del objetivo : recupera información completa del objetivo y anotaciones
Compuestos objetivo : Pruebe compuestos contra objetivos específicos
Integración con UniProt : Encuentre objetivos de ChEMBL por números de acceso de UniProt
Vías diana : vías y mecanismos biológicos asociados
Datos de bioactividad y ensayos (5 herramientas)
Búsqueda de actividades : busque mediciones de bioactividad y resultados de ensayos
Información detallada del ensayo : obtenga protocolos y condiciones de ensayo completos
Búsqueda por tipo de actividad : encuentre datos de bioactividad por tipo de actividad específico y rango de valores
Análisis dosis-respuesta : obtenga datos de dosis-respuesta y perfiles de actividad
Comparación de actividades : compare datos de bioactividad en múltiples compuestos o objetivos
Desarrollo de fármacos y datos clínicos (4 herramientas)
Búsqueda de medicamentos : busque medicamentos aprobados y candidatos clínicos
Estado del desarrollo del fármaco : obtenga información sobre el estado del desarrollo del fármaco y los ensayos clínicos
Indicaciones terapéuticas : Búsqueda de indicaciones terapéuticas y áreas de enfermedad
Mecanismo de acción : Obtenga datos sobre el mecanismo de acción y la interacción con el objetivo.
Análisis de propiedades químicas (4 herramientas)
Análisis ADMET : Analice las propiedades de ADMET (absorción, distribución, metabolismo, excreción, toxicidad)
Descriptores moleculares : Calcule descriptores moleculares y propiedades fisicoquímicas
Predicción de solubilidad : Predecir las propiedades de solubilidad y permeabilidad acuosas
Evaluación de similitud con fármacos : evalúe la similitud con fármacos utilizando la regla de cinco de Lipinski y otras métricas
Búsqueda avanzada y referencias cruzadas (4 herramientas)
Búsqueda de subestructuras : encuentre compuestos que contengan subestructuras específicas
Procesamiento por lotes : procese múltiples identificaciones de ChEMBL de manera eficiente
Referencias externas : obtenga enlaces a bases de datos externas (PubChem, DrugBank, PDB, etc.)
Búsqueda avanzada : consultas complejas con múltiples filtros químicos y biológicos
Plantillas de recursos
Acceso directo a los datos de ChEMBL a través de plantillas URI para una integración perfecta
Related MCP server: Unofficial PubChem MCP Server
Instalación
Prerrequisitos
Node.js (v16 o superior)
npm o hilo
Configuración
Clonar el repositorio:
git clone <repository-url>
cd chembl-serverInstalar dependencias:
npm installConstruir el proyecto:
npm run buildEstibador
Construyendo la imagen de Docker
Construya la imagen de Docker:
docker build -t chembl-mcp-server .Ejecutando con Docker
Ejecute el contenedor:
docker run -i chembl-mcp-serverPara la integración del cliente MCP, puede utilizar el contenedor directamente:
{
"mcpServers": {
"chembl": {
"command": "docker",
"args": ["run", "-i", "chembl-mcp-server"],
"env": {}
}
}
}Uso
Como servidor MCP
El servidor está diseñado para ejecutarse como un servidor MCP que se comunica a través de stdio:
npm startAgregar a la configuración del cliente MCP
Agregue el servidor a su configuración de cliente MCP (por ejemplo, Claude Desktop):
{
"mcpServers": {
"chembl": {
"command": "node",
"args": ["/path/to/chembl-server/build/index.js"],
"env": {}
}
}
}Herramientas disponibles
1. búsqueda_compuestos
Busque en la base de datos ChEMBL compuestos por nombre, sinónimo o identificador.
Parámetros:
query(obligatoria): Consulta de búsqueda (nombre compuesto, sinónimo o identificador)limit(opcional): Número de resultados a devolver (1-1000, predeterminado: 25)offset(opcional): Número de resultados a omitir (predeterminado: 0)
Ejemplo:
{
"query": "aspirin",
"limit": 10
}2. obtener_información_compuesta
Obtenga información detallada de un compuesto específico mediante el ID de ChEMBL.
Parámetros:
chembl_id(obligatorio): ID del compuesto ChEMBL (p. ej., CHEMBL25)
Ejemplo:
{
"chembl_id": "CHEMBL25"
}3. objetivos_de_búsqueda
Busque objetivos biológicos por nombre o tipo.
Parámetros:
query(obligatoria): Nombre del objetivo o consulta de búsquedatarget_type(opcional): filtro de tipo de objetivo (p. ej., PROTEÍNA ÚNICA, COMPLEJO DE PROTEÍNAS)organism(opcional): Filtro de organismoslimit(opcional): Número de resultados a devolver (1-1000, predeterminado: 25)
Ejemplo:
{
"query": "dopamine receptor",
"organism": "Homo sapiens",
"limit": 5
}4. actividades_de_búsqueda
Busque mediciones de bioactividad y resultados de ensayos.
Parámetros:
target_chembl_id(opcional): filtro de ID de objetivo de ChEMBLassay_chembl_id(opcional): filtro de ID de ensayo de ChEMBLmolecule_chembl_id(opcional): filtro de ID de compuesto de ChEMBLactivity_type(opcional): Tipo de actividad (por ejemplo, IC50, Ki, EC50)limit(opcional): Número de resultados a devolver (1-1000, predeterminado: 25)
Ejemplo:
{
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 50
}5. búsqueda_compuesto_por_lote
Procese múltiples identificaciones de ChEMBL de manera eficiente.
Parámetros:
chembl_ids(obligatorio): Matriz de identificadores de compuestos de ChEMBL (1-50)
Ejemplo:
{
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642"]
}Plantillas de recursos
El servidor proporciona acceso directo a los datos de ChEMBL a través de plantillas URI:
1. Información compuesta
URI :
chembl://compound/{chembl_id}Descripción : Información completa del compuesto para una identificación de ChEMBL
Ejemplo :
chembl://compound/CHEMBL25
2. Información del objetivo
URI :
chembl://target/{chembl_id}Descripción : Información completa del objetivo para un ID de objetivo de ChEMBL
Ejemplo :
chembl://target/CHEMBL2095173
3. Información del ensayo
URI :
chembl://assay/{chembl_id}Descripción : Información completa del ensayo para un ID de ensayo de ChEMBL
Ejemplo :
chembl://assay/CHEMBL1217643
4. Información de la actividad
URI :
chembl://activity/{activity_id}Descripción : Datos de medición de bioactividad para un ID de actividad
Ejemplo :
chembl://activity/12345678
5. Resultados de la búsqueda
URI :
chembl://search/{query}Descripción : Resultados de búsqueda de compuestos que coinciden con la consulta
Ejemplo :
chembl://search/aspirin
Ejemplos
Búsqueda básica de compuestos
Búsqueda de compuestos relacionados con la aspirina:
// Tool call
{
"tool": "search_compounds",
"arguments": {
"query": "aspirin",
"limit": 5
}
}Obtenga información detallada sobre los compuestos
Obtenga información completa sobre la aspirina:
// Tool call
{
"tool": "get_compound_info",
"arguments": {
"chembl_id": "CHEMBL25"
}
}Búsqueda basada en objetivos
Encuentre compuestos probados contra los receptores de dopamina:
// Tool call
{
"tool": "search_targets",
"arguments": {
"query": "dopamine receptor D2",
"organism": "Homo sapiens"
}
}Análisis de bioactividad
Búsqueda de datos IC50 contra un objetivo específico:
// Tool call
{
"tool": "search_activities",
"arguments": {
"target_chembl_id": "CHEMBL2095173",
"activity_type": "IC50",
"limit": 100
}
}Procesamiento por lotes
Procesar múltiples compuestos de manera eficiente:
// Tool call
{
"tool": "batch_compound_lookup",
"arguments": {
"chembl_ids": ["CHEMBL25", "CHEMBL59", "CHEMBL1642", "CHEMBL1201585"]
}
}Integración de API
Este servidor se integra con la API REST de ChEMBL para el acceso programático a datos químicos. Para más información sobre ChEMBL:
Sitio web de ChEMBL : https://www.ebi.ac.uk/chembl/
Documentación de la API : https://chembl.gitbook.io/chembl-interface-documentation/web-services
Guía de la API REST : https://www.ebi.ac.uk/chembl/api/data/docs
Todas las solicitudes de API incluyen:
Agente de usuario :
ChEMBL-MCP-Server/1.0.0Tiempo de espera : 30 segundos
URL base :
https://www.ebi.ac.uk/chembl/api/data
Manejo de errores
El servidor incluye un manejo integral de errores:
Validación de entrada : todos los parámetros se validan mediante protectores de tipo
Errores de API : los errores de red y API se detectan y se devuelven con mensajes descriptivos.
Manejo de tiempo de espera : las solicitudes se agotan después de 30 segundos
Degradación elegante : las fallas parciales se manejan adecuadamente
Desarrollo
Construir el proyecto
npm run buildModo de desarrollo
Ejecute el compilador de TypeScript en modo de observación:
npm run devEstructura del proyecto
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 fileDependencias
@modelcontextprotocol/sdk : SDK principal de MCP para la implementación del servidor
axios : cliente HTTP para solicitudes de API de ChEMBL
typescript : compilador de TypeScript para desarrollo
Licencia
Licencia MIT
Contribuyendo
Bifurcar el repositorio
Crear una rama de características
Realiza tus cambios
Agregue pruebas si corresponde
Enviar una solicitud de extracción
Apoyo
Para problemas y preguntas:
Consulte la documentación de la API de ChEMBL
Revise la especificación del Protocolo de Contexto del Modelo
Abrir un problema en el repositorio
Acerca de la naturaleza aumentada
Este completo servidor ChEMBL MCP fue desarrollado por Augmented Nature , empresa líder en innovación en soluciones de bioinformática y química computacional basadas en IA. Augmented Nature se especializa en la creación de herramientas avanzadas que conectan la inteligencia artificial con la investigación química, permitiendo a los investigadores obtener información más profunda a partir de datos químicos y biológicos.
Referencia completa de herramientas
Herramientas básicas de búsqueda y recuperación de sustancias químicas
search_compounds- Busque en la base de datos ChEMBL por nombre, sinónimo o identificadorget_compound_info- Obtenga información detallada del compuesto por ID de ChEMBLsearch_by_inchi- Buscar compuestos por clave InChI o cadena InChIget_compound_structure- Recupera estructuras químicas en varios formatossearch_similar_compounds- Encuentra compuestos químicamente similares usando la similitud de Tanimoto
Herramientas de análisis de objetivos y descubrimiento de fármacos
search_targets- Busca objetivos biológicos por nombre o tipoget_target_info- Obtenga información detallada del objetivo por ID de objetivo de ChEMBLget_target_compounds: permite probar compuestos contra objetivos específicossearch_by_uniprot- Encuentra objetivos de ChEMBL por acceso a UniProtget_target_pathways- Obtener vías biológicas asociadas con los objetivos
Herramientas de datos de bioactividad y análisis
search_activities- Buscar mediciones de bioactividad y resultados de ensayosget_assay_info: Obtenga información detallada del ensayo por ID de ensayo de ChEMBLsearch_by_activity_type- Encuentre datos de bioactividad por tipo de actividad y rango de valoresget_dose_response- Obtener datos de dosis-respuesta y perfiles de actividadcompare_activities: compara datos de bioactividad entre múltiples compuestos
Herramientas para el desarrollo de fármacos y datos clínicos
search_drugs- Búsqueda de medicamentos aprobados y candidatos clínicosget_drug_info- Obtenga información sobre el estado del desarrollo de medicamentos y ensayos clínicossearch_drug_indications- Búsqueda de indicaciones terapéuticas y áreas de enfermedadget_mechanism_of_action- Obtener el mecanismo de acción y los datos de interacción del objetivo
Herramientas de análisis de propiedades químicas
analyze_admet_properties: Analizar propiedades ADMETcalculate_descriptors- Calcula descriptores moleculares y propiedades fisicoquímicaspredict_solubility- Predice las propiedades de solubilidad y permeabilidad acuosasassess_drug_likeness: evalúa la similitud con un fármaco utilizando la regla de cinco de Lipinski
Herramientas de búsqueda avanzada y referencias cruzadas
substructure_search- Encuentra compuestos que contengan subestructuras específicasbatch_compound_lookup- Procesar múltiples identificaciones de ChEMBL de manera eficienteget_external_references- Obtener enlaces a bases de datos externasadvanced_search- Consultas complejas con múltiples filtros químicos y biológicos
Registro de cambios
v1.0.0 - Versión inicial
Inteligencia química integral : 27 herramientas especializadas para el descubrimiento de fármacos
Funcionalidad principal : Búsqueda de compuestos, análisis de objetivos, datos de bioactividad
Funciones avanzadas : búsqueda de similitud, procesamiento por lotes, referencias cruzadas
Plantillas de recursos : acceso directo basado en URI a los datos de ChEMBL
Compatibilidad con Docker : Implementación en contenedores con las mejores prácticas de seguridad
Documentación profesional : referencia completa de herramientas y ejemplos
Desarrollado por Augmented Nature : Plataforma profesional de informática química
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