wcag_contrast
WCAG relative luminance contrast ratio between two hex colors (#RGB or #RRGGBB). Reports AA/AAA pass for normal and large text.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| bg | Yes | Background hex color | |
| fg | Yes | Foreground hex color |
WCAG relative luminance contrast ratio between two hex colors (#RGB or #RRGGBB). Reports AA/AAA pass for normal and large text.
| Name | Required | Description | Default |
|---|---|---|---|
| bg | Yes | Background hex color | |
| fg | Yes | Foreground hex color |
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It adds useful context about accepted hex formats and AA/AAA reporting, but fails to disclose the exact return format (e.g., contrast ratio, pass/fail booleans) or behavior with invalid colors. This ambiguity leaves significant gaps for an AI agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary function, and contains no wasted words. It efficiently conveys the tool's purpose, accepted input, and output behavior without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple and the schema covers parameters, the lack of an output schema combined with the description's ambiguity about return values ('Reports AA/AAA pass') leaves the agent uncertain about what to expect. The description could be more complete by specifying the output structure (e.g., ratio and pass/fail fields).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for fg and bg, so a baseline of 3 applies. The description adds value by specifying the exact hex color formats (#RGB or #RRGGBB), which goes beyond the schema's minimal 'hex color' description, helping the agent construct valid inputs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes WCAG relative luminance contrast ratio and reports AA/AAA pass status, with specific accepted input formats (#RGB or #RRGGBB). This distinguishes it from sibling utilities like base64_codec or cron_explain, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for accessibility checking by mentioning AA/AAA pass for normal and large text, providing clear context. It does not explicitly mention when not to use it, but no direct sibling alternative exists, so exclusions are not necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.
Most tools are clearly distinct, but there is overlap between local ops tools (gbrain_get/list/search, host_memory_get/set, forge_loop_status, list_mesh_snapshot, etc.) and public status/product tools (forge_status, popular_tools) which could confuse an agent. Descriptions help by tagging local ops, but the boundaries remain blurred.
All tool names use snake_case and mostly follow a verb_noun or noun_verb pattern (e.g., get_product, list_live_products, csv_to_markdown). A few names like now_iso and lorem_ipsum deviate from the verb-first style, but overall the naming is predictable and consistent.
With 40 tools, the server is overloaded for a coherent set. Many are simple utility functions that could be consolidated, and the mix of generic utilities, product APIs, and local ops adds unnecessary bulk, pushing the count well above the comfortable range.
The server lacks a clear domain, making it impossible to assess lifecycle coverage. While it offers many utilities, there is no coherent surface—missing common operations for any single category (e.g., no CRUD, no file handling) and many tools feel randomly assembled rather than forming a complete workflow.