Server definition
- Hash
- sha256:48ed86a675e3cec1ed04bb7948c96eaac5de30311b8e29a0fae5e8b35c1da7d5
- What it is
- What a remote MCP server returned when asked what it offers: 53 tools
The blob, as servednamed by its sha256
{
"instructions": "When a user wants to create a Spring Boot project, understand the application goal and infer the configuration. Ask only about architectural decisions that cannot be inferred; use Bootify defaults for everything else. Start and configure the project without a separate confirmation. Immediately show the project URL returned by startProject so the user can follow all changes in the browser. Work with the user to complete all project details and the schema, then show the current project setup. The project should only be exported after the user has approved the export or already explicitly requested it in the current context. On the first export, download and extract the project into an empty directory and run the generated build if your environment supports these steps. For subsequent exports, proceed according to the user's request and context, preserving local changes unless their replacement is intended. If your environment cannot download the export, provide the returned download link to the user. Use getProject to inspect an existing project and its plan status. A project remains editable by the user. When a project result contains the optional userProjectChanged flag, reconsider previously read state and use getProject for any required details. Always reload the project after no MCP call has accessed it for two hours. Use the update tools to configure its general, frontend and database settings. Use copyProject and deleteProject only for projects owned by the bearer-authenticated user. copyProject rejects projects with an active one-time upgrade. Use listAvailableDependencies, addDependency and removeDependency to manage dependencies in the generated Maven or Gradle build. Use the application-module tools to create a named dependency graph; base and web are implicit. Use the enum, data object and entity tools to add, update or delete them by name. Use the controller tools to add, update or delete custom controllers by name. Use the relation tools after creating their endpoint entities. Copy relation identifiers from addRelation, updateRelation or getProject RELATIONS into update and delete calls. Configure security after entities and custom controllers so their paths are available. Add security configurations with defaults, then use the focused login, user-source and role tools; call listSecurityPaths before assigning roles. Use getOpenApiPreview to inspect the generated HTTP contract after configuring entities, controllers and security. Use importSqlSchema to bulk add or update entities from SQL DDL. Use listProjectFiles to inspect the generated file paths, getProjectFile to read an individual file, or exportProject with the returned project ID to obtain a ZIP download URL. Project mutation tools return projectId, changes with only changed settings, and affectedAreas naming changed object lists, including automatic effects. Use getProject with those details only when their contents are needed. Empty changes and affectedAreas mean no exposed settings or object lists changed. Relation add/update results include identifier; index add/update results include name. Copy these selectors into subsequent update/delete calls. All tools return structured results. General Bootify concepts and options are documented at https://bootify.io/docs/",
"tools": [
{
"description": "Available with Bootify Professional. Add a custom application module. References name the modules this module depends on. The same graph defines package boundaries for MODULITH and physical build modules for MULTI_MODULE; select either with updateAdvancedOptions first. The implicit base module is the lowest-level shared module and is integrated directly or transitively by every other module. A custom module with no references depends on base. The implicit web module is the highest-level application wrapper and automatically depends on every custom root module; in MULTI_MODULE it assembles the executable application. Neither implicit module can be edited. Dependencies must be acyclic and should point from a feature toward the lower-level modules it uses. Background information: https://bootify.io/docs/modules-tab.html",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Name of the new custom module",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"references": {
"description": "Unique names of existing custom modules used as direct dependencies. Omit or use an empty array to depend on the implicit base module.",
"items": {
"description": "Referenced custom module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "addAppModule",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Add a custom data object by name. Entity-generated DTOs are returned by getProject with generated=true and must be changed through their entity fields or REST/frontend options. Background information: https://bootify.io/spring-data/hibernate-json-type.html",
"inputSchema": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom app module; null selects base. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered data object field list.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"minItems": 1,
"type": "array"
},
"name": {
"description": "Name of the new data object",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name",
"fields"
],
"type": "object"
},
"name": "addDataObject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Add an extra application dependency to the generated Maven or Gradle build. Bootify already adds dependencies required by selected project features. Call listAvailableDependencies to find supported coordinates, then pass the returned groupId:artifactId. Spring Boot supplies the compatible dependency version.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dependency": {
"description": "Maven coordinates: groupId:artifactId[:version]",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+(?::[^\\s:]+)?$",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"dependency"
],
"type": "object"
},
"name": "addDependency",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Add an entity to an existing Bootify project. Entity, field, module, inheritance and custom field-type references use names.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "App module name; null selects the base module. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"primaryKey": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"type": "array"
},
"frontendEnabled": {
"type": "boolean"
},
"inherits": {
"description": "Name of the superclass entity; null removes inheritance",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"name": {
"description": "Name of the new entity",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"paginationEnabled": {
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"restEnabled": {
"type": "boolean"
},
"searchFilterEnabled": {
"type": "boolean"
},
"superclass": {
"type": "boolean"
}
},
"required": [
"projectId",
"name",
"fields"
],
"type": "object"
},
"name": "addEntity",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Add an enum to an existing Bootify project, identified by name.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"featurePackage": {
"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"
]
},
"name": {
"description": "Name of the new enum",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"values": {
"description": "Ordered, unique enum values such as DRAFT and PUBLISHED",
"items": {
"maxLength": 100,
"pattern": "[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"projectId",
"name",
"values"
],
"type": "object"
},
"name": "addEnum",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Add a custom frontend controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name; null selects the web module",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Existing data object name, including entity-generated DTOs, accessible from the controller module. No built-ins, enums or collections. Omit when the method has no input",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"name": {
"description": "Frontend method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
}
},
"required": [
"name",
"path",
"parameters"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"featurePackage": {
"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"
]
},
"name": {
"description": "Name of the new frontend controller",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Controller base path, with optional {name} placeholders",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"name": "addFrontendController",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Add a normal or unique index over ordered entity fields or owning-side relations. Many-to-many relations are excluded. The response returns its name selector as Entity.field1-field2.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"entity": {
"description": "Entity containing the indexed fields or owning-side relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fields": {
"description": "Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.",
"items": {
"description": "Entity field or owning-side relation name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 32,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"unique": {
"description": "Whether the index enforces a unique field combination",
"type": "boolean"
}
},
"required": [
"projectId",
"entity",
"unique",
"fields"
],
"type": "object"
},
"name": "addIndex",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"name": {
"description": "Current canonical selector; copy into subsequent update or delete calls",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Add a relation whose type describes the cardinality from fromEntity to toEntity. For MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY the owning field is fromEntity.fromField; for ONE_TO_MANY it is toEntity.toField. The response includes that canonical owning-side value as identifier. Bidirectional relations require both fields. Background information: https://bootify.io/docs/jpa-relationship-types-with-examples.html. fromEntity and toEntity must already exist. The owning entity's application module must depend on the target entity's module.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"fromEntity": {
"description": "Entity on the from side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fromField": {
"description": "Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"required": {
"description": "Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations",
"type": "boolean"
},
"tableName": {
"description": "Join-table name; required only for MANY_TO_MANY",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"toEntity": {
"description": "Entity on the to side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"toField": {
"description": "Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"description": "Cardinality from fromEntity to toEntity",
"enum": [
"MANY_TO_ONE",
"ONE_TO_MANY",
"ONE_TO_ONE",
"MANY_TO_MANY"
],
"type": "string"
},
"unidirectional": {
"description": "Omit the reverse field. Relations across application modules must be unidirectional",
"type": "boolean"
}
},
"required": [
"projectId",
"type",
"fromEntity",
"toEntity"
],
"type": "object"
},
"name": "addRelation",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"identifier": {
"description": "Current canonical selector; copy into subsequent update or delete calls",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Add a custom REST controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name; null selects the web module",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
],
"type": "string"
},
"name": {
"description": "Endpoint method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
},
"responseStatus": {
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"responseType": {
"description": "Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"method",
"path",
"parameters",
"responseType",
"responseStatus"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"featurePackage": {
"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"
]
},
"name": {
"description": "Name of the new REST controller",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Controller base path, with optional {name} placeholders",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"name": "addRestController",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Create a config with safe defaults. Configure roles, login and an optional user source through their dedicated tools.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom app module; null selects base",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"type": {
"enum": [
"BASIC_AUTH",
"JWT",
"FORM_SESSION",
"KEYCLOAK_RESOURCE_SERVER",
"KEYCLOAK_CLIENT"
],
"type": "string"
}
},
"required": [
"projectId",
"name",
"type"
],
"type": "object"
},
"name": "addSecurityConfig",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Configure only login, JWT, Keycloak and session behavior. Provide just the fields that should change.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"jwtAlgorithm": {
"enum": [
null,
"HMAC",
"RSA"
],
"type": [
"string",
"null"
]
},
"keycloakClientId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"keycloakRealmId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"loginClientIds": {
"additionalProperties": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"type": "object"
},
"loginMethods": {
"items": {
"enum": [
"DIRECT",
"GOOGLE",
"GITHUB",
"FACEBOOK"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"registrationEndpoint": {
"type": "boolean"
},
"rememberMe": {
"enum": [
null,
"NONE",
"CHECKBOX",
"ALWAYS"
],
"type": [
"string",
"null"
]
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "configureSecurityLogin",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Configure the user entity and its credential, OAuth mapping, password reset and token fields. Provide just the fields that should change.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"externalIdField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"hashField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"loginTypeField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapEmailField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapFirstNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapLastNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"refreshTokenExpiryPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"refreshTokenPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"resetStartField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"resetUidField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"sourceEntity": {
"description": "User source entity; null uses in-memory users",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"usernameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "configureSecurityUserSource",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Copy a project owned by the bearer-authenticated user. Projects with an active one-time upgrade cannot be copied.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "copyProject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"message": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
},
"project": {
"additionalProperties": false,
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"required": [
"modularization",
"multiModulePrefix",
"testSetup",
"actuatorEnabled",
"actuatorEndpoints",
"hateoasEnabled",
"mapStructEnabled",
"serviceInterfaceEnabled"
],
"type": "object"
},
"appModules": {
"description": "Present when APP_MODULES is requested. Includes the implicit base and web modules.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Application module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"references": {
"description": "Effective direct dependencies by module name",
"items": {
"description": "Referenced module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"references"
],
"type": "object"
},
"type": "array"
},
"availableSecurityPaths": {
"additionalProperties": false,
"description": "Paths currently available for a new security config; use listSecurityPaths with a config name when editing it",
"properties": {
"frontend": {
"items": {
"type": "string"
},
"type": "array"
},
"rest": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"rest",
"frontend"
],
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"dataObjects": {
"description": "Present when DATA_OBJECTS is requested in details. Includes custom data objects and entity-generated DTOs.",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"entity": {
"description": "Source entity name for generated DTOs",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered data object field list.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"minItems": 1,
"type": "array"
},
"generated": {
"description": "True for an entity-generated read-only DTO",
"type": "boolean"
},
"name": {
"description": "Data object name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
}
},
"required": [
"name",
"generated",
"fields"
],
"type": "object"
},
"type": "array"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"required": [
"applicationFormat",
"packageStructure",
"includeAgentInstructions",
"openApiEnabled",
"dockerComposeEnabled",
"javaVersion",
"deployment"
],
"type": "object"
},
"entities": {
"description": "Present when ENTITIES is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "App module name; null selects the base module. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"primaryKey": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"type": "array"
},
"frontendEnabled": {
"type": "boolean"
},
"inherits": {
"description": "Name of the superclass entity; null removes inheritance",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"name": {
"description": "Entity name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"paginationEnabled": {
"type": "boolean"
},
"restEnabled": {
"type": "boolean"
},
"searchFilterEnabled": {
"type": "boolean"
},
"superclass": {
"type": "boolean"
}
},
"required": [
"name",
"superclass",
"restEnabled",
"frontendEnabled",
"paginationEnabled",
"searchFilterEnabled",
"fields"
],
"type": "object"
},
"type": "array"
},
"enums": {
"description": "Present when ENUMS is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"featurePackage": {
"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"
]
},
"name": {
"description": "Enum name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"values": {
"description": "Ordered, unique enum values such as DRAFT and PUBLISHED",
"items": {
"maxLength": 100,
"pattern": "[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"values"
],
"type": "object"
},
"type": "array"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"required": [
"framework"
],
"type": "object"
},
"frontendControllers": {
"description": "Present when FRONTEND_CONTROLLERS is requested in details. Available with Bootify Professional. ",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Data object name; null when the method has no input",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"name": {
"description": "Frontend method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
}
},
"required": [
"name",
"path",
"parameters",
"inputType"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"entity": {
"description": "Source entity name for generated controllers",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"generated": {
"description": "True for entity-generated read-only controllers",
"type": "boolean"
},
"name": {
"description": "Controller name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"type": "string"
}
},
"required": [
"name",
"generated",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"type": "array"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"indexes": {
"description": "Present when INDEXES is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"entity": {
"description": "Entity containing the indexed fields or owning-side relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fields": {
"description": "Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.",
"items": {
"description": "Entity field or owning-side relation name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 32,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"name": {
"description": "Automatically derived Entity.field1-field2 identifier",
"maxLength": 16384,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+",
"type": "string"
},
"unique": {
"description": "Whether the index enforces a unique field combination",
"type": "boolean"
}
},
"required": [
"name",
"entity",
"unique",
"fields"
],
"type": "object"
},
"type": "array"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"enabled",
"connection"
],
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
},
"relations": {
"description": "Present when RELATIONS is requested in details. Each identifier is the canonical selector for the current state and must be copied into updateRelation or deleteRelation. Refetch after renaming an entity or changing an owning field.",
"items": {
"additionalProperties": false,
"properties": {
"fromEntity": {
"description": "Entity on the from side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fromField": {
"description": "Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"identifier": {
"description": "Canonical relation selector. It is OwningEntity.owningField: fromEntity.fromField for MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY, but toEntity.toField for ONE_TO_MANY. Copy this value into updateRelation or deleteRelation.",
"maxLength": 511,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"required": {
"description": "Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations",
"type": "boolean"
},
"tableName": {
"description": "Join-table name; required only for MANY_TO_MANY",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"toEntity": {
"description": "Entity on the to side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"toField": {
"description": "Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"description": "Cardinality from fromEntity to toEntity",
"enum": [
"MANY_TO_ONE",
"ONE_TO_MANY",
"ONE_TO_ONE",
"MANY_TO_MANY"
],
"type": "string"
},
"unidirectional": {
"description": "Omit the reverse field. Relations across application modules must be unidirectional",
"type": "boolean"
}
},
"required": [
"identifier",
"type",
"fromEntity",
"toEntity",
"required",
"unidirectional"
],
"type": "object"
},
"type": "array"
},
"restControllers": {
"description": "Present when REST_CONTROLLERS is requested in details. Available with Bootify Professional. ",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
],
"type": "string"
},
"name": {
"description": "Endpoint method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
},
"responseStatus": {
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"responseType": {
"description": "Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"method",
"path",
"parameters",
"responseType",
"responseStatus"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"entity": {
"description": "Source entity name for generated controllers",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"generated": {
"description": "True for entity-generated read-only controllers",
"type": "boolean"
},
"name": {
"description": "Controller name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"type": "string"
}
},
"required": [
"name",
"generated",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"type": "array"
},
"securityConfigs": {
"description": "Present when SECURITY_CONFIGS is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom app module name; null selects base",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"authenticationMethod": {
"enum": [
"ANNOTATION_BASED",
"CONFIG_BASED"
],
"type": "string"
},
"externalIdField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"hashField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"jwtAlgorithm": {
"enum": [
null,
"HMAC",
"RSA"
],
"type": [
"string",
"null"
]
},
"keycloakClientId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"keycloakRealmId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"loginClientIds": {
"additionalProperties": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"type": "object"
},
"loginMethods": {
"items": {
"enum": [
"DIRECT",
"GOOGLE",
"GITHUB",
"FACEBOOK"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"loginTypeField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapEmailField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapFirstNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapLastNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"refreshTokenExpiryPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"refreshTokenPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"registrationEndpoint": {
"type": "boolean"
},
"rememberMe": {
"enum": [
null,
"NONE",
"CHECKBOX",
"ALWAYS"
],
"type": [
"string",
"null"
]
},
"resetStartField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"resetUidField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleEnum": {
"description": "Enum supplying role names",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"roleFieldEnumPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleSource": {
"enum": [
"CONSTANTS",
"ENUM",
"ENTITY_FIELD"
],
"type": "string"
},
"roles": {
"items": {
"additionalProperties": false,
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"paths": {
"items": {
"maxLength": 510,
"minLength": 1,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"paths"
],
"type": "object"
},
"maxItems": 255,
"minItems": 1,
"type": "array"
},
"sourceEntity": {
"description": "User source entity name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"BASIC_AUTH",
"JWT",
"FORM_SESSION",
"KEYCLOAK_RESOURCE_SERVER",
"KEYCLOAK_CLIENT"
],
"type": "string"
},
"usernameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"type",
"loginMethods",
"loginClientIds",
"authenticationMethod",
"roleSource",
"roles",
"registrationEndpoint"
],
"type": "object"
},
"type": "array"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"name",
"group",
"buildType",
"language",
"developerPreferences",
"frontend",
"database",
"dependencies",
"planLevel",
"planStatus"
],
"type": "object"
},
"projectId": {
"type": "string"
},
"projectUrl": {
"description": "The 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",
"format": "uri",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"message",
"projectId",
"projectUrl",
"planLevel",
"planStatus",
"project"
],
"type": "object"
}
},
{
"description": "Delete a custom application module by name. The implicit base and web modules cannot be deleted. Bootify applies its consistency rules to references and assigned project elements. Available with Bootify Professional. ",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Name of the custom module to delete",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteAppModule",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Delete a custom data object by name. Entity-generated DTOs are returned by getProject with generated=true and must be changed through their entity fields or REST/frontend options. Background information: https://bootify.io/spring-data/hibernate-json-type.html",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Current name of the data object",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteDataObject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Delete an entity identified by name. Bootify applies its consistency rules to dependent project data.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Name of the entity to delete",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteEntity",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Delete an enum identified by name. Referencing fields are changed to String by Bootify's consistency rules.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Name of the enum to delete",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteEnum",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Delete a custom frontend controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Current name of the frontend controller",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteFrontendController",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Delete an index by its current name.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Current Entity.field1-field2 identifier",
"maxLength": 16384,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteIndex",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Close a project owned by the bearer-authenticated user.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "deleteProject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"closed": {
"const": true,
"description": "Whether the project has been closed",
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"closed"
],
"type": "object"
}
},
{
"description": "Delete a relation using the current identifier returned by addRelation, updateRelation or getProject with RELATIONS details. The identifier is the owning entity and owning field joined with a dot; copy it verbatim because ONE_TO_MANY ownership is on the to side.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"identifier": {
"description": "Current identifier copied verbatim from addRelation, updateRelation or getProject RELATIONS",
"maxLength": 511,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"identifier"
],
"type": "object"
},
"name": "deleteRelation",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Delete a custom REST controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Current name of the REST controller",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteRestController",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Delete a security configuration by name.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Security config to delete",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "deleteSecurityConfig",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Return a ZIP download URL for an existing Bootify project. This tool should be called after all project details and the schema have been configured with the user and the current setup has been presented. Ask for approval before exporting unless the user already explicitly requested the export in the current context. The client can download and extract it when the environment supports it. Export fails when the project plan has expired. Successful calls record MCP usage and activity for this project. Generated files can include private signing keys for RSA JWT configurations; treat them as sensitive.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "exportProject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"contentType": {
"type": "string"
},
"downloadUrl": {
"format": "uri",
"type": "string"
},
"filename": {
"type": "string"
},
"message": {
"type": "string"
},
"projectId": {
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"message",
"projectId",
"filename",
"contentType",
"downloadUrl"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Generate and return the OpenAPI document for the current project configuration. Use it to inspect resolved paths, parameters, request and response schemas, status codes and security schemes before exporting the project. Successful calls record MCP usage and activity for this project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "getOpenApiPreview",
"outputSchema": {
"additionalProperties": false,
"properties": {
"document": {
"additionalProperties": true,
"description": "The generated OpenAPI document",
"type": "object"
},
"openApiVersion": {
"type": "string"
},
"pathCount": {
"minimum": 0,
"type": "integer"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"schemaCount": {
"minimum": 0,
"type": "integer"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"openApiVersion",
"pathCount",
"schemaCount",
"document"
],
"type": "object"
}
},
{
"description": "Return the current basic configuration and plan information of an existing Bootify project. Entity, relation, index and other object lists are returned only when explicitly selected through details. Successful calls record MCP usage and activity for this project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"details": {
"description": "Without details, only basic configuration and plan information are returned. Select additional areas explicitly, for example ENTITIES, RELATIONS and INDEXES. APP_MODULES, REST_CONTROLLERS and FRONTEND_CONTROLLERS: Available with Bootify Professional. ",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "getProject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"required": [
"modularization",
"multiModulePrefix",
"testSetup",
"actuatorEnabled",
"actuatorEndpoints",
"hateoasEnabled",
"mapStructEnabled",
"serviceInterfaceEnabled"
],
"type": "object"
},
"appModules": {
"description": "Present when APP_MODULES is requested. Includes the implicit base and web modules.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Application module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"references": {
"description": "Effective direct dependencies by module name",
"items": {
"description": "Referenced module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"references"
],
"type": "object"
},
"type": "array"
},
"availableSecurityPaths": {
"additionalProperties": false,
"description": "Paths currently available for a new security config; use listSecurityPaths with a config name when editing it",
"properties": {
"frontend": {
"items": {
"type": "string"
},
"type": "array"
},
"rest": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"rest",
"frontend"
],
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"dataObjects": {
"description": "Present when DATA_OBJECTS is requested in details. Includes custom data objects and entity-generated DTOs.",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"entity": {
"description": "Source entity name for generated DTOs",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered data object field list.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"minItems": 1,
"type": "array"
},
"generated": {
"description": "True for an entity-generated read-only DTO",
"type": "boolean"
},
"name": {
"description": "Data object name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
}
},
"required": [
"name",
"generated",
"fields"
],
"type": "object"
},
"type": "array"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"required": [
"applicationFormat",
"packageStructure",
"includeAgentInstructions",
"openApiEnabled",
"dockerComposeEnabled",
"javaVersion",
"deployment"
],
"type": "object"
},
"entities": {
"description": "Present when ENTITIES is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "App module name; null selects the base module. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"primaryKey": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"type": "array"
},
"frontendEnabled": {
"type": "boolean"
},
"inherits": {
"description": "Name of the superclass entity; null removes inheritance",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"name": {
"description": "Entity name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"paginationEnabled": {
"type": "boolean"
},
"restEnabled": {
"type": "boolean"
},
"searchFilterEnabled": {
"type": "boolean"
},
"superclass": {
"type": "boolean"
}
},
"required": [
"name",
"superclass",
"restEnabled",
"frontendEnabled",
"paginationEnabled",
"searchFilterEnabled",
"fields"
],
"type": "object"
},
"type": "array"
},
"enums": {
"description": "Present when ENUMS is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"featurePackage": {
"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"
]
},
"name": {
"description": "Enum name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"values": {
"description": "Ordered, unique enum values such as DRAFT and PUBLISHED",
"items": {
"maxLength": 100,
"pattern": "[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"values"
],
"type": "object"
},
"type": "array"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"required": [
"framework"
],
"type": "object"
},
"frontendControllers": {
"description": "Present when FRONTEND_CONTROLLERS is requested in details. Available with Bootify Professional. ",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Data object name; null when the method has no input",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"name": {
"description": "Frontend method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
}
},
"required": [
"name",
"path",
"parameters",
"inputType"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"entity": {
"description": "Source entity name for generated controllers",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"generated": {
"description": "True for entity-generated read-only controllers",
"type": "boolean"
},
"name": {
"description": "Controller name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"type": "string"
}
},
"required": [
"name",
"generated",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"type": "array"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"indexes": {
"description": "Present when INDEXES is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"entity": {
"description": "Entity containing the indexed fields or owning-side relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fields": {
"description": "Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.",
"items": {
"description": "Entity field or owning-side relation name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 32,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"name": {
"description": "Automatically derived Entity.field1-field2 identifier",
"maxLength": 16384,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+",
"type": "string"
},
"unique": {
"description": "Whether the index enforces a unique field combination",
"type": "boolean"
}
},
"required": [
"name",
"entity",
"unique",
"fields"
],
"type": "object"
},
"type": "array"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"enabled",
"connection"
],
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
},
"relations": {
"description": "Present when RELATIONS is requested in details. Each identifier is the canonical selector for the current state and must be copied into updateRelation or deleteRelation. Refetch after renaming an entity or changing an owning field.",
"items": {
"additionalProperties": false,
"properties": {
"fromEntity": {
"description": "Entity on the from side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fromField": {
"description": "Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"identifier": {
"description": "Canonical relation selector. It is OwningEntity.owningField: fromEntity.fromField for MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY, but toEntity.toField for ONE_TO_MANY. Copy this value into updateRelation or deleteRelation.",
"maxLength": 511,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"required": {
"description": "Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations",
"type": "boolean"
},
"tableName": {
"description": "Join-table name; required only for MANY_TO_MANY",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"toEntity": {
"description": "Entity on the to side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"toField": {
"description": "Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"description": "Cardinality from fromEntity to toEntity",
"enum": [
"MANY_TO_ONE",
"ONE_TO_MANY",
"ONE_TO_ONE",
"MANY_TO_MANY"
],
"type": "string"
},
"unidirectional": {
"description": "Omit the reverse field. Relations across application modules must be unidirectional",
"type": "boolean"
}
},
"required": [
"identifier",
"type",
"fromEntity",
"toEntity",
"required",
"unidirectional"
],
"type": "object"
},
"type": "array"
},
"restControllers": {
"description": "Present when REST_CONTROLLERS is requested in details. Available with Bootify Professional. ",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
],
"type": "string"
},
"name": {
"description": "Endpoint method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
},
"responseStatus": {
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"responseType": {
"description": "Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"method",
"path",
"parameters",
"responseType",
"responseStatus"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"entity": {
"description": "Source entity name for generated controllers",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"generated": {
"description": "True for entity-generated read-only controllers",
"type": "boolean"
},
"name": {
"description": "Controller name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"type": "string"
}
},
"required": [
"name",
"generated",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"type": "array"
},
"securityConfigs": {
"description": "Present when SECURITY_CONFIGS is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom app module name; null selects base",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"authenticationMethod": {
"enum": [
"ANNOTATION_BASED",
"CONFIG_BASED"
],
"type": "string"
},
"externalIdField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"hashField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"jwtAlgorithm": {
"enum": [
null,
"HMAC",
"RSA"
],
"type": [
"string",
"null"
]
},
"keycloakClientId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"keycloakRealmId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"loginClientIds": {
"additionalProperties": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"type": "object"
},
"loginMethods": {
"items": {
"enum": [
"DIRECT",
"GOOGLE",
"GITHUB",
"FACEBOOK"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"loginTypeField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapEmailField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapFirstNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapLastNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"refreshTokenExpiryPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"refreshTokenPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"registrationEndpoint": {
"type": "boolean"
},
"rememberMe": {
"enum": [
null,
"NONE",
"CHECKBOX",
"ALWAYS"
],
"type": [
"string",
"null"
]
},
"resetStartField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"resetUidField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleEnum": {
"description": "Enum supplying role names",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"roleFieldEnumPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleSource": {
"enum": [
"CONSTANTS",
"ENUM",
"ENTITY_FIELD"
],
"type": "string"
},
"roles": {
"items": {
"additionalProperties": false,
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"paths": {
"items": {
"maxLength": 510,
"minLength": 1,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"paths"
],
"type": "object"
},
"maxItems": 255,
"minItems": 1,
"type": "array"
},
"sourceEntity": {
"description": "User source entity name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"BASIC_AUTH",
"JWT",
"FORM_SESSION",
"KEYCLOAK_RESOURCE_SERVER",
"KEYCLOAK_CLIENT"
],
"type": "string"
},
"usernameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"type",
"loginMethods",
"loginClientIds",
"authenticationMethod",
"roleSource",
"roles",
"registrationEndpoint"
],
"type": "object"
},
"type": "array"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"name",
"group",
"buildType",
"language",
"developerPreferences",
"frontend",
"database",
"dependencies",
"planLevel",
"planStatus"
],
"type": "object"
}
},
{
"description": "Return one generated project file. The path must exactly match a value returned by listProjectFiles. Text is returned as UTF-8 and binary content as Base64. Successful calls record MCP usage and activity for this project. Generated files can include private signing keys for RSA JWT configurations; treat them as sensitive.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"path": {
"description": "An exact generated path returned by listProjectFiles",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"path"
],
"type": "object"
},
"name": "getProjectFile",
"outputSchema": {
"additionalProperties": false,
"properties": {
"content": {
"type": "string"
},
"contentType": {
"type": "string"
},
"encoding": {
"enum": [
"UTF-8",
"BASE64"
],
"type": "string"
},
"message": {
"type": "string"
},
"path": {
"type": "string"
},
"projectId": {
"type": "string"
},
"size": {
"minimum": 0,
"type": "integer"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"message",
"projectId",
"path",
"contentType",
"encoding",
"size",
"content"
],
"type": "object"
}
},
{
"description": "Parse SQL DDL and reconcile its tables, fields and relations with an existing Bootify project. Matching entities are updated and new entities are added.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"sql": {
"description": "SQL DDL containing CREATE TABLE statements",
"maxLength": 500000,
"type": "string"
}
},
"required": [
"projectId",
"sql"
],
"type": "object"
},
"name": "importSqlSchema",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"entitiesAdded": {
"items": {
"type": "string"
},
"type": "array"
},
"entitiesUpdated": {
"items": {
"type": "string"
},
"type": "array"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas",
"entitiesAdded",
"entitiesUpdated"
],
"type": "object"
}
},
{
"description": "Link an existing Bootify project to the bearer-authenticated user. Accepts either the project URL or its 12-character project ID and updates the project's plan.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectUrl": {
"description": "The project URL or 12-character project ID",
"maxLength": 255,
"minLength": 12,
"type": "string"
}
},
"required": [
"projectUrl"
],
"type": "object"
},
"name": "linkProject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"planLevel": {
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"projectUrl": {
"format": "uri",
"type": "string"
}
},
"required": [
"projectId",
"projectUrl",
"planLevel",
"planStatus"
],
"type": "object"
}
},
{
"description": "List dependencies that can be added to the generated Maven or Gradle build. These dependencies are managed by the project's Spring Boot version and therefore do not require a dependency version. Use the optional query to narrow the result. Successful calls record MCP usage and activity for this project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"query": {
"description": "Optional case-insensitive text contained in the coordinates",
"maxLength": 100,
"minLength": 1,
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "listAvailableDependencies",
"outputSchema": {
"additionalProperties": false,
"properties": {
"dependencies": {
"items": {
"type": "string"
},
"type": "array"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"dependencies"
],
"type": "object"
}
},
{
"description": "Return every file path that would be present in the ZIP export of an existing Bootify project, without generating or returning file contents. Listing fails when the project plan has expired. Successful calls record MCP usage and activity for this project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "listProjectFiles",
"outputSchema": {
"additionalProperties": false,
"properties": {
"fileCount": {
"type": "integer"
},
"files": {
"items": {
"type": "string"
},
"type": "array"
},
"message": {
"type": "string"
},
"projectId": {
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"message",
"projectId",
"fileCount",
"files"
],
"type": "object"
}
},
{
"description": "Return the canonical METHOD /path values that may be assigned to security roles. Pass securityConfigName while editing so that its current paths remain available. Frontend paths can only be protected by BASIC_AUTH, FORM_SESSION or KEYCLOAK_CLIENT. Successful calls record MCP usage and activity for this project.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"securityConfigName": {
"description": "Existing config being edited",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "listSecurityPaths",
"outputSchema": {
"additionalProperties": false,
"properties": {
"frontend": {
"items": {
"type": "string"
},
"type": "array"
},
"rest": {
"items": {
"type": "string"
},
"type": "array"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"rest",
"frontend"
],
"type": "object"
}
},
{
"description": "Remove a dependency from the generated Maven or Gradle build using groupId:artifactId. A version may be supplied but is not used for matching.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"dependency": {
"description": "Maven coordinates: groupId:artifactId[:version]",
"maxLength": 500,
"pattern": "^[A-Za-z0-9_.-]+:[A-Za-z0-9_.-]+(?::[^\\s:]+)?$",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"dependency"
],
"type": "object"
},
"name": "removeDependency",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Replace the role setup. Call listSecurityPaths first and use its exact METHOD /path values.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"roleEnum": {
"description": "Enum supplying role names",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"roleFieldEnumPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleSource": {
"enum": [
"CONSTANTS",
"ENUM",
"ENTITY_FIELD"
],
"type": "string"
},
"roles": {
"items": {
"additionalProperties": false,
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"paths": {
"items": {
"maxLength": 510,
"minLength": 1,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"paths"
],
"type": "object"
},
"maxItems": 255,
"minItems": 1,
"type": "array"
}
},
"required": [
"projectId",
"name",
"roleSource",
"roles"
],
"type": "object"
},
"name": "setSecurityRoles",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"minProperties": 1,
"properties": {
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"developerPreferences": {
"additionalProperties": false,
"minProperties": 1,
"properties": {
"applicationFormat": {
"description": "Format of the generated Spring application configuration",
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"description": "Generate Docker Compose support for local development",
"type": "boolean"
},
"includeAgentInstructions": {
"description": "Generate AGENTS.md with coding agent instructions",
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"description": "Generate OpenAPI documentation and Swagger UI",
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"group": {
"description": "A group name such as com.my-group, used for build settings and package name",
"pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
"type": "string"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Ignored for Kotlin projects",
"type": "boolean"
},
"name": {
"description": "A project name such as my-project",
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
}
},
"type": "object"
},
"name": "startProject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"message": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
},
"project": {
"additionalProperties": false,
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"required": [
"modularization",
"multiModulePrefix",
"testSetup",
"actuatorEnabled",
"actuatorEndpoints",
"hateoasEnabled",
"mapStructEnabled",
"serviceInterfaceEnabled"
],
"type": "object"
},
"appModules": {
"description": "Present when APP_MODULES is requested. Includes the implicit base and web modules.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Application module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"references": {
"description": "Effective direct dependencies by module name",
"items": {
"description": "Referenced module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": "array"
}
},
"required": [
"name",
"references"
],
"type": "object"
},
"type": "array"
},
"availableSecurityPaths": {
"additionalProperties": false,
"description": "Paths currently available for a new security config; use listSecurityPaths with a config name when editing it",
"properties": {
"frontend": {
"items": {
"type": "string"
},
"type": "array"
},
"rest": {
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"rest",
"frontend"
],
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"dataObjects": {
"description": "Present when DATA_OBJECTS is requested in details. Includes custom data objects and entity-generated DTOs.",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"entity": {
"description": "Source entity name for generated DTOs",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered data object field list.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"minItems": 1,
"type": "array"
},
"generated": {
"description": "True for an entity-generated read-only DTO",
"type": "boolean"
},
"name": {
"description": "Data object name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
}
},
"required": [
"name",
"generated",
"fields"
],
"type": "object"
},
"type": "array"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"required": [
"type"
],
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"required": [
"applicationFormat",
"packageStructure",
"includeAgentInstructions",
"openApiEnabled",
"dockerComposeEnabled",
"javaVersion",
"deployment"
],
"type": "object"
},
"entities": {
"description": "Present when ENTITIES is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "App module name; null selects the base module. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"primaryKey": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"type": "array"
},
"frontendEnabled": {
"type": "boolean"
},
"inherits": {
"description": "Name of the superclass entity; null removes inheritance",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"name": {
"description": "Entity name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"paginationEnabled": {
"type": "boolean"
},
"restEnabled": {
"type": "boolean"
},
"searchFilterEnabled": {
"type": "boolean"
},
"superclass": {
"type": "boolean"
}
},
"required": [
"name",
"superclass",
"restEnabled",
"frontendEnabled",
"paginationEnabled",
"searchFilterEnabled",
"fields"
],
"type": "object"
},
"type": "array"
},
"enums": {
"description": "Present when ENUMS is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"featurePackage": {
"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"
]
},
"name": {
"description": "Enum name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"values": {
"description": "Ordered, unique enum values such as DRAFT and PUBLISHED",
"items": {
"maxLength": 100,
"pattern": "[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"values"
],
"type": "object"
},
"type": "array"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"required": [
"framework"
],
"type": "object"
},
"frontendControllers": {
"description": "Present when FRONTEND_CONTROLLERS is requested in details. Available with Bootify Professional. ",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Data object name; null when the method has no input",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"name": {
"description": "Frontend method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
}
},
"required": [
"name",
"path",
"parameters",
"inputType"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"entity": {
"description": "Source entity name for generated controllers",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"generated": {
"description": "True for entity-generated read-only controllers",
"type": "boolean"
},
"name": {
"description": "Controller name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"type": "string"
}
},
"required": [
"name",
"generated",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"type": "array"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"indexes": {
"description": "Present when INDEXES is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"entity": {
"description": "Entity containing the indexed fields or owning-side relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fields": {
"description": "Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.",
"items": {
"description": "Entity field or owning-side relation name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 32,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"name": {
"description": "Automatically derived Entity.field1-field2 identifier",
"maxLength": 16384,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+",
"type": "string"
},
"unique": {
"description": "Whether the index enforces a unique field combination",
"type": "boolean"
}
},
"required": [
"name",
"entity",
"unique",
"fields"
],
"type": "object"
},
"type": "array"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"required": [
"enabled",
"connection"
],
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
},
"relations": {
"description": "Present when RELATIONS is requested in details. Each identifier is the canonical selector for the current state and must be copied into updateRelation or deleteRelation. Refetch after renaming an entity or changing an owning field.",
"items": {
"additionalProperties": false,
"properties": {
"fromEntity": {
"description": "Entity on the from side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fromField": {
"description": "Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"identifier": {
"description": "Canonical relation selector. It is OwningEntity.owningField: fromEntity.fromField for MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY, but toEntity.toField for ONE_TO_MANY. Copy this value into updateRelation or deleteRelation.",
"maxLength": 511,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"required": {
"description": "Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations",
"type": "boolean"
},
"tableName": {
"description": "Join-table name; required only for MANY_TO_MANY",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"toEntity": {
"description": "Entity on the to side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"toField": {
"description": "Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"description": "Cardinality from fromEntity to toEntity",
"enum": [
"MANY_TO_ONE",
"ONE_TO_MANY",
"ONE_TO_ONE",
"MANY_TO_MANY"
],
"type": "string"
},
"unidirectional": {
"description": "Omit the reverse field. Relations across application modules must be unidirectional",
"type": "boolean"
}
},
"required": [
"identifier",
"type",
"fromEntity",
"toEntity",
"required",
"unidirectional"
],
"type": "object"
},
"type": "array"
},
"restControllers": {
"description": "Present when REST_CONTROLLERS is requested in details. Available with Bootify Professional. ",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom application module name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
],
"type": "string"
},
"name": {
"description": "Endpoint method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
},
"responseStatus": {
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"responseType": {
"description": "Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"method",
"path",
"parameters",
"responseType",
"responseStatus"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"entity": {
"description": "Source entity name for generated controllers",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"generated": {
"description": "True for entity-generated read-only controllers",
"type": "boolean"
},
"name": {
"description": "Controller name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Parameters in path order; query is derived from the path declaration",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"query": {
"description": "Whether the parameter originates from the query declaration",
"type": "boolean"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type",
"query"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"type": "string"
}
},
"required": [
"name",
"generated",
"path",
"parameters",
"endpoints"
],
"type": "object"
},
"type": "array"
},
"securityConfigs": {
"description": "Present when SECURITY_CONFIGS is requested in details",
"items": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom app module name; null selects base",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"authenticationMethod": {
"enum": [
"ANNOTATION_BASED",
"CONFIG_BASED"
],
"type": "string"
},
"externalIdField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"hashField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"jwtAlgorithm": {
"enum": [
null,
"HMAC",
"RSA"
],
"type": [
"string",
"null"
]
},
"keycloakClientId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"keycloakRealmId": {
"maxLength": 255,
"type": [
"string",
"null"
]
},
"loginClientIds": {
"additionalProperties": {
"maxLength": 255,
"minLength": 1,
"type": "string"
},
"type": "object"
},
"loginMethods": {
"items": {
"enum": [
"DIRECT",
"GOOGLE",
"GITHUB",
"FACEBOOK"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"loginTypeField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapEmailField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapFirstNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"mapLastNameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"name": {
"description": "Security config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"refreshTokenExpiryPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"refreshTokenPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"registrationEndpoint": {
"type": "boolean"
},
"rememberMe": {
"enum": [
null,
"NONE",
"CHECKBOX",
"ALWAYS"
],
"type": [
"string",
"null"
]
},
"resetStartField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"resetUidField": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleEnum": {
"description": "Enum supplying role names",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"roleFieldEnumPath": {
"maxLength": 510,
"type": [
"string",
"null"
]
},
"roleSource": {
"enum": [
"CONSTANTS",
"ENUM",
"ENTITY_FIELD"
],
"type": "string"
},
"roles": {
"items": {
"additionalProperties": false,
"properties": {
"name": {
"maxLength": 100,
"minLength": 1,
"type": "string"
},
"paths": {
"items": {
"maxLength": 510,
"minLength": 1,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
}
},
"required": [
"name",
"paths"
],
"type": "object"
},
"maxItems": 255,
"minItems": 1,
"type": "array"
},
"sourceEntity": {
"description": "User source entity name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"enum": [
"BASIC_AUTH",
"JWT",
"FORM_SESSION",
"KEYCLOAK_RESOURCE_SERVER",
"KEYCLOAK_CLIENT"
],
"type": "string"
},
"usernameField": {
"maxLength": 510,
"type": [
"string",
"null"
]
}
},
"required": [
"name",
"type",
"loginMethods",
"loginClientIds",
"authenticationMethod",
"roleSource",
"roles",
"registrationEndpoint"
],
"type": "object"
},
"type": "array"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"name",
"group",
"buildType",
"language",
"developerPreferences",
"frontend",
"database",
"dependencies",
"planLevel",
"planStatus"
],
"type": "object"
},
"projectId": {
"type": "string"
},
"projectUrl": {
"description": "The 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",
"format": "uri",
"type": "string"
}
},
"required": [
"message",
"projectId",
"projectUrl",
"planLevel",
"planStatus",
"project"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Update one or more advanced project options. MODULITH generates package-based application modules, while MULTI_MODULE generates physical Gradle or Maven modules. Select either before defining an application-module graph. Background information: https://bootify.io/docs/modules-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"actuatorEnabled": {
"description": "Add Spring Boot Actuator",
"type": "boolean"
},
"actuatorEndpoints": {
"description": "Actuator endpoints to expose; an empty list exposes all available endpoints",
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"hateoasEnabled": {
"description": "Use HATEOAS for the REST API",
"type": "boolean"
},
"mapStructEnabled": {
"description": "Use MapStruct instead of generated mapping code",
"type": "boolean"
},
"modularization": {
"description": "NONE generates a monolith; MODULITH and MULTI_MODULE activate the application-module graph",
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"description": "Prefix generated module artifact names with the project name in MULTI_MODULE mode",
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"serviceInterfaceEnabled": {
"description": "Generate separate service interfaces and implementations",
"type": "boolean"
},
"springSession": {
"description": "Spring Session persistence; JDBC uses the configured relational or embedded database",
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"description": "Generated test setup",
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateAdvancedOptions",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Update or rename a custom application module identified by its current name. When provided, references replace all current direct dependencies. The same graph defines package boundaries for MODULITH and physical build modules for MULTI_MODULE; select either with updateAdvancedOptions first. The implicit base module is the lowest-level shared module and is integrated directly or transitively by every other module. A custom module with no references depends on base. The implicit web module is the highest-level application wrapper and automatically depends on every custom root module; in MULTI_MODULE it assembles the executable application. Neither implicit module can be edited. Dependencies must be acyclic and should point from a feature toward the lower-level modules it uses. Background information: https://bootify.io/docs/modules-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"name": {
"description": "Current name of the custom module",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New module name; omit to keep its name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"references": {
"description": "Unique names of existing custom modules used as direct dependencies. Omit or use an empty array to depend on the implicit base module.",
"items": {
"description": "Referenced custom module name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateAppModule",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update or rename a custom data object by name. Entity-generated DTOs are returned by getProject with generated=true and must be changed through their entity fields or REST/frontend options. Background information: https://bootify.io/spring-data/hibernate-json-type.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"appModule": {
"description": "Custom app module; null selects base. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered data object field list.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"minItems": 1,
"type": "array"
},
"name": {
"description": "Current name of the data object",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New data object name; omit to keep its name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateDataObject",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update the database and schema management settings of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateDatabase",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update one or more database naming settings of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"tablePrefix": {
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"tableSuffix": {
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateDatabaseNaming",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Enable or disable generated date fields and configure their names. Background information: https://bootify.io/docs/general-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"dateCreatedName": {
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"enabled": {
"type": "boolean"
},
"lastUpdatedName": {
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateDateFields",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update one or more developer preferences of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"applicationFormat": {
"description": "Format of the generated Spring application configuration",
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"description": "Generate Docker Compose support for local development",
"type": "boolean"
},
"includeAgentInstructions": {
"description": "Generate AGENTS.md with coding agent instructions",
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"description": "Generate OpenAPI documentation and Swagger UI",
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateDeveloperPreferences",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update or rename an entity identified by its current name. Only provided properties are changed; a provided fields array replaces all fields.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"appModule": {
"description": "App module name; null selects the base module. Available with Bootify Professional. ",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"featurePackage": {
"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"
]
},
"fields": {
"description": "Complete ordered entity field list. Exactly one primary key is required for a concrete entity unless inherited; abstract superclasses may omit it. A primary key must be the first field and use INTEGER, LONG, UUID or STRING. required is ignored for it.",
"items": {
"additionalProperties": false,
"properties": {
"fileEndings": {
"description": "Allowed file endings for FILE fields",
"items": {
"maxLength": 255,
"type": "string"
},
"maxItems": 255,
"type": "array",
"uniqueItems": true
},
"max": {
"description": "Maximum length for STRING or LIST<STRING> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"name": {
"description": "Field name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"precision": {
"description": "Total decimal digits for NUMERIC or LIST<NUMERIC> fields",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"primaryKey": {
"type": "boolean"
},
"required": {
"type": "boolean"
},
"scale": {
"description": "Fractional decimal digits for NUMERIC or LIST<NUMERIC>; must not exceed precision",
"maximum": 99999,
"minimum": 1,
"type": "integer"
},
"type": {
"description": "Built-in types: BOOLEAN, UUID, FILE, STRING, TEXT, INTEGER, LONG, DOUBLE, NUMERIC, LOCAL_DATE, LOCAL_TIME, LOCAL_DATE_TIME, OFFSET_DATE_TIME. Use an existing project enum or custom data object name for custom types; the type must be accessible from the owning module. Entity-generated DTOs cannot be used as field types. Collections use LIST<T> and MAP<K,V>, for example LIST<STRING> or MAP<STRING,OrderStatus>. Container nesting and PAGE fields are not supported. FILE is allowed only as a direct field type; TEXT cannot be a map value. Map keys are BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum name.",
"maxLength": 255,
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 1024,
"type": "array"
},
"frontendEnabled": {
"type": "boolean"
},
"inherits": {
"description": "Name of the superclass entity; null removes inheritance",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"name": {
"description": "Current name of the entity to update",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New entity name; omit to keep the current name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"paginationEnabled": {
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"restEnabled": {
"type": "boolean"
},
"searchFilterEnabled": {
"type": "boolean"
},
"superclass": {
"type": "boolean"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateEntity",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update or rename an enum identified by its current name. Provide newName, values, or both.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"featurePackage": {
"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"
]
},
"name": {
"description": "Current name of the enum to update",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New enum name; omit to keep the current name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"values": {
"description": "Ordered, unique enum values such as DRAFT and PUBLISHED",
"items": {
"maxLength": 100,
"pattern": "[A-Z]+[A-Z0-9]*(_[A-Z0-9]+)*",
"type": "string"
},
"maxItems": 255,
"minItems": 1,
"type": "array",
"uniqueItems": true
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateEnum",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update one or more frontend settings of an existing Bootify project. Background information: https://bootify.io/docs/frontend-settings.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Used only with Thymeleaf and JTE",
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"typescriptEnabled": {
"description": "Used only with Vite or Webpack for Thymeleaf and JTE",
"type": "boolean"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateFrontend",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Update or rename a custom frontend controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"appModule": {
"description": "Custom application module name; null selects the web module",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Existing data object name, including entity-generated DTOs, accessible from the controller module. No built-ins, enums or collections. Omit when the method has no input",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"name": {
"description": "Frontend method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
}
},
"required": [
"name",
"path",
"parameters"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"featurePackage": {
"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"
]
},
"name": {
"description": "Current name of the frontend controller",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New controller name; omit to keep its name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Controller base path, with optional {name} placeholders",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]+(\\.|_[a-zA-Z0-9]+)*|(\\{[a-zA-Z]+\\}))+)*/?)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateFrontendController",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update an index by its current Entity.field1-field2 identifier. Only provided properties are changed; the response contains its updated identifier.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"entity": {
"description": "Entity containing the indexed fields or owning-side relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fields": {
"description": "Ordered field or owning-side relation names. Order affects index usage; many-to-many relations are not available and a primary key cannot be used alone.",
"items": {
"description": "Entity field or owning-side relation name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"maxItems": 32,
"minItems": 1,
"type": "array",
"uniqueItems": true
},
"name": {
"description": "Current Entity.field1-field2 identifier",
"maxLength": 16384,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*(?:\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*)+",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"unique": {
"description": "Whether the index enforces a unique field combination",
"type": "boolean"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateIndex",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"name": {
"description": "Current canonical selector; copy into subsequent update or delete calls",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Enable or disable mail support and configure the generated application's SMTP connection.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"pattern": ".+",
"type": [
"string",
"null"
]
},
"enabled": {
"type": "boolean"
},
"from": {
"pattern": "[A-Za-z0-9_\\-\\+]+(\\.[_A-Za-z0-9\\-]+)*@[A-Za-z0-9\\-]+(\\.[A-Za-z0-9\\-]+)*(\\.[A-Za-z]{2,})",
"type": [
"string",
"null"
]
},
"host": {
"pattern": "[a-zA-Z0-9]+((-|\\.)[a-zA-Z0-9]+)*(\\.[A-Za-z]{2,})",
"type": [
"string",
"null"
]
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"username": {
"pattern": ".+",
"type": [
"string",
"null"
]
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateMailSettings",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update a relation whose type describes the cardinality from fromEntity to toEntity. For MANY_TO_ONE, ONE_TO_ONE and MANY_TO_MANY the owning field is fromEntity.fromField; for ONE_TO_MANY it is toEntity.toField. The response includes that canonical owning-side value as identifier. Bidirectional relations require both fields. Background information: https://bootify.io/docs/jpa-relationship-types-with-examples.html. Identify the existing relation with its current identifier returned by addRelation, updateRelation or getProject; do not reconstruct internal IDs. Only provided relation properties are changed. If an update changes the owning entity or field, use the newly returned identifier for subsequent calls.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"fromEntity": {
"description": "Entity on the from side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"fromField": {
"description": "Field generated on fromEntity. Required unless an unidirectional ONE_TO_MANY relation omits this reverse field",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"identifier": {
"description": "Current identifier copied verbatim from addRelation, updateRelation or getProject RELATIONS",
"maxLength": 511,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*\\.[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"required": {
"description": "Whether the owning foreign key is required. Not applicable to MANY_TO_MANY or self-relations",
"type": "boolean"
},
"tableName": {
"description": "Join-table name; required only for MANY_TO_MANY",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"toEntity": {
"description": "Entity on the to side of the cardinality",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"toField": {
"description": "Field generated on toEntity. Required for ONE_TO_MANY and bidirectional relations; also required for self-referencing MANY_TO_MANY relations",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"type": {
"description": "Cardinality from fromEntity to toEntity",
"enum": [
"MANY_TO_ONE",
"ONE_TO_MANY",
"ONE_TO_ONE",
"MANY_TO_MANY"
],
"type": "string"
},
"unidirectional": {
"description": "Omit the reverse field. Relations across application modules must be unidirectional",
"type": "boolean"
}
},
"required": [
"projectId",
"identifier"
],
"type": "object"
},
"name": "updateRelation",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"identifier": {
"description": "Current canonical selector; copy into subsequent update or delete calls",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Available with Bootify Professional. Update or rename a custom REST controller by name. Entity-generated controllers are returned by the matching getProject details option with generated=true and must be changed through their entity options.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 3,
"properties": {
"appModule": {
"description": "Custom application module name; null selects the web module",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"endpoints": {
"items": {
"additionalProperties": false,
"properties": {
"inputType": {
"description": "Required for POST, PUT and PATCH; omit for other HTTP methods. Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. No collections. Custom types must be accessible from the controller module.",
"maxLength": 255,
"type": [
"string",
"null"
]
},
"method": {
"enum": [
"GET",
"POST",
"PUT",
"PATCH",
"DELETE",
"HEAD",
"OPTIONS",
"TRACE"
],
"type": "string"
},
"name": {
"description": "Endpoint method name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Endpoint path. Declare path parameters as {name} and query parameters as ?name=&other=, then provide matching name and type entries in parameters.",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*(\\?([a-zA-Z]+[a-zA-Z0-9]*)=(&([a-zA-Z]+[a-zA-Z0-9]*)=)*)?",
"type": "string"
},
"responseStatus": {
"maximum": 599,
"minimum": 100,
"type": "integer"
},
"responseType": {
"description": "Types: VOID, BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID, or an existing project enum or data object name, including entity-generated DTOs. VOID means no response body. Collections: LIST<T>, PAGE<T>, MAP<K,V>; no nesting. Map keys: BOOLEAN, STRING, INTEGER, LONG, DOUBLE, UUID or an enum. Custom types must be accessible from the controller module. Example: PAGE<OrderDTO>.",
"maxLength": 255,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"method",
"path",
"parameters",
"responseType",
"responseStatus"
],
"type": "object"
},
"maxItems": 100,
"minItems": 1,
"type": "array"
},
"featurePackage": {
"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"
]
},
"name": {
"description": "Current name of the REST controller",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New controller name; omit to keep its name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"parameters": {
"description": "Types for every placeholder and query declaration, in the same order as path. Bootify derives whether each parameter is a path or query parameter.",
"items": {
"additionalProperties": false,
"properties": {
"name": {
"description": "Parameter name",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"type": {
"enum": [
"BOOLEAN",
"STRING",
"INTEGER",
"LONG",
"UUID"
],
"type": "string"
}
},
"required": [
"name",
"type"
],
"type": "object"
},
"maxItems": 255,
"type": "array"
},
"path": {
"description": "Controller base path, with optional {name} placeholders",
"maxLength": 255,
"pattern": "/?(([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+((-|/)([a-zA-Z0-9]|(\\{[a-zA-Z]+\\}))+)*/?)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateRestController",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Change only the identity, type, module or authentication mode. Changing type resets type-specific settings to defaults.",
"inputSchema": {
"additionalProperties": false,
"properties": {
"appModule": {
"description": "Custom app module; null selects base",
"maxLength": 255,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": [
"string",
"null"
]
},
"authenticationMethod": {
"enum": [
"ANNOTATION_BASED",
"CONFIG_BASED"
],
"type": "string"
},
"featurePackage": {
"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"
]
},
"name": {
"description": "Current config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"newName": {
"description": "New config name",
"maxLength": 100,
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"type": {
"enum": [
"BASIC_AUTH",
"JWT",
"FORM_SESSION",
"KEYCLOAK_RESOURCE_SERVER",
"KEYCLOAK_CLIENT"
],
"type": "string"
}
},
"required": [
"projectId",
"name"
],
"type": "object"
},
"name": "updateSecurityConfig",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Update one or more basic settings of an existing Bootify project. Background information: https://bootify.io/docs/general-tab.html",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"group": {
"description": "A group name such as com.my-group, used for build settings and package name",
"pattern": "[a-z]+[a-z0-9]*((-|\\.)[a-z]+[a-z0-9]*)*",
"type": "string"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Ignored for Kotlin projects",
"type": "boolean"
},
"name": {
"description": "A project name such as my-project",
"pattern": "[a-zA-Z]+[a-zA-Z0-9]*(-[a-zA-Z0-9]+)*",
"type": "string"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateSettings",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
},
{
"description": "Include utilities for custom code even when the project does not require them. Required utilities cannot be disabled. They remain included when no longer required, until explicitly disabled. Omitted options retain their values. Inspect utilities in getProject for the current inclusion state.",
"inputSchema": {
"additionalProperties": false,
"minProperties": 2,
"properties": {
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "updateUtilities",
"outputSchema": {
"additionalProperties": false,
"properties": {
"affectedAreas": {
"description": "Object lists changed directly or by automatic effects. Lists are not returned; use getProject with these details when needed. Empty for no list changes.",
"items": {
"enum": [
"APP_MODULES",
"ENUMS",
"DATA_OBJECTS",
"ENTITIES",
"RELATIONS",
"INDEXES",
"REST_CONTROLLERS",
"FRONTEND_CONTROLLERS",
"SECURITY_CONFIGS"
],
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"changes": {
"additionalProperties": false,
"description": "Only settings whose values actually changed, including automatic effects, using final stored values in MCP format. Nested objects contain changed properties only. Empty when no settings changed; values that are no longer exposed are omitted.",
"properties": {
"advancedOptions": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"actuatorEnabled": {
"type": "boolean"
},
"actuatorEndpoints": {
"items": {
"enum": [
"auditevents",
"beans",
"caches",
"conditions",
"configprops",
"env",
"flyway",
"health",
"httpexchanges",
"info",
"integrationgraph",
"loggers",
"liquibase",
"metrics",
"mappings",
"modulith",
"quartz",
"scheduledtasks",
"sessions",
"shutdown",
"startup",
"threaddump",
"heapdump",
"logfile",
"prometheus"
],
"type": "string"
},
"type": "array"
},
"hateoasEnabled": {
"type": "boolean"
},
"mapStructEnabled": {
"type": "boolean"
},
"modularization": {
"enum": [
"NONE",
"MODULITH",
"MULTI_MODULE"
],
"type": "string"
},
"multiModulePrefix": {
"type": "boolean"
},
"serviceInterfaceEnabled": {
"type": "boolean"
},
"springSession": {
"enum": [
"NONE",
"JDBC",
"REDIS"
],
"type": "string"
},
"testSetup": {
"enum": [
"NONE",
"TESTCONTAINERS",
"PLAYWRIGHT",
"ALL"
],
"type": "string"
}
},
"type": "object"
},
"buildType": {
"enum": [
"GRADLE",
"MAVEN"
],
"type": "string"
},
"database": {
"additionalProperties": false,
"properties": {
"dateCreatedName": {
"type": "string"
},
"dateFieldsEnabled": {
"type": "boolean"
},
"lastUpdatedName": {
"type": "string"
},
"mongoSchemaType": {
"enum": [
"NONE",
"MONGOCK"
],
"type": "string"
},
"namingStrategy": {
"enum": [
"NONE",
"UPPERCASE_ALL",
"UPPERCASE_TABLES",
"CAMELCASE_ALL",
"CAMELCASE_TABLES"
],
"type": "string"
},
"pluralizeTableName": {
"type": "boolean"
},
"schemaType": {
"enum": [
"NONE",
"HIBERNATE",
"FLYWAY",
"LIQUIBASE"
],
"type": "string"
},
"tablePrefix": {
"type": "string"
},
"tableSuffix": {
"type": "string"
},
"type": {
"enum": [
"NONE",
"OTHER",
"MSSQL",
"MYSQL",
"MARIADB",
"ORACLE",
"POSTGRES",
"MONGODB",
"DERBY",
"H2",
"HSQL"
],
"type": "string"
}
},
"type": "object"
},
"dependencies": {
"description": "Dependencies added to the generated Maven or Gradle build. Compatible versions are supplied by Spring Boot dependency management.",
"items": {
"type": "string"
},
"type": "array",
"uniqueItems": true
},
"developerPreferences": {
"additionalProperties": false,
"properties": {
"applicationFormat": {
"enum": [
"YAML",
"PROPERTIES"
],
"type": "string"
},
"deployment": {
"enum": [
"NONE",
"HEROKU_GITHUB",
"HEROKU_GITLAB"
],
"type": "string"
},
"dockerComposeEnabled": {
"type": "boolean"
},
"includeAgentInstructions": {
"type": "boolean"
},
"javaVersion": {
"enum": [
17,
21,
25
],
"type": "integer"
},
"openApiEnabled": {
"type": "boolean"
},
"packageStructure": {
"description": "Package layout: TECHNICAL groups classes by technical type in packages such as domain, repos, service and rest; DOMAIN_DRIVEN groups all classes related to an entity in a package named after that entity; MIXED creates an entity package with technical subpackages.",
"enum": [
"TECHNICAL",
"DOMAIN_DRIVEN",
"MIXED"
],
"type": "string"
}
},
"type": "object"
},
"frontend": {
"additionalProperties": false,
"properties": {
"buildTool": {
"enum": [
"NONE",
"VITE",
"WEBPACK"
],
"type": "string"
},
"cssFramework": {
"enum": [
"BOOTSTRAP",
"TAILWIND"
],
"type": "string"
},
"framework": {
"enum": [
"NONE",
"THYMELEAF",
"JTE",
"ANGULAR",
"REACT"
],
"type": "string"
},
"htmxEnabled": {
"description": "Present only for Thymeleaf and JTE",
"type": "boolean"
},
"typescriptEnabled": {
"description": "Present only for Vite or Webpack with Thymeleaf and JTE",
"type": "boolean"
}
},
"type": "object"
},
"group": {
"type": "string"
},
"includeFileHandling": {
"description": "Include file handling services and database storage",
"type": "boolean"
},
"includeInputRow": {
"description": "Include inputRow and supporting form utilities; requires Thymeleaf, jte, Angular or React",
"type": "boolean"
},
"includePaginationAndSorting": {
"description": "Include frontend pagination and sorting utilities; requires a frontend framework",
"type": "boolean"
},
"includeSearchFilter": {
"description": "Include frontend search filter utilities; requires a frontend framework",
"type": "boolean"
},
"language": {
"enum": [
"JAVA",
"KOTLIN"
],
"type": "string"
},
"lombokEnabled": {
"description": "Whether Lombok is enabled; present only for Java projects",
"type": "boolean"
},
"mailSettings": {
"additionalProperties": false,
"description": "Available with Bootify Professional. ",
"properties": {
"connection": {
"enum": [
"TLS",
"SSL"
],
"type": "string"
},
"displayName": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"from": {
"type": "string"
},
"host": {
"type": "string"
},
"username": {
"type": "string"
}
},
"type": "object"
},
"name": {
"type": "string"
},
"planLevel": {
"description": "The feature level assigned to the project",
"enum": [
"FREE",
"PROFESSIONAL",
"ENTERPRISE"
],
"type": "string"
},
"planStatus": {
"description": "Whether the project's plan is still valid",
"enum": [
"VALID",
"EXPIRED"
],
"type": "string"
}
},
"type": "object"
},
"projectId": {
"description": "The project ID returned by startProject",
"type": "string"
},
"userProjectChanged": {
"const": true,
"description": "Present only once when the project appears to have been changed by the user since the preceding MCP call within the last two hours",
"type": "boolean"
}
},
"required": [
"projectId",
"changes",
"affectedAreas"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:48ed86a675e3cec1ed04bb7948c96eaac5de30311b8e29a0fae5e8b35c1da7d5 | sha256sum