A Model Context Protocol server that provides redirect data lookup functionality
Single tool with basic schema and minimal description. Tool name is verb-prefixed (get_) but overly specific with 'and' conjunction. Description is 60 chars, below the 194-char baseline for production tools. Input schema present with proper types (number, string) and required array, but lacks parameter descriptions entirely. No output schema documented. No error guidance or recovery hints. Naming violates composition principle: 'get_redirects_by_site_id_and_subsite_code' bundles two concerns (site lookup + subsite lookup) into one tool name.
Returns redirect data about a certain site and subsite
Tool name contains 'and' conjunction, signaling multiple responsibilities. Should split into separate tools: get_site_redirects (siteId) and get_subsite_redirects (subsiteCode) or combine into a single semantic action like 'get_redirects' with both params optional.
Input parameters lack descriptions. LLMs cannot infer what 'siteId' and 'subsiteCode' represent, their valid ranges, or formats. Add descriptions like 'siteId: Numeric site identifier (1-999999)' and 'subsiteCode: 2-10 character alphanumeric subsite code'.
No output schema documented. LLMs cannot plan downstream operations or extract fields from the response. Document the structure: e.g., {type: 'object', properties: {redirects: {type: 'array', items: {type: 'object', properties: {source: {type: 'string'}, destination: {type: 'string'}, status: {type: 'string'}}}}}}.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 37 | 2026-07-28+ | v2 |
Tool description is 60 characters, below the 194-char production baseline. Expand to explain WHAT it does, WHEN to use it, and what it returns. E.g., 'Retrieves all HTTP redirects configured for a specific site and subsite. Use this to audit redirect chains, validate redirect targets, or troubleshoot broken redirects. Returns an array of redirect rules with source, destination, and status.'
Error handling is generic. Code throws McpError with 'Error fetching redirects: {error.message}' but provides no recovery guidance. If the API returns 404, should the LLM retry, check the siteId, or call a discovery tool? Add actionable error messages like 'Site not found. Call list_sites() to see available site IDs.'