Skip to main content
Glama

Delimit Generate Scaffold

delimit_generate_scaffold

Create a new project skeleton with framework-conformant directories, package files, and lint config for Next.js, API, or library projects—ready for governance.

Instructions

Lay out a fresh project tree with framework-conformant skeleton.

When to use: at project zero, when starting a new Next.js app, API service, or library and you want the standard directory tree, package.json/pyproject.toml, lint config, and entry-point files all written in one call. Typical follow-up is delimit_init to set up governance scaffolding in the new project root. When NOT to use: to add files to an existing project (use delimit_generate_template for single-file scaffolds), to duplicate an existing project (use the shell), or to add a package to an existing project (use the project's own package manager directly).

Sibling contrast: delimit_generate_template writes a single file into an existing project; this writes a NEW project tree. Compared to create-next-app / cookiecutter, this routes the scaffold through the Delimit bridge so the resulting project can later be wired into delimit_init governance with no manual cleanup.

Side effects: writes MANY new files and directories under a new name/ root via backends.generate_bridge.scaffold. packages is coerced from a comma string to a list via _coerce_list_arg (malformed values short-circuit). No license gate. No ledger write, no notification. The backend determines collision behaviour if name/ already exists — call against a fresh target.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesProject name (becomes the root directory). Required.
packagesNoPackages to include — either a comma string or list.
project_typeYesProject flavour, e.g. "nextjs", "api", "library". Required.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed3 schema fields changedv4.7.9
    • changedInput schema / properties / name / description
      Previous value: -"Project name."New value: +"Project name (becomes the root directory). Required."
    • changedInput schema / properties / packages / description
      Previous value: -"Packages to include."New value: +"Packages to include — either a comma string or list."
    • changedInput schema / properties / project_type / description
      Previous value: -"Project type (nextjs, api, library, etc.)."New value: +"Project flavour, e.g. \"nextjs\", \"api\", \"library\". Required."
  2. Changed4 schema fields changedv4.5.5
    • addedInput schema / properties / name / description
      Added value: +"Project name."
    • changedInput schema / properties / packages / anyOf
      Previous value: -[
      -  {
      -    "items": {
      -      "type": "string"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedInput schema / properties / packages / description
      Added value: +"Packages to include."
    • addedInput schema / properties / project_type / description
      Added value: +"Project type (nextjs, api, library, etc.)."
  3. First observedv0.1.0

TDQS

A4.9/5.0
Behavior5/5

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

Annotations only say readOnlyHint=false and destructiveHint=false, so the description carries the burden of explaining mutation behavior. It does this thoroughly: writes MANY files, uses backends.generate_bridge.scaffold, coerces packages via _coerce_list_arg with short-circuit on malformed values, has no license gate, no ledger write, no notification, and leaves collision behavior to the backend. This is exactly the operational context an agent needs beyond the annotations.

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?

The description is long but every section earns its place: purpose, when to use, when not to use, sibling contrast, and side effects. The labeled sections make it easy to scan, and the critical caveat about collision behavior is placed at the end as a warning. No filler or repetition of schema fields.

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 tool that writes many files and has minimal annotations, the description is fully complete: it specifies target state, exact non-uses, sibling alternative, side effects, follow-up step, and collision caveat. Since an output schema is present, the lack of return-value documentation is acceptable. The agent can safely decide whether and how to invoke this tool.

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?

The schema already provides 100% parameter descriptions, so the baseline is 3. The description adds genuine extra meaning: packages is coerced from a comma string into a list and malformed values short-circuit, which is not stated in the schema. It also reinforces that name becomes the root directory and gives concrete example values for project_type.

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 and resource: 'Lay out a fresh project tree with framework-conformant skeleton.' It clearly distinguishes this tool from its closest sibling, delimit_generate_template, by contrasting 'writes a NEW project tree' with 'writes a single file into an existing project.' The intended project types (Next.js app, API service, library) are named explicitly.

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?

The description has explicit 'When to use' and 'When NOT to use' sections. It names alternative tools and strategies: delimit_generate_template for single-file scaffolds, the shell for duplicating projects, and the project's own package manager for adding packages. It also identifies the typical follow-up tool, delimit_init, so an agent knows the surrounding workflow.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/delimit-ai/delimit-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server