list_custom_rules
List all custom rules for the authenticated customer. Requires API key (Pro+).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
List all custom rules for the authenticated customer. Requires API key (Pro+).
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the authentication requirement (API key Pro+), but does not describe return format, pagination, or read-only behavior explicitly. The word 'List' implies read-only, but no additional behavioral traits are provided.
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 short sentences, each earning its place. The first states purpose, the second adds a prerequisite. No redundancy or irrelevant detail.
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?
Given the tool's low complexity (no params, no output schema), the description is mostly adequate: it defines what the tool does and a key access requirement. However, it stops short of mentioning the return type (e.g., an array of custom rules) or error behavior, which would make it fully complete.
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 tool has zero parameters, and the input schema is empty, so there is nothing to explain. The description adds no parameter details, but none are needed; baseline for zero parameters is 4.
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 states a specific verb ('List'), a specific resource ('custom rules'), and a clear scope ('for the authenticated customer'). It distinguishes from sibling tools like list_presets and get_rules by focusing on custom rules.
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 mentions an API key requirement (Pro+) but provides no guidance on when to choose this tool over alternatives such as get_rules or list_presets. It lacks explicit when-to-use and when-not-to-use instructions.
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 have clearly distinct purposes (e.g., CRUD for custom rules, mode management, presets, validation). However, get_rules, list_custom_rules, and get_rule_modes could be confused since all return rule-related info, though descriptions differentiate their focus.
All tool names follow a consistent verb_noun snake_case pattern (e.g., add_custom_rule, get_audit_log, delete_custom_rule). Even multi-word names like ship_confidence_check maintain the pattern, with no mixing of conventions.
16 tools is slightly above the typical 3–15 range but appropriate for the rule enforcement domain, covering custom rules, presets, modes, audit, and validation. However, three planned-but-unimplemented tools add clutter and could be confusing.
Core operations are present: full CRUD for custom rules, preset application, mode overrides, validation, and audit log. However, three tools are non-functional (NOT_IMPLEMENTED), and there is no way to remove a bypass or manage constitutional rules, leaving some noticeable gaps.