Get Font Files Tool
get_font_filesList every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Family slug, e.g. 'inter'. |
get_font_filesList every font file (weight/italic/format + direct woff2/ttf URL) for a family — handy for building custom @font-face rules.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Family slug, e.g. 'inter'. |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is covered. The description adds valuable behavioral context: it lists every file (exhaustive), includes weight/italic/format details, and direct URLs. This goes beyond the annotations and helps set expectations for the returned data, despite lacking error or edge-case behavior.
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 a single, information-dense sentence that front-loads the main action and resource, then adds the use case. Every word earns its place, with no fluff or repetition.
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 (one parameter, no output schema), the description is complete enough: it explains what is returned (font files with weight/italic/format and URLs) and why you'd use it (custom @font-face rules). It does not specify the response structure (e.g., JSON array), but that is a minor gap given the simplicity.
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 schema provides 100% coverage for the single parameter 'slug' with an example 'inter'. The tool description does not add further parameter semantics beyond what the schema already states, so the baseline of 3 is appropriate.
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 uses the specific verb 'List' and names the resource 'every font file' for a family, including the key attributes (weight/italic/format + direct woff2/ttf URL). This clearly distinguishes it from sibling tools like get_font_download_url or get_fonts_css, which serve different purposes.
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 provides a clear use case: 'handy for building custom @font-face rules.' This implies when to use the tool (when you need all font files for a family rather than a single URL or a full CSS stylesheet). It does not explicitly list exclusions or alternatives, but the context is strong.
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.