FastMCP demonstrates moderate definition quality with significant inconsistency across tools. The server implements 18 tools across multiple example domains (bulk operations, ATProto social, smart home). Tool naming is generally verb-first (call_tools_bulk, toggle_light, search), but parameter schemas are present and mostly typed. However, descriptions vary widely in quality and completeness. Critical gaps include: (1) parameter descriptions are often minimal or absent for complex nested structures; (2) output schemas are not documented anywhere in the visible code; (3) no error handling guidance or recovery patterns are evident; (4) parameter relationships and constraints are under-specified. The bulk_tool_caller tools show promise with explicit Pydantic models (CallToolRequest, CallToolRequestResult), but this rigor is not applied consistently across other tool groups. ATProto and smart_home examples show adequate naming but sparse parameter documentation.
Activates a specific scene within a specified light group, verifying the scene belongs to the group.
Call a single tool registered on this MCP server multiple times with a single request. Each call can include different arguments. Useful for speeding up what would otherwise take several individual tool calls.
Call multiple tools registered on this MCP server in a single request. Each call can be for a different tool and can include different arguments. Useful for speeding up what would otherwise take several individual tool calls.
Create a thread of posts with automatic linking. The first post becomes the root of the thread, and each subsequent post replies to the previous one, maintaining the thread structure.
Echo a message, with debug info if debug mode is enabled.
Follow a user by their handle.
Output schemas are not documented. Tools return results but the visible code contains no return type annotations or schema documentation for agents to understand downstream chaining.
Generic or missing parameter descriptions for complex objects. 'attributes' in set_light_attributes and set_group_attributes is documented only as 'Light attributes to set' with no enumeration of valid keys, types, constraints, or ranges.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 40 | - | v1 |
Get the current server configuration and status.
Like a post by its AT URI.
Lists the names of all available Hue light groups.
Lists Hue scenes, grouped by the light group they belong to.
Create a post with optional rich features like images, quotes, replies, and rich text.
Lists the names of all available Hue lights using phue2.
Repost a post by its AT URI.
Search for posts containing specific text.
Sets the brightness of a specific light (0-254) using phue2.
Sets multiple attributes for all lights within a specific group.
Sets multiple attributes (e.g., hue, sat, bri, ct, xy, transitiontime) for a specific light.
Turns a specific light on (true) or off (false) using phue2.
Minimal descriptions for simple read operations. Tools like get_status, follow, like, repost, read_all_lights, list_groups, list_scenes have descriptions under 60 characters, lacking WHEN to use them or context for agent selection.
No error handling guidance. No tool description indicates what to do if a user handle is not found (follow), a post URI is invalid (like, repost), or a light name doesn't exist (toggle_light, set_brightness). Agents have no recovery path on failure.
Parameter constraints not documented in descriptions. search limit (1 - 100) is in schema but not explained in description. set_brightness brightness (0 - 254) has numeric constraints in schema but no guidance in description on what 0 vs 254 means.
Unvalidated nested parameter schemas. 'tool_calls' in call_tools_bulk is an array but CallToolRequest structure is not visible in the tool definition itself, only inferred from helper class. If agents pass invalid structures, error messages may not guide correction.
Parameter relationships undocumented. create_thread passes posts with optional fields (images, links, mentions, quotes, reply_to, reply_root) but no description explains which combinations are valid or whether reply_to/reply_root are mutually exclusive.
No batch operation guidance. Agents calling toggle_light, set_brightness, or set_light_attributes in a loop pay per-call overhead. No batch alternatives offered, forcing inefficient sequential calls.