Skip to main content
Glama
flisk-sh

Flisk App Builder

Official

resource_create

Destructive

Scaffolds a new service (service.json, Dockerfile, source, tests) or registers an existing directory that already has service.json.

Instructions

Scaffold a new service (service.json, Dockerfile, source and a test) with flisk resource <name> --yes, or register an existing directory that already has a service.json. Returns the command's text output. Without stack it uses the only existing stack or main, and fails when several stacks exist. Do not call it again for a resource that already exists: that rewrites its service.json and can assign it a new port (check with resource_list first). Call up afterwards to start it. Set projectPath when the MCP server is not running from the project root.

Input Schema

NameRequiredDescriptionDefault
nameYesResource name (kebab-case)
portNoPort within the type's range (default: the next free one)
typeNoResource type (default backend)
stackNoStack to assign the resource to
runtimeNoAgent runtime (type agent only): custom
featuresNoResource features to enable, for example prisma or drizzle
languageNoBackend language: bun (default), python, go, rust, node
frameworkNoFrontend: react (default), vue, svelte, preact, lit, solid, qwik, vanilla, tanstack-router, next. Backend: hono (default), express, elysia, fastify, nestjs, koa, h3
durabilityNoWhere agent sessions are checkpointed (type agent only): files or postgres
projectPathNoAbsolute path to the Flisk project root; run this operation from that directory.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.4.17

TDQS

A4.8/5.0
Behavior5/5

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

Goes well beyond the destructiveHint=true annotation by naming the concrete consequence: re-calling rewrites the existing service.json and can assign a new port. It also discloses a failure mode (fails when several stacks exist) and the return shape (command's text output), all of which the agent could not infer from structured fields.

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 is front-loaded in the first sentence and each following sentence carries distinct information (return value, stack defaulting, danger warning, next step, projectPath). It is dense and slightly long, but no sentence is redundant.

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 10-parameter mutation tool with no output schema, the description covers purpose, mode selection, defaulting behavior, a destructive failure mode, return type, and the required follow-up action. An agent has everything needed to invoke it correctly and safely.

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 100%, so the baseline is 3, but the description adds real meaning: the stack default resolution rule (only existing stack or `main`, failing on multiples) and the operational note that projectPath is needed when the MCP server isn't running from the project root. It does not explain the type/framework/language interactions beyond what the schema already says.

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?

Opens with a specific verb+resource ("Scaffold a new service") and enumerates exactly what gets generated (service.json, Dockerfile, source, test), plus the second mode of registering an existing directory. An agent can distinguish it from siblings like resource_list or up without opening the 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?

Explicitly states the alternative workflow ("or register an existing directory that already has a service.json"), the exclusion ("Do not call it again for a resource that already exists... check with resource_list first"), and the follow-up step ("Call `up` afterwards to start it"). When/when-not/next-step are all covered.

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