Patch Tuesday

SSE

by jonnybottles

336 downloads Not rated yet

About

MCP server for Microsoft Patch Tuesday - query MSRC security updates, CVEs, and KBs with EPSS + CISA KEV enrichment. No API keys. Works with Claude, Copilot, Cursor, and any MCP client.

Details

Transport
SSE

Explore

- msrc_search – Search and filter Microsoft security updates by keyword, CVE, KB number, month, product, severity, CVSS score, exploited-in-the-wild status, or public disclosure. When no month is given, results default to the most recent release whose Patch Tuesday has already occurred — the upcoming month's pre-release document (early Chromium/out-of-band entries only) is skipped by default and available explicitly via month=. Results are enriched with EPSS scores (FIRST.org 30-day exploitation probability, min_epss=0.5 filter) and CISA KEV catalog status with federal remediation due dates (kev=True filter) — both public, keyless sources. Filter by the parsed CVSS v3.x exposure fields — attack_vector (N/A/L/P), privileges_required (N/L/H), user_interaction (N/R), and scope (U/C) — to isolate, for example, network-reachable zero-click criticals; matching results surface a structured cvss object broken out from the raw vector string. Every CVE detail also includes a references block of ready-to-open links (MSRC update guide, NVD, EPSS API, and the CISA KEV catalog when the CVE is listed). Add include_chain=True to a KB lookup to walk Microsoft-stated supersedence chains (which KBs it replaces, newest → oldest). Pass a list of KB numbers (kb=["5094123", "KB5094127", ...], up to 30) to resolve them all in one call — e.g. a machine's installed-update list as context for a patch report — and get a grouped response with one per-KB entry (found or not-found, each with the same body as a single-KB lookup); every monthly document is still fetched upstream at most once for the whole batch. Add include_guidance=True to a CVE lookup to surface Microsoft-provided mitigations, workarounds, and will-not-fix advisories alongside the vendor-fix KBs. Pass format="markdown" or format="csv" to a monthly/filtered search to get an additive triage briefing — a prioritized executive summary and table (Markdown) or a spreadsheet-ready export with stable columns (CSV) — rendered from the same urgency ranking; the JSON vulnerabilities list is always included. Use force_refresh=True to bypass the in-process caches and re-fetch the MSRC document and EPSS/KEV enrichment for the request, and include_freshness=True to add a freshness block reporting the cache age and TTL of the MSRC document and enrichment data. Search a historical range instead of a single month with months_back=N (the N most recent released months) or start_month/end_month — the response aggregates matching CVEs across the range and adds per-month trend counts; ranges are capped at 12 months and reuse the existing cache/concurrency controls. Set include_stats=True for aggregate counts (by severity, impact, product family, exploited, KEV). Use limit=0 with include_stats=True for a stats-only month overview. Filter on Microsoft's exploitation-likelihood assessment with exploitation_likely=True ("Exploitation More Likely"/"Exploitation Detected"; matches carry an exploitation_assessment field) and on known ransomware campaign use with ransomware=True (from the CISA KEV catalog). Opt into richer rows where you need them: include_references=True adds the MSRC/NVD/EPSS/KEV link block to month/KB/trend list results, include_kev_details=True replaces the boolean KEV flag with the full catalog entry (due date, required action, vendor/product, ransomware use), include_kb_details=True expands KB numbers into full objects with per-KB URL, fixed build, supersedence, sub-type, and restart-required status, and include_temporal=True adds Microsoft's CVSS temporal score to cvss blocks. Filter by weakness class with cwe= (ID or name substring, e.g. cwe="CWE-416"). Use list_months=True to fetch the release catalog (every available month with initial/current release dates — handy for valid month= values and spotting same-month revisions). All new fields are opt-in: the default JSON shape is unchanged.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Patch Tuesday
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

A free remote instance is available at:

https://patch-tuesday-mcp.happyrock-b60185ec.eastus.azurecontainerapps.io/mcp
No account or API key needed. The endpoint serves the same public data as a local install — for heavy use or guaranteed availability, run it locally (below) or self-host your own. Only minimal, anonymized usage data is recorded — see Telemetry & Privacy.
uvx patch-tuesday-mcp

Or install with pip:

pip install patch-tuesday-mcp

Set up in VS Code
Set up in Cursor
Set up in Claude Code
Set up in Copilot CLI

> One-click setup: Click the VS Code badge for automatic configuration (requires uv installed)
> Manual setup: See instructions below for VS Code, Cursor, Claude Code, Copilot CLI, or Claude Desktop

The HTTP transport is unauthenticated — msrc_search only reads public
vulnerability data, but an open endpoint is still abusable. Before exposing it
to the internet:

- Put it behind an authenticated front door. Terminate TLS and require auth
at a reverse proxy / API gateway (e.g. Azure API Management, an OAuth2/OIDC
proxy such as oauth2-proxy, Cloudflare Access, or your ingress controller's
auth). This server intentionally ships no built-in auth so you can layer your
organization's standard access control in front of it.
- Restrict CORS. Set MCP_CORS_ORIGINS to the exact origins of your MCP
clients instead of the permissive * default.
- Keep the defaults on. Leave MCP_MAX_BODY_BYTES and
MCP_LIMIT_CONCURRENCY at their defaults (or tighten them) — they are your
first line of defense against oversized payloads and connection exhaustion.
- Upstream reads are bounded and redirect-free. Responses from MSRC/EPSS/
KEV are size-capped while streaming and HTTP redirects are never followed,
so a misbehaving upstream can't exhaust container memory.

Local stdio usage is unaffected by all of the above; none of this middleware
runs for the default transport.

The container runs on any host that can serve HTTP — Azure Container Apps, Cloud Run, Fly.io, or a plain VM.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "patch tuesday": {
            "patch-tuesday-mcp": {
                "command": "uvx",
                "args": [
                    "patch-tuesday-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "patch-tuesday-mcp": {
        "command": "uvx",
        "args": [
            "patch-tuesday-mcp"
        ]
    }
}

mcp-name: io.github.jonnybottles/patch-tuesday

Ask your AI assistant about Microsoft security updates. This Python-based MCP (Model Context Protocol) server connects AI assistants like Claude, Copilot, and ChatGPT to the MSRC Security Update Guide — the authoritative source for every CVE Microsoft patches — enabling natural-language queries over Patch Tuesday releases: CVEs, KB articles, severity ratings, CVSS scores, affected products, and exploited-in-the-wild status.

What It Does

Patch Tuesday MCP Server bridges Microsoft's official CVRF security update API and your AI assistant, allowing you to:

- Get the monthly rollup - "What did this month's Patch Tuesday fix?"
- Find what's actively exploited - "Which vulnerabilities are being exploited in the wild?"
- Look up any CVE - "Tell me about CVE-2026-41108" (KBs, affected products, CVSS, description)
- Map KBs to CVEs - "Which vulnerabilities does KB5094123 fix?"
- Filter by product - "What Critical CVEs affect Windows Server 2022 this month?"
- Track zero-days - "Were any publicly disclosed vulnerabilities patched in April?"
- See what's confirmed exploited - "Which of this month's CVEs are on the CISA KEV list?" — with federal remediation due dates
- Rank by exploitation probability - "Show me CVEs with EPSS above 50%" — daily FIRST.org exploit prediction scores
- Find zero-click, internet-reachable criticals - "Which Critical CVEs are network-reachable with no privileges and no user interaction?" — filter on the parsed CVSS attack vector, privileges, and user-interaction fields
- Jump straight to authoritative sources - every CVE detail carries ready-to-open MSRC, NVD, EPSS, and (when listed) CISA KEV reference links
- Avoid stale patches - "Is KB5087538 superseded by anything newer?" — walks Microsoft's supersedence links
- Get mitigations when there's no patch yet - "Are there mitigations or workarounds for CVE-2026-47291?" — surfaces Microsoft's mitigation, workaround, and will-not-fix guidance
- Spot trends over time - "How many HTTP.sys CVEs shipped over the last 6 months?" (months_back=6, or start_month/end_month) — aggregates matches across released months with per-month counts
- Filter by Microsoft's own exploitation forecast - "Which of this month's CVEs does Microsoft rate 'Exploitation More Likely'?" (exploitation_likely=True)
- Spot ransomware-weaponized CVEs - "Which CVEs this month are used in known ransomware campaigns?" (ransomware=True; add include_kev_details=True for the full CISA entry with required actions)
- Plan the deployment, not just the priority - "Does KB5094123 require a restart, and what build fixes it?" (include_kb_details=True adds per-KB URLs, fixed builds, supersedence, and restart requirements)
- Slice a month by weakness class - "Show me this month's use-after-free CVEs" (cwe="CWE-416" or cwe="use after free")
- Discover the release catalog - "Which monthly releases are available, and when were they last revised?" (list_months=True)
- Export a triage briefing - "Give me this month's Critical CVEs as a Markdown report" or "…as CSV" — a prioritized executive summary and table, or a spreadsheet-ready export (format="markdown" / format="csv")
- Force-refresh & check data freshness - "Re-pull this month's data fresh" (force_refresh=True) bypasses the in-process caches; include_freshness=True reports the cache age/TTL of the MSRC document and EPSS/KEV enrichment
- Prioritize patching - Results are sorted most-urgent-first: KEV/exploited, then EPSS, then severity, then CVSS

Perfect for security analysts, sysadmins, and IT professionals who triage Microsoft security updates every month — without clicking through the Security Update Guide portal.

Data comes from the official, public MSRC CVRF v3 API. No authentication or API key required.

Why This Server?

This is the only MCP server that models the Patch Tuesday release itself. Plenty of MCP servers can look up a CVE — general-purpose vulnerability aggregators fan a known CVE ID out across NVD, OSV, and threat-intel feeds. They answer "tell me about CVE-X". But they have no concept of a monthly Microsoft release, a KB article, or a product family — so they structurally cannot answer the questions a Microsoft shop actually asks on the second Tuesday of every month:

| The question you actually have | Generic CVE lookup servers | patch-tuesday-mcp |
|---|---|---|
| "Summarize this month's Patch Tuesday" | ❌ no concept of a release | ✅ rollup + stats in one call |
| "What Critical CVEs affect Windows Server 2022 this month?" | ❌ can't filter by Microsoft product | ✅ product & family filtering |
| "Which vulnerabilities does KB5094123 fix?" | ❌ no KB awareness | ✅ KB ↔ CVE mapping |
| "What's being exploited in the wild right now?" | ⚠️ per-CVE only, if you already know the CVE | ✅ filter the whole month |
| "What do I patch first?" | ❌ | ✅ urgency-sorted: exploited/KEV → EPSS → severity → CVSS |
| "Which criticals are zero-click and internet-reachable?" | ⚠️ per-CVE CVSS only | ✅ filter the month by parsed CVSS attack vector / privileges / user interaction |
| "Tell me about CVE-X" | ✅ (often with more ecosystem data) | ✅ MSRC detail: KBs, builds, supersedence, parsed CVSS, MSRC/NVD/EPSS/KEV links |

Under the hood, the difference is the data source: this server parses the full MSRC CVRF monthly documents — the ProductTree, per-product severity threats, exploitability assessments, and KB remediation chains that per-CVE APIs never expose. That's what makes release-centric questions possible.

Other things it deliberately gets right:

- Zero API keys, zero accounts — the MSRC API is public; setup is one uvx command
- One tool, not thirty — a single consolidated msrc_search keeps your AI client's context lean and tool selection reliable
- Built for the monthly workflow — triage a release, brief your team, prioritize patching, then get on with your life

Try It Instantly — Hosted Endpoint (No Install)

A free remote instance is available at:

https://patch-tuesday-mcp.happyrock-b60185ec.eastus.azurecontainerapps.io/mcp
No account or API key needed. The endpoint serves the same public data as a local install — for heavy use or guaranteed availability, run it locally (below) or self-host your own. Only minimal, anonymized usage data is recorded — see Telemetry & Privacy.

Requirements

General

- Python 3.11+
- An MCP-compatible client (Claude Desktop, Cursor, Claude Code, GitHub Copilot CLI, etc.)

Using uvx (Recommended)

If you are installing or running the server via uvx, you must have uv installed first.

- uv (includes uvx): https://github.com/astral-sh/uv

Install uv:

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.