This MCP server delegates tool definitions to upstream module managers (scanpy-mcp, cellrank-mcp, infercnv-mcp, liana-mcp, decoupler-mcp) via composition. The source code in src/scmcp/server/__init__.py shows only tool SELECTION and MODULE AGGREGATION, no actual tool schema definitions, parameter validation, descriptions, or error handling are visible in the provided codebase. Tool descriptions like 'Preprocessing tool from cellrank-mcp module' and 'Visualization tool from cellrank-mcp module' are generic placeholders (12-50 chars) with no parameter guidance. Without access to the upstream module implementations, the actual schemas cannot be verified. The aggregation pattern itself is reasonable for composability, but the lack of schema visibility, parameter documentation, and error handling guidance at this server level is a critical gap.
Cell-cell communication dot plot visualization from liana-mcp module
Visualization tool from infercnv-mcp module
Circle plot visualization from liana-mcp module
Visualization tool from cellrank-mcp module
Copy number variation scoring tool from infercnv-mcp module
Cell-cell communication analysis tool from liana-mcp module
Preprocessing tool from cellrank-mcp module
Copy number variation analysis tool from infercnv-mcp module
No input schemas visible for any of the 12 tools. All tools are delegated to upstream module managers, but no JSON Schema definitions, parameter types, constraints, or descriptions are provided in the scmcp server codebase itself. Cannot verify parameter typing, required/optional status, enums, or defaults.
Tool descriptions are generic module-source placeholders (10-50 chars) with no actionable guidance. E.g. 'Preprocessing tool from cellrank-mcp module' does not explain what data transformation happens, when to use it, expected inputs, or outputs. Descriptions must be 50-200 chars and answer WHAT, WHEN, and WHAT-RETURNS.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 30 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Visualization tool from cellrank-mcp module
Gene position loading utility from infercnv-mcp module
List cell-cell communication methods from liana-mcp module
Ranking aggregation tool from liana-mcp module
No parameter documentation visible. For a bioinformatics server, tools likely accept gene names, cell types, analysis parameters, file paths, and thresholds, but none of these are documented with types, constraints, or examples in the server code.
No error handling guidance. No indication of how tools fail, what errors look like, or what recovery actions an LLM should take. Critical for stateful analysis tools that may fail on invalid data.
Tool names lack action verbs. 'infercnv' (is it a noun or verb?), 'communicate', 'rank_aggregate', and 'circle_plot' do not start with clear action verbs like 'run_', 'create_', 'analyze_', or 'generate_'. LLMs struggle to infer intent from ambiguous names. The rubric baseline shows 90% of A+ tools start with action verbs.
Tool definitions are inferred from module managers (CellrankMCPManager, InferCNVMCPManager, LianaMCPManager, etc.), not directly visible in this server's code. This server does not define tools, it aggregates them. No validation of upstream module schemas or descriptions occurs here.