An MCP server that provides weather information, web research with RAG (Retrieval-Augmented Generation), and Neo4j database query capabilities. Integrates with OpenWeatherMap, Firecrawl, Ragie, and OpenRouter APIs.
Server has 4 tools with basic schemas and descriptions, but significant quality gaps. Tool names follow verb_noun convention (get_*, research_*, run_*), which is good. However, descriptions are minimal (10-50 chars), parameter descriptions are sparse or missing, and output schemas are entirely undocumented. Error handling returns generic strings without recovery guidance. The research_topic and run_cypher_query tools lack input validation and security considerations. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles. Code shows incomplete implementation (research_topic and run_cypher_query bodies are truncated/missing).
Get the current weather for a specific city.
Get the weather forecast for a specific city.
Search the web and generate a grounded answer.
Execute a Cypher query on the Neo4j database.
Output schemas completely undocumented. All 4 tools return strings with no structured schema definition. LLMs cannot parse results or chain downstream calls. Violates pattern:tool and pattern:response-shaper.
Parameter descriptions missing or trivial. 'query' in research_topic has no description. 'days' in get_forecast lacks range/constraint info (states 'default 3, max 5' in description but no min/max schema). Violates pattern:tool-description.
run_cypher_query accepts arbitrary Cypher queries with no input validation, sanitization, or permission checks. WRITE risk marked but no confirmation step, dry-run, or audit logging. Violates pattern:tool-gateway and pattern:permission-gate.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Error handling returns generic strings ('Error fetching weather: ...', 'An error occurred: ...') with no recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal. Violates pattern:recovery-guide.
Tool annotations missing. get_current_weather and get_forecast are READ_ONLY but lack readOnlyHint. run_cypher_query is WRITE but lacks destructiveHint. No idempotentHint on any tool. Violates current MCP spec (2026-07-28) tool annotation requirement.