SEO Inspector and Schema Validator MCP for Cursor - Analyzes web pages for SEO issues and validates structured data
SEO Inspector MCP exhibits critical gaps in tool definition quality. Of the 2 tools present, neither has adequate descriptions, parameter details, or output schemas. The analyzeSEO tool has parameters with minimal guidance ('HTML content to analyze (optional)' lacks format/constraint details). The getConsoleLogs tool has NO parameters documented despite the schema showing an empty object. Neither tool documents its output structure, return fields, or error handling. The source code shows tool definitions exist in mcp-tools.js but the actual server implementation (server.js) is incomplete in the provided excerpt, making it impossible to verify schema validation, error categorization, or recovery guidance. Tool names lack the clarity pattern established in production systems: 'analyzeSEO' is vague (does it crawl? validate? score?), and 'getConsoleLogs' doesn't explain what logs, from where, or why. Based on visible definitions, both tools score below 40 individually.
Analyzes HTML files for SEO issues and provides recommendations.
Get console logs from the browser
analyzeSEO tool description is inadequate (26 chars, fails critical minimum). Lacks WHAT it does, WHEN to use it, and prerequisites. Does not specify whether it returns scores, lists issues, or recommendations.
getConsoleLogs has NO description at all (empty or missing). LLM cannot determine when to invoke this tool or what data it retrieves. Tool is practically unusable without context.
analyzeSEO parameters lack granular descriptions and format constraints. 'html' parameter says 'optional' but schema does not mark it as non-required (conflict). 'directoryPath' has no guidance on expected format, relative vs absolute paths, or file type filtering. No description of what happens when both html AND directoryPath are provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 0 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 15 | - | v1 |
No output schemas documented for either tool. analyzeSEO response structure unknown (returns list of issues? JSON report? HTML?). getConsoleLogs return type opaque (array of strings? objects with timestamps? mixed types?). LLMs cannot plan downstream operations without response field documentation.
analyzeSEO tool name is vague. 'analyzeSEO' could mean crawl, validate, score, or audit. Contrast with production pattern: 'analyze_seo_issues', 'validate_html_seo', or 'get_seo_report' are action-specific and self-documenting. Current name lacks the verb_noun clarity required by LLM tool selection.
getConsoleLogs name does not clarify scope: whose console? browser? server? Which logs are returned (all, filtered by severity, by page, by session)? Production pattern would be 'get_browser_console_logs' or 'list_captured_logs_by_session'.
No error handling guidance visible. Neither tool documents what happens on invalid input, timeouts, or failures. No recovery hints (e.g., 'If directoryPath not found, use search_directories first'). Fails critical pattern: error responses must guide LLM recovery.
Parameter types lack specificity. analyzeSEO 'html' and 'directoryPath' are both strings, but no length limits, path format validation, or HTML size caps documented. This invites LLM to pass arbitrary values (e.g., 1GB HTML, absolute paths to /etc/passwd). No validation constraints visible.
Inferred tool definitions: mcp-tools.js shows 'analyze-codebase' and 'analyze-html' but the actual MCP server registration (seo-mcp-server.js / server.js) is incomplete in provided code. Cannot verify if tool names match, schemas are enforced, or handlers are connected. Caps both tools at 50 due to missing implementation verification.
No pagination or result limits documented. If analyzeSEO scans a large directory, does it return ALL issues or cap at N? If getConsoleLogs returns 1000s of console messages, context window will be exhausted. Production tools document limits and pagination. Baseline: cap results at 20-50 items.