MCP server for querying Husqvarna Automower status via the Husqvarna Group Cloud API
HusqvarnaAutomower exposes a single tool with NO input schema, a minimal description, and no parameter documentation. The tool name lacks an action verb and does not follow verb_noun convention. There is no output schema documentation, no error handling guidance, and no pagination support despite likely returning structured data from an external API. The implementation retrieves credentials from environment variables (correct), but the tool interface itself is barely functional for agent use.
Get status of my husqvarna automowers
Tool has NO input schema, input object is empty {}. Agents cannot validate inputs or understand what the tool accepts.
Tool name 'Husqvarna Automowers Status' does not start with an action verb. Proper name should be 'get_automower_status' or 'list_automower_status'. LLMs rely on verb_noun naming to infer intent without reading descriptions.
Description 'Get status of my husqvarna automowers' is too generic and only 35 characters. Does not explain what fields are returned, when to call this tool, or what the output structure is. Baseline for good descriptions is 50-200 characters with explicit details about return content.
Output schema is not documented. The code returns JSON from the Husqvarna API (with complex nested structure including system, battery, mower, calendar, planner, statistics, etc.), but agents cannot see the expected fields. LLMs must guess at response structure.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 28 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 16 | - | v1 |
No error handling guidance. If authentication fails, API is unreachable, or credentials are missing, the tool returns a raw error string. LLMs do not know if they should retry, ask the user for credentials, or abort. Per pattern:recovery-guide, errors should guide the next action.
Likely returns large nested API response without pagination or result limiting. The MowersResponse struct shows deeply nested attributes (battery, mower, calendar, planner, statistics, workAreas, positions, etc.). If multiple automowers exist, the response could be very large. No limit or pagination parameters offered.
No description for what 'status' means or what fields are most relevant to agents. The response includes battery %, mode, activity, error codes, schedule, statistics, and location, but the description does not indicate which fields are primary vs metadata that should be stripped.
Credentials passed via environment variables (HUSQVARNA_CLIENT_ID, HUSQVARNA_CLIENT_SECRET) are correctly NOT exposed as tool parameters, which is good (pattern:secret-injection). However, missing credentials are not validated at startup; the tool will only fail when called.