Skip to content

solace-semp-mcp v1.0.0

Latest

Choose a tag to compare

@Tanendra77 Tanendra77 released this 22 Mar 19:21
· 9 commits to main since this release

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: stdio for local clients, sse for remote/team deployments
  • Multi-broker support via environment variables, brokers.json, or runtime add_broker tool
  • 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/amd64 and linux/arm64
  • Tar archive available for air-gapped and registry-restricted environments

Installation

Docker Hub:

docker pull tanendra/solace-semp-mcp:1.0.0

Tar 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.gz

How 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.0

Verify:

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]