Skip to main content
Glama

List Render Fonts

list_render_fonts
Read-onlyIdempotent

The fonts the RENDERER can actually draw — read this BEFORE authoring type, not after a refusal. Per family: the exact family name authoring accepts, the weight RANGES a shipped file declares (a static face has min===max; a variable face gives its axis range), the caption default weights, and whether the bytes are bundled or an aliased metric-compatible stand-in. Anything listed here passes validation by construction: it is derived from the same table the font gate refuses by. Two facts worth reading off it — every family's styles is ["normal"], because NO bundled family ships an italic FILE (a real italic comes only from a brand-kit font asset), and a weight outside every range is REFUSED, never synthesised. Contrast search_fonts, which searches the GOOGLE catalog and will happily return families the renderer cannot draw. manifestVersion identifies this exact face table; record it beside a composition to state what a font choice was validated against. Covers the bundled set only — a brand kit's sealed faces are per-org and per-render. No args, read-only, free.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_render_fonts"
  }
}

Input Schema

NameRequiredDescriptionDefault

No arguments

Output Schema

NameRequiredDescriptionDefault
familiesNo
manifestVersionNoIdentifies this exact face table. Derived from the table's own content, so it moves when and only when the admitted set moves. Record it beside a composition to state which face table a font choice was validated against.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/closed-world, but the description adds non-obvious behavior no structured field carries: results pass validation by construction, `styles` is always ["normal"] because no bundled family ships an italic file, out-of-range weights are refused rather than synthesised, and `manifestVersion` is a reproducibility handle.

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?

The load-bearing constraint (read before authoring) is front-loaded and the sibling contrast closes the loop. A few clauses are rhetorically padded — 'will happily return', 'not after a refusal' — which cost a little density in an otherwise tight definition.

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?

Although an output schema exists, the description still explains the fields an agent must reason about at call time (weight ranges vs. static faces, bundled vs. metric-compatible alias) and states the scope limit for brand kits. Nothing needed to call it correctly and act on the result is missing.

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

Parameters4/5

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

Zero parameters, so the schema-completeness baseline of 4 applies; there is nothing to disambiguate. The description spends its space on output-field semantics (ranges, styles, manifestVersion) rather than inputs, which is appropriate but not additive on the parameter axis itself.

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

Purpose5/5

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

States a specific resource and scope: the font families the renderer can actually draw, plus per-family details it returns (family name, weight ranges, caption defaults, bundled vs alias). It explicitly distinguishes itself from search_fonts, the one sibling that overlaps, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit timing rule — read this BEFORE authoring type, not after a refusal — and names the alternative (search_fonts for the Google catalog) plus the failure mode that alternative causes. It also bounds itself: covers the bundled set only, with brand-kit faces out of scope.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.