Skip to main content
Glama

Quillm

Create a view

create_view

Creates a new view: a live page at a stable URL in the user's dashboard app. source is ONE file of React (JSX/TSX) that default-exports a component and reads its data with useDataset("dataset_name") from "quillm". Do not embed data in the source; create the dataset first (create_dataset), then the view. Pass the brief: the user's request in their words, and what you asked them and what they answered. If the request does not say who reads the page, what for, and which number matters most, ask the user first; a brief that is too thin is refused once with the questions to ask. Decide the questions next: what the user asked for is the scope, and a small request gets a small page. The view is compiled, test-rendered in a real browser and reviewed immediately: the response tells you whether it rendered, lists errors, and lists what a reader would still be missing, so read it and fix problems with update_view. The checks use two outside services unless the workspace turned them off: TypeSafe reads the brief, and OpenAI reads a screenshot and the page's text. Call get_guide first for the template and available libraries. Check get_workspace first: if a suitable view already exists, use update_view instead.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
iconNoOptional. One emoji for the page, e.g. "💰". The app shows a glyph for the page's kind when there is none.
kindYesWhat the page is for. "dashboard": numbers someone watches over time. "tracker": items people work through (steps, tasks, leads) with owners and status. "doc": a brief, report or analysis mostly in prose. "calculator": inputs the reader changes and an answer. Decides what the page review holds it to.
slugYesURL id, lowercase-with-dashes, e.g. "finance-overview". Permanent.
briefYesThe brief. Quillm judges whether it is enough to build a page someone will read for months; when it is not, create_view refuses once and tells you what to ask the user.
coverNoOptional and no longer shown; kept for older clients.
titleYesShown in the app's sidebar.
sourceYesThe full single-file React source (JSX/TSX) with a default-exported component. See get_guide.
questionsYesWrite these BEFORE the source. The 1-5 questions the user has in mind when they open this page, in their words: "How many months of cash do we have?", "Who do I need to follow up with today?". What the user asked for is the scope: every block in the view answers one of these, once.
collectionYesSidebar group, e.g. "Finance", "Growth", "Projects". Reuse an existing collection when one fits. People are given access per collection, so the collection decides who can open the view; do not move a view to another collection unless asked.
change_noteNoWhy this view was created (recorded in the changelog).
descriptionYesOne sentence: what this view answers. Other agents use it to decide whether to reuse this view.
dependenciesNoOnly for npm packages outside the base runtime, with exact versions: {"d3-sankey": "0.12.3"}.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations only cover safety/idempotency, and the description goes well beyond them: it discloses that the view is compiled, test-rendered in a real browser and reviewed immediately, that the response reports render status/errors/gaps, that a thin brief is refused once, and that two outside services (TypeSafe, OpenAI) process the brief and a screenshot. That external-service data exposure is exactly the kind of context annotations cannot carry.

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?

Purpose and constraints are front-loaded and nearly every sentence carries operational content. It is long (~10 sentences) and some material (the brief, the questions ordering) duplicates the schema's own descriptions, which slightly dilutes conciseness.

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?

For a 12-parameter tool with nested objects and no output schema, the description covers what is missing from structured data: the data-binding contract for `source`, the refusal behavior, and what the response returns. An agent has everything needed to call it correctly.

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%, so the schema carries the parameter definitions and a baseline of 3 applies. The description still adds real meaning: `source` must be ONE file of React that default-exports a component and reads data via useDataset from 'quillm', and `questions` must be written before the source. It does not, however, add much for the many other required fields.

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 verb and resource ('Creates a new view') and immediately defines what a view is: 'a live page at a stable URL in the user's dashboard app.' It explicitly distinguishes itself from siblings create_dataset and update_view, so an agent can select it without opening any 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 explicit sequencing and alternatives: create the dataset first via create_dataset, call get_guide first for the template, check get_workspace first and use update_view if a suitable view already exists. When-not-to-use (existing view) and prerequisites are all spelled out.

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.