Skip to main content
Glama

Import a font

import_font
DestructiveIdempotent

Keeps a font for this account (a TTF, OTF, WOFF or WOFF2 link or file, or an open catalog family) after checking its license allows embedding; write_graphic then draws it by family. Cost: 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": "import_font"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNoA public https link to the font file (TTF, OTF, WOFF, WOFF2).
dataNoOr the font file itself, base64.
nameNoA file name to keep it under.
familyNoOr a family from the open font catalog (Google Fonts, OFL), such as "Fraunces".
italicNoWith family: the italic.
weightNoWith family: 100 to 900 (400 when left out).

Output Schema

NameRequiredDescriptionDefault
codeNo
costNo
errorNo
stateNo
statusNo
dry_runNo
messageNo
plan_idNo
style_idNo
video_idNo
availableNo
import_idNo
output_idNo
studio_urlNo
version_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A3.8/5.0
Behavior3/5

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

With annotations supplied (destructive=true, idempotent=true, openWorld=true), the bar is lower, and the description does add real context: a license/embedding check gates the import, the font is retained per account, and the call is free. It does not say what happens on re-import under an existing name or family (the key consequence of destructive+idempotent), nor what a failed license check returns.

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?

A single dense sentence plus a cost tag; the entity and its purpose are front-loaded and nothing is padding. The heavy parenthetical listing of formats makes it scan poorly, and the formats are already enforced by the schema, so a little of it is redundant.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and all six optional parameters are documented in the schema. What is missing is the failure/overwrite story for a destructive, idempotent write and any hint that url, data and family are alternative routes rather than cumulative ones.

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% with self-explanatory text on all six properties, so the baseline is 3. The description restates the accepted formats and the catalog-family route but adds no format rules, precedence between url/data/family, or validation detail beyond what the schema already says.

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 concrete verb and resource ("Keeps a font for this account") and then enumerates the accepted inputs: a TTF/OTF/WOFF/WOFF2 link or file, or an open catalog family. It also distinguishes itself from neighbours by naming the downstream consumer (write_graphic) and by pointing at get_font_family_info's domain only implicitly via "open catalog family".

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

Usage Guidelines4/5

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

The usage path is clear: import here, then draw by family with write_graphic. The two mutually exclusive input routes (file/link vs. catalog family) are signalled by the repeated "or". It stops short of explicit when-not guidance, such as what to do if a font is already imported or when to prefer a Google-hosted family over uploading a file.

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.

Resources