mosaic-mcp
The mosaic-mcp server provides pre-clinical drug discovery intelligence, offering 44 specialized tools (16 free, 28 pro) to query a knowledge graph of 760+ drug targets, 70K+ compounds, 48K+ papers, 18K+ clinical trials, and 16K+ patents.
Target Discovery & Profiling
Search targets by gene symbol or keyword; get full dossiers (biology, scores, SAR, disease associations, pathways, PPIs, clinical pipeline)
View attractiveness scores (scientific validation, druggability, competitive intensity, research momentum)
Explore AlphaFold 3D structures and assess structural druggability via binding pocket analysis
Compound & Drug Analysis
Get compounds active against a target with SAR data (IC50, Ki, etc.)
Analyze selectivity, find structural analogs (Tanimoto scores), compare drugs head-to-head, explore polypharmacology, and identify repurposing candidates
Competitive & Whitespace Intelligence
Map competitive landscapes, analyze organization portfolios, detect emerging activity signals (surging paper/patent activity)
Find white-space opportunities (high-validation, low-competition targets), identify modality gaps, map resistance bypass candidates, track talent/researcher migration, and find KOLs
Novel Target Discovery
Find synthetic-lethal whitespace (functionally coupled but undeveloped targets)
Identify structurally intractable targets with suggested modalities (PROTAC, biologic, fragment-based)
Find structurally similar targets via Foldseek TM-score
Clinical & Regulatory Data
Browse clinical trial pipelines, search ClinicalTrials.gov records, and query FDA regulatory status (approval dates, indications, adverse events via openFDA)
Indication & Disease Landscape
List therapeutic indications and sub-indications, get per-target activity across sub-indications, and view full indication landscapes
Knowledge Graph & Evidence
Get KG overview statistics, explore pathway context and PPIs, view full target KG networks, map evidence landscapes by relation type, search by semantic relation (e.g., all PROTAC degraders), and compare 2–5 targets side-by-side
Workspace & Personalization
Create and manage watchlists (targets, indications, organizations, compounds)
Add targets to a wishlist to request out-of-scope coverage
Retrieve patent landscapes with assignee data and target literature from PubMed/OpenAlex
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mosaic-mcpsearch for targets related to KRAS"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mosaic-mcp
Pre-clinical drug discovery intelligence as an MCP server. Query 760+ drug targets, 70K+ compounds, 48K+ papers, 18K+ clinical trials, and 16K+ patents through 44 specialized tools — 16 free for discovery, 28 Pro for competitive landscapes, whitespace, and thesis-grade analysis.
Which one do you want?
This package is bring-your-own-database. It is the MCP tool layer only — it ships the queries, not the data. You point it at a PostgreSQL instance you control and it serves 44 tools over it. There is no public read-only credential for Mosaic's knowledge graph, and earlier versions of these docs implied otherwise.
If you want Mosaic's actual curated KG — 760+ targets, 70K+ compounds, 48K+ papers, 18K+ trials, 16K+ patents, kept current by a monthly refresh — use the hosted server instead. It needs no database and no local install:
Remote MCP:
https://mcp.getmosaic.dev/sseSign in / API keys: https://getmosaic.dev
Related MCP server: OrigeneMCP
Quick Start (self-hosted)
pip install mosaic-mcpWith Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"mosaic": {
"command": "mosaic-mcp",
"env": {
"DATABASE_URL": "postgresql://USER:PASSWORD@YOUR-HOST:5432/mosaic_db?sslmode=require"
}
}
}
}With Claude Code
claude mcp add mosaic -- mosaic-mcpStandalone
export DATABASE_URL="postgresql://..." # your own Postgres
export MOSAIC_API_KEY="msk_..." # Optional — for Pro tools
mosaic-mcp # stdio transportThis package is stdio-only. --transport sse exits with
NotImplementedError; remote transport is served by the hosted endpoint
above, not by this package. The flag was previously documented as working.
Tools
Free Tier (16 tools) — discovery + workspace
Tool | Description |
| Search drug targets by name, gene symbol, or keyword |
| Comprehensive target dossier (biology, compounds, scores) |
| Compounds tested against a target with SAR data |
| Patent landscape for a target |
| Literature for a target |
| 3D structure and ligandability summary for a target |
| Knowledge graph overview statistics |
| Available disease indications |
| Sub-indications within an indication area |
| Per-target activity across sub-indications |
| Target attractiveness scoring |
| Add a target to your personal wishlist |
| Create a watchlist |
| Add an item to a watchlist |
| Retrieve a watchlist |
| List your watchlists |
Pro Tier (28 additional tools) — analysis + whitespace
The committed-verdict layer. Includes the whitespace and differentiation tools:
mosaic_synthetic_lethal_whitespace, mosaic_modality_gaps,
mosaic_resistance_bypass_map, mosaic_find_undruggable_targets,
mosaic_talent_migration, mosaic_emerging_signals, and
mosaic_assess_druggability.
Plus the full analysis set: competitive landscape, pathway context, compound selectivity, indication landscape, target validation, clinical pipeline, compound analogs, target comparison, similar-target search, opportunity finding, organization portfolio, target network, mechanism of action, evidence maps, relation search, polypharmacology, clinical trial results, FDA regulatory status, drug comparison, drug repurposing candidates, and KOL discovery.
Data Coverage
Entity | Count |
Drug Targets | 764 (oncology + neuroscience + cardiovascular) |
Compounds | 71,512 |
Clinical Trials | 18,580 |
Papers | 48,773 |
Patents | 16,189 |
Semantic Relations | 13,704 |
Indications | 24,949 |
Organizations | 36,691 |
Counts as of 2026-07-18. The live figures are always
mosaic_kg_stats; run it rather than trusting this table. Targets went 802 →
764 when duplicate and malformed rows were merged, and organizations
153,852 → 36,691 when affiliation parsing was corrected — both are the count
getting more honest, not the corpus shrinking.
Configuration
Variable | Required | Description |
| Yes | PostgreSQL connection string — your own instance |
| No | API key for Pro tool access |
| No | Override tier ( |
Changelog
Full history in CHANGELOG.md. Latest: 1.6.0 — adds
mosaic_start_here, a free, ungated orientation tool that maps all 44 tools and
states plainly that this package is bring-your-own-database. Selected older
entries below.
1.2.0 — breaking change to the watchlist tools
owner_key must now be anon:<token>. It was previously free text
documented as "user id, email, or anon:<token>", which meant one caller
could name another and read their lists. A bare id or email is now refused.
Generate a random token, keep it, and pass the same one every time — it is what proves a list is yours. Calls that pass an email or bare id now fail with a message telling you this; they do not silently return someone else's data, which is what the old behaviour risked.
Also in 1.2.0:
Watchlist reads are owner-scoped in the SQL, so a watchlist UUID is no longer sufficient for read or write access, and they are excluded from the response cache (a cache hit would otherwise return before the ownership check ran).
mosaic_synthetic_lethal_whitespacenow returnscandidatesandcoupled_unassessedas two separate lists. Partners outside the curated universe carry null counts instead of zeros — an unmeasured competitor count previously read as "no competition."Project metadata now points at
getmosaic.dev. 1.1.0 and earlier pointed at a domain that is not ours.Query/response layer resynced to the hosted server. This includes the protein-protein-interaction reader fix: 1.1.0 counted PPIs from the legacy
target_interactionstable, while the hosted server had already moved to the populatedtarget_interactions_exttable. Driven against hosted on 2026-07-19, EGFR reports 50 interactions at confidence 0.999; the 1.1.0 reader does not read that table for the profile count.
License
Apache 2.0 for the MCP server tools. The hosted knowledge graph data requires a subscription for Pro-tier access.
Available Tools
44 toolsmosaic_assess_druggabilityARead-onlyIdempotent
Assess structural druggability of a target from AlphaFold + fpocket.
Returns the top binding pockets (volume, druggability score), pocket
count, and a coarse structural_tier (highly_druggable / druggable /
challenging / undruggable) along with a plain-English interpretation.
This is the structural answer to "is this target small-molecule
tractable?" — orthogonal to literature-derived druggability heuristics.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the primary safety profile is clear. The description adds valuable behavioral context: uses AlphaFold + fpocket, returns a coarse structural_tier and interpretation, and is orthogonal to literature. No contradictions with annotations.
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 three sentences: first sentence states purpose, second enumerates outputs, third provides context. It is front-loaded with the verb 'Assess', concise, and every sentence adds value without 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 tool has one simple parameter and an output schema is present, the description covers all necessary aspects: it explains what the tool does, what it returns (pockets, scores, tier, interpretation), and how it fits into the broader context (structural vs literature). The output schema can handle detailed return types.
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 0% (tool description does not mention the parameter), and the single parameter (gene_symbol) is fully documented in the schema itself. The description adds no additional meaning beyond the schema, so it fails to compensate for low coverage.
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 explicitly states 'Assess structural druggability of a target from AlphaFold + fpocket', provides specific outputs (pockets, druggability score, structural_tier), and distinguishes itself from literature-derived heuristics, making the tool's purpose clear and differentiated from siblings like mosaic_get_target_structure or mosaic_find_undruggable_targets.
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 positions the tool as the 'structural answer' to tractability, orthogonal to literature-based heuristics, which implies when to use it. However, it does not explicitly mention alternatives or when not to use, though the context of sibling tools provides some implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_clinical_pipelineARead-onlyIdempotent
Get clinical trial pipeline for compounds targeting a gene.
Returns compounds in clinical development with indications, trial phases, and status from ClinicalTrials.gov data.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds context about returning data from ClinicalTrials.gov, confirming it is a read operation without side effects. No contradictions.
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?
Two sentences: first states action, second details output. No redundant words, front-loaded with purpose, and every sentence adds value.
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 simple query tool with one parameter and existing annotations and output schema, the description is complete. It mentions data source and output fields, leaving no critical gaps.
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 documents the gene_symbol parameter with description and constraints. The tool description adds context by explaining the parameter's role in the pipeline query, compensating for the low schema description coverage (0%).
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?
Description clearly states verb 'Get', resource 'clinical trial pipeline', and target 'for compounds targeting a gene'. It specifies what is returned (indications, phases, status) and data source, making it distinct from sibling tools.
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?
Description clearly indicates when to use (to obtain clinical pipeline data for a gene). It does not explicitly list when not to use or name alternatives, but the purpose is specific enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_compare_drugsARead-onlyIdempotent
Side-by-side comparison of two compounds.
Returns max_phase, first approval year, molecule type, shared targets, unique targets per side, and per-target potency (pChEMBL) for both. Use this for competitive analyses like "osimertinib vs erlotinib" or "imatinib vs dasatinib".
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by listing the specific return fields (max_phase, first approval year, etc.). Annotations already indicate safety (readOnlyHint, idempotentHint), so the bar is lower, but the description enriches understanding of 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?
Extremely concise: two sentences and an example. No superfluous information; front-loaded with purpose. Every word earns 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 presence of an output schema (not shown) and the description listing key outputs, it is fairly complete. Does not mention input constraints (e.g., valid drug identifiers) but sufficient for typical 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 0%, so the description must compensate. It does not explicitly document the parameters, but the examples and context make their purpose clear. Lacks details like format or constraints, but adequate for simple string inputs.
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 'Side-by-side comparison of two compounds' and lists specific outputs, making the tool's purpose unmistakable. It distinguishes from siblings like mosaic_compare_targets by focusing on compounds.
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?
Provides explicit usage examples ('osimertinib vs erlotinib') indicating when to use. Does not explicitly mention when not to use or alternative tools, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_compare_targetsARead-onlyIdempotent
Side-by-side comparison of 2-5 drug targets.
Returns compound counts, patent counts, paper counts, best IC50, max clinical phase, attractiveness scores, and momentum for each target.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by specifying the input range (2-5) and the output metrics (compound counts, patent counts, etc.), which are behavioral traits beyond annotations. No contradiction noted.
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?
Two concise sentences: first states purpose and scope, second lists outputs. No redundant information. Every sentence adds value.
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 an output schema (not shown but implied), the description covers core functionality and output fields. It does not mention error conditions, prerequisites (e.g., valid gene symbols), or limitations, but is adequate for a read-only, idempotent tool with good annotations.
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 0%, meaning the nested parameter (gene_symbols) lacks description in the schema. The description mentions 'gene symbols' but does not elaborate on format, valid values, or constraints beyond min/max items. It partially compensates but leaves ambiguity (e.g., what symbols are valid).
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 it performs a side-by-side comparison of 2-5 drug targets, listing specific metrics returned (compound counts, patent counts, etc.). It effectively distinguishes from sibling tools like mosaic_compare_drugs (which compares drugs) and mosaic_search_targets (which searches for targets).
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 implies usage for comparing multiple targets, but does not explicitly state when to use this tool over alternatives like mosaic_find_similar_targets or mosaic_get_target_profile. It provides clear context but lacks exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_competitive_landscapeARead-onlyIdempotent
Get the full competitive landscape for a drug target.
Multi-hop traversal: Target <- Compounds, Target <- Patents -> Organizations. Shows which pharma/biotech companies are active on this target, how many patents and compounds each has, and overall competitive intensity.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only and idempotent. The description adds value by explaining the multi-hop traversal and the specific data points (companies, patent counts, compound counts, competitive intensity). However, it does not disclose potential limitations like data recency or coverage scope.
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 concise with four lines, front-loading the main purpose. The multi-hop traversal detail is helpful. Could be slightly more structured by explicitly listing the parameter, but overall efficient.
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 availability of an output schema, the description adequately covers the tool's function and key outputs. It explains the multi-hop nature and competitive intensity. Minor gap: no mention of input parameter, but that is covered in the schema.
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 0%, but the description does not mention the single required parameter (gene_symbol). The agent must rely solely on the schema for parameter meaning. The description adds no semantic value beyond what the schema's description provides.
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 'Get the full competitive landscape for a drug target' with a specific verb and resource. It distinguishes from sibling tools by detailing multi-hop traversal and specific outputs (companies, patents, compounds, intensity).
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 explicit guidance on when to use this tool vs. alternatives like mosaic_get_target_patents or mosaic_org_portfolio. The description implies a broad competitive view but does not set usage boundaries or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_compound_analogsARead-onlyIdempotent
Get structural analogs of a compound with Tanimoto similarity.
Returns analogs with similarity scores, shared scaffolds, and their activity against targets. Useful for SAR analysis and lead optimization.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the agent knows the tool is safe and idempotent. The description adds behavioral context by specifying the output includes 'similarity scores, shared scaffolds, and their activity against targets,' which goes beyond the annotations.
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 three concise sentences with no redundant information. It efficiently states purpose, output details, and use case, 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 simple input (one parameter with limit) and existence of an output schema, the description adequately covers what the tool returns (scores, scaffolds, activity). It could mention sorting or pagination but is sufficient for basic understanding.
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 schema has 0% description coverage according to context, so the description must compensate. The description does not add any information about the parameters (compound_id and limit) beyond what the schema provides (which already has basic descriptions). This leaves a gap for the agent to understand acceptable formats or constraints.
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 structural analogs of a compound with Tanimoto similarity.' It specifies the verb (Get), resource (structural analogs), and method (Tanimoto similarity), distinguishing it from sibling tools like mosaic_get_target_compounds which retrieve compounds by target.
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 mentions 'Useful for SAR analysis and lead optimization,' providing a use context. However, it does not explicitly guide when to use this tool vs. alternatives (e.g., mosaic_compound_selectivity or mosaic_find_similar_targets), nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_compound_polypharmacologyARead-onlyIdempotent
Get the polypharmacology profile of a compound — all targets it interacts with.
Shows every target the compound has semantic relations with, the mechanism of action for each (inhibits, agonizes, degrades, etc.), and evidence counts. Useful for understanding off-target effects, repurposing potential, and selectivity from a semantic (not just activity) perspective.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, so no safety contradiction needed. The description adds value by detailing output content: targets, MOA, evidence counts, and semantic perspective, which goes beyond annotations.
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?
Three sentences, front-loaded with purpose, then output details, then use cases. No unnecessary words, clearly 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?
With an output schema present and clear description of what is returned, the description is complete for an agent to understand the tool's function and results. No missing information.
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 does not add parameter-specific details beyond what the schema provides. The schema already describes compound_name with examples, so the tool description's mention of 'compound' is sufficient but not extra.
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 gets the polypharmacology profile of a compound, listing all targets with mechanism of action and evidence counts. It distinguishes from siblings by focusing on semantic relations and use cases like off-target effects and repurposing.
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 explicitly mentions use cases: understanding off-target effects, repurposing potential, and selectivity. However, it does not contrast with siblings like mosaic_compound_selectivity or provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_compound_selectivityARead-onlyIdempotent
Get the selectivity profile of a compound across all targets.
Shows activity values against every target the compound has been tested on. Critical for assessing off-target effects and safety liability.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, non-destructive read operation. The description adds that it shows activity values against every tested target, providing context beyond the annotations.
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 three sentences long, front-loaded with the action, and each sentence adds value. No unnecessary words.
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 simple tool with one parameter, good annotations, and an output schema, the description covers the core purpose and use case. It could mention return format or limits, but it is still adequate.
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 provides a description for the only parameter, compound_id. The tool description adds no further parameter details, but the schema covers it adequately. 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 it retrieves the selectivity profile of a compound across all targets, with a specific verb and resource. However, it does not explicitly distinguish from the sibling tool 'mosaic_compound_polypharmacology', which may 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?
The description mentions it is critical for assessing off-target effects and safety liability, implying when to use it. But it lacks explicit guidance on when not to use it or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_drug_repurposingARead-onlyIdempotent
Find new indications where a compound's primary targets are implicated.
Returns indications where the compound's targets have supporting evidence but the compound itself is not yet clinically active. Ranked by a simple target-support × avg-evidence score. Useful as a starting point for repurposing hypotheses — not a substitute for clinical review.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds value by explaining the ranking mechanism and that results are not a clinical substitute. No contradictions.
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?
Two sentences, no filler. Each sentence adds value. Front-loaded with primary 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 output schema exists, explanation of return values is not needed. Description covers use case and scoring. Missing limit parameter behavior is a minor gap.
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 has 0% description coverage. The description implies compound_name as input but does not describe it or the limit parameter. Missing parameter details for a low-coverage scenario.
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 new indications where a compound's primary targets are implicated.' It specifies the output logic and contrasts with clinical review, distinguishing it from sibling tools like mosaic_find_opportunities.
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?
Description mentions it's 'useful as a starting point for repurposing hypotheses — not a substitute for clinical review,' providing some guidance but lacks explicit when-not-to-use or naming of alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_emerging_signalsARead-onlyIdempotent
Targets whose recent literature/patent activity significantly exceeds their own prior baseline (z-score > 2).
Simple statistics over monthly counts — no ML. Use to spot targets
heating up before they crowd. sparkline is recent monthly counts.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds details beyond annotations: it explains the z-score threshold (>2), that it uses simple statistics (no ML), and mentions the 'sparkline' field in the output. Annotations already declare read-only, non-destructive, and idempotent, so the description enriches behavioral understanding.
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: two sentences plus a brief note. Every element adds value with no redundancy or fluff.
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 existence of an output schema (which likely describes the sparkline and other fields), the description adequately covers purpose, usage, key methodology, and output hint. An agent can confidently use this 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 already provides descriptions for all three parameters (limit, signal_type, window_months). The description adds minimal parameter-specific value, only mentioning 'sparkline' which is not a parameter. Per guidelines, with high schema description coverage, baseline 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 identifies targets with recent activity exceeding their baseline (z-score > 2). It specifies the resource (targets with emerging signals) and distinguishes from siblings by focusing on statistical surges in literature/patent activity.
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 explicitly says 'Use to spot targets heating up before they crowd,' providing clear when-to-use guidance. It does not explicitly mention when not to use or alternatives, but the context is strong enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_evidence_mapARead-onlyIdempotent
Get the full evidence landscape for a drug target from semantic extraction.
Shows all relation types (validation, resistance, biomarker, safety, efficacy, expression, pathway, drug target ID) broken down by source type (paper vs patent), with confidence stats and top evidence snippets per relation type.
Use this to understand the strength and breadth of evidence for a target.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the safety profile is clear. The description adds value by detailing the output structure (relation types, source types, confidence stats, snippets), which is beyond the annotations.
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 three sentences with no fluff: purpose, content, usage. Every sentence is necessary and front-loaded with the most important 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?
Given the simple parameter and existing output schema, the description adequately covers the tool's output (relation types, source types, stats, snippets). No missing critical details.
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 0% from the tool description, but the input schema itself already describes the gene_symbol parameter well (e.g., 'Gene symbol of the target'). The tool description adds no additional parameter info, so baseline 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 'Get the full evidence landscape for a drug target from semantic extraction' and lists the specific relation types and breakdown. This differentiates it from sibling tools like mosaic_get_target_papers or mosaic_target_validation, which focus on specific aspects.
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 says 'Use this to understand the strength and breadth of evidence for a target,' providing a clear use case. It does not explicitly mention when not to use or alternatives, but the context with siblings implies it's for a broad overview.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_find_opportunitiesARead-onlyIdempotent
Find underexplored high-potential drug targets — white-space opportunities.
Identifies targets with high scientific validation but low competitive intensity. These are the best opportunities for novel drug programs where the biology is strong but Big Pharma hasn't crowded the space.
Ranked by opportunity_score = validation × (1 - competition) × momentum_boost.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds the scoring formula (opportunity_score = validation × (1 - competition) × momentum_boost), providing behavioral context beyond annotations. No contradictions.
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 three sentences long, front-loads the main purpose, and includes the scoring formula efficiently. Every sentence adds value with no wasted words.
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 simple parameter structure (one object with two fields) and the presence of an output schema, the description provides sufficient context about what the tool does and how it scores opportunities. It lacks only minor details like prerequisites or output 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?
Context signals indicate schema description coverage is 0%, but the input schema actually contains descriptions for both parameters ('Max results' and 'Optional therapy area filter'). However, the tool description itself adds no parameter semantics beyond the schema. With low effective coverage, the description should compensate but does not.
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 it finds underexplored high-potential drug targets (white-space opportunities) with high validation and low competitive intensity. This distinguishes it from siblings by specifying low competition and high validation as criteria.
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 explains when to use the tool: for targets with strong biology but low Big Pharma presence. It implies use for novel drug programs. However, it does not explicitly state when not to use or compare with similar siblings like mosaic_synthetic_lethal_whitespace or mosaic_find_undruggable_targets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_find_similar_targetsARead-onlyIdempotent
Structurally similar targets to a given gene, ranked by Foldseek TM-score over the AlphaFold PDB corpus.
Returns the top-k neighbours (default 10) with neighbour metadata (name, target_class, druggability_tier) and the structural-similarity metrics (tm_score normalised over query length, alntmscore over alignment length, evalue, lddt, rmsd). Use for paralog / fold-analog discovery, scaffold-hopping target ideation, and cross-family chemistry repurposing.
Source table is populated by scripts/build_foldseek_index.py. When
the index hasn't been built yet, returns an empty result with a
populate-hint rather than failing — degrades cleanly on fresh DBs.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. Description adds that it returns metadata and metrics, ranks by TM-score, and returns empty results with a populate-hint on fresh DBs, providing behavioral details beyond annotations.
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 two focused paragraphs with no unnecessary words. It front-loads the core function and output, then provides use cases and degradation behavior efficiently.
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 structural similarity search and the existence of an output schema, the description covers return values (metadata, metrics), edge cases (fresh DB empty results), and intended uses, making it complete for 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?
Despite 0% schema description coverage, the description explains 'k' (default 10) and implies 'gene' is the input. It adds meaning beyond the schema's property descriptions, but does not fully detail parameter formats (e.g., regular expression for gene).
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 it finds 'structurally similar targets to a given gene' using Foldseek TM-score. It distinguishes itself from sibling tools like mosaic_search_targets (text search) by focusing on structural similarity.
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?
Provides explicit use cases (paralog discovery, scaffold hopping, cross-family repurposing) and mentions graceful degradation on fresh DBs. Does not explicitly exclude non-structural searches, but context implies when to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_find_undruggable_targetsARead-onlyIdempotent
Find validated targets that are structurally hard to hit with small molecules.
Returns targets in the 'challenging' or 'undruggable' tier (or with a top fpocket druggability score below the threshold), plus their pipeline gap signals (compound count, approved drug count, validation count) and a suggested modality (PROTAC / glue, biologic / PPI, fragment-based, or allosteric SBDD). This is the white-space tool for new-modality programs.
Ranked by opportunity_score = validation × (1 - top_pocket_score) × (1 - competitive_intensity).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey read-only and idempotent behavior. The description adds valuable details: return fields (pipeline gaps, suggested modality) and the ranking formula (opportunity_score). This goes beyond what annotations provide, giving a clear behavioral picture of output and ordering.
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 concise: one sentence for purpose, one for outputs, one for ranking logic. It efficiently communicates essential information without redundancy or unnecessary detail.
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 is a read-only query with a clear output schema (though not shown), the description covers purpose, output, ranking, and use case. It could mention edge cases (e.g., empty results) or performance notes, but it is largely sufficient for confident 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?
Despite schema description coverage reported as 0%, the schema actually provides good descriptions for each parameter. The description adds the ranking formula, which connects parameters to scoring but does not significantly enhance parameter understanding beyond the schema. Baseline 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 finds validated targets that are structurally hard to hit with small molecules, distinguishing it from siblings like mosaic_assess_druggability. It explicitly calls out this is the 'white-space tool for new-modality programs', reinforcing its unique purpose.
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 clear usage context by identifying the tool as for new-modality programs exploring undruggable targets. However, it does not explicitly state when not to use it or directly compare it to alternatives like mosaic_assess_druggability or mosaic_find_opportunities, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_get_target_compoundsARead-onlyIdempotent
Get compounds active against a specific drug target.
Returns compounds with activity data (IC50, Ki, etc.) sorted by potency.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent behavior. The description adds value by specifying the output is sorted by potency and includes activity data types, which goes beyond the annotations.
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?
Two concise sentences that efficiently convey purpose and output characteristics without any redundant or wasted words.
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?
With an output schema present, the description adequately covers return values and behavior. However, it omits details about error handling or edge cases, which keeps it slightly below a perfect score.
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 already provides clear descriptions for both parameters (gene_symbol and limit). The description does not add further parameter-specific information, so it meets the baseline.
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 returns compounds active against a specific drug target, with activity data sorted by potency. This differentiates it from sibling tools like mosaic_search_targets or mosaic_get_target_profile.
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 on when to use this tool versus alternatives, nor are there any exclusions or prerequisites mentioned. The usage context is entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_get_target_papersARead-onlyIdempotent
Get scientific papers mentioning a specific drug target.
Returns publications from PubMed/OpenAlex with titles and dates.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, covering safety and idempotency. The description adds that it returns publications with titles and dates but no further behavioral details (e.g., pagination, rate limits). No contradictions with annotations.
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 concise (two sentences) and front-loaded with the core purpose. Every sentence adds value without 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?
For a simple tool with one required parameter and clear annotations, the description is largely sufficient. However, it lacks mention of the output schema or any edge cases, but with the output schema existing and the annotations covering safety, it is reasonably complete.
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 does not explain the parameters (gene_symbol and limit) beyond what the input schema already provides. With 0% schema description coverage (as per context), the description should compensate but does not. The schema itself has descriptions, but the description text adds no parameter details.
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 uses a specific verb 'Get' and resource 'scientific papers' with a clear focus on a drug target. It distinguishes from siblings like mosaic_get_target_compounds or mosaic_get_target_patents by explicitly mentioning 'papers' and data sources (PubMed/OpenAlex).
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 explicit guidance on when to use or not use this tool versus alternatives. The usage is implied from the purpose, but there is no mention of when to choose this over similar tools like mosaic_get_target_patents or mosaic_search_targets.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_get_target_patentsARead-onlyIdempotent
Get patents mentioning a specific drug target.
Returns patent filings with titles, dates, and assignee organizations.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description need not cover safety. It adds that the output includes specific patent fields, but no additional behavioral traits.
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?
Two sentences, front-loaded purpose, zero unnecessary words. Efficient and direct.
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 a single parameter and existing output schema, the description sufficiently states the input requirement and output fields. Minor gaps like pagination details are acceptable.
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 0% per context, but the actual nested schema describes gene_symbol and limit. The tool description adds no parameter-level detail beyond 'get patents for a target'.
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 retrieves patents mentioning a drug target, with specific return fields (titles, dates, assignee organizations). It contrasts with sibling tools like get_target_papers or get_target_compounds.
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 lacks context on prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_get_target_profileARead-onlyIdempotent
Get a comprehensive intelligence dossier for a drug target.
Returns UniProt biology, target scores, SAR summary, disease associations, validation evidence, pathways, PPIs, competitive landscape, clinical pipeline, and publication momentum. This is the primary tool for any target question.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations (readOnlyHint, idempotentHint, destructiveHint) by listing the extensive contents of the dossier (e.g., UniProt biology, SAR summary, clinical pipeline). No contradiction with annotations.
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 two sentences: first states purpose, second lists contents. Every sentence adds value, and critical information is front-loaded.
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 an output schema, the description does not need to explain return values but does so anyway. It fully covers the tool's purpose and outputs, making it complete for a read-only data retrieval 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?
Schema description coverage is 0%, so the description carries full burden. It does not add any information about the 'gene_symbol' parameter beyond what the schema provides. The parameter is simple, but the description offers no guidance on syntax or format.
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 provides a specific verb ('Get') and resource ('comprehensive intelligence dossier for a drug target'), and lists many specific content types. It clearly distinguishes from siblings like mosaic_target_scores and mosaic_target_validation.
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?
It explicitly states 'This is the primary tool for any target question', guiding the agent to use it as a first stop for general target information. However, it does not list alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_get_target_structureARead-onlyIdempotent
Get the AlphaFold structural snapshot for a drug target.
Returns AlphaFold model URLs (PDB / CIF / PAE), per-residue confidence
summary (mean pLDDT, fractions of residues at high / confident / low
confidence, disordered fraction), and protein length. Useful for
SBDD scoping, disorder/IDR risk, and confidence-aware target triage.
Pair with mosaic_assess_druggability for binding-pocket scoring.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and idempotent; description adds AlphaFold source, return specifics (URLs, confidence, length), and use-case context without contradictions.
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?
Four sentences, front-loaded with purpose, each sentence adds value. No 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?
With annotations covering safety and idempotence, an output schema present, and description detailing return values and use cases, the tool is fully contextualized.
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?
Despite schema having a description for 'gene_symbol', context indicates 0% schema description coverage. The description does not mention the input parameter or explain how to provide the target, requiring the agent to infer from tool name.
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 'Get the AlphaFold structural snapshot for a drug target' and lists specific returned data. It distinguishes from siblings by mentioning pairing with mosaic_assess_druggability.
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?
Explicitly says when to use ('for SBDD scoping, disorder/IDR risk, confidence-aware target triage') and directs to pair with mosaic_assess_druggability for binding-pocket scoring, providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_indication_landscapeARead-onlyIdempotent
Get the full therapeutic landscape for a disease indication.
Shows all targets implicated in this indication, compounds in development, and clinical status.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description ('Get', 'shows') is consistent but adds no behavioral detail beyond what annotations provide. No contradictions.
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?
Two sentences with clear front-loading. Every sentence adds value: first defines purpose, second details content. No redundant or wasted words.
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?
Output schema exists, so return values are covered. The description covers main contents. Annotations cover safety. Minor gap: doesn't specify whether 'full' includes all available data or curated. Still adequate for a landscape 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?
Schema description coverage is 0%, meaning the description does not describe the parameter. The input schema includes a description for 'indication_name', but the tool description fails to mention the parameter or provide examples, despite the low coverage requiring compensation.
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 'Get the full therapeutic landscape for a disease indication' and enumerates what it shows (targets, compounds, clinical status). This is a specific verb+resource that distinguishes it from sibling tools like mosaic_clinical_pipeline or mosaic_compound_polypharmacology.
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 implies usage for an overview ('full therapeutic landscape') but does not explicitly state when to use it vs alternatives. No exclusions or alternative tool mentions are provided. Context signals indicate many sibling tools exist, but no guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_kg_statsARead-onlyIdempotent
Get overall statistics for the Mosaic knowledge graph.
Returns entity counts (targets, compounds, papers, patents), semantic relation totals and breakdown by type, coverage metrics, and ChEMBL activity counts. Use this to understand the scope and coverage of the KG.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the returned data types. It does not contradict annotations and provides additional context about output contents.
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 two sentences, front-loading the action and outputs in the first sentence. Every sentence serves a purpose with no extraneous text.
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 zero parameters, the existing annotations, and the presence of an output schema, the description fully covers the tool's functionality. It explains both the action and the return value scope.
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 tool has no parameters, so the description does not need to explain them. Per guidelines, 0 params earns a baseline of 4.
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 retrieves overall statistics for the Mosaic knowledge graph, listing specific entity counts and metrics. It distinguishes itself from sibling tools which are more specific (e.g., target queries, comparison tools).
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 a clear use case: 'Use this to understand the scope and coverage of the KG.' It implies the context but does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_kol_finderARead-onlyIdempotent
Rank the top authors (KOLs) publishing on a target or indication.
Scores by paper volume with recency weighting (papers since 2023 count 2x). Returns person name, paper count, most recent publication date, and affiliated organizations. Useful for advisory board assembly, trial PI scouting, and competitive intelligence.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by detailing the scoring mechanism (recency weighting) and return fields. Annotations already indicate read-only and idempotent behavior; no additional destructive traits are disclosed.
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 concise and front-loaded with the core purpose. It uses two short paragraphs with no wasted words, effectively communicating the tool's function and output.
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 that an output schema exists, the description is fairly complete, explaining the ranking logic and output fields. It lacks explicit edge cases or prerequisites but suffices for a straightforward ranking 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 description provides no explanation of input parameters (limit, gene_symbol, indication_name) beyond what is in the schema. Schema descriptions exist for two parameters, but limit lacks description. The description does not clarify required combinations or defaults.
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 'Rank' and resource 'top authors (KOLs)', and specifies the criteria (paper volume with recency weighting). It distinguishes itself from sibling tools like mosaic_get_target_papers by focusing on KOL ranking rather than paper retrieval.
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 context (advisory board assembly, trial PI scouting) but does not explicitly state when to use this tool versus alternatives. It inadequately guides agents on selection among sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_list_indicationsARead-onlyIdempotent
List all therapeutic indications available in the knowledge graph.
Returns every indication with the number of associated targets. Use this to discover which disease areas are loaded.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only and idempotent. The description adds value by specifying that it returns every indication with target counts, but no additional behavioral details beyond annotations.
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?
Two sentences, no wasted words, front-loaded with the verb 'List'. Very efficient and clear.
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 parameterless list tool with an output schema, the description fully captures what the tool does and what it returns, making it complete.
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?
There are no parameters, so the schema coverage is 100% and baseline is 4. No parameter information is needed.
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 lists all therapeutic indications with associated target counts, and it distinguishes itself from siblings like 'mosaic_list_subindications' by its scope.
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 explicitly says to use it to discover which disease areas are loaded, providing clear context, but does not mention alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_list_subindicationsARead-onlyIdempotent
List fine-grained oncology sub-indications in the knowledge graph.
Sub-indications are histology- or biomarker-defined cancer subtypes
(e.g. 'EGFR-mutant NSCLC', 'triple-negative breast cancer') organized
under broader parent indications. Optionally pass parent_indication
(id, name, or synonym, e.g. 'lung cancer' or 'NSCLC') to list only its
children. Each entry includes the number of linked targets.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that each entry includes the number of linked targets, which is useful but not extensive. No contradictions or additional behavioral details.
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?
Three sentences with clear structure: main purpose, definition, optional usage and return info. No fluff, front-loaded.
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?
Adequately covers purpose, usage, and return content for a simple list tool with one optional parameter and an output schema. Does not mention pagination or sorting, but these are minor gaps.
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 only parameter is described in both schema and tool description. The tool description adds value by explaining the parameter's purpose with examples and stating that it can accept id, name, or synonym, which is more than the schema's description.
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?
Clearly states it lists fine-grained oncology sub-indications, defines them as histology- or biomarker-defined subtypes, and distinguishes from sibling tools like mosaic_list_indications by focusing on sub-categories.
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?
Provides explicit context on when to use (to list sub-indications) and how to filter by parent indication with examples. Does not explicitly mention when not to use or alternatives, but the sibling names imply differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_modality_gapsARead-onlyIdempotent
Which compound modalities are explored vs absent for a target.
Modality is a heuristic SMILES classification (small_molecule,
covalent, degrader, macrocycle, peptide_like) over the top-ranked
compounds — partial coverage by design; unclassified is reported
explicitly. Target-level only: protein_family is not populated, so
family-level rollups are unavailable (stated, not silently wrong).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that modality is a heuristic SMILES classification with partial coverage, and that 'unclassified' is reported explicitly. Also notes target-level limitation. Annotations (readOnlyHint, idempotentHint, destructiveHint) are consistent and description adds valuable context beyond annotations.
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?
Two concise paragraphs: first states purpose and defines modality; second covers caveats. Every sentence adds value, no 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 presence of an output schema, the description need not explain returns. It covers purpose, classification methodology, limitations (partial coverage, unclassified, target-level only), sufficient for agent to use 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?
The schema already describes the single parameter (target_or_family) well, including the family-level caveat. The tool description adds context on modality classification but does not enhance parameter meaning further. With high schema coverage, a baseline 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: identifying which compound modalities are explored vs absent for a target. It defines the heuristic classification and lists the modalities, distinguishing it from sibling tools like mosaic_get_target_compounds.
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?
Explicitly states that protein_family is not populated, so family-level queries are unavailable. This guides the agent to use target gene symbols only. However, no alternative tools for family-level modalities are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_org_portfolioARead-onlyIdempotent
Get a pharma/biotech organization's full portfolio.
Shows which drug targets they're active on, their patent filings, therapy area focus, and competitive positioning. Use to understand what a company is working on and where they're investing.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering safety. The description adds that the tool shows targets, patents, therapy area focus, and competitive positioning, but does not disclose other behavioral traits such as result size limits or response structure. It does not contradict annotations.
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 two sentences with no wasted words. It front-loads the main action and then elaborates on output details, making it efficient and easy to parse.
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?
The tool has an output schema, so the description adequately covers returned elements (targets, patents, therapy area, competitive positioning). It does not mention possible size limits or name matching nuances, but given the read-only and idempotent annotations, the description is reasonably complete.
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 already includes a description for the org_name parameter (e.g., 'Organization name or partial name'). The tool description does not add further detail beyond what the schema provides. With schema coverage reported as 0%, the description partially compensates by implying the need for an organization name, but adds no new 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 retrieves a pharma/biotech organization's full portfolio, listing drug targets, patents, therapy areas, and competitive positioning. It uses a specific verb ('Get') and resource ('organization portfolio'), distinguishing it from sibling tools that focus on specific facets like competitive landscape or target profiles.
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 indicates the tool is used to understand what a company is working on and where they are investing, providing clear context. However, it does not explicitly state when to use this versus alternatives like mosaic_competitive_landscape or mosaic_search_targets, nor does it include any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_pathway_contextBRead-onlyIdempotent
Get pathway context for a drug target.
Shows which biological pathways the target participates in, other targets in the same pathways, and protein-protein interactions.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, signaling safe operation. The description adds value by describing output content (pathways, targets, interactions), but does not discuss potential limitations such as data freshness or scope.
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 two concise sentences with no wasted words. The first sentence front-loads the primary purpose, and the second adds relevant detail. Highly efficient.
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 availability of an output schema, the description adequately outlines the scope (pathways, other targets, interactions). It lacks some operational details (e.g., how results are presented) but is sufficient for a straightforward retrieval 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 schema description coverage is 0% per context signals, meaning the tool description should compensate. However, the description does not mention the required 'gene_symbol' parameter or its format, relying entirely on the schema's own description (which is present but not referenced). The description fails to add value beyond schema.
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 it retrieves pathway context for a drug target, listing specific outputs (pathways, other targets, interactions). However, it does not explicitly differentiate from similar sibling tools like mosaic_target_network, which reduces clarity in selecting among 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?
No guidance is provided on when to use this tool versus alternatives (e.g., mosaic_target_network) or exclusions. The description only states what the tool does, leaving the agent to infer appropriate usage contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_regulatory_statusARead-onlyIdempotent
Query openFDA for a drug's approval status, label indications, and adverse events.
Returns: FDA approval dates, brand/generic names, sponsor, product type, route of administration, and a summary count of serious adverse events. Data is live from openFDA — does not require local ingestion.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds that data is 'live from openFDA', implying an external dependency, but does not elaborate on potential rate limits, outages, or behavior changes. This context is useful but not extensive.
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 two sentences: one for purpose, one listing returns, and a final sentence about the data source. It is front-loaded and concise, with no unnecessary words.
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 a single parameter, an output schema, and annotations covering safety and idempotency, the description sufficiently covers purpose, return values, and live nature. It does not need to explain output format since an output schema exists.
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?
Despite schema description coverage being 0% (the main description adds no parameter details), the schema itself includes a description for 'drug_name'. The description does not enhance understanding of the parameter beyond the schema, and given low coverage, it should compensate but does not.
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 queries 'openFDA for a drug's approval status, label indications, and adverse events', specifying the data source and purpose. It lists specific return fields (approval dates, brand/generic names, etc.), distinguishing it from sibling tools like mosaic_clinical_pipeline or mosaic_compare_drugs.
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 mentions 'Data is live from openFDA — does not require local ingestion', hinting at its online nature. However, it does not explicitly state when to use this tool versus alternatives (e.g., for clinical trial results use mosaic_clinical_pipeline) or provide any exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_relation_searchARead-onlyIdempotent
Search the entire knowledge graph for entity pairs with a specific relation type.
Returns the highest-confidence entity pairs for a given relation (e.g. all 'degrades_protac' relations, or all 'resistance_mechanism' edges). Useful for cross-target analysis like "which targets have PROTAC degraders?" or "where are resistance mechanisms documented?"
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds that results are sorted by highest-confidence and searches the entire knowledge graph, which is useful context beyond annotations.
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?
Three concise sentences front-load purpose and use cases. No redundant text; every sentence adds value.
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 presence of output schema and good annotations, the description covers search scope, results ordering, and typical use cases. It is complete for a relation 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 detailed descriptions for all parameters (relation_type with options, limit, min_confidence). The description adds examples of relation types but doesn't significantly enhance understanding beyond schema descriptions.
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 it searches the knowledge graph for entity pairs with a specific relation type, using examples like 'degrades_protac' and 'resistance_mechanism'. It distinguishes from siblings (e.g., mosaic_search_targets for target lookup) by focusing on relations.
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 explicit use cases ('which targets have PROTAC degraders?') and indicates it's for cross-target analysis. It does not explicitly state when not to use or compare to alternatives, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_resistance_bypass_mapARead-onlyIdempotent
Candidate resistance-bypass / escape targets for a given target.
From a deterministic keyword pass over the literature (resistance_relations — GLiREL has no resistance edge type), surfaces targets co-mentioned with the query target in resistance-context abstracts, ranked by a drugability-gap score (strong resistance evidence, low development activity). Hypothesis generator, not evidence — every row carries its source snippet.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint), the description discloses the methodology (deterministic keyword pass, no resistance edge type), ranking logic (drugability-gap score), and that every row carries a source snippet. It clearly sets expectations about reliability.
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 four sentences, front-loaded with purpose, then methodology, ranking, and a note on source snippet. No extraneous information; every sentence adds value.
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 an output schema, the description provides sufficient context on methodology, ranking, and output nature (source snippets). It is complete given the complexity and available structured data.
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 0%, meaning the tool description adds no additional meaning to the parameters. The schema itself has good descriptions for 'target' and 'indication', but the description does not compensate for the low coverage as required.
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 surfaces candidate resistance-bypass targets for a given target, using a deterministic keyword pass over literature and ranking by drugability-gap score. This distinguishes it from sibling tools like mosaic_evidence_map.
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 explicitly notes it is a 'hypothesis generator, not evidence', giving clear usage context. It implies when to use (exploration) but does not explicitly name alternatives or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_search_targetsARead-onlyIdempotent
Search the knowledge graph for drug targets by gene symbol or keyword.
Returns matching targets with basic metadata. Optionally filter by therapeutic indication. Use this as the starting point to explore targets.
Returns: JSON list of matching targets with gene_symbol, name, target_class, and counts of related compounds, patents, and papers.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read-only nature is covered. The description adds that it returns a JSON list with fields (gene_symbol, name, etc.), which is useful but not extensive. No contradictions.
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 five sentences long, front-loaded with purpose and returns. It is well-structured and concise, though the return details could be considered slightly redundant with the output schema.
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?
The description covers both input (query, optional filter) and output (list of targets with specific fields). It provides usage guidance. For a simple search tool, it is largely complete, though it lacks notes on error cases or pagination.
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 descriptions for both parameters are present and detailed with examples (EGFR, kinase, oncology). The description restates the parameter purposes but adds no new information. Given high schema coverage, baseline 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 verb 'Search', the resource 'knowledge graph for drug targets', and the method 'by gene symbol or keyword'. It also distinguishes itself from sibling tools by positioning it as the starting point for exploring targets.
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 explicitly says 'Use this as the starting point to explore targets', providing clear context for when to use. However, it does not explicitly state when not to use it or mention alternative tools for more specific queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_subindication_breakdownARead-onlyIdempotent
Break a target's oncology associations down by sub-indication.
For the given gene, returns the most relevant cancer sub-indications (e.g. EGFR -> NSCLC subtypes vs. colorectal) with the evidence type and confidence of each link. Complements mosaic_get_target_profile with finer indication granularity.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the tool's safe behavior is well-covered. The description adds that outputs include sub-indications with evidence type and confidence, but this is minimal additional context beyond annotations.
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 concise, with a clear two-sentence structure. The first sentence states the core purpose, and the second adds detail and sibling comparison, with no unnecessary words.
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, rich annotations, and an output schema, the description provides sufficient context for a read-only, idempotent tool. It explains the output and relationship to a sibling, though it lacks mention of any prerequisites or limits.
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 single parameter (gene_symbol) is described in the input schema, but the tool description does not add any further explanation or usage hints. With schema description coverage at 0% (per context), the description fails to compensate for lack of param guidance.
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 breaks down oncology associations by sub-indication for a given gene, using a specific verb and resource. It explicitly distinguishes itself from the sibling tool 'mosaic_get_target_profile' by offering finer granularity.
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 explains the tool returns most relevant cancer sub-indications with evidence type and confidence, and explicitly states it complements mosaic_get_target_profile. This provides clear usage context, though it does not list alternative tools or when to avoid using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_synthetic_lethal_whitespaceARead-onlyIdempotent
Find synthetic-lethal whitespace: targets functionally coupled to a developed (drugged) target but themselves undeveloped.
For an anchor target with chemical matter, surfaces partners that share STRING protein-protein interactions and/or Reactome pathways with it yet have < 5 patents and no clinical compound — i.e. strong biological coupling, low competitive activity. Ranked by a whitespace score and returned with a deterministic suggested experimental approach.
Scope: co_functionality_proxy is a PPI + shared-pathway proxy for
co-essentiality, NOT DepMap co-essentiality (DepMap ingestion is a
later sprint). Treat it as a hypothesis generator, not evidence.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the description adds context about the output being a hypothesis generator, ranked by whitespace score, and returning a deterministic experimental approach. This goes beyond the annotations.
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 two paragraphs with a clear front-loaded purpose. It is reasonably concise but includes necessary explanatory detail without being verbose.
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 existence of an output schema and detailed annotations, the description covers purpose, usage limitations, behavioral notes, and output nature completely. No gaps are evident.
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 schema descriptions (provided in the input) already explain parameters like limit, lineage, and approved_target in detail. The description adds no additional parameter meaning beyond the schema, and given the context signals indicate 0% schema coverage, the description fails to compensate by explaining the parameters.
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 finds synthetic-lethal whitespace targets that are functionally coupled to a developed target but undeveloped. It specifies the method (STRING PPI and Reactome pathways) and distinguishes itself from DepMap co-essentiality, differentiating it from sibling tools.
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 context for use (anchor target with chemical matter) and explicitly states the tool is a hypothesis generator, not evidence, and that the proxy is not DepMap co-essentiality. It does not name specific alternative tools but gives clear when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_talent_migrationARead-onlyIdempotent
Who works on a target, recency-weighted, and what else they work on — a talent-flow signal.
Surfaces the most active researchers on a target (publication-based, using the resolved persons table) and, for each, the other targets they've published on over time — i.e. "people who worked on X now also on Y". Patent inventors are not included (not ingested).
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true. The description adds value by specifying the data source (publication-based, resolved persons table) and explicitly excluding patent inventors, which is beyond what annotations provide.
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 two short paragraphs with a clear first sentence summarizing the purpose. Every sentence adds value without 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 presence of an output schema (not shown but stated) and schema descriptions for parameters, the description adequately defines the tool's scope. It does not explain return values, but the output schema handles that.
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 provides descriptions for both parameters (target as gene symbol, lookback_years as history years). The description does not add parameter-specific details beyond the schema's own descriptions, so baseline 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 surfaces researchers on a target and shows their other targets, i.e., talent-flow signal. The verb 'surfaces' and specific resource 'researchers on a target' make the purpose distinct from sibling tools like mosaic_get_target_papers or mosaic_target_network.
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 implies usage: when you want to see 'people who worked on X now also on Y'. It does not explicitly state when not to use or mention alternatives, but the context is clear enough for an agent to select appropriately among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_target_mechanismsARead-onlyIdempotent
Get the mechanism-of-action profile for a drug target.
Returns how compounds interact with this target — inhibitors (covalent, allosteric, competitive), agonists, antagonists, degraders (PROTAC). Also shows semantic edge types: validation evidence, resistance mechanisms, biomarker roles, safety concerns, and clinical efficacy signals.
Extracted by GLiREL from paper and patent abstracts.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, idempotentHint, destructiveHint. Description adds that results are extracted from papers/patents via GLiREL, which discloses the source and limitations.
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?
Two clear paragraphs with front-loaded purpose and systematic listing of output types. No fluff.
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 query tool with output schema and annotations, description covers purpose, extracted data types, and source. Lacks mention of pagination or limits, but acceptable.
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 coverage is 0% per context, but description mentions 'target' implicitly. The parameter gene_symbol is well-described in the schema itself, so description adds minimal value.
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?
Description clearly states it retrieves mechanism-of-action profile for a drug target, listing specific interaction types and semantic edge types, distinguishing it from siblings like mosaic_get_target_compounds or mosaic_evidence_map.
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?
Usage is implied through description of output (mechanisms, edge types), but no explicit guidance on when to use vs. alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_target_networkARead-onlyIdempotent
Get the full knowledge graph network around a drug target.
Returns all connected entities (compounds, diseases, pathways, organizations, interacting proteins) as nodes and edges. Shows how a target connects to the broader drug discovery landscape.
Useful for understanding the full context of a target and finding non-obvious connections.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint. The description adds that the tool returns nodes and edges, which expands on the behavior by specifying the output format. No contradictions.
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?
Three sentences, each serving a purpose: action, output, and utility. No extraneous information, efficient and clear.
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 presence of an output schema and the tool's complexity, the description adequately covers what the tool does and what entities are included. It could specify any limits or defaults, but is sufficient for an agent to understand usage.
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 already provides a clear description for the gene_symbol parameter. The tool description does not add additional parameter information, so it meets the baseline without surpassing it.
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?
Description clearly states the tool retrieves the full knowledge graph network around a drug target, listing specific entity types. This distinguishes it from sibling tools that focus on narrower aspects, like compounds or papers.
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 explains it is useful for understanding full context and finding non-obvious connections. While it doesn't explicitly compare to siblings, the purpose is clear enough that an agent can infer when to use this broad network tool versus more specific ones.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_target_scoresARead-onlyIdempotent
Get computed attractiveness scores for a drug target.
Returns overall target attractiveness, scientific validation, druggability, competitive intensity, and research momentum (0-1 scale) with direction.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, covering key behavioral traits. The description adds that scores are returned on a 0-1 scale with direction, which provides modest additional context. No contradictions.
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 two sentences: the first states core purpose, the second lists return components. It is efficient, front-loaded, and contains no extraneous 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?
Given that an output schema exists and annotations cover safety, the description adequately explains the tool's output. It could mention that only a single target is queried at a time, but the input schema makes that clear. Overall, it is complete for a simple read-only 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?
Schema description coverage is 0% (per context), so the description must compensate for missing parameter details. The description does not mention the input parameter (gene symbol) or its format, leaving the agent reliant solely on the schema. Since it adds no semantics beyond the schema, and coverage is low, the score is low.
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 'attractiveness scores for a drug target'. It lists the five score components (overall attractiveness, scientific validation, druggability, competitive intensity, research momentum) with scale (0-1) and direction, distinguishing it from siblings like mosaic_assess_druggability or mosaic_competitive_landscape which focus on narrower aspects.
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 implies usage when a quick summary of target attractiveness is needed, but does not explicitly state when to use versus alternatives like mosaic_target_validation or mosaic_competitive_landscape. No 'when-not-to-use' guidance is provided, so the agent must infer context from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_target_validationARead-onlyIdempotent
Get experimental validation evidence for a drug target.
Returns genetic (CRISPR/siRNA), in vivo (animal models), clinical (patient data), and pharmacological validation evidence from literature. Includes specific papers with model systems and outcomes.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering safety and idempotency. The description adds value by detailing the types of evidence returned and that it includes papers with model systems and outcomes. However, it does not disclose further behavioral traits (e.g., performance, rate limits). The description is consistent with annotations, no contradiction.
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 three sentences, all front-loaded with the core action. Every sentence carries specific information: the first states the main purpose, the second enumerates evidence types, and the third adds that papers are included with model systems and outcomes. No redundant or irrelevant content.
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 only one input parameter and an output schema exists (so return values are pre-defined), the description sufficiently covers what the tool does and what it returns. It could add more context about limitations (e.g., species, data sources) but is largely complete for an agent to select and invoke appropriately.
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 already provides a description for 'gene_symbol' ('Gene symbol of the target (e.g. 'EGFR', 'BRAF', 'TP53')'), which covers the parameter meaning. The tool description repeats 'drug target' but adds no new constraints or format details. Since schema coverage is high, the description adds minimal marginal 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 verb ('Get') and resource ('experimental validation evidence for a drug target'). It lists specific evidence types (genetic, in vivo, clinical, pharmacological) from literature, distinguishing it from siblings like mosaic_get_target_papers (which likely returns raw papers) and mosaic_get_target_profile (broader summary). The purpose is unambiguous and well-defined.
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 explicit guidance on when to use this tool versus alternatives is provided. While the description implies usage for literature-based validation evidence, it does not mention when not to use it or point to sibling tools for different needs. This lack of context leaves the agent to infer usage without support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_target_wishlist_addAIdempotent
Request a target Mosaic does not yet cover.
Use this when a gene is outside the current covered set so the operator can prioritise it in the next ingestion batch. Idempotent: re-requesting the same gene/email bumps a counter. Also returns the closest covered targets so the user still gets a useful answer.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description matches annotations: idempotentHint=true is corroborated by 'Idempotent: re-requesting the same gene/email bumps a counter.' It also adds that the tool returns closest covered targets, going beyond annotations. No contradictions.
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?
Two concise sentences front-load purpose and usage. Every sentence adds value: purpose, usage scenario, idempotency, and extra return behavior. No wasted words.
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 simple request tool with only one required parameter and an output schema, the description covers purpose, when to use, idempotency, and return value. Sufficient for an AI agent to correctly invoke it.
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 descriptions cover all parameters (gene_symbol, notes, user_email) fully. The description adds behavioral context (idempotency bump) but no extra parameter-level meaning. Baseline 3 due to high schema coverage.
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 requests a target not yet covered by Mosaic. It distinguishes from sibling analysis tools by focusing on submission for future ingestion. The verb 'request' and resource 'target' are specific.
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 explicitly says 'Use this when a gene is outside the current covered set,' providing clear context. It explains the operator's role but lacks explicit when-not-to-use or alternative tools, which are numerous among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_trial_resultsARead-onlyIdempotent
Return real ClinicalTrials.gov records (NCT ID, title, phase, sponsor, status).
Filters by any combination of gene symbol, compound name, or indication.
Unlike mosaic_clinical_pipeline which can synthesize from max_phase, every
row returned here has a real NCT ID and brief title. Use this when you need
to cite specific trials or highlight read-outs.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, and idempotentHint, so the bar is lower. The description adds useful behavioral context: it returns only real records with real NCT IDs and brief titles, which is beyond what annotations provide.
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 three sentences long, each conveying important information: what the tool returns, how it filters, and when to use it. No wasted words.
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 and the presence of an output schema, the description covers the main use case, filtering options, and alternative usage. It could mention the requirement of at least one filter, but that is already in the schema. Overall, it is sufficiently complete.
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 0%, but the description mentions filtering by gene symbol, compound name, or indication, adding some meaning. However, it does not detail the limit or has_results_only parameters, and the schema descriptions already provide detailed explanations. The description adds moderate value.
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 returns real ClinicalTrials.gov records with specific fields (NCT ID, title, phase, sponsor, status). It distinguishes itself from the sibling tool mosaic_clinical_pipeline by emphasizing that all rows have real NCT IDs.
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 explicitly says when to use this tool: 'Use this when you need to cite specific trials or highlight read-outs.' It also contrasts with mosaic_clinical_pipeline, giving clear guidance on alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_watchlist_add_itemAIdempotent
Add a watched entity (target/indication/organization/compound/ relation_type) to a watchlist. Idempotent — re-adding is a no-op.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description confirms idempotency, matching the idempotentHint annotation. No contradictions, but does not disclose additional behaviors like error handling or side effects beyond what annotations already indicate.
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?
Two concise sentences with no wasted words. The first sentence states purpose, the second adds key behavioral detail.
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 annotations and presence of an output schema, the description is largely complete. It could mention that the watchlist must exist, but overall sufficient for 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 description lists the allowed entity types (target, indication, etc.), adding meaning beyond the schema's property descriptions. The idempotency note is also helpful. Schema description coverage is 0%, but property descriptions exist, so description provides supplementary context.
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?
Clearly states it adds a watched entity to a watchlist, listing the specific entity types. Distinguishes from sibling tools like mosaic_watchlist_create (create list) and mosaic_watchlist_get (get list).
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?
Idempotency is mentioned, but no explicit 'when to use' or 'when not to use'. Context implies it's for adding items to existing watchlists, but no prerequisite (e.g., watchlist must exist) is stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_watchlist_createA
Create a watchlist to track targets, indications, orgs, or compounds.
owner_key is the user id, email, or an 'anon:' for anonymous sessions. Returns the new watchlist id to use with mosaic_watchlist_add_item.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate a mutation (readOnlyHint=false) and non-idempotent. The description adds the return value usage and owner_key format, but does not elaborate on side effects, permissions, or limitations beyond the annotations.
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?
Two sentences with no fluff; first sentence states purpose, second provides key parameter guidance and return usage. Excellent front-loading.
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 one required parameter, an output schema, and low complexity, the description adequately covers creation, parameter details, and return value purpose for chaining.
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 provides descriptions for name and owner_key (e.g., 'Owner identifier: user id, email, or anon:<token>'), and the description reinforces the owner_key format, fully clarifying parameter meaning.
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 'Create a watchlist' with specific tracking items (targets, indications, orgs, compounds), distinguishing it from sibling tools like mosaic_watchlist_add_item and mosaic_watchlist_list.
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 explains the required owner_key parameter and the return id for use with mosaic_watchlist_add_item, but does not explicitly compare to alternative tools or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_watchlist_getARead-onlyIdempotent
Get a watchlist with its items and recent detected events.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. Description adds behavioral detail: it returns 'items and recent detected events,' which is beyond annotations. No contradictions.
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?
Single sentence, zero wasted words. Efficiently conveys 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 simple read tool with an output schema (present), the description adequately states what is returned (items and events). However, it could mention that results are filtered by watchlist_id, but that is implied.
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 0% (though the nested field has a brief description in $defs). Description adds no additional meaning for the single required parameter 'watchlist_id' beyond what the schema provides ('Watchlist UUID' with length constraints).
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?
Description clearly states 'Get a watchlist with its items and recent detected events.' Verb 'Get' and resource 'watchlist' are specific, and it distinguishes from siblings like mosaic_watchlist_list (list watchlists) and mosaic_watchlist_add_item (add items) by specifying included content.
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 (e.g., mosaic_watchlist_list for listing all watchlists). No context about prerequisites or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mosaic_watchlist_listARead-onlyIdempotent
List an owner's watchlists with item and recent-event counts.
| Name | Required | Description | Default |
|---|---|---|---|
| params | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, destructiveHint, covering safety. Description adds that results include counts, which is useful. However, no mention of pagination, ordering, or size limits that might affect 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?
Single sentence, front-loaded with action and resource. No unnecessary words. Perfectly sized for a simple list 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 simple input, annotations, and output schema existence, the description covers purpose and return contents. Lacks details on result ordering or limits, but acceptable for a straightforward 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?
Schema description for owner_key is detailed, so baseline is 3. The tool description does not add parameter information, but the schema covers it adequately. No additional meaning provided.
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?
Description clearly states 'List an owner's watchlists with item and recent-event counts', specifying verb, resource, owner context, and output details. Sibling tools like mosaic_watchlist_get and mosaic_watchlist_create indicate distinct purposes, making this unambiguous.
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 explicit guidance on when to use vs alternatives. The description implies it's for listing all watchlists for an owner, but doesn't mention conditions like 'use when you need an overview without specific watchlist details'.
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.
44 tool updates
v1.1.0- First observed
mosaic_assess_druggability - First observed
mosaic_clinical_pipeline - First observed
mosaic_compare_drugs - First observed
mosaic_compare_targets - First observed
mosaic_competitive_landscape - First observed
mosaic_compound_analogs - First observed
mosaic_compound_polypharmacology - First observed
mosaic_compound_selectivity - First observed
mosaic_drug_repurposing - First observed
mosaic_emerging_signals - First observed
mosaic_evidence_map - First observed
mosaic_find_opportunities - First observed
mosaic_find_similar_targets - First observed
mosaic_find_undruggable_targets - First observed
mosaic_get_target_compounds - First observed
mosaic_get_target_papers - First observed
mosaic_get_target_patents - First observed
mosaic_get_target_profile - First observed
mosaic_get_target_structure - First observed
mosaic_indication_landscape - First observed
mosaic_kg_stats - First observed
mosaic_kol_finder - First observed
mosaic_list_indications - First observed
mosaic_list_subindications - First observed
mosaic_modality_gaps - First observed
mosaic_org_portfolio - First observed
mosaic_pathway_context - First observed
mosaic_regulatory_status - First observed
mosaic_relation_search - First observed
mosaic_resistance_bypass_map - First observed
mosaic_search_targets - First observed
mosaic_subindication_breakdown - First observed
mosaic_synthetic_lethal_whitespace - First observed
mosaic_talent_migration - First observed
mosaic_target_mechanisms - First observed
mosaic_target_network - First observed
mosaic_target_scores - First observed
mosaic_target_validation - First observed
mosaic_target_wishlist_add - First observed
mosaic_trial_results - First observed
mosaic_watchlist_add_item - First observed
mosaic_watchlist_create - First observed
mosaic_watchlist_get - First observed
mosaic_watchlist_list
TDQS
Scored across 44 tools
Each tool has a clearly distinct purpose, targeting specific aspects of drug discovery like target assessment, compound analysis, competitive landscape, and clinical trials. The descriptions are detailed enough to avoid confusion, even for similar-sounding tools.
All tools follow the 'mosaic_<verb>_<noun>' or 'mosaic_<noun>_<verb>' pattern in snake_case, with verbs like 'get', 'compare', 'find', 'list', and 'assess'. The naming is predictable and uniform, aiding tool selection.
With 44 tools, the server covers a broad domain thoroughly. While the count is high, each tool serves a specific function without redundancy, and the scope justifies the number. A slight reduction could improve manageability, but it's still well-scoped.
The tool set comprehensively covers drug discovery workflows: target discovery, druggability assessment, compound profiling, competitive intelligence, clinical trials, and more. Gaps are acknowledged and minimal, making the surface complete for its stated purpose.
Maintenance
Related MCP Connectors
Biomedical data: compounds, drug info, and molecular targets
ChEMBL MCP — drug discovery database (EBI).
MCP gateway federating 22 biomedical MCP servers behind one endpoint: gnomAD, ClinVar, HPO, VEP.
Negative results intelligence for drug discovery — query measured failures via MCP.
Related MCP Servers
- FlicenseBqualityDmaintenanceA comprehensive Model Context Protocol (MCP) server providing advanced access to the ChEMBL chemical database.2789-
- FlicenseNot gradedqualityDmaintenanceAn advanced integrated MCP server platform that combines 600+ tools and multiple biomedical databases to enable comprehensive information retrieval across molecules, proteins, genes, and diseases for accelerating therapeutic research.38-
- AlicenseNot gradedqualityCmaintenanceMCP server for biological protein design, folding, and affinity prediction using Refua tools, with optional support for ADMET, clinical simulation, preclinical planning, wet-lab automation, and more.MIT
- AlicenseNot gradedqualityCmaintenanceUnified MCP server providing AI-agent-ready access to AlphaFold, PubMed, ChEMBL, Ensembl, and 37+ scientific databases.MIT