SchemaSmith Documentation

Read-Only Tools

28 read-only tools that inspect and analyze your schema without changing anything — navigation, configuration, analysis, validation, search, diagnostics, and platform-specific views.

By the SchemaSmith Team · Last reviewed

Ask Forge Read-Only Tools

All read-only — call them as often as you need.

The Read-Only Tier

Ask Forge's 28 Tier 1 (Read-Only) tools inspect your schema project files, analyze structures, validate quality, and search content — but they never modify anything. Because they make no changes, they are available from the Observer trust level up (Observer, Assistant, and Operator all include them).

All Ask Forge sessions start with Tier 1 access by default — no extra configuration needed. These tools operate on your schema project files; some generate SQL queries for you to run, but none connect to or modify a live database.

Context & Navigation

View the current working context, change the active selection, and list available templates, tables, folders, and scripts.

show-context MCP: schemasmith_show_context

Show the currently active product, template, and table selection.

Parameters: None.

Example:

ask-forge show-context
list-templates MCP: schemasmith_list_templates

List all templates in the current product.

Parameters: None.

Example:

ask-forge list-templates
list-tables MCP: schemasmith_list_tables

List all table names in the current template.

Parameters: --verbose (optional) — Include column counts and key information.

Example:

ask-forge list-tables --verbose
show-table MCP: schemasmith_show_table

Show the full table definition including columns, indexes, and foreign keys.

Parameters: --table (optional) — Table name to show. Uses the currently selected table if omitted.

Example:

ask-forge show-table --table Customers
list-folders MCP: schemasmith_list_folders

List all script folders with summary info.

Parameters: None.

Example:

ask-forge list-folders
list-scripts MCP: schemasmith_list_scripts

List scripts in a specified folder.

Parameters: --folder (required) — Name of the script folder to list contents of.

Example:

ask-forge list-scripts --folder PostDeploy

Configuration

Inspect the current Ask Forge configuration, database connections, and platform capabilities.

show-config MCP: schemasmith_show_config

Show the current configuration and database connections.

Parameters: --section (optional) — Section to show: connections or all (default).

Example:

ask-forge show-config --section connections
list-connections MCP: schemasmith_list_connections

List configured database connections.

Parameters: --platform (optional) — Filter by platform (SqlServer, PostgreSQL, or MySQL). Uses the context platform or lists all if omitted.

Example:

ask-forge list-connections --platform PostgreSQL
show-platform-capabilities MCP: schemasmith_show_platform_capabilities

Show platform feature support, naming rules, and capabilities for the current or specified platform.

Parameters: --platform (optional) — Platform to show capabilities for. Defaults to the current context platform.

Example:

ask-forge show-platform-capabilities --platform PostgreSQL

Schema Analysis

Compare tables, review schema health, map foreign-key dependencies, plan migrations, and detect naming conventions.

diff-tables MCP: schemasmith_diff_tables

Compare two table definitions and show differences in columns, indexes, and foreign keys.

Parameters: --table1 (required) — First table name. --table2 (required) — Second table name.

Example:

ask-forge diff-tables --table1 Customers --table2 CustomersArchive
review-schema MCP: schemasmith_review_schema

Run a comprehensive schema review across five analyzers — naming, indexing, data types, relationships, and nullability — returning a health score plus findings with severity, recommendations, and fix scripts.

Parameters: --tables (optional) — Comma-separated table names (default: all). --categories (optional) — Comma-separated: naming, indexing, types, relationships, nullability (default: all). --limit / --offset (optional) — Paginate findings.

Example:

ask-forge review-schema --categories naming,indexing --limit 50
dependencies MCP: schemasmith_dependencies

Analyze the foreign-key dependency graph: list a table's references, map the whole template, detect circular references, produce a topological order, or assess cascade impact.

Parameters: --table (optional) — Table to analyze (omit for template-wide). --analysis (optional)list, graph, circular, topological, cascade, or summary (default: list). --direction (optional)both, references, or referenced_by.

Example:

ask-forge dependencies --table Orders --analysis cascade
plan-migration MCP: schemasmith_plan_migration

Compare schema between two git refs and produce a dependency-ordered migration plan with SQL scripts.

Parameters: --source-ref (required) — Git ref for the source version (branch, tag, SHA, or working). --target-ref (optional) — Target ref (default: working). --template / --platform (optional) — Override the context. --limit / --offset (optional) — Paginate steps.

Example:

ask-forge plan-migration --source-ref main --target-ref working
show-conventions MCP: schemasmith_show_conventions

Detect and display naming conventions from the current template, including primary-key patterns, common columns, and naming styles.

Parameters: None.

Example:

ask-forge show-conventions

Data Validation

Generate SQL to check data quality and validate schema JSON against platform rules.

check-data MCP: schemasmith_check_data

Generate SQL to check data quality. One tool covers three checks via --check-type: NULL values, orphaned foreign-key references, and duplicate values. Ask Forge produces the query for you to run; it does not execute against a live database itself.

Parameters: --check-type (required)nulls, orphans, or duplicates. --table (required) — Table to check. --column (for nulls) — Column to check. --columns (for duplicates) — Comma-separated columns. --foreign-key (optional, for orphans) — Specific FK; checks all FKs if omitted.

Example:

ask-forge check-data --check-type nulls --table Customers --column Email
validate-json MCP: schemasmith_validate_json

Validate table JSON files against platform schema rules and report structural errors.

Parameters: --scope (optional)current_table, current_template, or all (default).

Example:

ask-forge validate-json --scope current_template

Diagnostics & Discovery

View tool logs, and discover the right tool for a task then run it by name.

view-log MCP: schemasmith_view_log

View or open external tool log files.

Parameters: --log-path (required) — Path to the log file to view. --tail-lines (optional) — Lines to return from the end of the file (default: 50). --open-external (optional) — Open the log in the system text editor instead of returning content.

Example:

ask-forge view-log --log-path ./logs/quench.log --tail-lines 100
discover-tools MCP: schemasmith_discover_tools

Find tools by describing what you want to do. Returns matching tool names, descriptions, tiers, and parameter schemas — the entry point to the full 47-tool catalog beyond the promoted set.

Parameters: --query (required) — Describe the task (e.g., "compare two tables", "list script folders").

Example:

ask-forge discover-tools --query "compare two tables"
execute-tool MCP: schemasmith_execute_tool

Run any tool by name with arguments — typically used after discover-tools. The named tool's own trust tier and confirmation requirements still apply.

Parameters: --tool-name (required) — Name of the tool to run. --arguments (optional) — JSON object of tool arguments.

Example:

ask-forge execute-tool --tool-name diff_tables \
  --arguments '{"table1":"Customers","table2":"CustomersArchive"}'

Platform-Specific Views

These tools are platform-gated: materialized-view tools require PostgreSQL and indexed-view tools require SQL Server. Each returns an error if the active platform doesn't match.

PostgreSQL — Materialized Views

list-materialized-views MCP: schemasmith_list_materialized_views

List all materialized views in the current template (PostgreSQL only).

Parameters: --verbose (optional) — Include index details for each materialized view.

Example:

ask-forge list-materialized-views --verbose
show-materialized-view MCP: schemasmith_show_materialized_view

Show the full definition of a materialized view (PostgreSQL only).

Parameters: --name (required) — Materialized view name (e.g., public.sales_summary).

Example:

ask-forge show-materialized-view --name public.sales_summary
diff-materialized-views MCP: schemasmith_diff_materialized_views

Compare two materialized view definitions (PostgreSQL only).

Parameters: --view1 (required) — First materialized view name. --view2 (required) — Second materialized view name.

Example:

ask-forge diff-materialized-views --view1 public.sales_v1 --view2 public.sales_v2

SQL Server — Indexed Views

list-indexed-views MCP: schemasmith_list_indexed_views

List all indexed views in the current template (SQL Server only).

Parameters: --verbose (optional) — Include index details for each indexed view.

Example:

ask-forge list-indexed-views --verbose
show-indexed-view MCP: schemasmith_show_indexed_view

Show the full definition of an indexed view (SQL Server only).

Parameters: --name (required) — Indexed view name (e.g., dbo.OrderSummary).

Example:

ask-forge show-indexed-view --name dbo.OrderSummary
diff-indexed-views MCP: schemasmith_diff_indexed_views

Compare two indexed view definitions (SQL Server only).

Parameters: --view1 (required) — First indexed view name. --view2 (required) — Second indexed view name.

Example:

ask-forge diff-indexed-views --view1 dbo.OrderSummary --view2 dbo.OrderSummaryV2