Skip to main content
Glama

VibeKit Create App

vibekit_create_app

Create a new hosted app from a starter template and deploy it live at .vibekit.page. Call vibekit_list_templates first to pick a valid template. To deploy existing code from a GitHub repo instead, use vibekit_deploy.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "template": "<template>",
      "subdomain": "<subdomain>"
    },
    "name": "vibekit_create_app"
  }
}

Input Schema

NameRequiredDescriptionDefault
templateYesTemplate id from vibekit_list_templates (e.g. 'landing', 'dashboard', 'blog', 'saas', 'crud-api')
subdomainYesDesired subdomain — the app goes live at <subdomain>.vibekit.page. Lowercase letters, numbers, and hyphens.

Output Schema

NameRequiredDescriptionDefault
okYesWhether the call succeeded.
dataNoThe created app: appId, subdomain, live URL, and initial deploy status.
errorNoError message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / subdomain / description
      Previous value: -"Desired subdomain — the app goes live at <subdomain>.vibekit.bot. Lowercase letters, numbers, and hyphens."New value: +"Desired subdomain — the app goes live at <subdomain>.vibekit.page. Lowercase letters, numbers, and hyphens."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "description": "Result envelope: ok=true with data on success, ok=false with error on failure.",
      +  "properties": {
      +    "data": {
      +      "description": "The created app: appId, subdomain, live URL, and initial deploy status."
      +    },
      +    "error": {
      +      "description": "Error message when ok is false (e.g. missing/invalid VIBEKIT_API_KEY, or an API error).",
      +      "type": "string"
      +    },
      +    "ok": {
      +      "description": "Whether the call succeeded.",
      +      "type": "boolean"
      +    }
      +  },
      +  "required": [
      +    "ok"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the mutation profile is already covered. The description adds value beyond that: the call results in a live public deployment at a real URL, and it imposes an ordering dependency on list_templates. It stops short of saying what happens on subdomain collision or whether the deploy is async, which keeps it from a 5.

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?

Three short sentences, each earning its place: the action and outcome first, then the prerequisite, then the alternative tool. Nothing is redundant and the most important information is front-loaded.

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?

With only two required parameters, full schema coverage, an output schema, and annotations, the definition covers what an agent needs to select and invoke the tool. The only meaningful omission is any note on subdomain-collision behavior or expected deploy duration, which would help an agent decide whether to wait afterward.

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 description coverage is 100%, so both parameters are already documented in the schema. The description reinforces that the subdomain becomes the live hostname and that template must come from list_templates, but adds no syntax or format detail beyond what the schema already states. Baseline 3 applies when the schema does the heavy lifting.

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 names a specific verb and resource ('Create a new hosted app from a starter template') and adds the concrete outcome ('deploy it live at <subdomain>.vibekit.page'). It also explicitly distinguishes itself from the closest sibling, vibekit_deploy, which handles existing GitHub code.

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?

It states a hard prerequisite ('Call vibekit_list_templates first to pick a valid template') and routes the agent away when a condition applies ('To deploy existing code from a GitHub repo instead, use vibekit_deploy'). That is explicit when-to-use and when-to-use-something-else guidance.

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.