An advanced MCP Server for accessing and analyzing clinical evidence data, with flexible search options to support precision medicine and oncology research.
The server defines a single clinical evidence search tool with a well-structured schema and comprehensive parameter documentation. The tool name 'search_clinical_evidence' follows verb_noun conventions and is clear in intent. All 7 parameters have proper type definitions and detailed descriptions with contextual examples. However, the output is returned as a plain string (markdown-formatted report) rather than structured JSON, which limits downstream tool chaining and makes output unpredictable for agent planning. The tool lacks explicit error handling guidance, destructive/readonly hints, and pagination support despite the potential for large result sets. The description is strong (350+ chars) and explains the use case well, exceeding the 10-1024 char range but not excessively. Parameter descriptions are well-crafted with examples and constraints (e.g., enum-like values for evidence_type and evidence_direction), but they are embedded as free-form strings rather than formal enum constraints.
Perform a flexible search for clinical evidence using combinations of filters such as disease, therapy, molecular profile, phenotype, evidence type, and direction. This flexible search system allows you to tailor your query based on the data needed for research or clinical decision-making. It returns a detailed report that includes summary statistics, a top 10 evidence listing, citation sources, and a disclaimer.
Output schema not documented, tool returns unstructured markdown string instead of structured JSON. This prevents agents from reliably parsing results, chaining downstream tools, and planning multi-step workflows. LLMs must parse free-text output, which is error-prone and wastes tokens.
Evidence type and direction constraints are documented as free-form string descriptions ('PREDICTIVE', 'DIAGNOSTIC', etc.) rather than formal enum values in the schema. This allows hallucinated values (e.g., 'SPECULATIVE') that the API may not support, requiring LLMs to guess valid options.
No pagination support (page/offset, limit, next_cursor) despite tool description indicating 'top 10 evidence listing' hardcoded in output. Large result sets may be truncated silently or cause context window exhaustion. Tool accepts no limit parameter, forcing server-side hardcoding.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 68 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling guidance. Tool returns 'No evidence found' string on empty results, but provides no actionable recovery guidance (e.g., 'Try broadening filters' or 'Call list_available_diseases first'). No indication of how to handle API failures, timeouts, or invalid filter combinations.
Tool is marked as READ_ONLY risk, but lacks explicit readonly annotation/hint in the tool definition. Tool annotations (readOnlyHint, destructiveHint, idempotentHint) are not present in the fastmcp tool registration.
Tool operates on external CivicAPIClient without documented timeout, rate limit, or circuit-breaker behavior. Hung API calls will block the agent indefinitely with no recovery guidance.