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.
README
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 | 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
piporuv- 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 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.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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.