Skip to content

databricks-solutions/mcp-workshop

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Databricks MCP Workshop

Interactive workshop for learning how to build agents on Databricks with hands-on examples covering managed servers, external integrations, custom server development and local IDE setup.

πŸŽ“ Workshop Participant Setup

For workshop participants - Get your own isolated environment with one command:

git clone https://github.com/databricks-solutions/mcp-workshop
cd mcp-workshop
./setup.sh

This interactive setup creates your personal workshop environment:

  • πŸ—οΈ Your own Unity Catalog with sample data
  • πŸš€ Custom MCP server deployed as a Databricks App
  • πŸ’» Local development environment
  • πŸ” Secure authentication setup

Each participant gets isolated resources (e.g., mcp_workshop_john_doe) - no conflicts, no shared data issues!

πŸ‘‰ See detailed setup guide β†’


Access the Workshop

After deployment, access the workshop locally:

  1. Navigate to the frontend: cd frontend
  2. Start the dev server: npm run dev
  3. Visit http://localhost:3000 to start the workshop

Your MCP server will be deployed as a Databricks App (check the Apps page)

πŸ“š Workshop Content

Section 1: Managed MCP Servers (45 min)

Learn to use Databricks-managed MCP servers with:

  • Unity Catalog functions and permissions
  • Vector Search for RAG applications
  • Genie Spaces for natural language SQL
  • Automated vs Interactive modes

Section 2: External MCP Servers (40 min)

Integrate third-party services:

  • Unity Catalog connections
  • GitHub, Atlassian, Slack integrations
  • Custom API connections
  • Proxy authentication and security

Section 3: Custom MCP Servers (60 min)

Build and deploy your own:

  • Simple @mcp.tool() decorator pattern (based on databrickslabs/mcp)
  • Databricks SDK integration (clusters, warehouses, SQL)
  • Markdown-based prompts for reusable commands
  • Databricks Apps deployment with automated scripts
  • End-to-end testing and debugging tools

Section 4: Local IDE Integration (30 min)

Connect your development environment:

  • Cursor IDE configuration
  • Claude Desktop setup
  • VS Code with MCP extensions
  • OAuth and PAT authentication

πŸ” Authentication Model

This workshop uses Databricks Apps built-in authentication exclusively:

  • User Authorization: Your access token is automatically forwarded via x-forwarded-access-token header
  • App Authorization: Service principal credentials via DATABRICKS_CLIENT_ID and DATABRICKS_CLIENT_SECRET environment variables
  • Unified Permissions: All operations respect your existing Unity Catalog permissions
  • Zero Setup: No manual token management or OAuth flows required

Learn more about Databricks Apps authentication β†’

πŸ› οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                 Databricks Workspace                        β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”‚  Local Dev      β”‚    β”‚         Unity Catalog           β”‚ β”‚
β”‚  β”‚  Frontend       │◄──►│  - mcp_workshop catalog         β”‚ β”‚
β”‚  β”‚  (Next.js)      β”‚    β”‚  - Sample data & schemas        β”‚ β”‚
β”‚  β”‚                 β”‚    β”‚  - Vector Search indexes       β”‚ β”‚
β”‚  β”‚  http://        β”‚    β”‚  - Genie Spaces                β”‚ β”‚
β”‚  β”‚  localhost:3000 β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                        β”‚
β”‚                         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚       MCP Integrations          β”‚ β”‚
β”‚  β”‚  Setup Jobs     β”‚    β”‚  - Managed MCP servers          β”‚ β”‚
β”‚  β”‚  - Catalog      β”‚    β”‚  - External connections         β”‚ β”‚
β”‚  β”‚  - Sample data  β”‚    β”‚  - Custom MCP App (deployed)    β”‚ β”‚
β”‚  β”‚  - Vector index β”‚    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                        β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

mcp-workshop/
β”œβ”€β”€ databricks.yml              # Bundle configuration
β”œβ”€β”€ frontend/                   # Next.js workshop application (local dev)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app/               # App router pages
β”‚   β”‚   └── components/        # React components
β”‚   └── package.json
β”œβ”€β”€ custom-mcp-template/        # Custom MCP server (deployed to Databricks Apps)
β”‚   β”œβ”€β”€ server/                # FastAPI MCP server
β”‚   β”œβ”€β”€ client/                # React client UI
β”‚   └── deploy.sh              # Deployment script
└── setup/                      # Workshop setup jobs
    β”œβ”€β”€ create_workshop_catalog.py
    β”œβ”€β”€ setup_sample_data.py
    └── deploy_mcp_template.py

🎯 Learning Objectives

By the end of this workshop, you'll be able to:

  • βœ… Use Databricks managed MCP servers in your applications
  • βœ… Integrate external MCP servers via Unity Catalog connections
  • βœ… Build and deploy custom MCP servers as Databricks Apps
  • βœ… Implement proper authentication and authorization patterns
  • βœ… Apply MCP best practices for production deployments
  • βœ… Connect local IDEs to Databricks MCP resources

πŸ”§ Development

To run the workshop locally for development:

cd app
npm install
npm run dev

The app will run at http://localhost:3000 with mock authentication for development.

πŸ“ Customization

Adding New Workshop Sections

  1. Update src/lib/workshop-config.ts with new section definitions
  2. Create component files in src/components/workshop/sections/
  3. Add any required setup jobs to databricks.yml
  4. Deploy with databricks bundle deploy

Modifying Authentication Scopes

Update the user_authorization.scopes in databricks.yml:

user_authorization:
  enabled: true
  scopes:
    - "sql"                    # SQL warehouse access
    - "files.files"           # File operations  
    - "dashboards.genie"      # Genie Spaces (add if needed)
    - "your-custom-scope"     # Additional scopes

🧹 Workshop Management

Cleanup After Workshop (for workspace admins/instructors)

The workshop creates user-specific resources in the workspace that should be cleaned up afterwards:

# List all workshop participants
./cleanup_workshop.sh --list

# Clean up specific participant
./cleanup_workshop.sh --participant john_doe

# Clean up ALL workshop resources (⚠️ DESTRUCTIVE)
./cleanup_workshop.sh --all

Monitor Workshop Usage

# View participant resources
./cleanup_workshop.sh --list

# Check catalog sizes
databricks sql query "SELECT catalog_name, SIZE_GB FROM information_schema.catalog_storage WHERE catalog_name LIKE 'mcp_workshop_%'"

# List workshop apps
databricks apps list | grep "mcp-workshop-app-"

πŸ†˜ Troubleshooting

Common Issues

App won't start: Check that all required environment variables are set in the bundle configuration.

Authentication errors: Ensure user authorization is enabled and required scopes are configured.

Resource access denied: Verify Unity Catalog permissions for the workshop catalog and resources.

Health check failing: Check that the app is listening on port 3000 and /api/health endpoint responds.

Setup script fails: Ensure Databricks CLI is configured and you have catalog creation permissions.

Getting Help

  • Check the app logs in Databricks workspace
  • Verify bundle deployment with databricks bundle validate
  • Review Databricks Apps documentation
  • For participant setup issues, see WORKSHOP_SETUP.md
  • Submit issues to the workshop repository

πŸ”€ Choosing Your MCP Approach

This workshop uses a simplified approach based on databrickslabs/mcp - perfect for learning MCP fundamentals.

This Workshop: databrickslabs/mcp

βœ… Simpler structure - fewer files, easier to understand
βœ… Focus on tool creation - @mcp.tool() decorator pattern
βœ… Officially supported - maintained by Databricks Labs
βœ… Quick deployment - streamlined for Databricks Apps

Alternative: databricks-solutions Repository

For Claude Code/Cursor users wanting enhanced IDE integration:

databricks-solutions/custom-mcp-databricks-app

Features:

  • Enhanced IDE integration (Claude Code, Cursor)
  • .claude/commands directory support
  • FastMCP framework with routers
  • Built-in MCP inspector
  • More production-ready patterns

πŸ’‘ Recommendation: Start with this workshop to learn the fundamentals. If you're a heavy Claude Code or Cursor user, explore the databricks-solutions repository as your next step!

πŸ“– Additional Resources

πŸ“„ License

Β© 2025 Databricks, Inc. All rights reserved. The source in this notebook is provided subject to the Databricks License [https://databricks.com/db-license-source]. All included or referenced third party libraries are subject to the licenses set forth below.


Ready to learn? Deploy the workshop and start exploring! πŸš€

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published