Skip to main content
Glama

Create a chart from a template with your data and a few knobs — returns an inline preview

create_from_template

The template's design, your data, your words. knobs are the template's settings (get_template shows the schema): theme light|dark|editorial, dataType gradient|buckets|categories and surroundings true|false (then waterColor, landColor) for maps, title/description/source/brand {text, fontFamily, fontSize, color}, backgroundColor, and the scale knobs for the dataType (colormap and direction, range, breaks or classes, categoryColors/categoryOrder). data = {columns: [{id, type}], rows: [[…]]}: use the template's column ids, or exactly two columns (region first, value second) for a map. publish: true makes the URLs live in the same call. A success means it validated AND rendered — look at the preview. Region values that match nothing come back as a 400 listing each with its closest real codes, before anything is made — no separate check needed. config is the advanced path: the engine's settings, merged after the knobs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataYesTyped columns + row-major rows, shaped like the template's example
knobsNoThe template's knobs — get_template returns their schema
configNoADVANCED: engine settings deep-merged after the knobs
publishNotrue = published and live in this call; omit while you iterate
templateYesTemplate id or slug from list_templates, or the page address (sweden/municipalities, us/texas/counties, london/wards) when you know the place

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / properties / data / properties / rows / items / items / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "number"
      -  },
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedInput schema / properties / data / properties / rows / items / items / type
      Added value: +[
      +  "string",
      +  "number",
      +  "boolean",
      +  "null"
      +]
  2. Changed1 schema field changed
    • changedInput schema / properties / template / description
      Previous value: -"Template id or slug, from list_templates"New value: +"Template id or slug from list_templates, or the page address (sweden/municipalities, us/texas/counties, london/wards) when you know the place"
  3. Added

TDQS

A3.9/5.0
Behavior4/5

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

Annotations (readOnlyHint=false, destructiveHint=false) establish a non-destructive write, and the description adds real behavioral context beyond them: publish makes URLs live in the same call, a success means it 'validated AND rendered,' and bad region values return a 400 listing closest codes before creation. It does not spell out permissions or overwrite semantics, but the added detail is substantial.

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

Conciseness3/5

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

The content is dense and mostly earns its place, but it is delivered as one long run-on paragraph with no structural breaks, and the first sentence is atmospheric rather than front-loading the purpose. Parameter-critical details (knob types, map column order) are buried mid-paragraph.

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

Completeness4/5

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

For a no-output-schema, nested-object write tool this covers most of what an agent needs: validation-before-creation behavior, the publish lifecycle, preview-on-success, and error format. Minor gaps remain around required-permission context and non-region validation failure modes.

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?

Schema coverage is already 100%, but the description adds genuine meaning the schema cannot express: it enumerates actual knob names/values (theme, dataType, map colors, etc.), explains the two-column map data convention, the config deep-merge order, and publish's iterate-vs-live semantics. It does defer to get_template for the full knob schema, so it is helpful rather than exhaustive.

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 name and title make the action clear (create a chart from a template), and the body reinforces it by referencing 'the template's design, your data' and routing to list_templates/get_template for inputs. The first sentence is evocative rather than a plain verb+resource, but the overall intent is unambiguous and distinguishable from siblings like get_template and check_template_data.

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?

It gives concrete workflow guidance: 'omit [publish] while you iterate,' use get_template for knob schema, use list_templates for ids, and explicitly states region validation comes back as a 400 'before anything is made — no separate check needed,' which routes the agent away from check_template_data. No explicit when-not-to-use statement, 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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.