MCP server providing tools for IRIS database interaction, vector search (RAG), weather information, and utility functions
This MCP server exhibits significant definition quality gaps. Of 12 tools, most have descriptions under 100 characters (well below the 194-char baseline), many parameters lack descriptions entirely, and no tool explicitly documents its output schema. Tool naming is inconsistent: some follow verb_noun conventions (add, get_secret_word, get_iris_version) while others are vague (iris_RAG_search, dashboard_info, process_info). Parameters like 'msg' in get_release_notes and 'order_id' in check_order_status lack domain context. None of the tools declare their output structure. Error handling is non-existent in visible code, no recovery guidance, retryability classification, or invalid input messaging. The RAG-related tools (get_release_notes, iris_RAG_search) have overlapping purposes and no clear differentiation. No tool declares permissions or security boundaries.
Add two numbers
Check the status of an order with the given order ID
Provide Management Portal Dashboard information
Get Current weather
Get IRIS Version details
Provide Production Status, production details
IRIS Vector Search (RAG). Ingest and perform vector search on IRIS 2025.1 Release Notes
Six tools (iris_RAG_search, get_production_details, start_production, stop_production, dashboard_info, process_info) have NO visible input schema and descriptions under 60 characters.
Redundant/overlapping RAG tools: get_release_notes and iris_RAG_search both perform vector search on release notes. LLM cannot distinguish when to use each. Per pattern:tool, each tool must have exactly one clear purpose.
Generic tool names undermine LLM intent inference: 'dashboard_info', 'process_info' do not follow verb_noun convention. Names like 'get_dashboard_info' or 'describe_process_status' would be self-documenting. Current names force LLM to read descriptions (which are also weak).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Get a secret word from a predefined list
Provide IRIS Release Notes details,IRIS 2025.1 Release Notes, IRIS Latest Release Notes, Release Notes
Provide IRIS Process information
Help to Start production
Agent to Stop currently running Production
Parameter 'msg' in get_release_notes is ambiguous, does it expect a question, a keyword, or a full passage? Description is generic. Per pattern:tool-description, parameters must clarify expected format and content domain.
No tool explicitly documents its output schema. Baseline from rubric: 100% of A+ tools have documented return types. LLM cannot predict what fields to extract or which downstream tools accept the output.
No error handling guidance. If get_release_notes fails to ingest vector data, or get_current_weather hits a rate limit, tool returns bare errors with no recovery path. Per pattern:recovery-guide, errors must tell LLM what to do next.
start_production and stop_production are destructive operations (WRITE risk). No confirmation step, dry-run option, or idempotency guarantee. Per pattern:confirmation-request, irreversible operations should support confirmation.
No tool declares permissions or scope. Per pattern:scope-declaration, tools that modify state (start_production, stop_production) should declare required permissions (e.g. 'write:production'). This enables least-privilege agent configs.
Baseline tool descriptions are 194 chars (p10=34, p90=392). This server's descriptions range 30 - 110 chars (median ~55), well below optimal. Descriptions lack context on WHEN to use each tool or its output format.