SchemaSmith Documentation

Modification Tools

9 tools for controlled schema modifications with confirmation workflows.

Ask Forge Modification Tools

Operator Trust Level

Ask Forge Tier 3 tools can modify your schema JSON files directly. They apply changes, rename objects, create new structures, and update configuration — but every operation requires explicit confirmation before executing.

These tools modify local schema files only. They do not touch live databases. To deploy changes to a database, use the Tier 4 external tools after making your modifications.

Tier 3 tools require the Operator trust level or higher. Confirmation is required by default, controlled by the confirmTier3 setting. They include all Tier 1 and Tier 2 capabilities.

Context Navigation

Change which product, template, or table Ask Forge is working with.

navigate-context MCP: forge_navigate_context

Changes the current product, template, or table selection. This sets the working context for all subsequent commands — most Tier 3 tools require an active product and template context to operate.

At least one of --product, --template, --table, or --working-directory must be provided unless --clear is used to reset the context.

Key parameters:

  • --product — Path to product directory to load
  • --template — Template name to select
  • --table — Table name to focus on
  • --clear — Clear the current context

Example:

ask-forge navigate-context --product ./MyProduct \
  --template Main --table Customers

Returns: Confirmation of the new context with product, template, and table details.

Schema Modifications

Apply changes to schema JSON files — add columns, modify constraints, create tables, rename objects, and write generated schemas.

apply-change MCP: forge_apply_change

Modifies schema JSON files to apply a specific change. This is the general-purpose modification tool — it can add columns, change data types, modify constraints, update indexes, manage foreign keys, and alter any other schema property.

Requires an active template context. The --definition parameter accepts a JSON object whose structure depends on the --change-type. Before applying, the tool shows you exactly what will change.

Key parameters:

  • --change-type (required) — Type of change: add_column, modify_column, remove_column, add_index, modify_index, remove_index, add_fk, modify_fk, remove_fk, add_check, modify_check, remove_check, and more
  • --table (required) — Target table name
  • --definition (required) — JSON definition of the change

Example:

ask-forge apply-change --change-type add_column \
  --table Customers \
  --definition '{"Name":"[Email]","DataType":"nvarchar(255)","IsNullable":false}'

Returns: Diff preview of the change, then the updated schema file after confirmation.

create-table MCP: forge_create_table

Creates a new table definition with platform-correct conventions. Automatically generates a primary key column, infers the PK naming pattern and data type from existing tables in the template, and applies platform naming conventions (PascalCase for MSSQL, snake_case for PostgreSQL).

Requires an active template context. When --columns is omitted, the tool creates a table with only an auto-generated primary key column.

Key parameters:

  • --table (required) — Table name (bare name without identifier wrapping)
  • --schema — Schema name (defaults to platform default: dbo, public, or database name)
  • --columns — JSON array of column definitions with name, type, nullable, and pk properties

Example:

ask-forge create-table --table Orders --schema dbo \
  --columns '[{"name":"OrderDate","type":"datetime2"},{"name":"Total","type":"decimal(18,2)","nullable":false}]'

Returns: Preview of the new table definition, then the created schema file after confirmation.

rename-column MCP: forge_rename_column

Renames a column with full cascade through all dependent objects — indexes, foreign keys, check constraints, statistics, and full-text indexes. Sets the column's OldName property for SchemaQuench deployment tracking.

The tool also scans script folders for references to the old column name and reports affected files. Script files are not modified automatically; they must be updated manually.

Key parameters:

  • --table (required) — Target table name
  • --column (required) — Current column name
  • --new-name (required) — New column name

Example:

ask-forge rename-column --table Customers \
  --column Email --new-name EmailAddress

Returns: List of all affected objects and script references, then the updated schema after confirmation.

rename-table MCP: forge_rename_table

Renames a table with cascade through FK references in other tables, naming pattern suggestions, and script scanning. Sets OldName on the table JSON, renames the file on disk, and updates all cross-table foreign key references automatically.

Detects dependent object names that contain the old table name (indexes, FKs, check constraints, statistics) and suggests renames. Script file references are reported but not auto-applied.

Key parameters:

  • --table (required) — Current table name
  • --new-name (required) — New table name

Example:

ask-forge rename-table --table Customer --new-name Client

Returns: List of all affected files, FK references, and naming suggestions, then the updated schema after confirmation.

apply-generated-schema MCP: forge_apply_generated_schema

Writes generated schema tables to the template directory as JSON files. Takes the JSON output from the Tier 2 generate-schema tool and saves individual table files as {schema}.{tableName}.json.

Bridges the gap between Tier 2 generation and Tier 3 modification — generate a schema design first, review it, then apply it to write the files to your project.

Key parameters:

  • --schema (required) — GeneratedSchema JSON from generate-schema output
  • --product-path — Target product directory (defaults to current context)
  • --template — Target template name (defaults to current context)

Example:

ask-forge apply-generated-schema \
  --schema '{"Blueprint":{"Name":"OrderSystem"},...}' \
  --product-path ./MyProduct --template Main

Returns: List of table files to be created, then the written files after confirmation.

Deployment & Packaging

Create deployment packages and manage script folder structures within your project.

create-package MCP: forge_create_package

Creates a deployment package (zip) containing schema files and scripts. Requires an active product context. The archive includes Product.json, template directories with table JSON files, and optionally script folders.

If a package with the same name already exists, the tool prompts for confirmation before overwriting.

Key parameters:

  • --name (required) — Package name (without .zip extension)
  • --output-path — Directory to save the package (default: product root)
  • --include-scripts — Include script folders (default: true)
  • --template — Specific template to package (default: all templates)

Example:

ask-forge create-package --name release-v2.1.0

Returns: Preview of the package contents, then the created zip file path after confirmation.

add-folder MCP: forge_add_folder

Creates a new script folder with QuenchSlot inference and JSON registration, or a subfolder under an existing folder. Requires an active product context.

In registered folder mode (no --parent), creates the directory and registers it in Product.json or Template.json with the appropriate QuenchSlot. The slot is inferred from the folder name when not specified — for example, "Procedures" maps to Objects, "MigrationScripts" maps to Before. In subfolder mode (--parent provided), creates a subdirectory that inherits the parent's slot.

Key parameters:

  • --folder (required) — Folder name to create
  • --parent — Parent folder name for creating a subfolder
  • --quench-slot — Deployment execution slot (inferred from name if omitted)
  • --level — Where to register: product or template

Example:

ask-forge add-folder --folder Procedures --level product

Returns: Preview of the folder creation and JSON registration, then the created directory after confirmation.

Advanced Management

manage-tokens MCP: forge_manage_tokens

Full CRUD management and analysis of script tokens ({{TokenName}} placeholders). Tokens are replaced with environment-specific values during SchemaQuench deployment. This tool can list, add, update, remove, scan for usage, and suggest tokenization opportunities.

Read-only actions (list, scan, suggest) do not require confirmation. Write actions (add, update, remove) require confirmation before execution. Supports special token types via value prefixes: <*Query*>, <*File*>, <*QueryFile*>, <*BinaryFile*>, and <*SpecificTable*>.

Key parameters:

  • --action (required) — Operation: list, add, update, remove, scan, suggest
  • --level — Target level: product or template (required for write actions)
  • --token-name — Token name without {{ }} (required for add, update, remove)
  • --token-value — Token value (required for add and update)
  • --scan-modetoken (find references) or orphans (find undefined references)

Example:

ask-forge manage-tokens --action add \
  --level product --token-name DatabaseName \
  --token-value MyAppDB

Returns: Token listing, scan results, or preview of the token change with the updated configuration after confirmation.

Confirmation Workflow

Every Tier 3 operation requires explicit confirmation before executing. This behavior is controlled by the confirmTier3 setting and is enabled by default. In the MCP server, the confirmation request is sent to the AI client, which prompts you to approve or reject the change. In the CLI, use --yes to skip confirmation for scripted workflows.

How It Works

  1. You request a modification (e.g., "rename the Users table to Accounts").
  2. Ask Forge analyzes the change and shows a preview of all affected files and the specific modifications.
  3. The MCP client displays a confirmation prompt with the change summary.
  4. You approve or reject the change.
  5. If approved, the modification is applied. If rejected, no files are changed.

Safety Guarantees

  • No silent modifications — Every change requires your explicit approval.
  • Full preview — You see exactly what will change before confirming.
  • Atomic operations — Changes either fully apply or fully roll back. No partial modifications.
  • Local files only — Tier 3 tools modify schema JSON files on disk. They never connect to or modify live databases.

Related Documentation