A unified MCP server repository containing multiple autonomous automation and FinOps agents: Healwright (self-healing Playwright test automation) and SeatPrune (GitHub license reclamation).
Single tool 'heal_selector' with a relatively complete schema but significant description gaps and missing context. The tool is explicitly registered in FastMCP with an input schema containing 6 parameters, all typed. However, the description is vague and lacks critical operational details. Parameters have descriptions but they are generic and do not explain the tool's side effects or expected outcomes. No output schema is documented. The tool performs destructive operations (AST modification, file writes) but has no guidance on error recovery, validation, or when to use it. Naming is reasonably clear (verb_noun), but the overall definition lacks production-grade polish expected for tools that modify source files.
Exposes heal_selector MCP tool. Takes failed selector, error, ARIA layout, evaluates candidates in Playwright sandbox, updates source file AST if coordinates provided.
Tool description is vague and lacks actionable guidance. States 'Exposes heal_selector MCP tool. Takes failed selector, error, ARIA layout, evaluates candidates in Playwright sandbox, updates source file AST if coordinates provided.' This is 188 characters, within range, but does not explain WHEN to call this tool, what it returns, prerequisites, or post-execution actions. No guidance on error recovery or retry logic.
No output schema documented. The tool's response structure is not visible in the source. Callers (LLMs) cannot plan downstream actions without knowing what fields to expect (e.g., does it return updated_selector, success_flag, file_path, line_number?). This forces the LLM to guess the response format.
Destructive operation (modifies source files via AST) with no confirmation or dry-run capability. Description does not warn that this tool permanently changes test files. No error guidance on what to do if AST modification fails or if the write fails. Agents need confirmation-request or dry-run patterns for such operations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | 2026-07-28+ | v2 |
Parameters 'file_path', 'line_number', 'column_number' are marked optional but their relationship to the file write is unclear. Description does not explain: Are these hints for where to inject the fix? If omitted, does the tool refuse to write? What happens if coordinates are invalid? Undocumented parameter dependencies cause silent misuse.
No error guidance or recovery path documented. The tool calls Playwright and modifies files, both can fail. If Playwright evaluation fails, what should the LLM do? Retry? Call a different tool? The description and parameters do not mention error conditions, making this tool unreliable in agent chains.
Parameter 'dom_snapshot' expects an ARIA tree but the description does not specify format (plain text, JSON, HTML attribute string). LLMs will guess and often pass incorrectly formatted data. Should document expected schema or provide discovery tool to generate it.
Tool name 'heal_selector' is clear but the description conflates multiple steps (evaluate candidates, update AST). The tool does two distinct things: validation (in Playwright sandbox) and mutation (AST rewrite). Consider splitting into 'evaluate_selector_candidates' (read-only discovery) and 'apply_selector_fix' (write), allowing LLMs to compose them independently per pattern:tool.