AI-Native Sexual Health Research Agent - searches PubMed, ClinicalTrials.gov, Europe PMC, and OpenAlex for biomedical research with MCP server support
DeepBoner defines 8 tools (with significant duplication: search_pubmed, search_clinical_trials, and search_preprints each appear twice with slightly different descriptions). All tools are READ_ONLY biomedical search utilities with reasonable descriptions (140-250 chars) and documented parameters. However, critical issues prevent higher scoring: (1) Duplicate tool definitions create confusion and waste agent reasoning cycles, search_pubmed appears at tools.py line 1 and again at tools.py line 5 with identical functionality but slightly different descriptions; (2) Parameters lack type constraints (enums) for 'domain' and 'query' fields, LLMs can pass arbitrary strings; (3) Output schemas are completely undocumented, no indication of what fields each search returns, breaking the agent's ability to chain results to downstream tools; (4) No parameter descriptions explain expected format, range, or valid values beyond basic strings; (5) Error handling is absent from tool definitions, no guidance on retryable vs. fatal failures, or what to do when a search returns zero results; (6) Tool descriptions contain no dependency hints or usage sequencing guidance; (7) No evidence of pagination support or result limits enforcement despite 'max_results' parameters suggesting large result sets; (8) The tool composition lacks strategic clarity, four separate search tools (pubmed, clinical_trials, europe_pmc, all_sources) should be consolidated or their distinctions more clearly documented to prevent the LLM from making redundant calls. Descriptions are adequate for basic discovery but fall short of production quality. Parameter validation is minimal.
Get the full list of collected evidence for the bibliography. Use this tool when generating the final report to get the complete list of references.
Search all biomedical sources simultaneously. Performs parallel search across PubMed, ClinicalTrials.gov, and Europe PMC. This is the most comprehensive search option for biomedical research.
Search ClinicalTrials.gov for clinical trial data. Searches the ClinicalTrials.gov database for trials matching your query. Returns trial titles, phases, status, conditions, and interventions.
Search ClinicalTrials.gov for clinical studies. Use this tool to find ongoing and completed clinical trials for potential interventions.
Search Europe PMC for preprints and papers. Searches Europe PMC, which includes bioRxiv, medRxiv, and peer-reviewed content. Useful for finding cutting-edge preprints and open access papers.
Search Europe PMC for preprints and papers. Use this tool to find the latest research including preprints from bioRxiv, medRxiv, and peer-reviewed papers.
Duplicate tool definitions: search_pubmed, search_clinical_trials, and search_preprints each registered twice with nearly identical implementations. This forces the LLM to reason about why two versions exist, wastes tokens on disambiguation, and introduces risk of wrong version selection.
No output schemas documented. Tool definitions show input parameters but provide zero guidance on return value structure. An LLM cannot know what fields to extract (e.g., does search_pubmed return 'title', 'authors', 'pmid', 'abstract'?) and cannot chain results to downstream tools. Required by pattern:tool.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 50 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | 1.23.0+ | v1 |
Search PubMed for biomedical research papers. Use this tool to find peer-reviewed scientific literature about drugs, diseases, mechanisms of action, and clinical studies.
Search PubMed for peer-reviewed biomedical literature. Searches NCBI PubMed database for scientific papers matching your query. Returns titles, authors, abstracts, and citation information.
Parameters lack type constraints and validation rules. 'query' accepts any string with no examples or format guidance. 'domain' defaults to 'sexual_health' but no enum constraint prevents LLM from passing arbitrary values. Parameters need explicit enums (e.g., domain: ['sexual_health', 'general']) and format descriptions (e.g., 'query: string, 50 - 500 characters, lowercase keywords separated by spaces').
No error handling guidance. Tool definitions do not specify what happens on zero results, API timeouts, invalid queries, or permission failures. Descriptions lack recovery instructions (e.g., 'If zero results, try a broader query or use search_all_sources'). Pattern requires error classification and recovery guidance.
Tool composition strategy unclear. Four search tools exist (pubmed, clinical_trials, europe_pmc, all_sources) with overlapping functionality. Descriptions do not clarify when to use each. Should an agent call search_pubmed then search_clinical_trials separately, or use search_all_sources once? This ambiguity invites redundant calls and wastes tokens.
Pagination and result limiting not addressed. Parameters include 'max_results' (1 - 50 default 10) and 'max_per_source' (1 - 20 default 5), but no indication of whether pagination is supported (e.g., offset, cursor, next_token). Large result sets may exceed context windows. Tool descriptions should clarify pagination strategy and recommend limits.
get_bibliography has zero input parameters documented and extremely vague description: 'Get the full list of collected evidence for the bibliography.' How is 'collected evidence' determined? Is it persisted across calls? Does order matter? Is filtering supported? This breaks the idempotency and composability requirements.
No parameter descriptions explain expected format or constraints beyond type. E.g., 'max_results' shows type integer but no hint on valid range, units, or defaults. 'domain' defaults to 'sexual_health' but description never says what happens if omitted or if other values are valid. Baseline for A+ tools: 100% of params have descriptions ≥50 chars explaining context and constraints.