Local DNA and RNA sequence utilities: sequence summaries, reverse complements, translation, candidate ORF enumeration, and motif scanning.
Computase demonstrates solid definition quality with complete input schemas, clear descriptions, and proper tool annotations. All 5 tools have explicit JSON Schema definitions with typed parameters and descriptions. Tool names follow verb_noun convention (summarize, reverse_complement, translate, enumerate, scan). Descriptions are concise (10-60 chars) and action-oriented. However, descriptions are at the lower end of the 10-1024 char baseline (avg 194 chars for A+ tools), and output schemas are not explicitly documented in the tool definitions, they rely on return type hints (SequenceSummary, ReverseComplementResult, etc.) which are not visible in the tool registration. Error handling converts domain exceptions to ToolError but provides minimal recovery guidance. All tools are read-only with proper annotations (readOnlyHint=true, idempotentHint=true, destructiveHint=false).
Enumerate bounded candidate ORFs across all six reading frames.
Compute an IUPAC-aware DNA or RNA reverse complement.
Scan an IUPAC motif on the forward, reverse, or both strands.
Summarize composition, GC uncertainty, and GC skew.
Translate complete codons with a selected NCBI genetic code.
Output schemas not documented in tool definitions. Return types are inferred from Python type hints (SequenceSummary, OrfEnumeration, etc.) but not explicitly declared in the @server.tool() registration. LLMs cannot see what fields to expect without examining implementation.
Tool descriptions are minimal (10-60 chars). Baseline for A+ tools is 194 chars avg. Descriptions lack context on WHEN to use each tool vs alternatives, prerequisites, or what the output represents. E.g., 'Summarize composition, GC uncertainty, and GC skew' does not explain what GC uncertainty/skew are or why an agent would call this.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Error handling provides no recovery guidance. InvalidSequenceError and InvalidParameterError are converted to ToolError(str(error)) but the error messages are not visible in the code. LLMs receive a ToolError but no hint on what to try next (e.g., 'Invalid IUPAC code at position 42. Valid codes: ACGTN...').
Parameter descriptions lack format/constraint details. E.g., 'IUPAC nucleotide pattern' (motif param) does not specify allowed characters, length limits (maxLength=500 is in schema but not description), or examples. LLMs cannot infer valid patterns from the description alone.
No pagination or result-limiting guidance in descriptions. enumerate_orfs and scan_motif accept max_results/max_matches parameters but descriptions do not explain why limits exist or what happens when results exceed the cap. Agents may not understand the trade-off between completeness and performance.