IBM Concert MCP Server

IBM Concert MCP Server

A Model Context Protocol server that connects AI agents to IBM Concert, enabling autonomous workflow health monitoring, incident diagnosis, auto-remediation, CVE triage, and Slack alerting through natural language.

Category
Visit Server

README

IBM Concert MCP Server

License: Apache 2.0

A Model Context Protocol (MCP) server that connects AI agents and assistants to IBM Concert — enabling autonomous workflow health monitoring, incident diagnosis, auto-remediation, CVE triage, and Slack alerting through natural language.

Overview

This repository contains two complementary MCP servers:

Server Module Purpose
concert-workflow-monitor src/ibm_concert_mcp/server.py Live workflow health checks, auto-remediation, CVE queries, Slack alerts, incident tracking
concert-knowledge src/ibm_concert_mcp/knowledge/server.py Semantic RAG search over IBM Concert documentation (Supabase + pgvector)

Available Tools

concert-workflow-monitor

Tool Description
list_monitored_workflows List all Concert workflows being monitored
check_workflow_health Run a live health check against one or all workflows
get_failing_workflows Return only workflows currently in ERROR/WARNING state with diagnosis
get_workflow_diagnosis Diagnose a workflow and auto-post an error alert to Slack
remediate_workflow Auto-fix a failing workflow (soft re-invoke or oc rollout restart)
get_concert_cve_summary Query Concert for top CVEs across your application inventory
trigger_package_remediation Invoke Concert's built-in package remediation workflow (raises GitHub PR + ServiceNow ticket)
upload_scan_to_concert Push an updated vulnerability/SBOM scan to Concert
send_slack_alert Post a notification to the configured Slack channel
get_incident_stats MTTR and incident statistics for the last N days
get_recent_incident_log Most recent incidents from the incident database
receive_webhook_event Process inbound Concert webhook events for zero-latency detection
record_recommendation_feedback Record šŸ‘/šŸ‘Ž engineer feedback to improve future diagnoses
get_recommendation_learnings Show what the agent has learned from past feedback

concert-knowledge

Tool Description
search_concert_docs Semantic similarity search over all ingested Concert documentation
list_concert_sources List all documentation sources indexed in the knowledge base

Prerequisites

  • Python 3.10 or higher
  • pip or uv
  • Access to an IBM Concert instance
  • Slack Incoming Webhook URL (for alerting)
  • (Optional) Supabase project for incident tracking and knowledge RAG
  • (Optional) OpenShift CLI (oc) for the oc rollout restart remediation strategy

Installation

git clone https://github.com/ibm-ai-platform/ibm-concert-mcp.git
cd ibm-concert-mcp

# Workflow monitor
pip install -r requirements.txt

# Knowledge server (separate — heavier ML dependencies)
pip install -r requirements-knowledge.txt

Or with uv:

uv venv && source .venv/bin/activate
uv pip install -r requirements.txt

Configuration

Copy .env.example to .env and fill in your values:

cp .env.example .env

Required environment variables

Variable Description
CONCERT_API_KEY IBM Concert API key (base64-encoded user:token)
SLACK_WEBHOOK_URL Slack Incoming Webhook URL

Optional environment variables

Variable Default Description
CONCERT_BASE_URL TechZone gateway Concert Workflows gateway URL
CONCERT_REST_BASE_URL TechZone host Concert main host (for CVE/ingestion API)
CONCERT_INSTANCE_ID — Concert instance UUID (for CVE API)
SUPABASE_URL — Supabase project URL (incident DB + knowledge RAG)
SUPABASE_PUBLISHABLE_KEY — Supabase anon/publishable key
OC_NAMESPACE concert-workflows OpenShift namespace for oc remediation
RUNBOOK_DIR ./runbooks Directory where auto-generated runbooks are written
RECOVERY_TIMEOUT_SECONDS 90 How long to wait for recovery after oc restart
ALERT_ON_WARNING false Also alert on HTTP 200 empty-body (warning) responses
AUTO_SLACK true Auto-post Slack alerts on diagnosis/resolution
VERIFY_TLS false Verify TLS certificates
MCP_TRANSPORT stdio stdio | sse | streamable-http
MCP_HOST 127.0.0.1 Host for SSE/HTTP transport
MCP_PORT 8000 Port for SSE/HTTP transport (workflow monitor)

For the knowledge server, also set:

Variable Description
SUPABASE_URL Supabase project URL
SUPABASE_PUBLISHABLE_KEY Supabase anon/publishable key

Usage

stdio transport (AI agent / IDE use)

Add the following to your MCP client configuration (e.g. ~/.bob/settings/mcp_settings.json, Claude Desktop claude_desktop_config.json, or VS Code mcp.json):

{
  "mcpServers": {
    "concert-workflow-monitor": {
      "command": "uvx",
      "args": [
        "concert-workflow-monitor"
      ],
      "env": {
        "CONCERT_API_KEY": "<your-concert-api-key>",
        "SLACK_WEBHOOK_URL": "<your-slack-webhook-url>",
        "MCP_TRANSPORT": "stdio"
      }
    },
    "concert-knowledge": {
      "command": "uvx",
      "args": [
        "--from",
        "ibm-concert-mcp[knowledge]",
        "python",
        "-m",
        "ibm_concert_mcp.knowledge.server"
      ],
      "env": {
        "SUPABASE_URL": "<your-supabase-url>",
        "SUPABASE_PUBLISHABLE_KEY": "<your-supabase-key>",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

SSE / HTTP transport (shared/remote deployment)

Run the server centrally so colleagues can point their MCP clients at a URL — no local Python install required:

export CONCERT_API_KEY=<your-key>
export SLACK_WEBHOOK_URL=<your-webhook>
export MCP_TRANSPORT=sse
export MCP_HOST=0.0.0.0
export MCP_PORT=8000
python -m ibm_concert_mcp.server

Colleagues add this to their MCP client config:

{
  "mcpServers": {
    "concert-workflow-monitor": {
      "type": "sse",
      "url": "http://<your-server>:8000/sse"
    }
  }
}

A /health HTTP endpoint is also available at http://<host>:<port>/health for dashboard integration.

Typical incident-response loop

Once connected to an AI agent (e.g. IBM Bob, Claude), you can drive the full loop with natural language:

"Check if any Concert workflows are failing"
→ get_failing_workflows()

"Diagnose the akshay-test-fail workflow"
→ get_workflow_diagnosis("akshay-test-fail")

"Try to fix it automatically"
→ remediate_workflow("akshay-test-fail", strategy="auto")

"Post the result to Slack"
→ send_slack_alert(...)

CVE remediation loop

"Show me the top Priority 1 CVEs"
→ get_concert_cve_summary(priority="1")

"Trigger package remediation for my-app, assign to jsmith"
→ trigger_package_remediation(application_name="my-app", git_repo="...", github_assignee="jsmith")

"Upload the updated SBOM"
→ upload_scan_to_concert(scan_type="package_sbom", ...)

Learning loop

The server accumulates šŸ‘/šŸ‘Ž feedback from engineers to improve future diagnoses:

"The recommendation didn't help — what actually fixed it was restarting the gateway pod"
→ record_recommendation_feedback("akshay-test-fail", vote="down", actual_fix="restart gateway pod")

"What has the agent learned so far?"
→ get_recommendation_learnings()

Registering Concert workflows to monitor

Edit the WORKFLOWS list near the top of src/ibm_concert_mcp/server.py:

WORKFLOWS = [
    # (adapter_name, environment, workflow_name, display_name)
    ("my-adapter", "prod", "my-workflow", "My Workflow Display Name"),
]

Architecture

AI Agent (Bob / Claude / etc.)
        │
        │  MCP (stdio or SSE)
        ā–¼
concert-workflow-monitor ──► IBM Concert Workflows API
        │                ──► OpenShift (oc rollout restart)
        │                ──► Slack (Incoming Webhook)
        │                ──► Supabase (incident DB)
        │
concert-knowledge ──────────► Supabase pgvector (Concert docs RAG)

License

Apache License 2.0 — see LICENSE.

Contributing

Pull requests welcome. See CONTRIBUTING.md for guidelines.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured