Restore an earlier email version
yardstick_email_templates_rollbackRestore an email to an immutable version.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| version_id | Yes | ||
| idempotency_key | No |
yardstick_email_templates_rollbackRestore an email to an immutable version.
| Name | Required | Description | Default |
|---|---|---|---|
| email_type | Yes | ||
| request_id | No | ||
| version_id | Yes | ||
| idempotency_key | No |
Changes observed during successful MCP inspections.
Input schema / properties / email_type / enumRemoved value: -[
- "acknowledgment",
- "advancement",
- "interview_confirmation",
- "rejection",
- "offer_declined",
- "offer",
- "hired",
- "withdrawn",
- "on_hold",
- "candidate_follow_up"
-]Input schema / properties / email_type / patternAdded value: +"^[a-z][a-z0-9_]{0,99}$"Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, idempotentHint=true and openWorldHint=false, which is most of the safety profile. The description adds only the word "immutable", which is a property of versions rather than a behavior of this call; it never states what current content is overwritten, whether the action is reversible, or what permissions are needed.
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?
It is a single front-loaded sentence with no filler, which is structurally clean. The brevity is under-specification rather than economy, though — there is simply too little text to cover a destructive four-parameter mutation.
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?
For a destructive, non-read-only mutation with no output schema and 0% parameter description coverage, the description should at minimum identify the resource domain, the target of the restore, and any prerequisite or reversibility note. None of that is present, so an agent cannot safely invoke it from this definition alone.
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?
Schema description coverage is 0% across four parameters, so the description carries the full explanatory burden. It only loosely implies two of them ("an email" ~ email_type, "a version" ~ version_id) and says nothing at all about request_id or idempotency_key, leaving half the surface undocumented.
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 names a verb ("Restore") and a resource ("an email") with a target ("an immutable version"), so the basic operation is inferable. However, it never says it operates on email templates, and it gives no differentiation from the close sibling yardstick_email_templates_reset or yardstick_email_templates_publish, leaving the agent to guess which of the trio to call.
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?
There is no when-to-use guidance, no preconditions (e.g. the version must already exist via yardstick_email_template_versions_list), and no mention of alternatives such as reset. The agent gets a one-line statement of effect and nothing about the situation that selects it.
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.