diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2b4f85a83a..bc84c54b55 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -7,4 +7,4 @@ /cmd/workspace/apps/ @databricks/eng-app-devex /libs/apps/ @databricks/eng-app-devex /acceptance/apps/ @databricks/eng-app-devex -/experimental/apps-mcp/ @databricks/eng-app-devex @lennartkats-db +/experimental/aitools/ @databricks/eng-app-devex @lennartkats-db diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index defcebced0..37f2a8fee7 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -145,14 +145,14 @@ jobs: - name: Analyze slow tests run: make slowest - test-exp-apps-mcp: + test-exp-aitools: needs: - cleanups - testmask # Only run if the target is in the list of targets from testmask - if: ${{ contains(fromJSON(needs.testmask.outputs.targets), 'test-exp-apps-mcp') }} - name: "make test-exp-apps-mcp" + if: ${{ contains(fromJSON(needs.testmask.outputs.targets), 'test-exp-aitools') }} + name: "make test-exp-aitools" runs-on: ${{ matrix.os }} strategy: @@ -171,11 +171,11 @@ jobs: - name: Setup build environment uses: ./.github/actions/setup-build-environment with: - cache-key: test-exp-apps-mcp + cache-key: test-exp-aitools - name: Run tests run: | - make test-exp-apps-mcp + make test-exp-aitools test-exp-ssh: needs: @@ -251,7 +251,7 @@ jobs: test-result: needs: - test - - test-exp-apps-mcp + - test-exp-aitools - test-exp-ssh - test-pipelines diff --git a/.gitignore b/.gitignore index 4ca629d2f5..13b5612101 100644 --- a/.gitignore +++ b/.gitignore @@ -38,6 +38,9 @@ tools/yamlfmt.exe # Built by make for 'make lint' tools/golangci-lint +# Built by make for test filtering +tools/testmask/testmask + # Cache for tools/gh_report.py .gh-logs diff --git a/Makefile b/Makefile index 92bbf49332..0a57cee7d0 100644 --- a/Makefile +++ b/Makefile @@ -173,8 +173,8 @@ generate: .PHONY: lint lintfull tidy lintcheck fmt fmtfull test test-unit test-acc test-slow test-slow-unit test-slow-acc cover showcover build snapshot snapshot-release schema integration integration-short acc-cover acc-showcover docs ws wsfix links checks test-update test-update-templates generate-out-test-toml test-update-aws test-update-all generate-validation -test-exp-apps-mcp: - make test TEST_PACKAGES="./experimental/apps-mcp/..." ACCEPTANCE_TEST_FILTER="TestAccept/idontexistyet/apps-mcp" +test-exp-aitools: + make test TEST_PACKAGES="./experimental/aitools/..." ACCEPTANCE_TEST_FILTER="TestAccept/idontexistyet/aitools" test-exp-ssh: make test TEST_PACKAGES="./experimental/ssh/..." ACCEPTANCE_TEST_FILTER="TestAccept/ssh" diff --git a/acceptance/apps/init-template/app/script b/acceptance/apps/init-template/app/script index 1f38796b6c..3f0d48dae6 100644 --- a/acceptance/apps/init-template/app/script +++ b/acceptance/apps/init-template/app/script @@ -1,4 +1,4 @@ #!/bin/bash -$CLI experimental apps-mcp tools init-template app --name test_app --sql-warehouse-id abc123 --output-dir output > /dev/null 2>&1 +$CLI experimental aitools tools init-template app --name test_app --sql-warehouse-id abc123 --output-dir output > /dev/null 2>&1 echo "✓ Template instantiation succeeded" rm -rf output diff --git a/acceptance/apps/init-template/empty/script b/acceptance/apps/init-template/empty/script index 5d5a80bd97..55a1f08d06 100644 --- a/acceptance/apps/init-template/empty/script +++ b/acceptance/apps/init-template/empty/script @@ -1,4 +1,4 @@ #!/bin/bash -$CLI experimental apps-mcp tools init-template empty --name test_empty --catalog main --output-dir output > /dev/null 2>&1 +$CLI experimental aitools tools init-template empty --name test_empty --catalog main --output-dir output > /dev/null 2>&1 echo "✓ Template instantiation succeeded" rm -rf output diff --git a/acceptance/apps/init-template/job/script b/acceptance/apps/init-template/job/script index 8464089885..5acd09f388 100644 --- a/acceptance/apps/init-template/job/script +++ b/acceptance/apps/init-template/job/script @@ -1,4 +1,4 @@ #!/bin/bash -$CLI experimental apps-mcp tools init-template job --name test_job --catalog main --output-dir output > /dev/null 2>&1 || exit 1 +$CLI experimental aitools tools init-template job --name test_job --catalog main --output-dir output > /dev/null 2>&1 || exit 1 echo "✓ Template instantiation succeeded" rm -rf output diff --git a/acceptance/apps/init-template/pipeline/script b/acceptance/apps/init-template/pipeline/script index 0d73aae59f..9a7769cbab 100644 --- a/acceptance/apps/init-template/pipeline/script +++ b/acceptance/apps/init-template/pipeline/script @@ -1,4 +1,4 @@ #!/bin/bash -$CLI experimental apps-mcp tools init-template pipeline --name test_pipeline --language python --catalog main --output-dir output > /dev/null 2>&1 +$CLI experimental aitools tools init-template pipeline --name test_pipeline --language python --catalog main --output-dir output > /dev/null 2>&1 echo "✓ Template instantiation succeeded" rm -rf output diff --git a/cmd/experimental/experimental.go b/cmd/experimental/experimental.go index 3bdd38170c..7e7d376fea 100644 --- a/cmd/experimental/experimental.go +++ b/cmd/experimental/experimental.go @@ -1,7 +1,7 @@ package experimental import ( - mcp "github.com/databricks/cli/experimental/apps-mcp/cmd" + mcp "github.com/databricks/cli/experimental/aitools/cmd" "github.com/spf13/cobra" ) diff --git a/experimental/apps-mcp/README.md b/experimental/aitools/README.md similarity index 92% rename from experimental/apps-mcp/README.md rename to experimental/aitools/README.md index 9299641ed6..0c670ce092 100644 --- a/experimental/apps-mcp/README.md +++ b/experimental/aitools/README.md @@ -1,4 +1,4 @@ -# Databricks MCP Server +# Databricks AI Tools A Model Context Protocol (MCP) server for working with Databricks through natural language. This server provides tools for data exploration, workspace management, and executing Databricks CLI commands through AI-powered conversations. @@ -17,19 +17,19 @@ A Model Context Protocol (MCP) server for working with Databricks through natura - **Conversational interface**: Work with Databricks using natural language instead of memorizing CLI commands - **Context-aware**: Get relevant command suggestions based on your workspace configuration - **Unified workflow**: Combine data exploration, bundle management, and app deployment in one tool -- **Transparency**: Every MCP tool call displays clear, branded output so you always know when Databricks MCP is working +- **Transparency**: Every MCP tool call displays clear, branded output so you always know when Databricks AI Tools are working Perfect for data engineers and developers who want to streamline their Databricks workflows with AI-powered assistance. **Visual Feedback:** -When using Databricks MCP, you'll see distinctive branded headers in your chat: +When using Databricks AI Tools, you'll see distinctive branded headers in your chat: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🚀 Databricks MCP: App scaffolded successfully +🚀 Databricks AI Tools: App scaffolded successfully ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` -This makes it immediately clear you're using the Databricks MCP server, not just plain Claude or Cursor. If you don't see these headers, the MCP server isn't connected (see Troubleshooting below). +This makes it immediately clear you're using the Databricks AI Tools MCP server, not just plain Claude or Cursor. If you don't see these headers, the MCP server isn't connected (see Troubleshooting below). --- @@ -39,7 +39,7 @@ This makes it immediately clear you're using the Databricks MCP server, not just 1. **Install the MCP server automatically:** ```bash - databricks experimental apps-mcp install + databricks experimental aitools install ``` This interactive command will: @@ -94,7 +94,7 @@ If you prefer to configure manually or the automatic installation doesn't work: "mcpServers": { "databricks": { "command": "databricks", - "args": ["experimental", "apps-mcp"], + "args": ["experimental", "aitools"], "env": { "DATABRICKS_HOST": "https://your-workspace.databricks.com", "DATABRICKS_TOKEN": "dapi...", @@ -111,16 +111,16 @@ Then restart your MCP client for changes to take effect ### Troubleshooting -#### 🚨 Not seeing Databricks MCP headers in your chat? +#### 🚨 Not seeing Databricks AI Tools headers in your chat? If you ask about Databricks or apps but **don't see the distinctive headers** like: ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ -🚀 Databricks MCP: App scaffolded successfully +🚀 Databricks aitools: App scaffolded successfully ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ``` -**You're using plain Claude/Cursor, not the Databricks MCP server!** This means: +**You're using plain Claude/Cursor, not the Databricks AI Tools MCP server!** This means: - ❌ No access to Databricks data or tools - ❌ Generic AI responses instead of actual app generation - ❌ No scaffolding, validation, or deployment capabilities @@ -156,7 +156,7 @@ If the MCP server doesn't connect or shows errors: 5. **Check Databricks CLI:** Verify the CLI is installed and accessible: ```bash databricks --version - databricks experimental apps-mcp --help + databricks experimental aitools --help ``` 6. **Test authentication:** Try listing catalogs to verify credentials work: @@ -175,7 +175,7 @@ If issues persist, please report them at https://github.com/databricks/cli/issue ## Features -The Databricks MCP server provides CLI-based tools for workspace interaction: +The Databricks AI Tools provide CLI-based tools for workspace interaction: Execute Databricks CLI commands and explore workspace resources: @@ -321,10 +321,10 @@ The `invoke_databricks_cli` tool: ```bash # Install MCP server in coding agents (Claude Code, Cursor, etc.) -databricks experimental apps-mcp install +databricks experimental aitools install # Start MCP server (default mode) -databricks experimental apps-mcp +databricks experimental aitools ``` ### Environment Variables diff --git a/experimental/apps-mcp/cmd/apps_mcp.go b/experimental/aitools/cmd/aitools.go similarity index 87% rename from experimental/apps-mcp/cmd/apps_mcp.go rename to experimental/aitools/cmd/aitools.go index 8def4e9996..7da47306c0 100644 --- a/experimental/apps-mcp/cmd/apps_mcp.go +++ b/experimental/aitools/cmd/aitools.go @@ -6,8 +6,8 @@ import ( "os/signal" "syscall" - mcplib "github.com/databricks/cli/experimental/apps-mcp/lib" - "github.com/databricks/cli/experimental/apps-mcp/lib/server" + mcplib "github.com/databricks/cli/experimental/aitools/lib" + "github.com/databricks/cli/experimental/aitools/lib/server" "github.com/databricks/cli/libs/log" "github.com/spf13/cobra" ) @@ -16,9 +16,10 @@ func NewMcpCmd() *cobra.Command { var warehouseID string cmd := &cobra.Command{ - Use: "apps-mcp", - Hidden: true, - Short: "Model Context Protocol server for AI agents", + Use: "aitools", + Aliases: []string{"apps-mcp"}, + Hidden: true, + Short: "Databricks AI Tools - Model Context Protocol server for AI agents", Long: `Start and manage an MCP server that provides AI agents with tools to interact with Databricks. The MCP server exposes the following capabilities: @@ -28,7 +29,7 @@ The MCP server exposes the following capabilities: The server communicates via stdio using the Model Context Protocol.`, Example: ` # Start MCP server with required warehouse - databricks experimental apps-mcp --warehouse-id abc123`, + databricks experimental aitools --warehouse-id abc123`, RunE: func(cmd *cobra.Command, args []string) error { // Create cancellable context for graceful shutdown ctx, cancel := context.WithCancel(cmd.Context()) diff --git a/experimental/apps-mcp/cmd/deploy.go b/experimental/aitools/cmd/deploy.go similarity index 96% rename from experimental/apps-mcp/cmd/deploy.go rename to experimental/aitools/cmd/deploy.go index 0d2888b510..0c1c92fdc3 100644 --- a/experimental/apps-mcp/cmd/deploy.go +++ b/experimental/aitools/cmd/deploy.go @@ -10,8 +10,8 @@ import ( "github.com/databricks/cli/bundle/run" "github.com/databricks/cli/cmd/bundle/utils" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/state" - "github.com/databricks/cli/experimental/apps-mcp/lib/validation" + "github.com/databricks/cli/experimental/aitools/lib/state" + "github.com/databricks/cli/experimental/aitools/lib/validation" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/cli/libs/log" "github.com/spf13/cobra" diff --git a/experimental/apps-mcp/cmd/discover_schema.go b/experimental/aitools/cmd/discover_schema.go similarity index 95% rename from experimental/apps-mcp/cmd/discover_schema.go rename to experimental/aitools/cmd/discover_schema.go index 2f34c8781a..e611764830 100644 --- a/experimental/apps-mcp/cmd/discover_schema.go +++ b/experimental/aitools/cmd/discover_schema.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/cli/libs/cmdctx" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/databricks-sdk-go" @@ -29,8 +29,8 @@ For each table, returns: - Sample data (5 rows) - Null counts per column - Total row count`, - Example: ` databricks experimental apps-mcp discover-schema samples.nyctaxi.trips - databricks experimental apps-mcp discover-schema catalog.schema.table1 catalog.schema.table2`, + Example: ` databricks experimental aitools discover-schema samples.nyctaxi.trips + databricks experimental aitools discover-schema catalog.schema.table1 catalog.schema.table2`, Args: cobra.MinimumNArgs(1), PreRunE: root.MustWorkspaceClient, RunE: func(cmd *cobra.Command, args []string) error { diff --git a/experimental/apps-mcp/cmd/init_template/app.go b/experimental/aitools/cmd/init_template/app.go similarity index 91% rename from experimental/apps-mcp/cmd/init_template/app.go rename to experimental/aitools/cmd/init_template/app.go index 227eb55bf6..fabd083ae6 100644 --- a/experimental/apps-mcp/cmd/init_template/app.go +++ b/experimental/aitools/cmd/init_template/app.go @@ -9,7 +9,7 @@ import ( "path/filepath" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/state" + "github.com/databricks/cli/experimental/aitools/lib/state" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/cli/libs/template" "github.com/spf13/cobra" @@ -17,7 +17,7 @@ import ( const ( defaultTemplateRepo = "https://github.com/databricks/cli" - defaultTemplateDir = "experimental/apps-mcp/templates/appkit" + defaultTemplateDir = "experimental/apps-mcp/templates/appkit" // TODO: Change to aitools/templates/appkit defaultBranch = "main" templatePathEnvVar = "DATABRICKS_APPKIT_TEMPLATE_PATH" ) @@ -58,10 +58,10 @@ func newAppCmd() *cobra.Command { Long: `Initialize a Databricks App using the appkit template. Examples: - experimental apps-mcp tools init-template app --name my-app - experimental apps-mcp tools init-template app --name my-app --warehouse abc123 - experimental apps-mcp tools init-template app --name my-app --description "My cool app" - experimental apps-mcp tools init-template app --name my-app --output-dir ./projects + experimental aitools tools init-template app --name my-app + experimental aitools tools init-template app --name my-app --warehouse abc123 + experimental aitools tools init-template app --name my-app --description "My cool app" + experimental aitools tools init-template app --name my-app --output-dir ./projects Environment variables: DATABRICKS_APPKIT_TEMPLATE_PATH Override template source with local path (for development) diff --git a/experimental/apps-mcp/cmd/init_template/common.go b/experimental/aitools/cmd/init_template/common.go similarity index 96% rename from experimental/apps-mcp/cmd/init_template/common.go rename to experimental/aitools/cmd/init_template/common.go index 7f78ec4a0b..92cd8becaa 100644 --- a/experimental/apps-mcp/cmd/init_template/common.go +++ b/experimental/aitools/cmd/init_template/common.go @@ -9,9 +9,9 @@ import ( "sort" "strings" - "github.com/databricks/cli/experimental/apps-mcp/lib/common" - "github.com/databricks/cli/experimental/apps-mcp/lib/detector" - "github.com/databricks/cli/experimental/apps-mcp/lib/prompts" + "github.com/databricks/cli/experimental/aitools/lib/common" + "github.com/databricks/cli/experimental/aitools/lib/detector" + "github.com/databricks/cli/experimental/aitools/lib/prompts" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/cli/libs/template" ) diff --git a/experimental/apps-mcp/cmd/init_template/empty.go b/experimental/aitools/cmd/init_template/empty.go similarity index 87% rename from experimental/apps-mcp/cmd/init_template/empty.go rename to experimental/aitools/cmd/init_template/empty.go index 61d4d2c8f4..bb68cf83d1 100644 --- a/experimental/apps-mcp/cmd/init_template/empty.go +++ b/experimental/aitools/cmd/init_template/empty.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" "github.com/databricks/cli/libs/template" "github.com/spf13/cobra" ) @@ -30,9 +30,9 @@ This creates a minimal project structure without sample code. For apps, jobs, or use the dedicated 'app', 'job', or 'pipeline' commands instead. Examples: - experimental apps-mcp tools init-template empty --name my_dashboard_project - experimental apps-mcp tools init-template empty --name my_alerts --language sql --catalog my_catalog - experimental apps-mcp tools init-template empty --name my_project --output-dir ./projects + experimental aitools tools init-template empty --name my_dashboard_project + experimental aitools tools init-template empty --name my_alerts --language sql --catalog my_catalog + experimental aitools tools init-template empty --name my_project --output-dir ./projects After initialization: Add resource definitions in resources/ (e.g., resources/my_dashboard.dashboard.yml) diff --git a/experimental/apps-mcp/cmd/init_template/init_template.go b/experimental/aitools/cmd/init_template/init_template.go similarity index 100% rename from experimental/apps-mcp/cmd/init_template/init_template.go rename to experimental/aitools/cmd/init_template/init_template.go diff --git a/experimental/apps-mcp/cmd/init_template/job.go b/experimental/aitools/cmd/init_template/job.go similarity index 86% rename from experimental/apps-mcp/cmd/init_template/job.go rename to experimental/aitools/cmd/init_template/job.go index 6f5b061637..311192e0f8 100644 --- a/experimental/apps-mcp/cmd/init_template/job.go +++ b/experimental/aitools/cmd/init_template/job.go @@ -4,7 +4,7 @@ import ( "errors" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" "github.com/databricks/cli/libs/template" "github.com/spf13/cobra" ) @@ -25,9 +25,9 @@ This creates a project with: - Personal schemas for development Examples: - experimental apps-mcp tools init-template job --name my_job - experimental apps-mcp tools init-template job --name my_job --catalog my_catalog - experimental apps-mcp tools init-template job --name my_job --output-dir ./projects + experimental aitools tools init-template job --name my_job + experimental aitools tools init-template job --name my_job --catalog my_catalog + experimental aitools tools init-template job --name my_job --output-dir ./projects After initialization: databricks bundle deploy --target dev diff --git a/experimental/apps-mcp/cmd/init_template/pipeline.go b/experimental/aitools/cmd/init_template/pipeline.go similarity index 82% rename from experimental/apps-mcp/cmd/init_template/pipeline.go rename to experimental/aitools/cmd/init_template/pipeline.go index 68ca1b8e54..841b58582d 100644 --- a/experimental/apps-mcp/cmd/init_template/pipeline.go +++ b/experimental/aitools/cmd/init_template/pipeline.go @@ -5,7 +5,7 @@ import ( "fmt" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" "github.com/databricks/cli/libs/template" "github.com/spf13/cobra" ) @@ -25,10 +25,10 @@ This creates a project with: - Personal schemas for development Examples: - experimental apps-mcp tools init-template pipeline --name my_pipeline --language python - experimental apps-mcp tools init-template pipeline --name my_pipeline --language sql - experimental apps-mcp tools init-template pipeline --name my_pipeline --language python --catalog my_catalog - experimental apps-mcp tools init-template pipeline --name my_pipeline --language sql --output-dir ./projects + experimental aitools tools init-template pipeline --name my_pipeline --language python + experimental aitools tools init-template pipeline --name my_pipeline --language sql + experimental aitools tools init-template pipeline --name my_pipeline --language python --catalog my_catalog + experimental aitools tools init-template pipeline --name my_pipeline --language sql --output-dir ./projects After initialization: databricks bundle deploy --target dev diff --git a/experimental/apps-mcp/cmd/install.go b/experimental/aitools/cmd/install.go similarity index 89% rename from experimental/apps-mcp/cmd/install.go rename to experimental/aitools/cmd/install.go index b75e69224b..55ac7c29e2 100644 --- a/experimental/apps-mcp/cmd/install.go +++ b/experimental/aitools/cmd/install.go @@ -6,7 +6,7 @@ import ( "os" "time" - "github.com/databricks/cli/experimental/apps-mcp/lib/agents" + "github.com/databricks/cli/experimental/aitools/lib/agents" "github.com/databricks/cli/libs/cmdio" "github.com/fatih/color" "github.com/spf13/cobra" @@ -15,8 +15,8 @@ import ( func newInstallCmd() *cobra.Command { cmd := &cobra.Command{ Use: "install", - Short: "Install the Apps MCP server in coding agents", - Long: `Install the Databricks Apps MCP server in coding agents like Claude Code and Cursor.`, + Short: "Install the Databricks AI Tools MCP server in coding agents", + Long: `Install the Databricks AI Tools MCP server in coding agents like Claude Code and Cursor.`, RunE: func(cmd *cobra.Command, args []string) error { return runInstall(cmd.Context()) }, @@ -28,9 +28,9 @@ func newInstallCmd() *cobra.Command { func runInstall(ctx context.Context) error { cmdio.LogString(ctx, "") green := color.New(color.FgGreen).SprintFunc() - cmdio.LogString(ctx, " "+green("[")+"████████"+green("]")+" Databricks Experimental Apps MCP") + cmdio.LogString(ctx, " "+green("[")+"████████"+green("]")+" Experimental Databricks AI Tools MCP server") cmdio.LogString(ctx, " "+green("[")+"██▌ ▐██"+green("]")) - cmdio.LogString(ctx, " "+green("[")+"████████"+green("]")+" AI-powered Databricks Apps development and exploration") + cmdio.LogString(ctx, " "+green("[")+"████████"+green("]")+" AI-powered Databricks development and exploration") cmdio.LogString(ctx, "") yellow := color.New(color.FgYellow).SprintFunc() diff --git a/experimental/apps-mcp/cmd/query.go b/experimental/aitools/cmd/query.go similarity index 93% rename from experimental/apps-mcp/cmd/query.go rename to experimental/aitools/cmd/query.go index e8530a916b..d1075dfd9f 100644 --- a/experimental/apps-mcp/cmd/query.go +++ b/experimental/aitools/cmd/query.go @@ -7,8 +7,8 @@ import ( "strings" "github.com/databricks/cli/cmd/root" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/cli/libs/cmdctx" "github.com/databricks/cli/libs/cmdio" "github.com/databricks/databricks-sdk-go/service/sql" @@ -24,7 +24,7 @@ func newQueryCmd() *cobra.Command { The command auto-detects an available warehouse unless DATABRICKS_WAREHOUSE_ID is set. Output includes the query results as JSON and row count.`, - Example: ` databricks experimental apps-mcp query "SELECT * FROM samples.nyctaxi.trips LIMIT 5"`, + Example: ` databricks experimental aitools query "SELECT * FROM samples.nyctaxi.trips LIMIT 5"`, Args: cobra.ExactArgs(1), PreRunE: root.MustWorkspaceClient, RunE: func(cmd *cobra.Command, args []string) error { diff --git a/experimental/apps-mcp/cmd/tools.go b/experimental/aitools/cmd/tools.go similarity index 85% rename from experimental/apps-mcp/cmd/tools.go rename to experimental/aitools/cmd/tools.go index 473bacddf3..4a62ec2ec2 100644 --- a/experimental/apps-mcp/cmd/tools.go +++ b/experimental/aitools/cmd/tools.go @@ -1,7 +1,7 @@ package mcp import ( - "github.com/databricks/cli/experimental/apps-mcp/cmd/init_template" + "github.com/databricks/cli/experimental/aitools/cmd/init_template" "github.com/spf13/cobra" ) diff --git a/experimental/apps-mcp/cmd/validate.go b/experimental/aitools/cmd/validate.go similarity index 90% rename from experimental/apps-mcp/cmd/validate.go rename to experimental/aitools/cmd/validate.go index f9030c0754..6aa6dcc855 100644 --- a/experimental/apps-mcp/cmd/validate.go +++ b/experimental/aitools/cmd/validate.go @@ -6,8 +6,8 @@ import ( "os" "path/filepath" - "github.com/databricks/cli/experimental/apps-mcp/lib/state" - "github.com/databricks/cli/experimental/apps-mcp/lib/validation" + "github.com/databricks/cli/experimental/aitools/lib/state" + "github.com/databricks/cli/experimental/aitools/lib/validation" "github.com/databricks/cli/libs/cmdio" "github.com/spf13/cobra" ) @@ -44,8 +44,8 @@ Exit codes: 0 - Validation succeeded 1 - Validation failed 2 - Invalid flags or configuration`, - Example: ` databricks experimental apps-mcp tools validate ./my-project - databricks experimental apps-mcp tools validate ./my-project --validator=custom --custom-command="./validate.sh"`, + Example: ` databricks experimental aitools tools validate ./my-project + databricks experimental aitools tools validate ./my-project --validator=custom --custom-command="./validate.sh"`, Args: cobra.ExactArgs(1), RunE: func(cmd *cobra.Command, args []string) error { ctx := cmd.Context() diff --git a/experimental/apps-mcp/docs/context-management.md b/experimental/aitools/docs/context-management.md similarity index 94% rename from experimental/apps-mcp/docs/context-management.md rename to experimental/aitools/docs/context-management.md index e504c1a3df..d5b99ee0b1 100644 --- a/experimental/apps-mcp/docs/context-management.md +++ b/experimental/aitools/docs/context-management.md @@ -1,5 +1,5 @@ - -# Context Management for Databricks MCP + +# Context Management for Databricks AI Tools ## Goals @@ -13,7 +13,7 @@ | Layer | Content | When Injected | |-------|---------|---------------| -| **L0: Tools** | Databricks MCP tool names and descriptions | Always (MCP protocol) | +| **L0: Tools** | Tool names and descriptions | Always (MCP protocol) | | **L1: Flow** | Universal workflow, available tools, CLI patterns | Always (via `databricks_discover`) | | **L2: Target** | Target-specific: validation, deployment, constraints | When target type detected or after `init-template` | | **L3: Template** | SDK/language-specific: file structure, commands, patterns | After `init-template`. For existing projects, agent reads CLAUDE.md. | diff --git a/experimental/apps-mcp/lib/agents/claude.go b/experimental/aitools/lib/agents/claude.go similarity index 89% rename from experimental/apps-mcp/lib/agents/claude.go rename to experimental/aitools/lib/agents/claude.go index 83492800e2..69e5dab1d0 100644 --- a/experimental/apps-mcp/lib/agents/claude.go +++ b/experimental/aitools/lib/agents/claude.go @@ -13,7 +13,7 @@ func DetectClaude() bool { return err == nil } -// InstallClaude installs the Databricks MCP server in Claude Code. +// InstallClaude installs the Databricks AI Tools MCP server in Claude Code. func InstallClaude() error { if !DetectClaude() { return errors.New("claude Code CLI is not installed or not on PATH\n\nPlease install Claude Code and ensure 'claude' is available on your system PATH.\nFor installation instructions, visit: https://docs.anthropic.com/en/docs/claude-code") @@ -32,7 +32,7 @@ func InstallClaude() error { "--transport", "stdio", "databricks-mcp", "--", - databricksPath, "experimental", "apps-mcp") + databricksPath, "experimental", "aitools") output, err := cmd.CombinedOutput() if err != nil { diff --git a/experimental/apps-mcp/lib/agents/cursor.go b/experimental/aitools/lib/agents/cursor.go similarity index 93% rename from experimental/apps-mcp/lib/agents/cursor.go rename to experimental/aitools/lib/agents/cursor.go index 5bd005133b..d277acc3f2 100644 --- a/experimental/apps-mcp/lib/agents/cursor.go +++ b/experimental/aitools/lib/agents/cursor.go @@ -46,7 +46,7 @@ func DetectCursor() bool { return err == nil } -// InstallCursor installs the Databricks MCP server in Cursor. +// InstallCursor installs the Databricks AI Tools MCP server in Cursor. func InstallCursor() error { configPath, err := getCursorConfigPath() if err != nil { @@ -81,10 +81,10 @@ func InstallCursor() error { return fmt.Errorf("failed to determine Databricks path: %w", err) } - // Add or update the Databricks MCP server entry + // Add or update the Databricks AI Tools MCP server entry config.McpServers["databricks-mcp"] = mcpServer{ Command: databricksPath, - Args: []string{"experimental", "apps-mcp"}, + Args: []string{"experimental", "aitools"}, } // Write back to file with pretty printing diff --git a/experimental/apps-mcp/lib/agents/custom.go b/experimental/aitools/lib/agents/custom.go similarity index 87% rename from experimental/apps-mcp/lib/agents/custom.go rename to experimental/aitools/lib/agents/custom.go index dfc450e595..7c85776731 100644 --- a/experimental/apps-mcp/lib/agents/custom.go +++ b/experimental/aitools/lib/agents/custom.go @@ -12,7 +12,7 @@ func ShowCustomInstructions(ctx context.Context) error { To install the Databricks CLI MCP server in your coding agent: 1. Add a new MCP server to your coding agent's configuration -2. Set the command to: "databricks experimental apps-mcp" +2. Set the command to: "databricks experimental aitools" 3. No environment variables or additional configuration needed Example MCP server configuration: @@ -20,7 +20,7 @@ Example MCP server configuration: "mcpServers": { "databricks": { "command": "databricks", - "args": ["experimental", "apps-mcp"] + "args": ["experimental", "aitools"] } } } diff --git a/experimental/apps-mcp/lib/common/common.go b/experimental/aitools/lib/common/common.go similarity index 100% rename from experimental/apps-mcp/lib/common/common.go rename to experimental/aitools/lib/common/common.go diff --git a/experimental/apps-mcp/lib/common/output.go b/experimental/aitools/lib/common/output.go similarity index 96% rename from experimental/apps-mcp/lib/common/output.go rename to experimental/aitools/lib/common/output.go index 7454950870..53b9b81125 100644 --- a/experimental/apps-mcp/lib/common/output.go +++ b/experimental/aitools/lib/common/output.go @@ -8,7 +8,7 @@ const ( // FormatBrandedHeader creates a branded header with the given emoji and message. func FormatBrandedHeader(emoji, message string) string { - return fmt.Sprintf("%s\n%s Databricks MCP: %s\n%s\n\n", + return fmt.Sprintf("%s\n%s Databricks AI Tools MCP server: %s\n%s\n\n", headerLine, emoji, message, headerLine) } diff --git a/experimental/apps-mcp/lib/common/output_test.go b/experimental/aitools/lib/common/output_test.go similarity index 85% rename from experimental/apps-mcp/lib/common/output_test.go rename to experimental/aitools/lib/common/output_test.go index 392596ebf1..6d5e5d9fec 100644 --- a/experimental/apps-mcp/lib/common/output_test.go +++ b/experimental/aitools/lib/common/output_test.go @@ -12,7 +12,7 @@ func TestFormatBrandedHeader(t *testing.T) { if !strings.Contains(result, "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━") { t.Error("Missing header line") } - if !strings.Contains(result, "🚀 Databricks MCP: Test message") { + if !strings.Contains(result, "🚀 Databricks AI Tools MCP server: Test message") { t.Error("Missing branded message") } } @@ -21,7 +21,7 @@ func TestFormatScaffoldSuccess(t *testing.T) { result := FormatScaffoldSuccess("appkit", "/path/to/app", 42) // Check for key components - if !strings.Contains(result, "🚀 Databricks MCP") { + if !strings.Contains(result, "🚀 Databricks AI Tools MCP server") { t.Error("Missing branded header") } if !strings.Contains(result, "✅") { @@ -41,7 +41,7 @@ func TestFormatScaffoldSuccess(t *testing.T) { func TestFormatValidationSuccess(t *testing.T) { result := FormatValidationSuccess("All checks passed") - if !strings.Contains(result, "🔍 Databricks MCP") { + if !strings.Contains(result, "🔍 Databricks AI Tools MCP server") { t.Error("Missing branded header") } if !strings.Contains(result, "✅") { @@ -55,7 +55,7 @@ func TestFormatValidationSuccess(t *testing.T) { func TestFormatValidationFailure(t *testing.T) { result := FormatValidationFailure("Build failed", 1, "stdout output", "stderr output") - if !strings.Contains(result, "🔍 Databricks MCP") { + if !strings.Contains(result, "🔍 Databricks AI Tools MCP server") { t.Error("Missing branded header") } if !strings.Contains(result, "❌") { @@ -78,7 +78,7 @@ func TestFormatValidationFailure(t *testing.T) { func TestFormatDeploymentSuccess(t *testing.T) { result := FormatDeploymentSuccess("my-app", "https://example.com/app") - if !strings.Contains(result, "🚢 Databricks MCP") { + if !strings.Contains(result, "🚢 Databricks AI Tools MCP server") { t.Error("Missing branded header") } if !strings.Contains(result, "✅") { @@ -95,7 +95,7 @@ func TestFormatDeploymentSuccess(t *testing.T) { func TestFormatDeploymentFailure(t *testing.T) { result := FormatDeploymentFailure("my-app", "Connection timeout") - if !strings.Contains(result, "🚢 Databricks MCP") { + if !strings.Contains(result, "🚢 Databricks AI Tools MCP server") { t.Error("Missing branded header") } if !strings.Contains(result, "❌") { diff --git a/experimental/apps-mcp/lib/config.go b/experimental/aitools/lib/config.go similarity index 100% rename from experimental/apps-mcp/lib/config.go rename to experimental/aitools/lib/config.go diff --git a/experimental/apps-mcp/lib/detector/bundle_detector.go b/experimental/aitools/lib/detector/bundle_detector.go similarity index 100% rename from experimental/apps-mcp/lib/detector/bundle_detector.go rename to experimental/aitools/lib/detector/bundle_detector.go diff --git a/experimental/apps-mcp/lib/detector/detector.go b/experimental/aitools/lib/detector/detector.go similarity index 99% rename from experimental/apps-mcp/lib/detector/detector.go rename to experimental/aitools/lib/detector/detector.go index 2e8e13288d..20f55a3c1f 100644 --- a/experimental/apps-mcp/lib/detector/detector.go +++ b/experimental/aitools/lib/detector/detector.go @@ -1,4 +1,4 @@ -// Package detector provides project context detection for Databricks MCP. +// Package detector provides project context detection for Databricks aitools. package detector import ( diff --git a/experimental/apps-mcp/lib/detector/detector_test.go b/experimental/aitools/lib/detector/detector_test.go similarity index 98% rename from experimental/apps-mcp/lib/detector/detector_test.go rename to experimental/aitools/lib/detector/detector_test.go index fd5adffbd2..4895605019 100644 --- a/experimental/apps-mcp/lib/detector/detector_test.go +++ b/experimental/aitools/lib/detector/detector_test.go @@ -6,7 +6,7 @@ import ( "path/filepath" "testing" - "github.com/databricks/cli/experimental/apps-mcp/lib/detector" + "github.com/databricks/cli/experimental/aitools/lib/detector" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/experimental/apps-mcp/lib/detector/template_detector.go b/experimental/aitools/lib/detector/template_detector.go similarity index 100% rename from experimental/apps-mcp/lib/detector/template_detector.go rename to experimental/aitools/lib/detector/template_detector.go diff --git a/experimental/apps-mcp/lib/errors/errors.go b/experimental/aitools/lib/errors/errors.go similarity index 98% rename from experimental/apps-mcp/lib/errors/errors.go rename to experimental/aitools/lib/errors/errors.go index 1006f903a7..2222007618 100644 --- a/experimental/apps-mcp/lib/errors/errors.go +++ b/experimental/aitools/lib/errors/errors.go @@ -172,7 +172,7 @@ func ConfigInvalid(message string) *Error { // ConfigMissing creates an error for missing configuration. func ConfigMissing(param string) *Error { err := NewWithCode(CodeConfigMissing, "missing required configuration: "+param) - return WithSuggestion(err, "Check your ~/.databricks/apps-mcp/config.json or environment variables") + return WithSuggestion(err, "Check your ~/.databricks/aitools/config.json or environment variables") } // ConfigWorkDir creates an error for workspace directory issues. diff --git a/experimental/apps-mcp/lib/errors/errors_test.go b/experimental/aitools/lib/errors/errors_test.go similarity index 100% rename from experimental/apps-mcp/lib/errors/errors_test.go rename to experimental/aitools/lib/errors/errors_test.go diff --git a/experimental/apps-mcp/lib/mcp/middleware.go b/experimental/aitools/lib/mcp/middleware.go similarity index 97% rename from experimental/apps-mcp/lib/mcp/middleware.go rename to experimental/aitools/lib/mcp/middleware.go index a258384875..a0cfa82983 100644 --- a/experimental/apps-mcp/lib/mcp/middleware.go +++ b/experimental/aitools/lib/mcp/middleware.go @@ -3,7 +3,7 @@ package mcp import ( "context" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/session" ) // MiddlewareContext provides context for middleware execution. diff --git a/experimental/apps-mcp/lib/mcp/middleware_test.go b/experimental/aitools/lib/mcp/middleware_test.go similarity index 98% rename from experimental/apps-mcp/lib/mcp/middleware_test.go rename to experimental/aitools/lib/mcp/middleware_test.go index 1abdb5b79f..34637c10be 100644 --- a/experimental/apps-mcp/lib/mcp/middleware_test.go +++ b/experimental/aitools/lib/mcp/middleware_test.go @@ -5,8 +5,8 @@ import ( "errors" "testing" - "github.com/databricks/cli/experimental/apps-mcp/lib/mcp" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/mcp" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/experimental/apps-mcp/lib/mcp/protocol.go b/experimental/aitools/lib/mcp/protocol.go similarity index 100% rename from experimental/apps-mcp/lib/mcp/protocol.go rename to experimental/aitools/lib/mcp/protocol.go diff --git a/experimental/apps-mcp/lib/mcp/server.go b/experimental/aitools/lib/mcp/server.go similarity index 98% rename from experimental/apps-mcp/lib/mcp/server.go rename to experimental/aitools/lib/mcp/server.go index 7e9d79f7b1..8d28c8d0f1 100644 --- a/experimental/apps-mcp/lib/mcp/server.go +++ b/experimental/aitools/lib/mcp/server.go @@ -7,8 +7,8 @@ import ( "io" "sync" - "github.com/databricks/cli/experimental/apps-mcp/lib/errors" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/errors" + "github.com/databricks/cli/experimental/aitools/lib/session" ) // Server is an MCP server that manages tools and handles requests. diff --git a/experimental/apps-mcp/lib/mcp/tool.go b/experimental/aitools/lib/mcp/tool.go similarity index 100% rename from experimental/apps-mcp/lib/mcp/tool.go rename to experimental/aitools/lib/mcp/tool.go diff --git a/experimental/apps-mcp/lib/mcp/transport.go b/experimental/aitools/lib/mcp/transport.go similarity index 100% rename from experimental/apps-mcp/lib/mcp/transport.go rename to experimental/aitools/lib/mcp/transport.go diff --git a/experimental/apps-mcp/lib/mcp/types.go b/experimental/aitools/lib/mcp/types.go similarity index 100% rename from experimental/apps-mcp/lib/mcp/types.go rename to experimental/aitools/lib/mcp/types.go diff --git a/experimental/apps-mcp/lib/middlewares/databricks_client.go b/experimental/aitools/lib/middlewares/databricks_client.go similarity index 95% rename from experimental/apps-mcp/lib/middlewares/databricks_client.go rename to experimental/aitools/lib/middlewares/databricks_client.go index 784646b7d2..6ac45ba4c2 100644 --- a/experimental/apps-mcp/lib/middlewares/databricks_client.go +++ b/experimental/aitools/lib/middlewares/databricks_client.go @@ -6,9 +6,9 @@ import ( "fmt" "slices" - "github.com/databricks/cli/experimental/apps-mcp/lib/mcp" - "github.com/databricks/cli/experimental/apps-mcp/lib/prompts" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/mcp" + "github.com/databricks/cli/experimental/aitools/lib/prompts" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/cli/libs/databrickscfg/profile" "github.com/databricks/databricks-sdk-go" "github.com/databricks/databricks-sdk-go/config" diff --git a/experimental/apps-mcp/lib/middlewares/middleware.go b/experimental/aitools/lib/middlewares/middleware.go similarity index 81% rename from experimental/apps-mcp/lib/middlewares/middleware.go rename to experimental/aitools/lib/middlewares/middleware.go index caf947ae24..dba964d8bf 100644 --- a/experimental/apps-mcp/lib/middlewares/middleware.go +++ b/experimental/aitools/lib/middlewares/middleware.go @@ -1,9 +1,9 @@ package middlewares import ( - "github.com/databricks/cli/experimental/apps-mcp/lib/mcp" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" - "github.com/databricks/cli/experimental/apps-mcp/lib/trajectory" + "github.com/databricks/cli/experimental/aitools/lib/mcp" + "github.com/databricks/cli/experimental/aitools/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/trajectory" ) // NewTrajectoryMiddleware creates middleware that records tool calls in a trajectory tracker. diff --git a/experimental/apps-mcp/lib/middlewares/warehouse.go b/experimental/aitools/lib/middlewares/warehouse.go similarity index 97% rename from experimental/apps-mcp/lib/middlewares/warehouse.go rename to experimental/aitools/lib/middlewares/warehouse.go index dd56a65828..78a62d793a 100644 --- a/experimental/apps-mcp/lib/middlewares/warehouse.go +++ b/experimental/aitools/lib/middlewares/warehouse.go @@ -5,7 +5,7 @@ import ( "fmt" "sync" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/cli/libs/databrickscfg/cfgpickers" "github.com/databricks/cli/libs/env" "github.com/databricks/databricks-sdk-go/service/sql" diff --git a/experimental/apps-mcp/lib/pathutil/pathutil.go b/experimental/aitools/lib/pathutil/pathutil.go similarity index 100% rename from experimental/apps-mcp/lib/pathutil/pathutil.go rename to experimental/aitools/lib/pathutil/pathutil.go diff --git a/experimental/apps-mcp/lib/pathutil/pathutil_test.go b/experimental/aitools/lib/pathutil/pathutil_test.go similarity index 100% rename from experimental/apps-mcp/lib/pathutil/pathutil_test.go rename to experimental/aitools/lib/pathutil/pathutil_test.go diff --git a/experimental/apps-mcp/lib/prompts/AGENTS.tmpl b/experimental/aitools/lib/prompts/AGENTS.tmpl similarity index 96% rename from experimental/apps-mcp/lib/prompts/AGENTS.tmpl rename to experimental/aitools/lib/prompts/AGENTS.tmpl index df7d451d75..3a7804471c 100644 --- a/experimental/apps-mcp/lib/prompts/AGENTS.tmpl +++ b/experimental/aitools/lib/prompts/AGENTS.tmpl @@ -26,7 +26,7 @@ Without this context, you cannot effectively help with this project. If the tool is unavailable, the user needs to set up the Databricks CLI MCP server: 1. Install CLI: https://docs.databricks.com/dev-tools/cli/install -2. Run: `databricks experimental apps-mcp install` +2. Run: `databricks experimental aitools install` --- diff --git a/experimental/apps-mcp/lib/prompts/auth_error.tmpl b/experimental/aitools/lib/prompts/auth_error.tmpl similarity index 100% rename from experimental/apps-mcp/lib/prompts/auth_error.tmpl rename to experimental/aitools/lib/prompts/auth_error.tmpl diff --git a/experimental/apps-mcp/lib/prompts/auth_u2m.tmpl b/experimental/aitools/lib/prompts/auth_u2m.tmpl similarity index 100% rename from experimental/apps-mcp/lib/prompts/auth_u2m.tmpl rename to experimental/aitools/lib/prompts/auth_u2m.tmpl diff --git a/experimental/apps-mcp/lib/prompts/flow.tmpl b/experimental/aitools/lib/prompts/flow.tmpl similarity index 69% rename from experimental/apps-mcp/lib/prompts/flow.tmpl rename to experimental/aitools/lib/prompts/flow.tmpl index a5ca238cd0..3a71c91e02 100644 --- a/experimental/apps-mcp/lib/prompts/flow.tmpl +++ b/experimental/aitools/lib/prompts/flow.tmpl @@ -1,11 +1,11 @@ {{- /* - * L1: Universal workflow guidance for Databricks MCP. + * L1: Universal workflow guidance for Databricks AI Tools MCP server. * * This guidance is always provided by databricks_discover. * Contains: available tools, CLI patterns, best practices. */ -}} -## Databricks MCP Available Tools +## Databricks AI Tools Available MCP Tools - **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 @@ -27,25 +27,25 @@ Use `invoke_databricks_cli ''` to run any Databricks CLI command. ### Project scaffolding -IMPORTANT: Always use 'experimental apps-mcp tools init-template' commands below instead of 'databricks bundle init'. +IMPORTANT: Always use 'experimental aitools tools init-template' commands below instead of 'databricks bundle init'. The init-template commands create agent-friendly projects with AGENTS.md/CLAUDE.md guidance files and proper MCP integration. For apps: -invoke_databricks_cli 'experimental apps-mcp tools init-template app --name my-app --description "My app description"' +invoke_databricks_cli 'experimental aitools tools init-template app --name my-app --description "My app description"' For jobs (Python notebooks with wheel package): -invoke_databricks_cli 'experimental apps-mcp tools init-template job --name my_job' -invoke_databricks_cli 'experimental apps-mcp tools init-template job --name my_job --catalog my_catalog' +invoke_databricks_cli 'experimental aitools tools init-template job --name my_job' +invoke_databricks_cli 'experimental aitools tools init-template job --name my_job --catalog my_catalog' For pipelines (Lakeflow Declarative Pipelines): -invoke_databricks_cli 'experimental apps-mcp tools init-template pipeline --name my_pipeline --language python' -invoke_databricks_cli 'experimental apps-mcp tools init-template pipeline --name my_pipeline --language sql --catalog my_catalog' +invoke_databricks_cli 'experimental aitools tools init-template pipeline --name my_pipeline --language python' +invoke_databricks_cli 'experimental aitools tools init-template pipeline --name my_pipeline --language sql --catalog my_catalog' Note: --language is required (python or sql). Ask the user which language they prefer: - SQL: Recommended for straightforward transformations (filters, joins, aggregations) - Python: Recommended for complex logic (custom UDFs, ML, advanced processing) For custom resources (dashboards, alerts, model serving, etc.): -invoke_databricks_cli 'experimental apps-mcp tools init-template empty --name my_project' +invoke_databricks_cli 'experimental aitools tools init-template empty --name my_project' Note: Use this for resources OTHER than apps, jobs, or pipelines Notes: @@ -55,7 +55,7 @@ Notes: ### Custom SQL Queries -invoke_databricks_cli 'experimental apps-mcp tools query "SELECT * FROM catalog.schema.table LIMIT 10"' +invoke_databricks_cli 'experimental aitools tools query "SELECT * FROM catalog.schema.table LIMIT 10"' ### Exploring Resources Jobs: @@ -69,9 +69,9 @@ Unity Catalog: invoke_databricks_cli 'catalogs list' invoke_databricks_cli 'schemas list ' invoke_databricks_cli 'tables list ' - invoke_databricks_cli 'experimental apps-mcp tools discover-schema TABLE1 TABLE2 TABLE3' + invoke_databricks_cli 'experimental aitools tools discover-schema TABLE1 TABLE2 TABLE3' Use separate arguments for catalog/schema: 'tables list samples tpcds_sf1' (not dot notation). -Dot notation is only supported in `experimental apps-mcp tools discover-schema` and `experimental apps-mcp tools query`. +Dot notation is only supported in `experimental aitools tools discover-schema` and `experimental aitools tools query`. It is STRONGLY RECOMMENDED to delegate the task of exploring catalogs, schemas, or tables in Unity Catalog to an Explore agent or a sub agent. diff --git a/experimental/apps-mcp/lib/prompts/prompts.go b/experimental/aitools/lib/prompts/prompts.go similarity index 100% rename from experimental/apps-mcp/lib/prompts/prompts.go rename to experimental/aitools/lib/prompts/prompts.go diff --git a/experimental/apps-mcp/lib/prompts/target_apps.tmpl b/experimental/aitools/lib/prompts/target_apps.tmpl similarity index 90% rename from experimental/apps-mcp/lib/prompts/target_apps.tmpl rename to experimental/aitools/lib/prompts/target_apps.tmpl index 6f5d3660c8..ec89e93e54 100644 --- a/experimental/apps-mcp/lib/prompts/target_apps.tmpl +++ b/experimental/aitools/lib/prompts/target_apps.tmpl @@ -9,13 +9,13 @@ ### Validation ⚠️ Always validate before deploying: - invoke_databricks_cli 'experimental apps-mcp tools validate ./' + invoke_databricks_cli 'experimental aitools tools validate ./' This is battle-tested to catch common issues before deployment. Prefer using this over manual checks (e.g. `npm run lint`), as it covers more ground specific to Databricks Apps. ### Deployment ⚠️ USER CONSENT REQUIRED: Only deploy with explicit user permission. - invoke_databricks_cli 'experimental apps-mcp tools deploy' + invoke_databricks_cli 'experimental aitools tools deploy' ### View and Manage invoke_databricks_cli 'bundle summary' diff --git a/experimental/apps-mcp/lib/prompts/target_bundle.tmpl b/experimental/aitools/lib/prompts/target_bundle.tmpl similarity index 100% rename from experimental/apps-mcp/lib/prompts/target_bundle.tmpl rename to experimental/aitools/lib/prompts/target_bundle.tmpl diff --git a/experimental/apps-mcp/lib/prompts/target_jobs.tmpl b/experimental/aitools/lib/prompts/target_jobs.tmpl similarity index 100% rename from experimental/apps-mcp/lib/prompts/target_jobs.tmpl rename to experimental/aitools/lib/prompts/target_jobs.tmpl diff --git a/experimental/apps-mcp/lib/prompts/target_pipelines.tmpl b/experimental/aitools/lib/prompts/target_pipelines.tmpl similarity index 100% rename from experimental/apps-mcp/lib/prompts/target_pipelines.tmpl rename to experimental/aitools/lib/prompts/target_pipelines.tmpl diff --git a/experimental/apps-mcp/lib/providers/clitools/configure_auth.go b/experimental/aitools/lib/providers/clitools/configure_auth.go similarity index 86% rename from experimental/apps-mcp/lib/providers/clitools/configure_auth.go rename to experimental/aitools/lib/providers/clitools/configure_auth.go index 087283e644..95c502d9a5 100644 --- a/experimental/apps-mcp/lib/providers/clitools/configure_auth.go +++ b/experimental/aitools/lib/providers/clitools/configure_auth.go @@ -5,9 +5,9 @@ import ( "errors" "os" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" - "github.com/databricks/cli/experimental/apps-mcp/lib/prompts" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/prompts" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/databricks-sdk-go" ) diff --git a/experimental/apps-mcp/lib/providers/clitools/configure_auth_test.go b/experimental/aitools/lib/providers/clitools/configure_auth_test.go similarity index 94% rename from experimental/apps-mcp/lib/providers/clitools/configure_auth_test.go rename to experimental/aitools/lib/providers/clitools/configure_auth_test.go index 7fdd851284..5d902ae234 100644 --- a/experimental/apps-mcp/lib/providers/clitools/configure_auth_test.go +++ b/experimental/aitools/lib/providers/clitools/configure_auth_test.go @@ -5,8 +5,8 @@ import ( "os" "testing" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) diff --git a/experimental/apps-mcp/lib/providers/clitools/discover.go b/experimental/aitools/lib/providers/clitools/discover.go similarity index 95% rename from experimental/apps-mcp/lib/providers/clitools/discover.go rename to experimental/aitools/lib/providers/clitools/discover.go index 2e9324dc9b..5c0a5e62cc 100644 --- a/experimental/apps-mcp/lib/providers/clitools/discover.go +++ b/experimental/aitools/lib/providers/clitools/discover.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - "github.com/databricks/cli/experimental/apps-mcp/lib/detector" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" - "github.com/databricks/cli/experimental/apps-mcp/lib/prompts" + "github.com/databricks/cli/experimental/aitools/lib/detector" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/prompts" "github.com/databricks/cli/libs/databrickscfg/profile" "github.com/databricks/cli/libs/log" "github.com/databricks/databricks-sdk-go/service/sql" diff --git a/experimental/apps-mcp/lib/providers/clitools/invoke_databricks_cli.go b/experimental/aitools/lib/providers/clitools/invoke_databricks_cli.go similarity index 89% rename from experimental/apps-mcp/lib/providers/clitools/invoke_databricks_cli.go rename to experimental/aitools/lib/providers/clitools/invoke_databricks_cli.go index f616053367..4a741644d4 100644 --- a/experimental/apps-mcp/lib/providers/clitools/invoke_databricks_cli.go +++ b/experimental/aitools/lib/providers/clitools/invoke_databricks_cli.go @@ -7,8 +7,8 @@ import ( "os" "os/exec" - "github.com/databricks/cli/experimental/apps-mcp/lib/common" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/common" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" "github.com/databricks/cli/internal/build" ) diff --git a/experimental/apps-mcp/lib/providers/clitools/provider.go b/experimental/aitools/lib/providers/clitools/provider.go similarity index 95% rename from experimental/apps-mcp/lib/providers/clitools/provider.go rename to experimental/aitools/lib/providers/clitools/provider.go index 490e3e8b54..193fbdc413 100644 --- a/experimental/apps-mcp/lib/providers/clitools/provider.go +++ b/experimental/aitools/lib/providers/clitools/provider.go @@ -3,10 +3,10 @@ package clitools import ( "context" - mcp "github.com/databricks/cli/experimental/apps-mcp/lib" - mcpsdk "github.com/databricks/cli/experimental/apps-mcp/lib/mcp" - "github.com/databricks/cli/experimental/apps-mcp/lib/providers" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + mcp "github.com/databricks/cli/experimental/aitools/lib" + mcpsdk "github.com/databricks/cli/experimental/aitools/lib/mcp" + "github.com/databricks/cli/experimental/aitools/lib/providers" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/cli/libs/log" ) diff --git a/experimental/apps-mcp/lib/providers/doc.go b/experimental/aitools/lib/providers/doc.go similarity index 100% rename from experimental/apps-mcp/lib/providers/doc.go rename to experimental/aitools/lib/providers/doc.go diff --git a/experimental/apps-mcp/lib/providers/registry.go b/experimental/aitools/lib/providers/registry.go similarity index 96% rename from experimental/apps-mcp/lib/providers/registry.go rename to experimental/aitools/lib/providers/registry.go index aa5fc6b7d6..2bb6dd0556 100644 --- a/experimental/apps-mcp/lib/providers/registry.go +++ b/experimental/aitools/lib/providers/registry.go @@ -6,8 +6,8 @@ import ( "fmt" "sync" - mcp "github.com/databricks/cli/experimental/apps-mcp/lib" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + mcp "github.com/databricks/cli/experimental/aitools/lib" + "github.com/databricks/cli/experimental/aitools/lib/session" ) // Provider is the interface that all MCP providers must implement. diff --git a/experimental/apps-mcp/lib/server/doc.go b/experimental/aitools/lib/server/doc.go similarity index 100% rename from experimental/apps-mcp/lib/server/doc.go rename to experimental/aitools/lib/server/doc.go diff --git a/experimental/apps-mcp/lib/server/health.go b/experimental/aitools/lib/server/health.go similarity index 100% rename from experimental/apps-mcp/lib/server/health.go rename to experimental/aitools/lib/server/health.go diff --git a/experimental/apps-mcp/lib/server/server.go b/experimental/aitools/lib/server/server.go similarity index 91% rename from experimental/apps-mcp/lib/server/server.go rename to experimental/aitools/lib/server/server.go index 9694749d38..ff0016f4be 100644 --- a/experimental/apps-mcp/lib/server/server.go +++ b/experimental/aitools/lib/server/server.go @@ -4,12 +4,12 @@ package server import ( "context" - mcp "github.com/databricks/cli/experimental/apps-mcp/lib" - mcpsdk "github.com/databricks/cli/experimental/apps-mcp/lib/mcp" - "github.com/databricks/cli/experimental/apps-mcp/lib/middlewares" - "github.com/databricks/cli/experimental/apps-mcp/lib/providers/clitools" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" - "github.com/databricks/cli/experimental/apps-mcp/lib/trajectory" + mcp "github.com/databricks/cli/experimental/aitools/lib" + mcpsdk "github.com/databricks/cli/experimental/aitools/lib/mcp" + "github.com/databricks/cli/experimental/aitools/lib/middlewares" + "github.com/databricks/cli/experimental/aitools/lib/providers/clitools" + "github.com/databricks/cli/experimental/aitools/lib/session" + "github.com/databricks/cli/experimental/aitools/lib/trajectory" "github.com/databricks/cli/internal/build" "github.com/databricks/cli/libs/log" "github.com/databricks/databricks-sdk-go" @@ -27,7 +27,7 @@ type Server struct { // It creates a session, trajectory tracker, and prepares the server for provider registration. func NewServer(ctx context.Context, cfg *mcp.Config) *Server { impl := &mcpsdk.Implementation{ - Name: "databricks-apps-mcp", + Name: "databricks-aitools", Version: build.GetInfo().Version, } diff --git a/experimental/apps-mcp/lib/session/session.go b/experimental/aitools/lib/session/session.go similarity index 100% rename from experimental/apps-mcp/lib/session/session.go rename to experimental/aitools/lib/session/session.go diff --git a/experimental/apps-mcp/lib/session/session_test.go b/experimental/aitools/lib/session/session_test.go similarity index 100% rename from experimental/apps-mcp/lib/session/session_test.go rename to experimental/aitools/lib/session/session_test.go diff --git a/experimental/apps-mcp/lib/state/checksum.go b/experimental/aitools/lib/state/checksum.go similarity index 100% rename from experimental/apps-mcp/lib/state/checksum.go rename to experimental/aitools/lib/state/checksum.go diff --git a/experimental/apps-mcp/lib/state/checksum_test.go b/experimental/aitools/lib/state/checksum_test.go similarity index 100% rename from experimental/apps-mcp/lib/state/checksum_test.go rename to experimental/aitools/lib/state/checksum_test.go diff --git a/experimental/apps-mcp/lib/state/persistence.go b/experimental/aitools/lib/state/persistence.go similarity index 100% rename from experimental/apps-mcp/lib/state/persistence.go rename to experimental/aitools/lib/state/persistence.go diff --git a/experimental/apps-mcp/lib/state/state.go b/experimental/aitools/lib/state/state.go similarity index 100% rename from experimental/apps-mcp/lib/state/state.go rename to experimental/aitools/lib/state/state.go diff --git a/experimental/apps-mcp/lib/trajectory/tracker.go b/experimental/aitools/lib/trajectory/tracker.go similarity index 87% rename from experimental/apps-mcp/lib/trajectory/tracker.go rename to experimental/aitools/lib/trajectory/tracker.go index 6941361532..2d0fa6267b 100644 --- a/experimental/apps-mcp/lib/trajectory/tracker.go +++ b/experimental/aitools/lib/trajectory/tracker.go @@ -7,9 +7,9 @@ import ( "os" "path/filepath" - mcp "github.com/databricks/cli/experimental/apps-mcp/lib" - mcpsdk "github.com/databricks/cli/experimental/apps-mcp/lib/mcp" - "github.com/databricks/cli/experimental/apps-mcp/lib/session" + mcp "github.com/databricks/cli/experimental/aitools/lib" + mcpsdk "github.com/databricks/cli/experimental/aitools/lib/mcp" + "github.com/databricks/cli/experimental/aitools/lib/session" "github.com/databricks/cli/libs/log" ) @@ -26,7 +26,7 @@ func NewTracker(ctx context.Context, sess *session.Session, cfg *mcp.Config) (*T return nil, fmt.Errorf("failed to get home directory: %w", err) } - historyPath := filepath.Join(homeDir, ".databricks", "apps-mcp", "history.jsonl") + historyPath := filepath.Join(homeDir, ".databricks", "aitools", "history.jsonl") writer, err := NewWriter(historyPath) if err != nil { diff --git a/experimental/apps-mcp/lib/trajectory/types.go b/experimental/aitools/lib/trajectory/types.go similarity index 100% rename from experimental/apps-mcp/lib/trajectory/types.go rename to experimental/aitools/lib/trajectory/types.go diff --git a/experimental/apps-mcp/lib/trajectory/writer.go b/experimental/aitools/lib/trajectory/writer.go similarity index 100% rename from experimental/apps-mcp/lib/trajectory/writer.go rename to experimental/aitools/lib/trajectory/writer.go diff --git a/experimental/apps-mcp/lib/validation/command.go b/experimental/aitools/lib/validation/command.go similarity index 100% rename from experimental/apps-mcp/lib/validation/command.go rename to experimental/aitools/lib/validation/command.go diff --git a/experimental/apps-mcp/lib/validation/custom.go b/experimental/aitools/lib/validation/custom.go similarity index 100% rename from experimental/apps-mcp/lib/validation/custom.go rename to experimental/aitools/lib/validation/custom.go diff --git a/experimental/apps-mcp/lib/validation/nodejs.go b/experimental/aitools/lib/validation/nodejs.go similarity index 100% rename from experimental/apps-mcp/lib/validation/nodejs.go rename to experimental/aitools/lib/validation/nodejs.go diff --git a/experimental/apps-mcp/lib/validation/types.go b/experimental/aitools/lib/validation/types.go similarity index 96% rename from experimental/apps-mcp/lib/validation/types.go rename to experimental/aitools/lib/validation/types.go index 28e4dfbce5..5a1e08830a 100644 --- a/experimental/apps-mcp/lib/validation/types.go +++ b/experimental/aitools/lib/validation/types.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - "github.com/databricks/cli/experimental/apps-mcp/lib/common" + "github.com/databricks/cli/experimental/aitools/lib/common" ) // ValidationDetail contains detailed output from a failed validation. diff --git a/experimental/apps-mcp/templates/.gitignore b/experimental/aitools/templates/.gitignore similarity index 100% rename from experimental/apps-mcp/templates/.gitignore rename to experimental/aitools/templates/.gitignore diff --git a/experimental/apps-mcp/templates/appkit/databricks_template_schema.json b/experimental/aitools/templates/appkit/databricks_template_schema.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/databricks_template_schema.json rename to experimental/aitools/templates/appkit/databricks_template_schema.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.env.example b/experimental/aitools/templates/appkit/template/{{.project_name}}/.env.example similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.env.example rename to experimental/aitools/templates/appkit/template/{{.project_name}}/.env.example diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.env.tmpl b/experimental/aitools/templates/appkit/template/{{.project_name}}/.env.tmpl similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.env.tmpl rename to experimental/aitools/templates/appkit/template/{{.project_name}}/.env.tmpl diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.gitignore.tmpl b/experimental/aitools/templates/appkit/template/{{.project_name}}/.gitignore.tmpl similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.gitignore.tmpl rename to experimental/aitools/templates/appkit/template/{{.project_name}}/.gitignore.tmpl diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.prettierignore b/experimental/aitools/templates/appkit/template/{{.project_name}}/.prettierignore similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.prettierignore rename to experimental/aitools/templates/appkit/template/{{.project_name}}/.prettierignore diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.prettierrc.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/.prettierrc.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/.prettierrc.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/.prettierrc.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/AGENTS.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/AGENTS.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/AGENTS.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/AGENTS.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/CLAUDE.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/CLAUDE.md similarity index 93% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/CLAUDE.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/CLAUDE.md index b3c32fe33f..2ca2b04721 100644 --- a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/CLAUDE.md +++ b/experimental/aitools/templates/appkit/template/{{.project_name}}/CLAUDE.md @@ -59,14 +59,14 @@ import { BarChart } from '@databricks/appkit-ui/react'; - `npm run dev` - Start dev server with hot reload (**ALWAYS use during development**) ### Testing and Code Quality -See the databricks experimental apps-mcp tools validate instead of running these individually. +See the databricks experimental aitools tools validate instead of running these individually. ### Utility - `npm run clean` - Remove all build artifacts and node_modules **Common workflows:** - Development: `npm run dev` → make changes → `npm run typecheck` → `npm run lint:fix` -- Pre-deploy: Validate with `databricks experimental apps-mcp tools validate .` +- Pre-deploy: Validate with `databricks experimental aitools tools validate .` ## Documentation diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/README.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/README.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/README.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/README.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/app.yaml b/experimental/aitools/templates/appkit/template/{{.project_name}}/app.yaml similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/app.yaml rename to experimental/aitools/templates/appkit/template/{{.project_name}}/app.yaml diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/components.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/components.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/components.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/components.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/index.html b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/index.html similarity index 93% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/index.html rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/index.html index 4b3117fd79..c217c7c120 100644 --- a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/index.html +++ b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/index.html @@ -9,7 +9,7 @@ - Created by Apps MCP + Created by Databricks AI Tools
diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/postcss.config.js b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/postcss.config.js similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/postcss.config.js rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/postcss.config.js diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/apple-touch-icon.png b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/apple-touch-icon.png similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/apple-touch-icon.png rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/apple-touch-icon.png diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-16x16.png b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-16x16.png similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-16x16.png rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-16x16.png diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-192x192.png b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-192x192.png similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-192x192.png rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-192x192.png diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-32x32.png b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-32x32.png similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-32x32.png rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-32x32.png diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-48x48.png b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-48x48.png similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-48x48.png rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-48x48.png diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-512x512.png b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-512x512.png similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon-512x512.png rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon-512x512.png diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon.svg b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon.svg similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/favicon.svg rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/favicon.svg diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/site.webmanifest b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/site.webmanifest similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/public/site.webmanifest rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/public/site.webmanifest diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/App.tsx b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/App.tsx similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/App.tsx rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/App.tsx diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/ErrorBoundary.tsx b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/ErrorBoundary.tsx similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/ErrorBoundary.tsx rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/ErrorBoundary.tsx diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/appKitTypes.d.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/appKitTypes.d.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/appKitTypes.d.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/appKitTypes.d.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/index.css b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/index.css similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/index.css rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/index.css diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/lib/trpc.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/lib/trpc.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/lib/trpc.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/lib/trpc.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/lib/utils.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/lib/utils.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/lib/utils.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/lib/utils.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/main.tsx b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/main.tsx similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/main.tsx rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/main.tsx diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/vite-env.d.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/vite-env.d.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/src/vite-env.d.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/src/vite-env.d.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/tailwind.config.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/tailwind.config.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/tailwind.config.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/tailwind.config.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/vite.config.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/client/vite.config.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/client/vite.config.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/client/vite.config.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/config/queries/hello_world.sql b/experimental/aitools/templates/appkit/template/{{.project_name}}/config/queries/hello_world.sql similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/config/queries/hello_world.sql rename to experimental/aitools/templates/appkit/template/{{.project_name}}/config/queries/hello_world.sql diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/config/queries/mocked_sales.sql b/experimental/aitools/templates/appkit/template/{{.project_name}}/config/queries/mocked_sales.sql similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/config/queries/mocked_sales.sql rename to experimental/aitools/templates/appkit/template/{{.project_name}}/config/queries/mocked_sales.sql diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/config/queries/schema.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/config/queries/schema.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/config/queries/schema.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/config/queries/schema.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/databricks.yml.tmpl b/experimental/aitools/templates/appkit/template/{{.project_name}}/databricks.yml.tmpl similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/databricks.yml.tmpl rename to experimental/aitools/templates/appkit/template/{{.project_name}}/databricks.yml.tmpl diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/appkit-sdk.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/docs/appkit-sdk.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/appkit-sdk.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/docs/appkit-sdk.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/frontend.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/docs/frontend.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/frontend.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/docs/frontend.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/sql-queries.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/docs/sql-queries.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/sql-queries.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/docs/sql-queries.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/testing.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/docs/testing.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/testing.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/docs/testing.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/trpc.md b/experimental/aitools/templates/appkit/template/{{.project_name}}/docs/trpc.md similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/docs/trpc.md rename to experimental/aitools/templates/appkit/template/{{.project_name}}/docs/trpc.md diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/eslint.config.js b/experimental/aitools/templates/appkit/template/{{.project_name}}/eslint.config.js similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/eslint.config.js rename to experimental/aitools/templates/appkit/template/{{.project_name}}/eslint.config.js diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/package-lock.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/package-lock.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/package-lock.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/package-lock.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/package.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/package.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/package.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/package.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/playwright.config.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/playwright.config.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/playwright.config.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/playwright.config.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/scripts/generate-types.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/scripts/generate-types.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/scripts/generate-types.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/scripts/generate-types.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/scripts/lint-ast-grep.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/scripts/lint-ast-grep.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/scripts/lint-ast-grep.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/scripts/lint-ast-grep.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/server/server.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/server/server.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/server/server.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/server/server.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/server/trpc.test.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/server/trpc.test.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/server/trpc.test.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/server/trpc.test.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/server/trpc.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/server/trpc.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/server/trpc.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/server/trpc.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/shared/types.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/shared/types.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/shared/types.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/shared/types.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tests/smoke.spec.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/tests/smoke.spec.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tests/smoke.spec.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/tests/smoke.spec.ts diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.client.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.client.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.client.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.client.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.server.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.server.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.server.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.server.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.shared.json b/experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.shared.json similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/tsconfig.shared.json rename to experimental/aitools/templates/appkit/template/{{.project_name}}/tsconfig.shared.json diff --git a/experimental/apps-mcp/templates/appkit/template/{{.project_name}}/vitest.config.ts b/experimental/aitools/templates/appkit/template/{{.project_name}}/vitest.config.ts similarity index 100% rename from experimental/apps-mcp/templates/appkit/template/{{.project_name}}/vitest.config.ts rename to experimental/aitools/templates/appkit/template/{{.project_name}}/vitest.config.ts diff --git a/tools/testmask/targets.go b/tools/testmask/targets.go index 404b07e82c..bdacf80031 100644 --- a/tools/testmask/targets.go +++ b/tools/testmask/targets.go @@ -26,9 +26,9 @@ var fileTargetMappings = []targetMapping{ }, { prefixes: slices.Concat(goTriggerPatterns, []string{ - "experimental/apps-mcp/", + "experimental/aitools/", }), - target: "test-exp-apps-mcp", + target: "test-exp-aitools", }, { prefixes: slices.Concat(goTriggerPatterns, []string{ diff --git a/tools/testmask/targets_test.go b/tools/testmask/targets_test.go index beace5779e..ab7e2aa8c3 100644 --- a/tools/testmask/targets_test.go +++ b/tools/testmask/targets_test.go @@ -44,14 +44,14 @@ func TestGetTargets(t *testing.T) { files: []string{ "go.mod", }, - targets: []string{"test", "test-exp-apps-mcp", "test-exp-ssh", "test-pipelines"}, + targets: []string{"test", "test-exp-aitools", "test-exp-ssh", "test-pipelines"}, }, { name: "go_sum_triggers_all", files: []string{ "go.sum", }, - targets: []string{"test", "test-exp-apps-mcp", "test-exp-ssh", "test-pipelines"}, + targets: []string{"test", "test-exp-aitools", "test-exp-ssh", "test-pipelines"}, }, { name: "go_mod_with_other_files_triggers_all", @@ -59,7 +59,7 @@ func TestGetTargets(t *testing.T) { "experimental/ssh/main.go", "go.mod", }, - targets: []string{"test", "test-exp-apps-mcp", "test-exp-ssh", "test-pipelines"}, + targets: []string{"test", "test-exp-aitools", "test-exp-ssh", "test-pipelines"}, }, { name: "empty_files",