Skip to main content
Glama
@proof-holdings/mcp-server

@proof-holdings/mcp-server

Official

render_template

Read-only

Renders a sub-account's custom or default message template with supplied variables, returning the fully rendered content for email, SMS, WhatsApp, or Telegram.

Instructions

Render the template a sub-account sends — its custom template, otherwise the default — with provided variables. Returns the fully rendered message content.

ACCESS: needs a Proof account. Set PROOF_API_KEY and restart this server, then call this tool again. start_login does NOT open this tool.

Input Schema

NameRequiredDescriptionDefault
channelYesMessage channel
variablesNoVariables to substitute into the template
profile_idNoThe sub-account to act on; omitted → your key's sub-account, or the primary sub-account for an account-wide key
message_typeYesMessage type

Output Schema

NameRequiredDescriptionDefault
renderedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changedv1.7.2
    • removedInput schema / additionalProperties
      Removed value: -false
    • changedInput schema / properties / profile_id / description
      Previous value: -"The sub-account (project) to act on; omitted → your key's project, or the primary project for an account-wide key"New value: +"The sub-account to act on; omitted → your key's sub-account, or the primary sub-account for an account-wide key"
    • removedInput schema / properties / variables / additionalProperties
      Removed value: -false
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "rendered": {}
      +  },
      +  "type": "object"
      +}
  2. Changed1 schema field changedv1.7.0
    • addedInput schema / properties / profile_id
      Added value: +{
      +  "description": "The sub-account (project) to act on; omitted → your key's project, or the primary project for an account-wide key",
      +  "pattern": "^[0-9a-fA-F]{24}$",
      +  "type": "string"
      +}
  3. First observedv1.1.0

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, matching a pure render operation, so no contradiction. The description adds real operational context beyond annotations: the account/key prerequisite and the explicit false-lead about start_login. It stops short of disclosing side-effect claims (whether rendering is purely local vs billed), failure behavior for missing template variables, or fallback behavior when no custom template exists beyond the single clause already given.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact paragraphs: the first front-loads what the tool does and its return, the second front-loads the access prerequisite. Every sentence carries information, and the blunt 'start_login does NOT open this tool' is an efficient way to prevent a common misstep. Minor cost is that the access block is somewhat shouty and formatted apart from the core behavior.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description correctly does not re-explain return structure while still noting that fully rendered message content comes back. For a read-only render operation with fully documented parameters, the only material extras — the account prerequisite and the start_login caveat — are both present, leaving nothing an agent needs in order to call it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so channel's enum, variables' nested fields, and profile_id's 24-hex pattern and default-resolution rule are already documented in the schema. The description adds only the general idea that variables are substituted into the template, which the schema's 'Variables to substitute into the template' already implies. The underspecified message_type parameter ('Message type', no enum) is not clarified in the description either.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource (render a template) and adds important resolution semantics: the sub-account's custom template is used, falling back to the default. It also clarifies that the tool returns rendered content rather than sending it, which separates it from send-style operations, though it never names the close sibling preview_template, so the render-vs-preview boundary is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a genuine usage precondition (a Proof account plus PROOF_API_KEY, and the explicit note that start_login does not unlock this tool, which prevents a wasted call). However, it offers no guidance on when to choose render_template over preview_template, get_template, or list_templates, so the routing decision among template siblings is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools