MCP server for BV-BRC (Bacterial and Viral Bioinformatics Research Center) providing tools for genomic data querying, workspace management, group operations, RAG-based helpdesk search, and agent-based chat interfaces.
This server has moderate definition quality with significant gaps. 8 tools are present with mixed schema completeness. Tools have descriptions but many lack sufficient detail for LLM optimal selection. Schemas are present but parameter validation details are sparse. The agent_chat tool is particularly problematic, it accepts a free-form 'context' JSON string instead of structured parameters, violating constrained-input patterns. Group tools (list_genome_groups, get_genome_group, etc.) have good names and descriptions but minimal parameter validation. The server lacks output schema documentation across all tools, which is critical for agents planning downstream calls. Error handling and recovery guidance are not evident in the visible code. Security concerns exist around token handling, the 'token' parameter appears optional on several tools, suggesting possible fallback to server-side auth, but this is not documented. Overall, the server is functional but would benefit from stricter schema validation, output documentation, and error recovery patterns.
Unified agent chat tool that dispatches to one of five agent back-ends (data, service, workspace, helpdesk, analysis) based on the agent_type parameter. Each agent runs an LLM loop with tool calling.
Create a feature group in the user's workspace. The group is always created in the user's default Feature Groups folder. You only need to provide the name and the feature IDs.
Create a genome group in the user's workspace. The group is always created in the user's default Genome Groups folder. You only need to provide the name and the genome IDs.
Get feature IDs from a feature group by name. The group is looked up by name automatically — you do NOT need to provide a full workspace path. The system searches the user's default Feature Groups folder and will find the group even if the name casing doesn't match exactly.
Get genome IDs from a genome group by name. The group is looked up by name automatically — you do NOT need to provide a full workspace path. The system searches the user's default Genome Groups folder and will find the group even if the name casing doesn't match exactly.
No output schemas documented for any tool. Agents cannot plan downstream calls or validate returned data. This violates the response-shaper and tool-chain patterns, agents are flying blind.
agent_chat accepts 'context' as a free-form JSON string instead of structured parameters. This violates constrained-input and tool-description patterns. The LLM cannot validate what keys/values are expected in context without reverse-engineering from examples.
Example values ('83332.12,511145.12,386585.17' for genome IDs; 'fig|83332.12.peg.1,fig|83332.12.peg.2' for feature IDs) appear in tool descriptions. LLMs frequently reuse example values literally rather than adapting to context, leading to incorrect tool calls with dummy data.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | <=2025-11-25 | v2 |
| 2026-03-09 | D | 55 | - | v1 |
Search BV-BRC help guides/FAQs and return a short grounded usage answer. Use this for 'how-to' guidance, feature usage, and support-style questions about the BV-BRC website and applications.
List all feature groups in the user's workspace. Returns a list of feature group names, paths, and creation dates. Use this tool to discover which feature groups exist before retrieving their contents with get_feature_group.
List all genome groups in the user's workspace. Returns a list of genome group names, paths, and creation dates. Use this tool to discover which genome groups exist before retrieving their contents with get_genome_group.
create_genome_group and create_feature_group accept parameters as comma-separated strings rather than arrays. This forces agents to construct strings manually instead of receiving structured arrays from prior tools, breaking the tool-chain pattern and increasing error likelihood.
Token parameter is marked optional with description 'Optional authentication token (auto-provided)' but the auto-provision mechanism and fallback behavior are completely undocumented. This creates ambiguity about whether the tool uses server-side secret injection or agent-provided tokens.
No error handling or recovery guidance documented. If a tool fails (e.g., genome group not found, permission denied, invalid ID format), the agent has no way to know whether to retry, ask the user, or try an alternative approach. This violates the recovery-guide pattern.
No idempotency guidance. create_genome_group and create_feature_group will likely fail if called twice with the same name/IDs. The tool descriptions do not say whether this is retryable, what happens, or how to handle idempotency, critical for agents that retry on ambiguous failures.