IBM Concert MCP Server
Enables automated package remediation by raising GitHub pull requests and integrating with GitHub issue assignment for CVE fixes.
Allows sending alerts and notifications to Slack channels via incoming webhooks, enabling automated incident alerting and resolution communication.
Provides a knowledge base backend using Supabase with pgvector for semantic search over Concert documentation, and stores incident data for tracking and learning.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@IBM Concert MCP Servercheck health of all monitored workflows"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
IBM Concert MCP Server
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 |
| Live workflow health checks, auto-remediation, CVE queries, Slack alerts, incident tracking |
concert-knowledge |
| Semantic RAG search over IBM Concert documentation (Supabase + pgvector) |
Related MCP server: ServiceNow MCP Server
Available Tools
concert-workflow-monitor
Tool | Description |
| List all Concert workflows being monitored |
| Run a live health check against one or all workflows |
| Return only workflows currently in ERROR/WARNING state with diagnosis |
| Diagnose a workflow and auto-post an error alert to Slack |
| Auto-fix a failing workflow (soft re-invoke or |
| Query Concert for top CVEs across your application inventory |
| Invoke Concert's built-in package remediation workflow (raises GitHub PR + ServiceNow ticket) |
| Push an updated vulnerability/SBOM scan to Concert |
| Post a notification to the configured Slack channel |
| MTTR and incident statistics for the last N days |
| Most recent incidents from the incident database |
| Process inbound Concert webhook events for zero-latency detection |
| Record 👍/👎 engineer feedback to improve future diagnoses |
| Show what the agent has learned from past feedback |
concert-knowledge
Tool | Description |
| Semantic similarity search over all ingested Concert documentation |
| List all documentation sources indexed in the knowledge base |
Prerequisites
Python 3.10 or higher
piporuvAccess 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 theoc rollout restartremediation 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.txtOr with uv:
uv venv && source .venv/bin/activate
uv pip install -r requirements.txtConfiguration
Copy .env.example to .env and fill in your values:
cp .env.example .envRequired environment variables
Variable | Description |
| IBM Concert API key (base64-encoded |
| Slack Incoming Webhook URL |
Optional environment variables
Variable | Default | Description |
| TechZone gateway | Concert Workflows gateway URL |
| TechZone host | Concert main host (for CVE/ingestion API) |
| — | Concert instance UUID (for CVE API) |
| — | Supabase project URL (incident DB + knowledge RAG) |
| — | Supabase anon/publishable key |
|
| OpenShift namespace for |
|
| Directory where auto-generated runbooks are written |
|
| How long to wait for recovery after |
|
| Also alert on HTTP 200 empty-body (warning) responses |
|
| Auto-post Slack alerts on diagnosis/resolution |
|
| Verify TLS certificates |
|
|
|
|
| Host for SSE/HTTP transport |
|
| Port for SSE/HTTP transport (workflow monitor) |
For the knowledge server, also set:
Variable | Description |
| Supabase project URL |
| 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.serverColleagues 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.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/riminator/ibm-concert-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server