Changelog¶
All notable changes to the BioMCP project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.6.2 - 2025-08-05¶
Added¶
- NCI Clinical Trials Search API Integration - Enhanced cancer trial search capabilities:
- Dual source support for trial search/getter tools (ClinicalTrials.gov + NCI)
- NCI API key handling via
NCI_API_KEY
environment variable or parameter - Advanced trial filters: biomarkers, prior therapy, brain metastases acceptance
- 6 New MCP Tools for NCI-specific searches:
nci_organization_searcher
/nci_organization_getter
: Cancer centers, hospitals, research institutionsnci_intervention_searcher
/nci_intervention_getter
: Drugs, devices, procedures, biologicalsnci_biomarker_searcher
: Trial eligibility biomarkers (reference genes, branches)nci_disease_searcher
: NCI's controlled vocabulary of cancer conditions
- OR Query Support: All NCI endpoints support OR queries (e.g., "PD-L1 OR CD274")
- Real-time access to NCI's curated cancer trials database
- Automatic cBioPortal integration for gene searches
- Proper NCI parameter mapping (org_city, org_state_or_province, etc.)
- Comprehensive error handling for Elasticsearch limits
Changed¶
- Enhanced unified search router to properly handle NCI domains
- Trial search/getter tools now accept
source
parameter ("clinicaltrials" or "nci") - Improved domain-specific search logic for query+domain combinations
Added CLI Commands¶
# Organization search/get
biomcp organization search "MD Anderson" --api-key YOUR_KEY
biomcp organization get 12345 --api-key YOUR_KEY
# Intervention search/get
biomcp intervention search pembrolizumab --type Drug --api-key YOUR_KEY
biomcp intervention get 67890 --api-key YOUR_KEY
# Biomarker search
biomcp biomarker search --name "PD-L1" --api-key YOUR_KEY
# Disease search
biomcp disease search melanoma --source nci --api-key YOUR_KEY
# Enhanced trial commands with source selection
biomcp trial search --condition melanoma --source nci --api-key YOUR_KEY
biomcp trial get NCT04280705 --source nci --api-key YOUR_KEY
Documentation¶
- Added NCI tutorial with example prompts:
docs/tutorials/nci-prompts.md
- Created API parameter reference:
docs/api-changes/nci-api-parameters.md
- Updated CLAUDE.md with NCI usage instructions and parameter notes
- Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/
0.6.0 - 2025-08-01¶
Added¶
- Streamable HTTP Transport Support (#45) - MCP specification version 2025-03-26:
- Enabled FastMCP's native
/mcp
endpoint for Streamable HTTP transport - MCP specification compliant transport (2025-03-26 spec) via FastMCP 1.12.3+
- CLI support via
biomcp run --mode streamable_http
(uses native FastMCP implementation) - Full backward compatibility with legacy SSE endpoints
- Cloudflare Worker updated with POST /mcp route for full spec compliance
- Simplified worker implementation to leverage FastMCP's built-in transport support
- Added comprehensive integration tests for streamable HTTP functionality
- New transport protocol documentation guide
Changed¶
- Enhanced CLI with transport modes (stdio, worker, streamable_http)
- Added configurable host and port options for HTTP-based transports
- Simplified server modes by removing redundant
http
mode - Cloudflare Worker now supports both GET and POST methods on /mcp endpoint
- Pinned FastMCP dependency to version range >=1.12.3,<2.0.0 for stability
- Standardized documentation file naming to lowercase with hyphens for consistency
Migration Notes¶
- From SSE to Streamable HTTP: Update your server startup from
--mode worker
to--mode streamable_http
- Docker deployments: Ensure you're using
--host 0.0.0.0
for proper container networking - Cloudflare Workers: The worker now automatically handles both transport types on
/mcp
- See the new Transport Protocol Guide for detailed migration instructions
0.5.0 - 2025-08-01¶
Added¶
- BioThings Integration for real-time biomedical data access:
- New MCP Tools (3 tools added, total now 17):
gene_getter
: Query MyGene.info for gene information (symbols, names, summaries)drug_getter
: Query MyChem.info for drug/chemical data (formulas, indications, mechanisms)disease_getter
: Query MyDisease.info for disease information (definitions, synonyms, ontologies)
- Unified Search/Fetch Enhancement:
- Added
gene
,drug
,disease
as new searchable domains alongside article, trial, variant - Integrated into unified search syntax:
search(domain="gene", keywords=["BRAF"])
- Query language support:
gene:BRAF
,drug:pembrolizumab
,disease:melanoma
- Full fetch support:
fetch(domain="drug", id="DB00945")
- Added
- Clinical Trial Enhancement:
- Automatic disease synonym expansion for trial searches
- Real-time synonym lookup from MyDisease.info
- Example: searching for "GIST" automatically includes "gastrointestinal stromal tumor"
- Smart Caching & Performance:
- Batch operations for multiple gene/drug lookups
- Intelligent caching with TTL (gene: 24h, drug: 48h, disease: 72h)
- Rate limiting to respect API guidelines
Changed¶
- Trial search now expands disease terms by default (disable with
expand_synonyms=False
) - Enhanced error handling for BioThings API responses
- Improved network reliability with automatic retries
0.4.6 - 2025-07-09¶
Added¶
- MkDocs documentation deployment
0.4.5 - 2025-07-09¶
Added¶
- Unified search and fetch tools following OpenAI MCP guidelines
- Additional variant sources (TCGA/GDC, 1000 Genomes) enabled by default in fetch operations
- Additional article sources (bioRxiv, medRxiv, Europe PMC) enabled by default in search operations
Changed¶
- Consolidated 10 separate MCP tools into 2 unified tools (search and fetch)
- Updated response formats to comply with OpenAI MCP specifications
Fixed¶
- OpenAI MCP compliance issues to enable integration
0.4.4 - 2025-07-08¶
Added¶
- Performance Optimizations:
- Connection pooling with event loop lifecycle management (30% latency reduction)
- Parallel test execution with pytest-xdist (5x faster test runs)
- Request batching for cBioPortal API calls (80% fewer API calls)
- Smart caching with LRU eviction and fast hash keys (10x faster cache operations)
- Major performance improvements achieving ~3x faster test execution (120s → 42s)
Fixed¶
- Non-critical ASGI errors suppressed
- Performance issues in article_searcher
0.4.3 - 2025-07-08¶
Added¶
- Complete HTTP centralization and improved code quality
- Comprehensive constants module for better maintainability
- Domain-specific handlers for result formatting
- Parameter parser for robust input validation
- Custom exception hierarchy for better error handling
Changed¶
- Refactored domain handlers to use static methods for better performance
- Enhanced type safety throughout the codebase
- Refactored complex functions to meet code quality standards
Fixed¶
- Type errors in router.py for full mypy compliance
- Complex functions exceeding cyclomatic complexity thresholds
0.4.2 - 2025-07-07¶
Added¶
- Europe PMC DOI support for article fetching
- Pagination support for Europe PMC searches
- OR logic support for variant notation searches (e.g., R173 vs Arg173 vs p.R173)
Changed¶
- Enhanced variant notation search capabilities
0.4.1 - 2025-07-03¶
Added¶
- AlphaGenome as an optional dependency to predict variant effects on gene regulation
- Per-request API key support for AlphaGenome integration
- AI predictions to complement existing database lookups
Security¶
- Comprehensive sanitization in Cloudflare Worker to prevent sensitive data logging
- Secure usage in hosted environments where users provide their own keys
0.4.0 - 2025-06-27¶
Added¶
- cBioPortal Integration for article searches:
- Automatic gene-level mutation summaries when searching with gene parameters
- Mutation-specific search capabilities (e.g., BRAF V600E, SRSF2 F57*)
- Dynamic cancer type resolution using cBioPortal API
- Smart caching and rate limiting for optimal performance
0.3.3 - 2025-06-20¶
Changed¶
- Release workflow updates
0.3.2 - 2025-06-20¶
Changed¶
- Release workflow updates
0.3.1 - 2025-06-20¶
Fixed¶
- Build and release process improvements
0.3.0 - 2025-06-20¶
Added¶
- Expanded search capabilities
- Integration tests for MCP server functionality
- Utility modules for gene validation, mutation filtering, and request caching
0.2.1 - 2025-06-19¶
Added¶
- Remote MCP policies
0.2.0 - 2025-06-17¶
Added¶
- Sequential thinking tool for systematic problem-solving
- Session-based thinking to replace global state
- Extracted router handlers to reduce complexity
Changed¶
- Replaced global state in thinking module with session management
Removed¶
- Global state from sequential thinking module
Fixed¶
- Race conditions in sequential thinking with concurrent usage
0.1.11 - 2025-06-12¶
Added¶
- Advanced eligibility criteria filters to clinical trial search
0.1.10 - 2025-05-21¶
Added¶
- OAuth support on the Cloudflare worker via Stytch
0.1.9 - 2025-05-17¶
Fixed¶
- Refactor: Bump minimum Python version to 3.10
0.1.8 - 2025-05-14¶
Fixed¶
- Article searcher fixes
0.1.7 - 2025-05-07¶
Added¶
- Remote OAuth support
0.1.6 - 2025-05-05¶
Added¶
- Updates to handle cursor integration
0.1.5 - 2025-05-01¶
Added¶
- Updates to smithery yaml to account for object types needed for remote calls
- Documentation and Lzyank updates
0.1.3 - 2025-05-01¶
Added¶
- Health check functionality to assist with API call issues
- System resources and network & environment information gathering
- Remote MCP capability via Cloudflare using SSE
0.1.2 - 2025-04-18¶
Added¶
- Researcher persona and BioMCP v0.1.2 release
- Deep Researcher Persona blog post
- Researcher persona video demo
0.1.1 - 2025-04-14¶
Added¶
- Claude Desktop and MCP Inspector tutorials
- Improved Claude Desktop Tutorial for BioMCP
- Troubleshooting guide and blog post
Fixed¶
- Log tool names as comma separated string
- Server hanging issues
- Error responses in variant count check
0.1.0 - 2025-04-08¶
Added¶
- Initial release of BioMCP
- PubMed/PubTator3 article search integration
- ClinicalTrials.gov trial search integration
- MyVariant.info variant search integration
- CLI interface for direct usage
- MCP server for AI assistant integration
- Cloudflare Worker support for remote deployment
- Comprehensive test suite with pytest-bdd
- GenomOncology introduction
- Blog post on AI-assisted clinical trial search
- MacOS troubleshooting guide
Security¶
- API keys properly externalized
- Input validation using Pydantic models
- Safe string handling in all API calls