MCP server providing Bio-OS workflow management and Docker image building functionality
This MCP server has significant structural and documentation gaps. While 17 tools are registered with names and basic descriptions, most lack adequate parameter documentation, error handling guidance, and output schema clarity. Many tool descriptions are generic or incomplete, and several critical tools expose secrets as parameters (ak, sk) rather than using server-side injection. The schema quality is inconsistent: some tools have detailed input schemas (e.g., search_dockstore_workflows) while others are sparse (e.g., validate_wdl). Tool naming is reasonable (verb-noun convention mostly followed), but composition issues exist, multiple tools operate on credentials that should be handled via environment variables. Output documentation is nearly absent across all tools. Error handling is not evident in visible code. This server would benefit from systematic documentation, parameter refactoring to remove secrets, and output schema definition.
Build workflow input JSON from a template and sample data with validation
Check the status of an IES application
Query the import status of a workflow in a workspace
Create a new IES (Interactive Execution Service) application in a workspace
Create a new Bio-OS workspace
Delete a workflow submission from Bio-OS
Download workflows from Dockstore based on organization and workflow name. Maintains original directory structure of workflow files.
Secrets exposed as tool parameters (ak, sk credentials in 11+ tools). These should be injected server-side via environment variables, not passed by the LLM caller. Agent call traces log all parameters, leaking credentials into logs and prompt history.
Output schemas not documented. No visible tool response structure definitions. LLMs cannot plan downstream operations or know what fields to extract without documented return types. Example: what does search_dockstore_workflows return? A list of objects? What fields?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 32 | - | v1 |
Export Bio-OS workspace metadata and information
Get event logs for an IES application
Get the inputs template/schema for a workflow
Get comprehensive workspace profile data including workflows, submissions, data models, and resources
List workflow submissions in a workspace with optional filtering and pagination
List workflows in a workspace with optional filtering and pagination
Search for workflows on Dockstore using Elasticsearch. Supports complex multi-field searches, AND/OR boolean operations, wildcard matching, and full sentence search.
Submit a workflow for execution in Bio-OS workspace with Cromwell inputs
Upload files to Bio-OS workspace S3 storage
Validate WDL file syntax and structure using Cromwell womtool
Error handling not evident in visible code. Tools provide no recovery guidance. If validate_wdl fails, what should the LLM try next? If delete_submission fails, is it retryable? No error classification or actionable guidance visible.
Destructive tool (delete_submission) lacks confirmation/dry-run pattern. No evidence of a confirmation step before deletion. Agents make mistakes, irreversible operations should support a confirmation_required response or dry_run parameter.
Parameter descriptions generic or missing context. Example: 'Workspace name' (in create_workspace) lacks guidance on naming constraints (length, allowed characters). 'Access Key' is vague, no hint that it defaults to environment variable, or format expected. Agents lack actionable constraints.
No pagination guidance in list tools. list_workflows and list_submissions accept page_number and page_size, but no maximum limits documented. Can an LLM request 10,000 items per page? No cap mentioned. Results could balloon context window.
Tool descriptions under-specify the domain. Example: validate_wdl says 'Validate WDL file syntax and structure using Cromwell womtool' but does not explain: What does 'valid' mean? Does it check only syntax or also semantics? What format is the return, error messages, a pass/fail boolean, or detailed JSON? This forces LLMs to guess.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Protocol supports these via MCP 2026-07-28 spec. Tools like delete_submission should carry destructiveHint=true. This helps agents reason about side effects and retry safety.