A simple MCP server that implements Wake-on-LAN functionality to remotely wake up network devices.
Server has 4 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have input schemas with required fields and type definitions (positive). Descriptions exist but are brief (10-80 chars) and lack actionable context for LLM selection. Parameter descriptions are minimal or missing. No output schemas documented. Error handling returns text but lacks recovery guidance. MAC address validation is present but not exposed in descriptions. Tool naming follows verb_noun pattern (wake_device, save_device_info, list_devices, delete_device) which is good, but descriptions don't explain when to use each tool vs alternatives or what the LLM should expect in responses.
Delete a device record by MAC address
List all saved device names and MAC addresses.
Save or update device name and MAC address mapping
Wake up a device by sending a Wake-on-LAN (WOL) magic packet. If you don't know the MAC address, use the list_devices command first to find the device information
No output schemas documented. Tools return TextContent but LLMs cannot plan downstream calls or extract structured data without knowing response format.
Descriptions are too brief (10-80 chars) and lack context. 'Save or update device name and MAC address mapping' does not explain when to call this vs wake_device, what happens on duplicate MAC, or what the response contains.
Parameter descriptions are missing or generic. 'The MAC address of the device' appears in wake_device but save_device_info and delete_device lack context about format validation or what happens if MAC is invalid.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Error handling returns plain text without recovery guidance. 'Invalid MAC address format' tells LLM nothing about how to fix it. Should return 'Invalid MAC address format. Expected format: XX:XX:XX:XX:XX:XX or XX-XX-XX-XX-XX-XX'.
delete_device is destructive but lacks confirmation pattern. Tool should support dry-run or require explicit confirmation to prevent accidental device record deletion.