MCP Server for Enrichr gene set enrichment analysis with multi-library support
The server defines 2 tools with schemas and descriptions. Tool naming follows verb_noun convention (enrichr_analysis, suggest_libraries). Both tools have input schemas with typed parameters and descriptions. However, there are significant gaps: (1) Output schemas are not documented in the visible source, LLMs cannot know what fields to expect from responses. (2) Parameter descriptions are generic and lack specificity on constraints, valid ranges, or expected formats. (3) No error handling guidance is visible, LLMs will not know how to recover from failures like invalid genes or unreachable APIs. (4) The enrichr_analysis tool accepts 'libraries' with a vague description ('Enrichr library names to query') that does not explain which libraries are valid or how to discover them, though suggest_libraries addresses discovery. (5) Default behavior for maxTerms and maxBackground is delegated to server config without clarity on what those defaults are.
Perform gene set enrichment analysis on a list of genes using Enrichr libraries
Suggest Enrichr libraries based on search query or get complete library list
Output schemas are not documented. LLMs cannot plan downstream tool calls or extract required fields without knowing what enrichr_analysis and suggest_libraries return.
Parameter descriptions lack actionable constraints. 'Gene symbols to analyze' does not specify format (HUGO names vs Entrez IDs?), case sensitivity, or what happens if invalid genes are passed. 'Enrichr library names to query' does not enumerate valid libraries or reference the suggest_libraries tool for discovery.
No error handling guidance. Tool descriptions do not explain what happens when Enrichr API is unreachable, genes are invalid, or background is too small (MIN_BACKGROUND_GENES=20 exists in code but not documented in tool).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 64 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 33 | - | v1 |
Default behavior is undocumented for LLM consumption. maxTermsPerLibrary defaults to server config (50 in parseConfig), and background gene size has a MIN threshold (20), but these are not surfaced in tool descriptions or parameter defaults.
Tool composition assumes prior knowledge. enrichr_analysis requires valid library names, but does not mention that suggest_libraries must be called first if the LLM does not know which libraries exist. No dependency hints.