Skip to content

Tags: Matvey-Kuk/biomcp

Tags

v0.6.7

Toggle v0.6.7's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
genomoncology#63 (genomoncology#64)

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.6

Toggle v0.6.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix Windows compatibility and update Docker documentation (genomoncol…

…ogy#59)

* Fix Windows compatibility and update Docker documentation

  - Fix fcntl import error on Windows (Issue genomoncology#57)
    - Added conditional import with try/except for fcntl module
    - File locking now only applies on Unix systems
    - Windows users get full functionality without file locking
    - Refactored cache functions to reduce complexity

  - Add Docker build instructions to README (Issue genomoncology#58)
    - Added `docker build` command before `docker run`
    - Clarifies that biomcp:latest is a local build, not from Docker Hub

* Fix Windows compatibility and update Docker documentation

  - Fix fcntl import error on Windows (Issue genomoncology#57)
    - Added conditional import with try/except for fcntl module
    - File locking now only applies on Unix systems
    - Windows users get full functionality without file locking
    - Refactored cache functions to reduce complexity

  - Add Docker build instructions to README (Issue genomoncology#58)
    - Added `docker build` command before `docker run`
    - Clarifies that biomcp:latest is a local build, not from Docker Hub

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.5

Toggle v0.6.5's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add comprehensive OpenFDA integration with 12 new tools (genomoncolog…

…y#56)

* feat: Add comprehensive OpenFDA integration with 12 new tools

  Implements full OpenFDA API integration providing access to FDA regulatory data
  for drug safety, device events, approvals, recalls, and shortages.

  New Modules:
  - adverse_events.py: Search/retrieve drug adverse event reports (FAERS)
  - device_events.py: Search/retrieve device malfunction reports (MAUDE)
  - drug_labels.py: Search/retrieve FDA drug labels (SPL)
  - drug_approvals.py: Search/retrieve drug approval records (Drugs@FDA)
  - drug_recalls.py: Search/retrieve drug recall notices (Enforcement)
  - drug_shortages.py: Search/retrieve drug shortage data with 24hr caching

  Key Features:
  - 12 new MCP tools (6 searchers + 6 getters) for AI agent integration
  - Flexible API key support via parameter, env var (OPENFDA_API_KEY), or none
  - Smart device search with wildcard matching (no hardcoding)
  - Robust handling of polymorphic FDA fields (string/list types)
  - Genomics device filtering for precision medicine focus
  - Rate limiting: 40 req/min (no key) or 240 req/min (with key)

  CLI Enhancements:
  - New 'biomcp openfda' command with 6 subcommands
  - All commands support --api-key parameter
  - Pagination support with --page and --limit

  Documentation:
  - Added openfda-prompts.md with 30+ example prompts
  - Updated MCP tools reference (now 35 tools total)
  - Comprehensive API key usage examples
  - Integration patterns for complex safety analyses

  Testing & Quality:
  - All quality checks passing (ruff, mypy, pre-commit)
  - MCP integration tests updated for new tool count
  - API key priority handling verified
  - Endpoint registry updated with FDA endpoints

  This integration enables comprehensive FDA regulatory data access for
  drug safety assessment, post-market surveillance, and treatment planning
  in precision oncology workflows.

* feat: Add comprehensive OpenFDA integration with 12 new tools

  Implements full OpenFDA API integration providing access to FDA regulatory data
  for drug safety, device events, approvals, recalls, and shortages.

  New Modules:
  - adverse_events.py: Search/retrieve drug adverse event reports (FAERS)
  - device_events.py: Search/retrieve device malfunction reports (MAUDE)
  - drug_labels.py: Search/retrieve FDA drug labels (SPL)
  - drug_approvals.py: Search/retrieve drug approval records (Drugs@FDA)
  - drug_recalls.py: Search/retrieve drug recall notices (Enforcement)
  - drug_shortages.py: Search/retrieve drug shortage data with 24hr caching

  Key Features:
  - 12 new MCP tools (6 searchers + 6 getters) for AI agent integration
  - Flexible API key support via parameter, env var (OPENFDA_API_KEY), or none
  - Smart device search with wildcard matching (no hardcoding)
  - Robust handling of polymorphic FDA fields (string/list types)
  - Genomics device filtering for precision medicine focus
  - Rate limiting: 40 req/min (no key) or 240 req/min (with key)

  CLI Enhancements:
  - New 'biomcp openfda' command with 6 subcommands
  - All commands support --api-key parameter
  - Pagination support with --page and --limit

  Documentation:
  - Added openfda-prompts.md with 30+ example prompts
  - Updated MCP tools reference (now 35 tools total)
  - Comprehensive API key usage examples
  - Integration patterns for complex safety analyses

  Testing & Quality:
  - All quality checks passing (ruff, mypy, pre-commit)
  - MCP integration tests updated for new tool count
  - API key priority handling verified
  - Endpoint registry updated with FDA endpoints

  This integration enables comprehensive FDA regulatory data access for
  drug safety assessment, post-market surveillance, and treatment planning
  in precision oncology workflows.

* feat: Add comprehensive OpenFDA integration with 12 new tools

  Implements full OpenFDA API integration providing access to FDA regulatory data
  for drug safety, device events, approvals, recalls, and shortages.

  New Modules:
  - adverse_events.py: Search/retrieve drug adverse event reports (FAERS)
  - device_events.py: Search/retrieve device malfunction reports (MAUDE)
  - drug_labels.py: Search/retrieve FDA drug labels (SPL)
  - drug_approvals.py: Search/retrieve drug approval records (Drugs@FDA)
  - drug_recalls.py: Search/retrieve drug recall notices (Enforcement)
  - drug_shortages.py: Search/retrieve drug shortage data with 24hr caching

  Key Features:
  - 12 new MCP tools (6 searchers + 6 getters) for AI agent integration
  - Flexible API key support via parameter, env var (OPENFDA_API_KEY), or none
  - Smart device search with wildcard matching (no hardcoding)
  - Robust handling of polymorphic FDA fields (string/list types)
  - Genomics device filtering for precision medicine focus
  - Rate limiting: 40 req/min (no key) or 240 req/min (with key)

  CLI Enhancements:
  - New 'biomcp openfda' command with 6 subcommands
  - All commands support --api-key parameter
  - Pagination support with --page and --limit

  Documentation:
  - Added openfda-prompts.md with 30+ example prompts
  - Updated MCP tools reference (now 35 tools total)
  - Comprehensive API key usage examples
  - Integration patterns for complex safety analyses

  Testing & Quality:
  - All quality checks passing (ruff, mypy, pre-commit)
  - MCP integration tests updated for new tool count
  - API key priority handling verified
  - Endpoint registry updated with FDA endpoints

  This integration enables comprehensive FDA regulatory data access for
  drug safety assessment, post-market surveillance, and treatment planning
  in precision oncology workflows.

* feat: Add comprehensive OpenFDA integration with 12 new tools

  Implements full OpenFDA API integration providing access to FDA regulatory data
  for drug safety, device events, approvals, recalls, and shortages.

  New Modules:
  - adverse_events.py: Search/retrieve drug adverse event reports (FAERS)
  - device_events.py: Search/retrieve device malfunction reports (MAUDE)
  - drug_labels.py: Search/retrieve FDA drug labels (SPL)
  - drug_approvals.py: Search/retrieve drug approval records (Drugs@FDA)
  - drug_recalls.py: Search/retrieve drug recall notices (Enforcement)
  - drug_shortages.py: Search/retrieve drug shortage data with 24hr caching

  Key Features:
  - 12 new MCP tools (6 searchers + 6 getters) for AI agent integration
  - Flexible API key support via parameter, env var (OPENFDA_API_KEY), or none
  - Smart device search with wildcard matching (no hardcoding)
  - Robust handling of polymorphic FDA fields (string/list types)
  - Genomics device filtering for precision medicine focus
  - Rate limiting: 40 req/min (no key) or 240 req/min (with key)

  CLI Enhancements:
  - New 'biomcp openfda' command with 6 subcommands
  - All commands support --api-key parameter
  - Pagination support with --page and --limit

  Documentation:
  - Added openfda-prompts.md with 30+ example prompts
  - Updated MCP tools reference (now 35 tools total)
  - Comprehensive API key usage examples
  - Integration patterns for complex safety analyses

  Testing & Quality:
  - All quality checks passing (ruff, mypy, pre-commit)
  - MCP integration tests updated for new tool count
  - API key priority handling verified
  - Endpoint registry updated with FDA endpoints

  This integration enables comprehensive FDA regulatory data access for
  drug safety assessment, post-market surveillance, and treatment planning
  in precision oncology workflows.

* feat: Add comprehensive OpenFDA integration with 12 new tools

  Implements full OpenFDA API integration providing access to FDA regulatory data
  for drug safety, device events, approvals, recalls, and shortages.

  New Modules:
  - adverse_events.py: Search/retrieve drug adverse event reports (FAERS)
  - device_events.py: Search/retrieve device malfunction reports (MAUDE)
  - drug_labels.py: Search/retrieve FDA drug labels (SPL)
  - drug_approvals.py: Search/retrieve drug approval records (Drugs@FDA)
  - drug_recalls.py: Search/retrieve drug recall notices (Enforcement)
  - drug_shortages.py: Search/retrieve drug shortage data with 24hr caching

  Key Features:
  - 12 new MCP tools (6 searchers + 6 getters) for AI agent integration
  - Flexible API key support via parameter, env var (OPENFDA_API_KEY), or none
  - Smart device search with wildcard matching (no hardcoding)
  - Robust handling of polymorphic FDA fields (string/list types)
  - Genomics device filtering for precision medicine focus
  - Rate limiting: 40 req/min (no key) or 240 req/min (with key)

  CLI Enhancements:
  - New 'biomcp openfda' command with 6 subcommands
  - All commands support --api-key parameter
  - Pagination support with --page and --limit

  Documentation:
  - Added openfda-prompts.md with 30+ example prompts
  - Updated MCP tools reference (now 35 tools total)
  - Comprehensive API key usage examples
  - Integration patterns for complex safety analyses

  Testing & Quality:
  - All quality checks passing (ruff, mypy, pre-commit)
  - MCP integration tests updated for new tool count
  - API key priority handling verified
  - Endpoint registry updated with FDA endpoints

  This integration enables comprehensive FDA regulatory data access for
  drug safety assessment, post-market surveillance, and treatment planning
  in precision oncology workflows.

* feat: Add comprehensive OpenFDA integration with 12 new tools

  Implements full OpenFDA API integration providing access to FDA regulatory data
  for drug safety, device events, approvals, recalls, and shortages.

  New Modules:
  - adverse_events.py: Search/retrieve drug adverse event reports (FAERS)
  - device_events.py: Search/retrieve device malfunction reports (MAUDE)
  - drug_labels.py: Search/retrieve FDA drug labels (SPL)
  - drug_approvals.py: Search/retrieve drug approval records (Drugs@FDA)
  - drug_recalls.py: Search/retrieve drug recall notices (Enforcement)
  - drug_shortages.py: Search/retrieve drug shortage data with 24hr caching

  Key Features:
  - 12 new MCP tools (6 searchers + 6 getters) for AI agent integration
  - Flexible API key support via parameter, env var (OPENFDA_API_KEY), or none
  - Smart device search with wildcard matching (no hardcoding)
  - Robust handling of polymorphic FDA fields (string/list types)
  - Genomics device filtering for precision medicine focus
  - Rate limiting: 40 req/min (no key) or 240 req/min (with key)

  CLI Enhancements:
  - New 'biomcp openfda' command with 6 subcommands
  - All commands support --api-key parameter
  - Pagination support with --page and --limit

  Documentation:
  - Added openfda-prompts.md with 30+ example prompts
  - Updated MCP tools reference (now 35 tools total)
  - Comprehensive API key usage examples
  - Integration patterns for complex safety analyses

  Testing & Quality:
  - All quality checks passing (ruff, mypy, pre-commit)
  - MCP integration tests updated for new tool count
  - API key priority handling verified
  - Endpoint registry updated with FDA endpoints

  This integration enables comprehensive FDA regulatory data access for
  drug safety assessment, post-market surveillance, and treatment planning
  in precision oncology workflows.

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.4

Toggle v0.6.4's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Documentation Restructure (genomoncology#55)

* ## Overview
  Implemented comprehensive documentation restructuring plan to create a cleaner, two-level navigation hierarchy organized around user journeys rather than technical categories.

  ## New Structure
  - **Getting Started**: Quick setup guides for CLI, Claude Desktop, and API keys
  - **Concepts**: Core BioMCP philosophy including Deep Researcher persona and Think tool
  - **User Guides**: Consolidated references for CLI, MCP tools, and IDE integration
  - **How-to Guides**: Task-oriented guides for common workflows
  - **Backend Services Reference**: Technical details for all integrated APIs
  - **Developer Guides**: Deployment, testing, and contribution guidelines

  ## Major Changes

  ### Content Consolidation
  - Merged 4 separate CLI docs (articles, health, trials, variants) into single comprehensive guide
  - Consolidated 3 policy documents into unified policies.md
  - Combined multiple API references into organized backend services section
  - Integrated scattered tutorials into relevant guides

  ### New Documentation
  - Created comprehensive guides by merging related content:
    - `02-the-deep-researcher-persona.md`: Philosophy + methodology + implementation
    - `03-sequential-thinking-with-the-think-tool.md`: Extracted critical Think tool usage
    - `01-command-line-interface.md`: All CLI commands in one reference
    - `02-mcp-tools-reference.md`: Complete MCP tools documentation
    - `06-search-nci-organizations-and-interventions.md`: New NCI features guide

  ### Content Migration
  - Moved blog post "What is BioMCP?" to concepts section
  - Integrated AlphaGenome setup into backend reference + how-to guide
  - Moved Python SDK and Cursor IDE docs into IDE integration guide
  - Preserved specialized tutorials in "Examples and Prompts" section

  ### Navigation Improvements
  - Shallow two-level hierarchy for easier navigation
  - Logical grouping by user intent and workflow
  - Clear progression from beginner to advanced topics
  - Removed deep nesting and redundant categories

  ## Technical Details
  - Fixed all broken internal links after reorganization
  - Updated image paths for moved content
  - Created Python scripts for automated cleanup and link fixing
  - Ensured clean documentation build with no warnings

  ## Files Changed
  - Modified: mkdocs.yml (complete navigation restructure)
  - Modified: docs/index.md (updated links)
  - Created: 15+ new consolidated guide files
  - Created: cleanup and migration scripts
  - Moved/Merged: 30+ documentation files

  This restructuring significantly improves documentation discoverability and provides a better user experience while maintaining all existing content.

* ⏺ Restructure and improve documentation for production readiness

  - Simplified navigation structure from 10 to 5 top-level sections
  - Removed expandable/collapsible navigation in favor of clean sections display
  - Fixed code block horizontal scrolling issues across all documentation
  - Converted grid card layouts to stacked format for better readability
  - Removed all emojis from headers for professional appearance
  - Made documentation more concise, especially the overview page
  - Fixed broken anchor links and embedded ASCII diagrams inline
  - Removed unnecessary sections (migrations, breaking changes, feedback)
  - Synced outdated docs changelog with main CHANGELOG.md (v0.4.0 → v0.6.2)
  - Added CSS improvements for code block wrapping and responsive design
  - Improved overall user experience with cleaner, flatter navigation

  The documentation now provides optimal onboarding, clear navigation paths,
  and professional presentation suitable for production deployment.

* ⏺ Restructure and improve documentation for production readiness

  - Simplified navigation structure from 10 to 5 top-level sections
  - Removed expandable/collapsible navigation in favor of clean sections display
  - Fixed code block horizontal scrolling issues across all documentation
  - Converted grid card layouts to stacked format for better readability
  - Removed all emojis from headers for professional appearance
  - Made documentation more concise, especially the overview page
  - Fixed broken anchor links and embedded ASCII diagrams inline
  - Removed unnecessary sections (migrations, breaking changes, feedback)
  - Synced outdated docs changelog with main CHANGELOG.md (v0.4.0 → v0.6.2)
  - Added CSS improvements for code block wrapping and responsive design
  - Improved overall user experience with cleaner, flatter navigation

  The documentation now provides optimal onboarding, clear navigation paths,
  and professional presentation suitable for production deployment.

* ⏺ Restructure and improve documentation for production readiness

  - Simplified navigation structure from 10 to 5 top-level sections
  - Removed expandable/collapsible navigation in favor of clean sections display
  - Fixed code block horizontal scrolling issues across all documentation
  - Converted grid card layouts to stacked format for better readability
  - Removed all emojis from headers for professional appearance
  - Made documentation more concise, especially the overview page
  - Fixed broken anchor links and embedded ASCII diagrams inline
  - Removed unnecessary sections (migrations, breaking changes, feedback)
  - Synced outdated docs changelog with main CHANGELOG.md (v0.4.0 → v0.6.2)
  - Added CSS improvements for code block wrapping and responsive design
  - Improved overall user experience with cleaner, flatter navigation

  The documentation now provides optimal onboarding, clear navigation paths,
  and professional presentation suitable for production deployment.

* ⏺ Restructure and improve documentation for production readiness

  - Simplified navigation structure from 10 to 5 top-level sections
  - Removed expandable/collapsible navigation in favor of clean sections display
  - Fixed code block horizontal scrolling issues across all documentation
  - Converted grid card layouts to stacked format for better readability
  - Removed all emojis from headers for professional appearance
  - Made documentation more concise, especially the overview page
  - Fixed broken anchor links and embedded ASCII diagrams inline
  - Removed unnecessary sections (migrations, breaking changes, feedback)
  - Synced outdated docs changelog with main CHANGELOG.md (v0.4.0 → v0.6.2)
  - Added CSS improvements for code block wrapping and responsive design
  - Improved overall user experience with cleaner, flatter navigation

  The documentation now provides optimal onboarding, clear navigation paths,
  and professional presentation suitable for production deployment.

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.3

Toggle v0.6.3's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
hot fix for tests (genomoncology#54)

* hot fix for tests

* hot fix for tests

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.2

Toggle v0.6.2's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Clinicaltrialsapi (genomoncology#53)

* Add NCI Clinical Trials Search API integration

  Integrates the National Cancer Institute's Clinical Trials Search API to provide
  enhanced cancer trial search capabilities alongside existing ClinicalTrials.gov support.

  ## New Features

  ### Core NCI Integration
  - Added dual source support for trial search/getter (ClinicalTrials.gov + NCI)
  - Implemented NCI API key handling via environment variable or parameter
  - Added advanced trial filters: biomarkers, prior therapy, brain metastases

  ### New NCI-Specific Tools (6 MCP tools + CLI commands)
  - **Organizations**: Search/get cancer centers, hospitals, research institutions
  - **Interventions**: Search/get drugs, devices, procedures, biologicals
  - **Biomarkers**: Search trial eligibility biomarkers (reference genes, branches)
  - **Diseases**: Search NCI's controlled vocabulary of cancer conditions

  ### API Features
  - Real-time access to NCI's curated cancer trials database
  - Support for all NCI API parameters and filters
  - Automatic cBioPortal integration for gene searches
  - Proper parameter mapping (org_city, org_state_or_province, etc.)
  - Comprehensive error handling for Elasticsearch limits

  ### 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

  ### CLI Integration
  ```bash
  # New commands
  biomcp organization search "MD Anderson" --api-key YOUR_KEY
  biomcp intervention search pembrolizumab --type Drug --api-key YOUR_KEY
  biomcp biomarker search --name "PD-L1" --api-key YOUR_KEY
  biomcp disease search melanoma --source nci --api-key YOUR_KEY

  # Enhanced trial commands
  biomcp trial search --condition melanoma --source nci --api-key YOUR_KEY
  biomcp trial get NCT04280705 --source nci --api-key YOUR_KEY

  Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

* Add NCI Clinical Trials Search API integration

  Integrates the National Cancer Institute's Clinical Trials Search API to provide
  enhanced cancer trial search capabilities alongside existing ClinicalTrials.gov support.

  ## New Features

  ### Core NCI Integration
  - Added dual source support for trial search/getter (ClinicalTrials.gov + NCI)
  - Implemented NCI API key handling via environment variable or parameter
  - Added advanced trial filters: biomarkers, prior therapy, brain metastases

  ### New NCI-Specific Tools (6 MCP tools + CLI commands)
  - **Organizations**: Search/get cancer centers, hospitals, research institutions
  - **Interventions**: Search/get drugs, devices, procedures, biologicals
  - **Biomarkers**: Search trial eligibility biomarkers (reference genes, branches)
  - **Diseases**: Search NCI's controlled vocabulary of cancer conditions

  ### API Features
  - Real-time access to NCI's curated cancer trials database
  - Support for all NCI API parameters and filters
  - Automatic cBioPortal integration for gene searches
  - Proper parameter mapping (org_city, org_state_or_province, etc.)
  - Comprehensive error handling for Elasticsearch limits

  ### 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

  ### CLI Integration
  ```bash
  # New commands
  biomcp organization search "MD Anderson" --api-key YOUR_KEY
  biomcp intervention search pembrolizumab --type Drug --api-key YOUR_KEY
  biomcp biomarker search --name "PD-L1" --api-key YOUR_KEY
  biomcp disease search melanoma --source nci --api-key YOUR_KEY

  # Enhanced trial commands
  biomcp trial search --condition melanoma --source nci --api-key YOUR_KEY
  biomcp trial get NCT04280705 --source nci --api-key YOUR_KEY

  Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

* Add NCI Clinical Trials Search API integration

  Integrates the National Cancer Institute's Clinical Trials Search API to provide
  enhanced cancer trial search capabilities alongside existing ClinicalTrials.gov support.

  ## New Features

  ### Core NCI Integration
  - Added dual source support for trial search/getter (ClinicalTrials.gov + NCI)
  - Implemented NCI API key handling via environment variable or parameter
  - Added advanced trial filters: biomarkers, prior therapy, brain metastases

  ### New NCI-Specific Tools (6 MCP tools + CLI commands)
  - **Organizations**: Search/get cancer centers, hospitals, research institutions
  - **Interventions**: Search/get drugs, devices, procedures, biologicals
  - **Biomarkers**: Search trial eligibility biomarkers (reference genes, branches)
  - **Diseases**: Search NCI's controlled vocabulary of cancer conditions

  ### API Features
  - Real-time access to NCI's curated cancer trials database
  - Support for all NCI API parameters and filters
  - Automatic cBioPortal integration for gene searches
  - Proper parameter mapping (org_city, org_state_or_province, etc.)
  - Comprehensive error handling for Elasticsearch limits

  ### 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

  ### CLI Integration
  ```bash
  # New commands
  biomcp organization search "MD Anderson" --api-key YOUR_KEY
  biomcp intervention search pembrolizumab --type Drug --api-key YOUR_KEY
  biomcp biomarker search --name "PD-L1" --api-key YOUR_KEY
  biomcp disease search melanoma --source nci --api-key YOUR_KEY

  # Enhanced trial commands
  biomcp trial search --condition melanoma --source nci --api-key YOUR_KEY
  biomcp trial get NCT04280705 --source nci --api-key YOUR_KEY

  Requires NCI API key from: https://clinicaltrialsapi.cancer.gov/

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.1

Toggle v0.6.1's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Dependency fix (genomoncology#52)

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.6.0

Toggle v0.6.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Streamable (genomoncology#49)

* initial streamable

* initial streamable

* initial streamable working

* feat: Complete streamable HTTP transport implementation with event resumption

  Implements full MCP-compliant streamable HTTP transport protocol (spec 2025-03-26) with
  production-ready features including Last-Event-ID support for connection resumability.

  Transport Layer:
  - Add streamable HTTP mode to CLI server (`biomcp run --mode streamable_http`)
  - Enable FastMCP's native /mcp endpoint for streamable HTTP transport
  - Support configurable host/port options for HTTP-based transports
  - Maintain backward compatibility with legacy SSE endpoints

  Event Resumption:
  - Implement in-memory event store with configurable retention (1000 events/stream, 15min TTL)
  - Add Last-Event-ID header support for SSE connection recovery
  - Automatic event replay on client reconnection
  - Background cleanup task to manage memory usage
  - Full test coverage with 6 comprehensive test scenarios

  Cloudflare Worker:
  - Update worker to support both GET and POST methods on /mcp endpoint
  - Add session ID handling and event streaming support
  - Improve error handling and request proxying

  Documentation:
  - Add comprehensive streamable HTTP deployment guide
  - Document event resumption usage and client implementation
  - Update tutorials with HTTP transport examples
  - Add remote server configuration for Claude Desktop

  Testing:
  - Add event store unit tests covering all resumption scenarios
  - Test event limits, cleanup, multi-stream support
  - Verify UUID-based event IDs and replay functionality

  This provides a robust, scalable deployment option with automatic recovery from network
  interruptions, making BioMCP suitable for production cloud deployments.

* feat: Complete streamable HTTP transport implementation with event resumption

  Implements full MCP-compliant streamable HTTP transport protocol (spec 2025-03-26) with
  production-ready features including Last-Event-ID support for connection resumability.

  Transport Layer:
  - Add streamable HTTP mode to CLI server (`biomcp run --mode streamable_http`)
  - Enable FastMCP's native /mcp endpoint for streamable HTTP transport
  - Support configurable host/port options for HTTP-based transports
  - Maintain backward compatibility with legacy SSE endpoints

  Event Resumption:
  - Implement in-memory event store with configurable retention (1000 events/stream, 15min TTL)
  - Add Last-Event-ID header support for SSE connection recovery
  - Automatic event replay on client reconnection
  - Background cleanup task to manage memory usage
  - Full test coverage with 6 comprehensive test scenarios

  Cloudflare Worker:
  - Update worker to support both GET and POST methods on /mcp endpoint
  - Add session ID handling and event streaming support
  - Improve error handling and request proxying

  Documentation:
  - Add comprehensive streamable HTTP deployment guide
  - Document event resumption usage and client implementation
  - Update tutorials with HTTP transport examples
  - Add remote server configuration for Claude Desktop

  Testing:
  - Add event store unit tests covering all resumption scenarios
  - Test event limits, cleanup, multi-stream support
  - Verify UUID-based event IDs and replay functionality

  This provides a robust, scalable deployment option with automatic recovery from network
  interruptions, making BioMCP suitable for production cloud deployments.

* feat: Complete streamable HTTP transport implementation with event resumption

  Implements full MCP-compliant streamable HTTP transport protocol (spec 2025-03-26) with
  production-ready features including Last-Event-ID support for connection resumability.

  Transport Layer:
  - Add streamable HTTP mode to CLI server (`biomcp run --mode streamable_http`)
  - Enable FastMCP's native /mcp endpoint for streamable HTTP transport
  - Support configurable host/port options for HTTP-based transports
  - Maintain backward compatibility with legacy SSE endpoints

  Event Resumption:
  - Implement in-memory event store with configurable retention (1000 events/stream, 15min TTL)
  - Add Last-Event-ID header support for SSE connection recovery
  - Automatic event replay on client reconnection
  - Background cleanup task to manage memory usage
  - Full test coverage with 6 comprehensive test scenarios

  Cloudflare Worker:
  - Update worker to support both GET and POST methods on /mcp endpoint
  - Add session ID handling and event streaming support
  - Improve error handling and request proxying

  Documentation:
  - Add comprehensive streamable HTTP deployment guide
  - Document event resumption usage and client implementation
  - Update tutorials with HTTP transport examples
  - Add remote server configuration for Claude Desktop

  Testing:
  - Add event store unit tests covering all resumption scenarios
  - Test event limits, cleanup, multi-stream support
  - Verify UUID-based event IDs and replay functionality

  This provides a robust, scalable deployment option with automatic recovery from network
  interruptions, making BioMCP suitable for production cloud deployments.

* feat: Complete streamable HTTP transport implementation with event resumption

  Implements full MCP-compliant streamable HTTP transport protocol (spec 2025-03-26) with
  production-ready features including Last-Event-ID support for connection resumability.

  Transport Layer:
  - Add streamable HTTP mode to CLI server (`biomcp run --mode streamable_http`)
  - Enable FastMCP's native /mcp endpoint for streamable HTTP transport
  - Support configurable host/port options for HTTP-based transports
  - Maintain backward compatibility with legacy SSE endpoints

  Event Resumption:
  - Implement in-memory event store with configurable retention (1000 events/stream, 15min TTL)
  - Add Last-Event-ID header support for SSE connection recovery
  - Automatic event replay on client reconnection
  - Background cleanup task to manage memory usage
  - Full test coverage with 6 comprehensive test scenarios

  Cloudflare Worker:
  - Update worker to support both GET and POST methods on /mcp endpoint
  - Add session ID handling and event streaming support
  - Improve error handling and request proxying

  Documentation:
  - Add comprehensive streamable HTTP deployment guide
  - Document event resumption usage and client implementation
  - Update tutorials with HTTP transport examples
  - Add remote server configuration for Claude Desktop

  Testing:
  - Add event store unit tests covering all resumption scenarios
  - Test event limits, cleanup, multi-stream support
  - Verify UUID-based event IDs and replay functionality

  This provides a robust, scalable deployment option with automatic recovery from network
  interruptions, making BioMCP suitable for production cloud deployments.

* feat: Complete streamable HTTP transport implementation with event resumption

  Implements full MCP-compliant streamable HTTP transport protocol (spec 2025-03-26) with
  production-ready features including Last-Event-ID support for connection resumability.

  Transport Layer:
  - Add streamable HTTP mode to CLI server (`biomcp run --mode streamable_http`)
  - Enable FastMCP's native /mcp endpoint for streamable HTTP transport
  - Support configurable host/port options for HTTP-based transports
  - Maintain backward compatibility with legacy SSE endpoints

  Event Resumption:
  - Implement in-memory event store with configurable retention (1000 events/stream, 15min TTL)
  - Add Last-Event-ID header support for SSE connection recovery
  - Automatic event replay on client reconnection
  - Background cleanup task to manage memory usage
  - Full test coverage with 6 comprehensive test scenarios

  Cloudflare Worker:
  - Update worker to support both GET and POST methods on /mcp endpoint
  - Add session ID handling and event streaming support
  - Improve error handling and request proxying

  Documentation:
  - Add comprehensive streamable HTTP deployment guide
  - Document event resumption usage and client implementation
  - Update tutorials with HTTP transport examples
  - Add remote server configuration for Claude Desktop

  Testing:
  - Add event store unit tests covering all resumption scenarios
  - Test event limits, cleanup, multi-stream support
  - Verify UUID-based event IDs and replay functionality

  This provides a robust, scalable deployment option with automatic recovery from network
  interruptions, making BioMCP suitable for production cloud deployments.

* feat: Complete streamable HTTP transport implementation with event resumption

  Implements full MCP-compliant streamable HTTP transport protocol (spec 2025-03-26) with
  production-ready features including Last-Event-ID support for connection resumability.

  Transport Layer:
  - Add streamable HTTP mode to CLI server (`biomcp run --mode streamable_http`)
  - Enable FastMCP's native /mcp endpoint for streamable HTTP transport
  - Support configurable host/port options for HTTP-based transports
  - Maintain backward compatibility with legacy SSE endpoints

  Event Resumption:
  - Implement in-memory event store with configurable retention (1000 events/stream, 15min TTL)
  - Add Last-Event-ID header support for SSE connection recovery
  - Automatic event replay on client reconnection
  - Background cleanup task to manage memory usage
  - Full test coverage with 6 comprehensive test scenarios

  Cloudflare Worker:
  - Update worker to support both GET and POST methods on /mcp endpoint
  - Add session ID handling and event streaming support
  - Improve error handling and request proxying

  Documentation:
  - Add comprehensive streamable HTTP deployment guide
  - Document event resumption usage and client implementation
  - Update tutorials with HTTP transport examples
  - Add remote server configuration for Claude Desktop

  Testing:
  - Add event store unit tests covering all resumption scenarios
  - Test event limits, cleanup, multi-stream support
  - Verify UUID-based event IDs and replay functionality

  This provides a robust, scalable deployment option with automatic recovery from network
  interruptions, making BioMCP suitable for production cloud deployments.

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.5.0

Toggle v0.5.0's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
Add BioThings integration for gene, drug, and disease data access (ge…

…nomoncology#48)

* Add BioThings integration for gene, drug, and disease data access

  This commit adds comprehensive integration with the BioThings API suite (MyGene.info,
  MyChem.info, MyDisease.info) to provide real-time access to biomedical databases.

  ## Core Integration Features

  ### 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")`

* Add BioThings integration for gene, drug, and disease data access

  This commit adds comprehensive integration with the BioThings API suite (MyGene.info,
  MyChem.info, MyDisease.info) to provide real-time access to biomedical databases.

  ## Core Integration Features

  ### 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")`

* Add BioThings integration for gene, drug, and disease data access

  This commit adds comprehensive integration with the BioThings API suite (MyGene.info,
  MyChem.info, MyDisease.info) to provide real-time access to biomedical databases.

  ## Core Integration Features

  ### 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")`

* Add BioThings integration for gene, drug, and disease data access

  This commit adds comprehensive integration with the BioThings API suite (MyGene.info,
  MyChem.info, MyDisease.info) to provide real-time access to biomedical databases.

  ## Core Integration Features

  ### 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")`

* Add BioThings integration for gene, drug, and disease data access

  This commit adds comprehensive integration with the BioThings API suite (MyGene.info,
  MyChem.info, MyDisease.info) to provide real-time access to biomedical databases.

  ## Core Integration Features

  ### 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")`

---------

Co-authored-by: Justin Yeakley <justin@genomoncology.com>

v0.4.6

Toggle v0.4.6's commit message

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
This commit addresses all OpenAI MCP compliance issues to enable inte…

…gration (genomoncology#44)

with OpenAI's systems.

  ## Key Changes

  ### 1. Search Tool Compliance
  - Made `call_benefit` optional (was required) in search tool
  - `query` is now the ONLY required parameter as per OpenAI spec
  - Preserved call_benefit functionality for BigQuery logging and LLM accuracy

  ### 2. Fetch Tool Compliance
  - Changed parameter from `id_` to `id` (OpenAI expects exact name)
  - Made `domain` optional with intelligent auto-detection
  - `id` is now the ONLY required parameter as per OpenAI spec
  - Added domain auto-detection logic:
    - NCT* → trial
    - DOIs (contains "/" with numeric prefix) → article
    - Pure numeric → article (PMID)
    - rs* or HGVS notation → variant

  ### 3. OpenAPI Specification
  - Added version field to FastMCP initialization (required by OpenAI)
  - Ensures valid OpenAPI 3.1.0 spec is served in worker mode

  ### 4. CI/CD Improvements
  - Separated integration tests from unit tests in CI pipeline
  - Integration tests now run in optional job (allowed to fail)
  - Prevents flaky test failures from blocking deployments
  - Added pytest markers and configuration for test categorization

  ### 5. Documentation Updates
  - Added comprehensive testing guide
  - Updated Claude Desktop tutorial with new optional parameters
  - Created detailed OpenAI MCP compliance report
  - Added testing documentation to mkdocs navigation

  ## Testing
  - All 438 tests passing (including new domain auto-detection tests)
  - Quality checks pass (linting, formatting, type checking)
  - Integration tests separated to improve CI reliability

  ## Breaking Changes
  None - all changes are backward compatible. Existing code will continue
  to work as before.

  Fixes OpenAI MCP validation errors:
  - "search action query parameter is not the only required"
  - "fetch action does not have an id parameter"
  - "fetch action id parameter is not the only required"

Co-authored-by: Justin Yeakley <justin@genomoncology.com>