Skip to main content
Glama

create_app

Build a private data app on Autario in one call from an HTTPS URL or self-contained HTML that reads Autario datasets.

Instructions

Create a data app on autario in ONE call, owned by you. You give it a name and an entry: either an https URL where the app already runs, or the app's HTML itself (a single self-contained document, max 512 KB) which autario then hosts and serves inside a locked sandbox. The app id is derived from the name, so you never invent one. The new app is PRIVATE: only you can open it, it is in no catalog and at no public URL until you call publish_app. Use this as the FIRST step whenever a user asks you to build them an app, a dashboard, a report page or a tool that runs on autario data | the public catalog (World Bank, FRED, Eurostat, OECD, WHO, IMF, ECB, US Census, SEC) or the user's own connector tables (Google Search Console, GA4, Google Ads, Meta Ads, YouTube, TikTok, Instagram, Facebook, Shopify, LinkedIn). Inside the HTML read data with autario.js, never with fetch (the sandbox has no network): autario.ready(), autario.datasets(), autario.query(datasetId, {limit, orderBy, where}), autario.artifacts.get/set(key); autario inlines the SDK into every app, docs at https://autario.com/developer/docs/autario-js. Pass datasets with the ids of the user's own tables the app may read. Follow it with write_app_artifact (to save the app's data or saved views), get_app_preview_url (to hand the user a link to try) and publish_app (to make it public). Requires authentication.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesDisplay name of the app. The app id is derived from it (lowercased, hyphenated); needs at least three letters or digits.
contentNoREQUIRED when entry_kind is "upload". The app's entry document, normally a single self-contained HTML file. It runs in a sandbox with no outbound network: read autario data through the sandbox bridge, not through fetch to third parties.
taglineNoOne line saying what the app does, max 200 chars. Worth writing: it is what a user reads in the app store, and an app cannot be indexed without one.
datasetsNoIds of the user's OWN datasets (connector tables, uploads; get them from get_my_workspace) this app may read through autario.js. Everyone the owner shares the app with (role reader and up) reads exactly these, nothing else. Public catalog datasets need no declaration.
entry_urlNoREQUIRED when entry_kind is "url". Must start with https://.
entry_kindNo"url" = the app already runs somewhere (give entry_url). "upload" = you are sending the app itself (give content). Default "url".
source_urlNoOptional link to the app's open source repository.
content_typeNoType of the uploaded content. Default text/html.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.21.2

TDQS

A5/5.0
Behavior5/5

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

Annotations only provide false hints (readOnlyHint false, etc.), so the description carries full burden. It discloses that the app is private until published, that the id is derived from the name, hosted in a locked sandbox with no network, and capped at 512 KB. It also enumerates the autario.js API surface. This goes well beyond the structured data.

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

Conciseness5/5

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

Though long, every sentence earns its place: action verb first, then entry options, privacy, usage step, data-reading guidance, follow-up tools, and auth. The structure is logical and front-loaded with the core purpose. No redundancy or filler.

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 an 8-parameter tool with no output schema and many siblings, this description is remarkably complete. It covers the full workflow, sandbox constraints, SDK details, eligibility of data sources, sharing model, and the need for authentication. An agent can safely and correctly invoke this tool with no further research.

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

Parameters5/5

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

Schema coverage is 100%, but the description adds substantial meaning: it explains entry_kind trade-offs, the max size and sandbox implications for content, the sharing semantics of datasets (only owner-specified datasets readable, public catalog needs no declaration), and the derivation of app id from name. This is exactly the kind of context schema fields lack.

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?

The description opens with a specific verb+resource: 'Create a data app on autario in ONE call, owned by you.' It distinguishes itself from siblings like publish_app, write_app_artifact, and get_app_preview_url by clarifying it is the creation step, not publishing or previewing. The scope is clear and unambiguous.

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?

Explicitly instructs 'Use this as the FIRST step whenever a user asks you to build them an app...' and names the exact follow-up sequence: 'Follow it with write_app_artifact, get_app_preview_url and publish_app.' It also clarifies when to pass datasets and how to handle catalog vs. user tables. Provides strong when/when-not guidance.

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