Custom Model Context Protocol (MCP) server with OBO (On-Behalf-Of) authentication, designed for deployment as a Databricks app.
The server implements three MCP tools:
- test_connection: Test server connectivity and OBO authentication status
- echo: Echo back a message (useful for testing basic functionality)
- get_user_info: Retrieve current user information via OBO authentication
This server uses Databricks OBO (On-Behalf-Of) authentication with ModelServingUserCredentials, allowing it to act on behalf of the authenticated user making requests.
- Install Databricks CLI
- Authenticate to your workspace:
databricks auth login --host https://<your-workspace-hostname>
-
Create the Databricks app:
databricks apps create mcp-cust-kat
-
Upload and deploy:
DATABRICKS_USERNAME=$(databricks current-user me | jq -r .userName) databricks sync . "/Users/$DATABRICKS_USERNAME/mcp-cust-kat" databricks apps deploy mcp-cust-kat --source-code-path "/Workspace/Users/$DATABRICKS_USERNAME/mcp-cust-kat"
-
Access your app:
- The app URL will be available in the Databricks UI
- MCP endpoint:
https://<app-url>/mcp - Health check:
https://<app-url>/health
- GET / - Root endpoint with server information
- GET /health - Health check endpoint with OBO authentication status
- POST /mcp - Main MCP JSON-RPC endpoint
Once deployed, you can test the connection using the available MCP tools:
- test_connection: Verifies the server is running and shows OBO authentication status
- echo: Simple echo test to verify request/response functionality
- get_user_info: Returns detailed information about the authenticated user
Run locally for testing:
uv run python server.pyThe server will start on port 8000 with both HTTP and MCP protocol support.
server.py- Main FastAPI application with MCP protocol implementationapp.yaml- Databricks app configurationpyproject.toml- Python project configuration and dependenciesrequirements.txt- Direct dependencies for the application