MCP Server for Cyclic Peptide computational tools using MAT (Molecular Attention Transformer) deep learning. Provides both synchronous and asynchronous APIs for cyclic peptide data preprocessing, permeability prediction across multiple assays (PAMPA, Caco-2, RRCK, MDCK), model training, and batch analysis.
This MCP server provides 9 tools for cyclic peptide computation with basic schema coverage but significant gaps in descriptions, parameter documentation, and error handling. Tool names follow verb_noun convention appropriately (get_*, list_*, predict_*, preprocess_*, cancel_*), but descriptions lack depth and actionability. Parameter schemas are present but descriptions are minimal or generic. The server lacks structured error recovery guidance, result limits documentation, and comprehensive output schema documentation. Based on the code sample provided, descriptions average ~80-120 chars (below the 194 char baseline for A+ tools), and many parameters lack sufficient context for LLM decision-making. Schema coverage is partial, input types are declared but output schemas are undocumented in the tool definitions themselves.
Perform comprehensive batch analysis and visualization of cyclic peptide permeability predictions. Truncated in source code but is a synchronous tool for analysis.
Cancel a running cyclic peptide computation job.
Get log output from a running or completed job.
Get the results of a completed cyclic peptide computation job.
Get the status of a submitted cyclic peptide computation job.
List all submitted cyclic peptide computation jobs.
Predict cyclic peptide membrane permeability across all 4 assays. Fast operation for small datasets - returns results immediately (~8 min for 19 molecules).
Output schemas not documented in tool definitions. Tools return dict/JSON but LLMs cannot see what fields to expect or how to chain results. Missing documented return types violates baseline expectation (100% of A+ tools have documented return types).
Parameter descriptions are generic or incomplete. Examples: 'assay' in predict_single_assay_permeability says 'Assay name (pampa, caco2, rrck, mdck)' but does not explain what assay means or when to choose which one. Missing format/constraint details force LLM guessing.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 20 | - | v1 |
Predict cyclic peptide membrane permeability for a specific assay. Fast operation for small datasets - returns results immediately (~3 min for 19 molecules).
Preprocess and split cyclic peptide datasets for model training. Fast operation - returns results immediately (~15 seconds for small datasets).
No result limit or pagination declared in list_jobs. Tool can return unbounded job list, risking context window exhaustion. Baseline pattern requires explicit pagination or limits with offset/cursor.
Error responses are generic dicts with 'status' and 'error' keys. No actionable recovery guidance. Example: preprocess_cyclic_peptide_data returns {"status": "error", "error": "File not found: {e}"}, does not tell LLM to try another path or validate input first.
analyze_cyclic_peptide_batch description is truncated ('Truncated in source code...') and incomplete. Scoring at 35/100 for description. Cannot assess actual functionality or return value.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) declared. LLM cannot distinguish safe read-only operations from state-changing ones without parsing descriptions manually. This violates Spec Alignment (2026-07-28).
Missing documentation of mutual exclusivity: preprocess_cyclic_peptide_data accepts both 'input_file' and 'assay', unclear which takes precedence or if both must be omitted. Pattern rule: 'If parameters are mutually exclusive, state this in descriptions.'
No validation of numeric ranges declared. Example: batch_size defaults to 32 but no min/max documented. Can LLM pass 0, negative, or 10000? Missing baseline constraint: 'Specify minimum and maximum for numeric parameters.'