A Model Context Protocol (MCP) server for Solace PubSub+ brokers. Exposes 47 SEMP v2 tools for broker inspection, queue and client management, diagnostics, and ACL/profile operations — compatible with Claude Code, Claude Desktop, and any MCP-compatible host.
What's in v1.0.0
- 47 SEMP v2 tools across 9 groups (broker, monitor, queues, clients, ACL profiles, client usernames, client profiles, diagnostics, passthrough)
- Two transports:
stdiofor local clients,ssefor remote/team deployments - Multi-broker support via environment variables,
brokers.json, or runtimeadd_brokertool - Dry-run safety model — all write and delete operations require explicit
confirm: true - API key bearer auth and per-IP rate limiting for SSE mode
- Multi-platform Docker image:
linux/amd64andlinux/arm64 - Tar archive available for air-gapped and registry-restricted environments
Installation
Docker Hub:
docker pull tanendra/solace-semp-mcp:1.0.0Tar archive (air-gapped / no registry access):
# Download solace-semp-mcp-1.0.0.tar.gz from this release, then:
docker load -i solace-semp-mcp-1.0.0.tar.gzHow to Use
1. Start the server
docker run -d -p 3000:3000 \
-e SEMP_BROKER_PROD_URL=http://your-solace-host:8080 \
-e SEMP_BROKER_PROD_USERNAME=admin \
-e SEMP_BROKER_PROD_PASSWORD=yourpassword \
-e SEMP_BROKER_PROD_LABEL="Production" \
tanendra/solace-semp-mcp:1.0.0Verify:
curl http://localhost:3000/health
# {"status":"ok","brokers":1}2. Connect your MCP client
Claude Code / Claude Desktop — stdio via Docker:
{
"mcpServers": {
"solace-semp": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "MCP_TRANSPORT=stdio",
"-e", "SEMP_BROKER_PROD_URL=http://your-solace-host:8080",
"-e", "SEMP_BROKER_PROD_USERNAME=admin",
"-e", "SEMP_BROKER_PROD_PASSWORD=yourpassword",
"--no-healthcheck",
"tanendra/solace-semp-mcp:1.0.0"
]
}
}
}SSE — connect to a running container:
{
"mcpServers": {
"solace-semp": {
"type": "sse",
"url": "http://localhost:3000/sse"
}
}
}3. Talk to your broker
Once connected, ask your AI assistant naturally:
"Find all backlogged queues on the prod broker"
"Show me the HA redundancy and config sync status"
"List all clients connected to VPN default"
"Create a queue called test-queue in VPN dev"
"Delete queue orders-dead-letter from VPN prod"
Available Tools
| Group | What it covers |
|---|---|
| Broker | List, register, remove brokers; version info; health summary |
| Monitor | Broker health, HA/redundancy status, VPN stats, config sync |
| Queues | List, inspect, browse messages, create, update, delete, purge |
| Clients | List connections, subscriptions, disconnect, clear stats |
| ACL Profiles | List, get, create, update, delete |
| Client Usernames | List, get, create, update, delete |
| Client Profiles | List, get, create, update, delete |
| Diagnostics | Backlogged queues, idle consumers, message lag detection |
| Passthrough | Raw SEMP v2 requests — mode controlled via SEMP_PASSTHROUGH_MODE |
Safety Model
All write and delete operations are dry-run by default. The server tells you exactly what SEMP call would be made before anything is executed. Pass confirm: true to proceed.
User: "Delete queue test-queue from VPN default"
MCP: DRY RUN — would call DELETE /SEMP/v2/config/msgVpns/default/queues/test-queue
Queue: test-queue | VPN: default | Broker: Production
Pass confirm: true to execute.
User: "Yes, confirm"
MCP: ✓ Queue test-queue deleted from VPN default.
Key Environment Variables
| Variable | Default | Description |
|---|---|---|
MCP_TRANSPORT |
sse |
sse or stdio |
PORT |
3000 |
HTTP port for SSE mode |
MCP_API_KEY |
— | Bearer token to protect SSE endpoints |
MCP_RATE_LIMIT_RPS |
10 |
Max requests per second per client IP |
SEMP_PASSTHROUGH_MODE |
advanced |
disabled, monitor_only, or advanced |
LOG_LEVEL |
info |
error, warn, info, or debug |
🐳 Docker Hub: [hub.docker.com/r/tanendra/solace-semp-mcp]