diff --git a/unraid_mcp/tools/keys.py b/unraid_mcp/tools/keys.py index a761aa5..4b62105 100644 --- a/unraid_mcp/tools/keys.py +++ b/unraid_mcp/tools/keys.py @@ -116,11 +116,7 @@ def register_keys_tool(mcp: FastMCP) -> None: data = await make_graphql_request(MUTATIONS["create"], {"input": input_data}) created_key = (data.get("apiKey") or {}).get("create") if not created_key: - return { - "success": False, - "key": {}, - "message": "API key creation failed: no data returned from server", - } + raise ToolError("Failed to create API key: no data returned from server") return {"success": True, "key": created_key} if action == "update": @@ -134,11 +130,7 @@ def register_keys_tool(mcp: FastMCP) -> None: data = await make_graphql_request(MUTATIONS["update"], {"input": input_data}) updated_key = (data.get("apiKey") or {}).get("update") if not updated_key: - return { - "success": False, - "key": {}, - "message": "API key update failed: no data returned from server", - } + raise ToolError("Failed to update API key: no data returned from server") return {"success": True, "key": updated_key} if action == "delete": diff --git a/unraid_mcp/tools/notifications.py b/unraid_mcp/tools/notifications.py index 16fdab9..e4f4790 100644 --- a/unraid_mcp/tools/notifications.py +++ b/unraid_mcp/tools/notifications.py @@ -307,6 +307,14 @@ def register_notifications_tool(mcp: FastMCP) -> None: f"importance must be one of: {', '.join(sorted(_VALID_IMPORTANCE))}. " f"Got: '{importance}'" ) + if len(title) > 200: + raise ToolError(f"title must be at most 200 characters (got {len(title)})") + if len(subject) > 500: + raise ToolError(f"subject must be at most 500 characters (got {len(subject)})") + if len(description) > 2000: + raise ToolError( + f"description must be at most 2000 characters (got {len(description)})" + ) input_data = { "title": title, "subject": subject,