diff --git a/experimental/apps-mcp/lib/prompts/flow.tmpl b/experimental/apps-mcp/lib/prompts/flow.tmpl index 50a90c16fb..a5ca238cd0 100644 --- a/experimental/apps-mcp/lib/prompts/flow.tmpl +++ b/experimental/apps-mcp/lib/prompts/flow.tmpl @@ -6,15 +6,17 @@ */ -}} ## Databricks MCP Available Tools -- **databricks_discover**: Discover workspace resources and get workflow recommendations +- **databricks_discover**: MUST call first - returns scaffolding commands +- **invoke_databricks_cli**: Execute CLI commands including init-template for scaffolding - **databricks_configure_auth**: Switch workspace profile/host -- **invoke_databricks_cli**: Execute any Databricks CLI command -## Workflow Best Practices -- Use `databricks_discover` at the beginning of your session to get context-aware recommendations -- For operations affecting live environments, ask for confirmation -- Always validate before deploying -- When not sure about the user's intent, ask clarifying questions +## Critical Workflow Rules +1. ALWAYS call databricks_discover FIRST to get scaffolding guidance +2. For new apps: use invoke_databricks_cli with init-template (see below) +3. For scaffolding: NEVER use `npm create vite` or `npx create-vite` - init-template creates proper Databricks bundle +4. For development: `npm run dev`, `npm install`, `npm run build` are OK after scaffolding +5. Validate before deploying +6. Ask for confirmation on live environment changes {{.WorkspaceInfo}}{{if .WarehouseName}} Default SQL Warehouse: {{.WarehouseName}} ({{.WarehouseID}}){{else}} diff --git a/experimental/apps-mcp/lib/providers/clitools/provider.go b/experimental/apps-mcp/lib/providers/clitools/provider.go index e9d146f21a..490e3e8b54 100644 --- a/experimental/apps-mcp/lib/providers/clitools/provider.go +++ b/experimental/apps-mcp/lib/providers/clitools/provider.go @@ -92,8 +92,10 @@ func (p *Provider) RegisterTools(server *mcpsdk.Server) error { mcpsdk.AddTool(server, &mcpsdk.Tool{ - Name: "databricks_discover", - Description: "Discover available Databricks workspaces, warehouses, and get workflow recommendations. Call this FIRST when planning ANY Databricks work involving apps, dashboards, pipelines, jobs, bundles, or SQL workflows. Returns workspace capabilities and recommended tooling.", + Name: "databricks_discover", + Description: `CALL THIS FIRST before any Databricks work. Returns essential scaffolding commands, workflow guidance, and guidance on writing and editing Databricks source code. + +This tool provides context needed for scaffolding new projects, editing existing code, deploying bundles, and querying data. Without calling this first, you won't know the correct CLI patterns or workspace configuration.`, }, func(ctx context.Context, req *mcpsdk.CallToolRequest, args DiscoverInput) (*mcpsdk.CallToolResult, any, error) { log.Debugf(ctx, "databricks_discover called: working_directory=%s", args.WorkingDirectory)