MCP server to let AI interact with windows GUI programs
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation, output schema clarity, and error handling. Tool names lack action verbs (list_keywords, read_keyword_docs, run_keyword are acceptable but generic). Descriptions are present but minimal (34-89 chars, below the 194-char baseline). Critical issue: run_keyword accepts arbitrary args/kwargs with no validation, type constraints, or error guidance. No output schemas documented. Parameters lack detailed constraints (e.g., what args/kwargs are valid?). No error recovery guidance. Composition is weak: run_keyword is a generic dispatcher that could mask failures.
Get the list of the available keywords from the FlaUI library.
Get the documentation for a keyword. Use name = "__intro__" for the introduction.
Run a keyword from the FlaUI library. Before running a keyword, ensure to know its usage, arguments and kwargs. If you don't know them, use the read_keyword_docs tool to discover them.
run_keyword accepts unconstrained args/kwargs with no validation, type hints, or error guidance. LLM cannot determine valid argument patterns or recover from failures.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract structured data. run_keyword returns t.Any with no field documentation.
Parameter descriptions missing or minimal. 'name' param in read_keyword_docs lacks format/constraint details. args/kwargs in run_keyword have no usage examples or valid value guidance.
No error handling or recovery guidance. If run_keyword fails, LLM receives raw exception with no actionable next step. No distinction between retryable vs fatal errors.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Tool descriptions are 34 - 89 characters (baseline 194 chars). Too brief to guide LLM selection or explain when to use each tool vs alternatives.