Skip to main content
Glama
anujshrivastava15

QRadar MCP Server

QRadar MCP Server

Model Context Protocol (MCP) server for IBM QRadar SIEM - Access 728+ QRadar REST API endpoints through just 4 intelligent MCP tools.


🎯 What is This?

QRadar MCP Server bridges the gap between Large Language Models (LLMs) and IBM QRadar SIEM. It enables natural language interactions with your security dataβ€”no need to memorize 728 API endpoints.

The Problem

  • QRadar has 728+ REST API endpoints β€” overwhelming for developers and LLMs alike

  • Traditional approach: Define each endpoint as a separate tool β†’ massive token consumption

  • Result: Expensive API calls, slow responses, context limits exceeded

The Solution

Instead of exposing 728 tools, we expose just 4 intelligent tools:

Traditional Approach

MCP Server Approach

728 tool definitions

4 tool definitions

~50,000 tokens/request

~2,000 tokens/request

Context overflow risk

Fits any LLM context

Slow tool discovery

Instant endpoint lookup

Token Efficiency

  • 96% reduction in tool definition tokens

  • 25x faster LLM processing

  • Works with any LLM (Claude, GPT, Gemini, Llama)

Who Should Use This?

  • Security analysts wanting natural language QRadar queries

  • DevOps teams automating security workflows

  • AI developers building QRadar-integrated applications

  • SOC teams needing quick incident data access


🌐 Experience It Live

IBM MCP Client (Web UI)

Try the full experience with our React + FastAPI client:

Live Demo: http://9.30.147.112:8000 πŸš€

Container Registry: ghcr.io/addanuj/ibm-mcp-client:latest

Try: "Show me top 10 offenses", "How many assets?", "Get QRadar version", "List 5 rules"


πŸ—οΈ Architecture

graph TB
    subgraph "Client Layer"
        A[MCP Client/LLM] 
    end
    
    subgraph "MCP Server Container"
        B[Python FastAPI Server<br/>Port: 8001]
        C[4 MCP Tools]
        D[QRadar API Wrapper<br/>728 Endpoints]
    end
    
    subgraph "QRadar SIEM"
        E[REST API<br/>v26.0+]
        F[Offenses]
        G[Assets]
        H[Rules]
        I[Ariel Search]
    end
    
    A -->|HTTP/SSE or stdio| B
    B --> C
    C --> D
    D -->|HTTPS REST| E
    E --> F
    E --> G
    E --> H
    E --> I
    
    style A fill:#e1f5ff
    style B fill:#fff3e0
    style C fill:#f3e5f5
    style D fill:#e8f5e9
    style E fill:#fce4ec

πŸ“¦ What's Inside

4 Intelligent Tools

Tool

Description

Example

qradar_get

Fetch data from 728 endpoints

Get offenses, assets, rules

qradar_execute

Create/update resources

Create reference sets, update rules

qradar_delete

Remove resources

Delete offense notes

qradar_discover

Auto-discover endpoints

Find correct API paths

Supported Endpoints (728 total)

  • SIEM: Offenses, sources, destinations

  • Assets: Asset model, vulnerabilities, compliance

  • Analytics: Rules, building blocks, searches

  • Ariel: AQL queries, searches, results

  • Reference Data: Sets, maps, collections

  • Config: Domains, log sources, users

  • System: Health, licensing, servers

πŸš€ Quick Start

Option 1: Pull from Registry (Run as Container)

# Pull multi-architecture image
docker pull ghcr.io/addanuj/qradar-mcp-server:latest

# Run as container
docker run -d \
  --name qradar-mcp-server \
  -p 8001:8001 \
  -e QRADAR_HOST="https://your-qradar-console.com" \
  -e QRADAR_API_TOKEN="your-sec-token-here" \
  -e QRADAR_VERIFY_SSL="false" \
  ghcr.io/addanuj/qradar-mcp-server:latest \
  --host 0.0.0.0 --port 8001

Option 2: Build from Source (Run as Container)

# Clone repository
git clone https://github.ibm.com/ashrivastava/QRadar-MCP-Server.git
cd QRadar-MCP-Server

# Build container image
docker build -t qradar-mcp-server:latest -f container/Dockerfile .

# Run as container
docker run -d \
  --name qradar-mcp-server \
  -p 8001:8001 \
  -e QRADAR_HOST="https://your-qradar.com" \
  -e QRADAR_API_TOKEN="token" \
  qradar-mcp-server:latest \
  --host 0.0.0.0 --port 8001

Option 3: Local Development (Run as Python Service)

# Install dependencies
pip install -e .

# Set environment variables
export QRADAR_HOST="https://your-qradar.com"
export QRADAR_API_TOKEN="your-token"

# Run in stdio mode (for Claude Desktop)
python -m src.server

# OR run in HTTP mode for local testing
python -m src.server --host 0.0.0.0 --port 8001

πŸ”§ Configuration

Environment Variables

Variable

Required

Default

Description

QRADAR_HOST

βœ… Yes

-

Full QRadar console URL (https://...)

QRADAR_API_TOKEN

βœ… Yes

-

QRadar API authorization token

QRADAR_VERIFY_SSL

❌ No

false

Verify SSL certificates

QRADAR_API_VERSION

❌ No

26.0

QRadar API version

Runtime Modes

python -m src.server --host 0.0.0.0 --port 8001
  • Exposes REST API on port 8001

  • Health check: http://localhost:8001/health

  • Tools list: http://localhost:8001/tools

  • SSE streaming support

stdio Mode (for Claude Desktop)

python -m src.server
  • Communicates via stdin/stdout

  • Use in Claude Desktop MCP configuration

  • No network exposure needed

Usage Examples

Check Server Health

curl http://localhost:8001/health
# Response: {"status":"healthy","mode":"http","tools":4,"endpoints":728}

List Available Tools

curl http://localhost:8001/tools

Call a Tool (Get Offenses)

curl -X POST http://localhost:8001/tools/call \
  -H "Content-Type: application/json" \
  -d '{
    "name": "qradar_get",
    "arguments": {
      "endpoint": "/siem/offenses",
      "limit": 10,
      "qradar_host": "https://your-qradar.com",
      "qradar_token": "your-token"
    }
  }'

Discover Endpoints

curl -X POST http://localhost:8001/tools/call \
  -H "Content-Type: application/json" \
  -d '{
    "name": "qradar_discover",
    "arguments": {
      "search": "offenses",
      "qradar_host": "https://your-qradar.com",
      "qradar_token": "your-token"
    }
  }'

πŸ“ Project Structure

QRadar-MCP-Server/
β”œβ”€β”€ container/
β”‚   └── Dockerfile              # Multi-arch container definition
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ __init__.py
β”‚   β”œβ”€β”€ __main__.py            # Entry point
β”‚   β”œβ”€β”€ server.py              # FastAPI server (HTTP mode)
β”‚   β”œβ”€β”€ client.py              # QRadar API client wrapper
β”‚   └── tools.py               # 4 MCP tools with 728 endpoint definitions
└── pyproject.toml             # Python package config

🚦 Supported QRadar Versions

  • QRadar 7.3.x βœ… (tested)

  • QRadar 7.4.x βœ… (tested)

  • QRadar 7.5.x βœ… (tested)

πŸ“ž Support

Reporting Issues & Feature Requests

Found a bug?

  1. Go to: https://github.ibm.com/ashrivastava/QRadar-MCP-Server/issues

  2. Click "New Issue"

  3. Provide: clear title, steps to reproduce, QRadar version, and logs (docker logs qradar-mcp-server)

Have a suggestion?

  1. Open issue with [Feature Request] prefix

  2. Describe use case and expected behavior

Need help?


⚠️ Disclaimer

This is a Minimum Viable Product (MVP) for testing and demonstration purposes only.

  • NOT for production use

  • No warranty or support guarantees

  • Use at your own risk

  • For production deployments, conduct thorough security review and testing

  • IBM is not responsible for any issues arising from the use of this software

F
license - not found
Not graded
quality - not tested
Not graded
maintenance - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.

  • 55 tools, 7 Resources, Sigma rules, email SPF/DMARC, MITRE, CVE/KEV, risk_score. No key.

  • Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.

View all MCP Connectors

Latest Blog Posts

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/anujshrivastava15/qradar-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server