Model Context Protocol (MCP) server for SQL Steam Builder (SSB)
Configuration
View docs{
"mcpServers": {
"brooksian-ssb-mcp-server": {
"command": "/path/to/run_mcp_server.sh",
"args": [],
"env": {
"KNOX_TOKEN": "<your_knox_bearer_token>",
"KNOX_COOKIE": "<KNOX_COOKIE>",
"SSB_API_BASE": "https://ssb-gateway.yourshere.cloudera.site/ssb/api/v1",
"SSB_BASE_URL": "https://your-ssb-host:443",
"SSB_READONLY": "true",
"MCP_TRANSPORT": "stdio"
}
}
}
}You deploy and use the SSB MCP Server to manage SQL Stream Builder environments through Claude Desktop or other MCP clients. It provides controlled access to SSB functionality, supports multiple authentication methods, and exposes a comprehensive set of tools for managing streams, data sources, environments, UDFs, and more while enabling safe read-only exploration by default.
Use Claude Desktop or your MCP client to interact with the SSB MCP Server. You can explore streams, jobs, tables, connectors, formats, and configuration options. By default, deployments in CDP (Cloudera Data Platform) run in read-only mode to prevent unintended changes, while standalone deployments can enable write access. When you are ready to perform actions, adjust the read-only setting and restart the MCP server if needed.
Follow these concrete steps to install and start the MCP server in two common ways: standalone SSB deployments using Claude Desktop locally, or integration with Cloudera AI Agent Studio.
# Option A: Standalone SSB deployments ( Claude Desktop Local )
# Prerequisites
# - Git
# - Python 3.8+ with venv support
# - Internet access to clone and install
# Step 1: Clone the MCP server repository and install in editable mode
git clone https://github.com/your-org/ssb-mcp-server.git
cd ssb-mcp-server
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
# Step 2: Configure Claude Desktop to load the MCP server (example shown in this section)
```
```]} ,{# Start all services via Docker Compose (standalone path)
git clone https://github.com/your-org/ssb-mcp-server.git
cd ssb-mcp-server
docker-compose up -d
# Confirm services are running
docker-compose ps
docker-compose logs -f ssb-sse
```
```]} ,{# Option A: Claude Desktop local config (stdin stdio transport)
{
"mcpServers": {
"ssb-mcp-server": {
"command": "/FULL/PATH/TO/SSB-MCP-Server/run_mcp_server.sh",
"args": [],
"cwd": "/FULL/PATH/TO/SSB-MCP-Server"
}
}
}
```]} ,{Note: The exact path and file used to start the MCP server in your environment may differ. Ensure Claude Desktop is pointed at the correct command and working directory for your installation.
### Option 2: Cloudera AI Agent Studio
If you are using Cloudera AI Agent Studio, configure the MCP server with environment variables and the given command flow to load the MCP server through the UVX runner.{
"mcpServers": {
"ssb-mcp-server": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/your-org/ssb-mcp-server@main",
"run-server"
],
"env": {
"MCP_TRANSPORT": "stdio",
"SSB_BASE_URL": "https://your-ssb-host:443",
"SSB_TENANT": "your-tenant-name",
"KNOX_TOKEN": "your_jwt_token_here",
"MVE_USERNAME": "your_mve_username",
"MVE_PASSWORD": "your_mve_password",
"SSB_READONLY": "false"
}
}
}
}
```
Environment variables shown above should be set according to your deployment. Restart the Cloudera AI Agent Studio after updating the configuration.Access points and UI details for the local Docker-based setup are shown here for quick reference.
SSB SSE: http://localhost:18121
SSB MVE: http://localhost:18131
Flink Job Manager: http://localhost:8081
NiFi: http://localhost:8080
Knox Gateway: https://localhost:8444 (if enabled)
```]}]} ,{Configure the MCP server using either environment variables or a JSON configuration file. Environment variables take precedence over JSON. Important credentials to consider include Knox tokens for CDP deployments and SSB API base URLs for direct access. For Cloudera AI Agent Studio, always use environment variables as shown in the examples.
# Example JSON configuration for cloud/SSB access
{
"cloud_ssb": {
"base_url": "https://your-ssb-host:443",
"tenant": "your-tenant-name",
"jwt_token": "your_jwt_token_here",
"ssb_readonly": false,
"knox_verify_ssl": true,
"http_timeout_seconds": 60,
"http_max_retries": 3,
"http_rate_limit_rps": 5,
"mve_username": "your_mve_username",
"mve_password": "your_mve_password"
}
}
```
Environment variables example:
```
export SSB_BASE_URL="https://your-ssb-host:443"
export SSB_TENANT="your-tenant-name"
export KNOX_TOKEN="your_jwt_token_here"
export MVE_USERNAME="your_mve_username"
export MVE_PASSWORD="your_mve_password"
export SSB_READONLY="false"
```
```} ,{If you plan to use the standalone mode with Claude Desktop, place the Python-based server run command in a setup similar to the example shown in the installation section and ensure Claude Desktop is restarted after applying changes.
When you encounter issues, check authentication credentials, ensure services are running, and validate connector configurations. For issues with token expiration, refresh tokens manually as tokens do not auto-refresh.
If you need to verify which tables or data sources are available for querying, use the relevant discovery methods and remember that materialized views are accessed via the MVE API, not SQL.
Sensitive data such as passwords and tokens are redacted in responses. Read-only mode is enabled by default for CDP deployments to prevent unintended changes. Use API keys and proper authentication for secure access, and rotate credentials as part of your security best practices.
Apache License 2.0.
Get detailed job event history and timeline
Get comprehensive job state information
Duplicate an existing job
Clone a data source
Get system performance counters and diagnostics
Check system health and connectivity
Analyze SQL query for syntax and performance without execution
Get comprehensive table information
Get hierarchical table structure organized by catalog
Validate data source configuration
Create table with full configuration
Get detailed information about a specific table
List all available data formats
Get details about a specific data format
Create a new data format
Get connector JAR information
Get detailed connector type information
Get detailed connector information
Get user preferences and settings
Update user configuration
List available projects
Get project information
Create a new project
Get current user information
List user API keys
Create new API key
Delete API key
Get API key information
List available environments
Activate/switch to an environment
Get environment configuration
Create new environment
Deactivate current environment
Get sync configuration
Update sync configuration
Export project configuration
Import project configuration
Get comprehensive UDF information
Execute UDF function
Get UDF artifacts and dependencies
List all SQL streams (jobs)
Get details of a specific stream
Create new stream (write mode)
Update an existing stream
Delete a stream
Start a stream
Stop a stream
Execute SQL query and create SSB job
Execute query with custom sampling
Get status of a specific SSB job
Get sample data from a job execution
Get sample data from a job by ID
List all jobs with their sample information
Stop a specific SSB job
Execute/restart a job with new SQL
Restart job with sampling options
Configure sampling parameters
List all available tables (data sources)
Get table schema information
Create new Kafka data source (local-kafka enforced)
Register Kafka table in Flink catalog to make queryable
Validate that a connector type is valid for local-kafka
List user-defined functions
Get UDF details
List available connectors
Get connector details
List Kafka topics
Get topic details
Get cluster information
Get cluster health status
Get SSB version and system info