Skip to main content
Glama

Start a Bootify project

startProject

Create a new Bootify project and return its project ID, URL, current setup and plan information. This changes server state and should only be called when the user wants a new project. Basic settings, developer preferences and database settings can be supplied during creation; omitted settings retain their defaults. All subsequent changes made through MCP are reflected live for the user at the returned project URL. Always show that URL to the user immediately after creating the project so they can follow the changes in their browser.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "startProject"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameNoA project name such as my-project
groupNoA group name such as com.my-group, used for build settings and package name
databaseNo
languageNo
buildTypeNo
lombokEnabledNoIgnored for Kotlin projects
developerPreferencesNo

Output Schema

NameRequiredDescriptionDefault
messageYes
projectYes
planLevelYesThe feature level assigned to the project
projectIdYes
planStatusYesWhether the project's plan is still valid
projectUrlYesThe project URL that should always be shown to the user immediately after creation so they can follow all subsequent MCP changes live in their browser

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedOutput schema / properties / project / properties / enums / items / properties / appModule
      Added value: +{
      +  "description": "Custom app module name",
      +  "maxLength": 255,
      +  "pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  2. Changed2 schema fields changed
    • addedOutput schema / properties / project / properties / breakpointStatus
      Added value: +{
      +  "description": "Present when BREAKPOINTS is requested. AVAILABLE means a new breakpoint is meaningful; NO_SCHEMA and NO_CHANGES do not allow one; LIMIT_REACHED blocks further additions.",
      +  "enum": [
      +    "NO_SCHEMA",
      +    "NO_CHANGES",
      +    "AVAILABLE",
      +    "LIMIT_REACHED"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / project / properties / breakpoints
      Added value: +{
      +  "description": "Present when BREAKPOINTS is requested. IDs are Unix epoch seconds in creation order.",
      +  "items": {
      +    "pattern": "^[0-9]+$",
      +    "type": "string"
      +  },
      +  "type": "array"
      +}
  3. Changed6 schema fields changed
    • addedOutput schema / properties / project / properties / dataObjects / items / properties / featurePackage
      Added value: +{
      +  "description": "Optional dot-separated package path for domain-driven or mixed structure; null uses automatic assignment",
      +  "maxLength": 255,
      +  "pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / project / properties / entities / items / properties / featurePackage
      Added value: +{
      +  "description": "Optional dot-separated package path for domain-driven or mixed structure; null uses automatic assignment",
      +  "maxLength": 255,
      +  "pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / project / properties / enums / items / properties / featurePackage
      Added value: +{
      +  "description": "Optional dot-separated package path for domain-driven or mixed structure; null uses automatic assignment",
      +  "maxLength": 255,
      +  "pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / project / properties / frontendControllers / items / properties / featurePackage
      Added value: +{
      +  "description": "Optional dot-separated package path for domain-driven or mixed structure; null uses automatic assignment",
      +  "maxLength": 255,
      +  "pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / project / properties / restControllers / items / properties / featurePackage
      Added value: +{
      +  "description": "Optional dot-separated package path for domain-driven or mixed structure; null uses automatic assignment",
      +  "maxLength": 255,
      +  "pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
    • addedOutput schema / properties / project / properties / securityConfigs / items / properties / featurePackage
      Added value: +{
      +  "description": "Optional dot-separated package path for domain-driven or mixed structure; null uses automatic assignment",
      +  "maxLength": 255,
      +  "pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
      +  "type": [
      +    "string",
      +    "null"
      +  ]
      +}
  4. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, so the description's 'changes server state' is reinforcement; it adds genuinely new context about default retention for omitted settings and that subsequent changes are reflected live at the project URL. It does not cover auth/permission requirements or whether the creation can be undone, which keeps it below 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?

Four sentences, each earning its place: purpose first, then the when-to-call constraint, the defaults behavior, and the live-URL workflow note. No hedging or repetition, and the key requirement 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?

An output schema exists, so return values need not be spelled out, yet the description still names them and adds the critical 'show the URL' workflow step, making it sufficient for correct invocation. Minor gaps around auth/permission prerequisites for a 7-parameter mutating tool keep it from a 5.

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 coverage is 43% (below 50%), so the description should compensate more than it does. It does add one valuable semantic – omitted settings retain their defaults – and groups inputs into basic/developer/database tiers, but it leaves name, group, language, and buildType undocumented beyond the schema.

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 ('Create a new Bootify project') plus the return payload (project ID, URL, setup, plan), which cleanly distinguishes it from getProject, copyProject, and deleteProject. An agent can tell it apart from siblings 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 Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly scopes invocation ('should only be called when the user wants a new project') and mandates showing the returned URL to the user immediately. It stops short of naming the closest alternative (copyProject) for the related case, but the when-to-use condition is unambiguous.

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.

Resources