Connect Ask Forge's 46 schema tools to Claude Desktop, VS Code, Cursor, and other MCP-compatible AI clients.
The Model Context Protocol (MCP) is an open standard that lets AI assistants use external tools and data sources. Ask Forge includes an MCP server (ForgeBarrett.Mcp) that exposes all 46 tools, schema resources, and pre-built prompts to any MCP-compatible client.
The server communicates via JSON-RPC over stdio. It reads requests from stdin, writes responses to stdout, and sends logs to stderr. The protocol version is 2025-03-26.
Schema navigation, validation, generation, modification, and external tool execution across 4 tiers
Static docs, context-aware product data, and parameterized schema resource templates
Pre-built prompts for schema design, review, migration, comparison, and onboarding workflows
Select your AI client below to see the setup instructions. Each client launches the MCP server automatically -- you just need to add the configuration once.
forge-barrett entry to your Claude Desktop config while preserving any existing MCP server entries.
| OS | Config File Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
{
"mcpServers": {
"forge-barrett": {
"command": "C:\\Program Files\\SchemaSmith\\ForgeBarrett\\ForgeBarrett.Mcp.exe",
"args": [],
"env": {
"FORGE_TRUST_LEVEL": "assistant"
}
}
}
}
{
"mcpServers": {
"forge-barrett": {
"command": "dotnet",
"args": ["/path/to/ForgeBarrett.Mcp.dll"],
"env": {
"FORGE_TRUST_LEVEL": "assistant"
}
}
}
}
FORGE_TRUST_LEVEL to the appropriate trust level for your use case. The recommended default is assistant (Tiers 1-2: read-only + generate).
Add to your VS Code settings.json (workspace or user):
{
"mcp": {
"servers": {
"forge-barrett": {
"command": "ForgeBarrett.Mcp.exe",
"args": [],
"env": {
"FORGE_TRUST_LEVEL": "assistant"
}
}
}
}
}
ForgeBarrett.Mcp.exe is not on your PATH, use the full path to the executable. After updating the configuration, restart VS Code to pick up the new MCP server.
Add to your Cursor MCP configuration file (~/.cursor/mcp.json):
{
"mcpServers": {
"forge-barrett": {
"command": "ForgeBarrett.Mcp.exe",
"args": [],
"env": {
"FORGE_TRUST_LEVEL": "assistant"
}
}
}
}
Any MCP-compatible client that supports stdio transport can use the server. Point it at the ForgeBarrett.Mcp executable with no arguments. The server reads JSON-RPC from stdin and writes responses to stdout. Startup messages and logs go to stderr.
Set the FORGE_TRUST_LEVEL environment variable to control which tool tiers are accessible.
Resources provide structured read access to documentation, configuration, and schema data. The server advertises both static resources and parameterized resource templates.
Always available, regardless of context.
| URI | Description |
|---|---|
forge://docs/overview | Overview of the SchemaSmith toolset and Forge Barrett assistant |
forge://docs/platforms | Database platforms supported by SchemaSmith with capabilities |
forge://docs/naming-conventions | Platform-specific naming convention rules |
forge://config/connections | Database connections from the config file (passwords masked) |
forge://config/tools | External tool paths from the config file |
forge://knowledge/categories | Browse the Forge Barrett knowledge base categories |
These appear in the resource list only after a product is loaded via forge_navigate_context.
| URI | Description |
|---|---|
forge://product/info | Product metadata (name, platform, path, template count) |
forge://product/templates | Templates in the current product with table counts |
URI templates that accept parameters. Always advertised, but require an active product/template context to return data.
| URI Template | MIME Type | Description |
|---|---|---|
forge://template/{templateName}/info | text/plain | Metadata for a specific template |
forge://template/{templateName}/tables | text/plain | List of tables in a specific template |
forge://template/{templateName}/scripts | text/plain | Script folders in a specific template |
forge://table/{tableName} | application/json | Full table definition JSON |
forge://table/{tableName}/columns | application/json | Column definitions for a specific table |
forge://table/{tableName}/indexes | application/json | Index definitions for a specific table |
forge://table/{tableName}/foreign-keys | application/json | Foreign key definitions for a specific table |
forge://knowledge/{category} | text/plain | List knowledge articles in a specific category |
forge://knowledge/{category}/{articleName} | text/plain | Read a specific knowledge article |
The MCP server provides 8 pre-built prompts that guide AI assistants through common workflows. Each prompt generates a structured message with relevant context, tool references, and resource links. Prompts are context-aware -- if a product or template is already loaded, the prompt content includes current context details.
| Prompt | Description | Required | Optional |
|---|---|---|---|
design_table |
Design a new table with best practices for naming, columns, keys, and indexes | tableName |
platform |
validate_schema |
Validate a SchemaSmith product for naming conventions, missing keys, and best practices | -- | productPath |
plan_migration |
Plan a safe migration for a table change with rollback strategy | tableName |
changeType |
review_schema |
Review schema health: naming, nullability, orphaned tables, duplicate indexes | -- | templateName |
compare_tables |
Compare two table definitions side-by-side for structural differences | table1, table2 |
-- |
onboard_product |
Guide through loading and exploring a SchemaSmith product for the first time | productPath |
-- |
troubleshoot_migration |
Diagnose and resolve a failed or problematic migration | errorDescription |
-- |
extract_and_scaffold |
Extract schema from a live database and scaffold a SchemaSmith product | platform, database |
-- |
The server supports completion/complete for interactive argument suggestions in clients that support it.
platform -- completes from MSSQL, PostgreSQL, MySQLtableName, table1, table2 -- completes from tables in the current template contexttemplateName -- completes from templates in the current product contextchangeType -- completes from AddColumn, RemoveColumn, RenameColumn, ChangeDataType, AddForeignKey, RemoveForeignKey, AddIndex, RemoveIndexEach of the 46 tools includes MCP 2025-03-26 annotations that hint at the tool's behavior. MCP clients can use these annotations to make informed decisions about tool invocation.
| Annotation | Applies To | Description |
|---|---|---|
readOnlyHint: true |
Tier 1 (ReadOnly) | Tool only reads data, never modifies files or state |
destructiveHint: false |
Tier 2 (Generate) | Tool generates output but does not modify existing schemas |
destructiveHint: true |
Tier 3 (Modify), Tier 4 (External) | Tool can modify files or create packages -- requires confirmation |
idempotentHint: true |
Context tools (navigate_context, set_connection, set_tool_path, clear_connection, clear_tool_path) |
Calling the tool multiple times with the same arguments produces the same result |
openWorldHint: true |
Tier 4 (External) | Tool invokes external processes (SchemaTongs, SchemaQuench) outside the MCP server |
| Tier | Name | Count | Confirmation | Key Annotations |
|---|---|---|---|---|
| 1 | ReadOnly | 25 | Never | readOnlyHint: true |
| 2 | Generate | 9 | Never | destructiveHint: false |
| 3 | Modify | 9 | confirm: true required | destructiveHint: true |
| 4 | External | 3 | confirm: true required | destructiveHint: true, openWorldHint: true |
Tier 3 (Modify) and Tier 4 (External) tools require a "confirm": true parameter in the MCP tool call arguments. If the parameter is missing or false, the server returns a description of what the tool would do instead of executing it. This prevents accidental execution of destructive operations.
{
"method": "tools/call",
"params": {
"name": "forge_apply_change",
"arguments": {
"tableName": "Users",
"change": "..."
}
}
}
This operation requires confirmation.
Tool: forge_apply_change
Tier: Modify (Modifies files or creates packages)
Description: ...
To execute this tool, add 'confirm: true' to the arguments.
{
"method": "tools/call",
"params": {
"name": "forge_apply_change",
"arguments": {
"tableName": "Users",
"change": "...",
"confirm": true
}
}
}
The MCP server advertises the following capabilities during the initialize handshake.
| Capability | Value | Description |
|---|---|---|
tools.listChanged | false | Tool list is static after startup |
resources.listChanged | true | Resource list changes when product context is loaded |
prompts.listChanged | false | Prompt list is static after startup |
completions | enabled | Argument completion for prompts and resources |
The server emits a notifications/resources/list_changed notification when context-changing tools succeed (navigate_context, create_table, rename_table), signaling clients to re-fetch the resource list.
If you run into issues with the MCP server -- tools not appearing, connection timeouts, or unexpected responses -- see the Troubleshooting page for diagnostic steps and common solutions.