Search / io.github.jonnybottles/patch-tuesday
patch-tuesday
not classifiedQuery Microsoft Patch Tuesday security updates (MSRC) with EPSS and CISA KEV enrichment
v0.9.1 · active · repository · descriptor JSON · versions
Search / io.github.jonnybottles/patch-tuesday
Query Microsoft Patch Tuesday security updates (MSRC) with EPSS and CISA KEV enrichment
v0.9.1 · active · repository · descriptor JSON · versions
{
"mcpServers": {
"patch-tuesday": {
"type": "http",
"url": "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"
}
}
}claude mcp add --transport http patch-tuesday https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp[mcp_servers.patch-tuesday]
url = "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"patch-tuesday": {
"type": "remote",
"url": "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"patch-tuesday": {
"type": "http",
"url": "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=patch-tuesday&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vcGF0Y2gtdHVlc2RheS1tY3AuYWdyZWVhYmxlZGVzZXJ0LWQwYjhlNDkxLmVhc3R1czIuYXp1cmVjb250YWluZXJhcHBzLmlvL21jcCJ9"
}{
"servers": {
"patch-tuesday": {
"type": "http",
"url": "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"
}
}
}{
"mcpServers": {
"patch-tuesday": {
"httpUrl": "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"
}
}
}extensions:
"patch-tuesday":
enabled: true
name: "patch-tuesday"
type: streamable_http
uri: "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp"
timeout: 300
protocol.modernnewest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28protocol.statelessonly applies to 2026-07-28 serversprotocol.transportstreamable HTTPprotocol.list_ttlonly applies to 2026-07-28 serversauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_length1 tools have descriptions over 1,024 characters, which crowds the contexttools.schemasevery tool has an object input schematools.annotations1 of 1 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: msrc_search (destructiveHint)tools.token_costabout 4,723 tokens to load every tooltools.api_dumptools are not a one-to-one API dumpstability.changesno tool changes in 30 daysstability.rug_pullno tool changed its meaning under the same namedeps.known_vulns2 advisories to act on (malicious, or rated high or critical with a fix available): GHSA-rww4-4w9c-7733 in [email protected] (direct, fixed in 3.2.0), GHSA-vv7q-7jx5-f767 in [email protected] (direct, fixed in 3.2.0); 2 more of lower severity or without a fixdeps.mcp_sdk_versionmcp 1.30.0, no known advisorydeps.resolvable[email protected] resolved: 80 packagesNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+repository +namespace-matches-repo -unreachable(10 failures) ~updated-85d-ago
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
[email protected] PyPI79 dependencies, resolved · MCP SDK mcp 1.30.0 · advisories checked 2026-10-19
| advisory | severity | package | fixed in |
|---|---|---|---|
| GHSA-vv7q-7jx5-f767FastMCP OpenAPI Provider has an SSRF & Path Traversal Vulnerability | critical | [email protected]direct | fixed in 3.2.0 |
| GHSA-rww4-4w9c-7733FastMCP: Missing Consent Verification in OAuth Proxy Callback Facilitates Confused Deputy Vulnerabilities | high | [email protected]direct | fixed in 3.2.0 |
| GHSA-m8x7-r2rg-vh5gFastMCP has a Command Injection vulnerability - Gemini CLI | moderate | [email protected]direct | fixed in 3.2.0 |
| GHSA-w8v5-vhqr-4h9vDiskCache has unsafe pickle deserialization | moderate | [email protected]indirect | no fix yet |
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp streamable-http | none | no (10 failures) | 78% | 187 ms | 2025-11-25 | 2026-09-28 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
patch-tuesday-mcp | pypi | 0.9.1 | – |
msrc_searchread-only | Search Microsoft security updates (Patch Tuesday) from the official MSRC API. Combines keyword search, CVE/KB lookup, and product/severity/exploitation filtering into a single flexible tool. All filter parameters are optional and can be combined. When no filters are provided, returns the most urgent vulnerabilities from the most recent *released* Patch Tuesday (CISA-KEV- listed or exploited first, then by EPSS exploitation probability, severity, and CVSS score). The upcoming month's document exists before its Patch Tuesday but only holds early Chromium/third-party and out-of-band entries; it is skipped by default and served only when requested via month=. Results are enriched with EPSS scores (FIRST.org daily exploit prediction, 0-1) and CISA KEV (Known Exploited Vulnerabilities) catalog data when available. Use this tool to: - Get the latest Patch Tuesday overview (include_stats=True, limit=0) - Browse the most urgent fixes this month (no filters) - Look up a specific CVE with full detail (cve="CVE-2026-41108") -- works across all months, returns KBs, affected products, CVSS, description, FAQs, EPSS score, and KEV status - Find which CVEs a KB article fixes (kb="5094123" or kb="KB5094123") -- scans recent months, or a specific month when combined with month= - Look up many KBs in one call (kb=["5094123", "KB5094127", ...], up to 30) -- e.g. a machine's installed-update list; returns one grouped per-KB result entry each, with per-KB found/not-found status - Check whether a KB has been superseded by newer patches (kb="5087538", include_chain=True) -- walks Microsoft-stated supersedence links - See what Microsoft has confirmed an update breaks (kb=..., include_known_issues=True) -- known issues from the KB's public support page: symptoms, workarounds, and the resolving update when stated - See what an update changes (kb=..., include_update_summary=True) -- the KB support page's summary and improvements highlights, beyond the security fixes already listed in the MSRC data - Find KEV-listed CVEs this month (kev=True) -- confirmed exploited, with federal remediation due dates - High exploitation probability (min_epss=0.5) -- EPSS >= 50% - Search by keyword (query="Exchange" or query="DNS spoofing") - Filter to a product (product="Windows Server 2022") -- partial match - Filter to a product watchlist (product_profile="identity-core", or products=["Exchange Server", "Windows Server"] / product_families=["Windows", "Azure"]) -- keeps vulns matching any listed product or family; matching is local and profiles never leave the host - Filter by severity (severity="Critical") -- Critical/Important/Moderate/Low - Find actively exploited vulnerabilities (exploited=True) - Find publicly disclosed zero-days (publicly_disclosed=True) - Filter by CVSS score (min_cvss=8.0) - Look at a past month (month="2026-Apr" or month="2026-04") - Combine filters (product="Exchange" + severity="Critical" + month="2026-05") - Search a historical range (query="HTTP.sys" + months_back=6, or start_month="2026-Jan" + end_month="2026-Jun") -- aggregates matching CVEs across released months with per-month trend counts - Paginate with offset (offset=10, limit=10 for page 2) Args: query: Optional keyword; case-insensitive match across CVE ID, title, description, component tag, and affected product names. cve: Optional CVE ID (e.g. "CVE-2026-41108"). Fast path: ignores other filters and returns full detail for that single CVE, searching across all months automatically. kb: Optional KB article number (e.g. "5094123" or "KB5094123") or a list of up to 30 of them for a batched lookup. Fast path: returns the CVEs fixed by that KB, scanning the most recent months (up to 6), or only the given month when month= is also set. A list input returns a grouped response instead: a results array with one entry per KB ("kb", "found", and on success the same body as a single-KB lookup; on a miss "error"/"error_kind"), deduplicated, order preserved. limit/offset apply per KB; other filters are ignored. Accepts numeric KB ids only (any malformed list entry fails the whole call); kb_articles in results may also contain non-KB vendor-fix labels such as "Release Notes", which cannot be looked up here. month: Optional monthly release to search, formatted "2026-Apr" or "2026-04". Defaults to the most recent release whose Patch Tuesday (second Tuesday of the month) has already occurred; pass the upcoming month explicitly to see its pre-release entries. Combined with kb=, restricts the KB lookup to that month. product: Optional product name filter (case-insensitive partial match against affected product names, e.g. "Windows Server 2022"). product_profile: Optional named watchlist (e.g. "identity-core") that expands locally into product/family matchers. Built-in profiles can be overridden/extended via a JSON file at MSRC_PROFILES_PATH. An unknown name returns an invalid_input error listing the available profiles. Profile contents are matched locally and never sent to MSRC, FIRST.org, CISA, or telemetry. products: Optional list of product-name partial matchers. A vulnerability is kept if any entry matches one of its affected products. product_families: Optional list of product-family partial matchers. A vulnerability is kept if any entry matches one of its product families. Combined with products/product_profile as a union (match any listed product OR family). severity: Optional maximum-severity filter. Valid values: Critical, Important, Moderate, Low. exploited: Optional filter for vulnerabilities known to be exploited in the wild (True) or not (False), per Microsoft's assessment. publicly_disclosed: Optional filter for publicly disclosed vulnerabilities. kev: Optional filter for CVEs on (True) or off (False) the CISA Known Exploited Vulnerabilities catalog. ransomware: Optional filter for CVEs whose CISA KEV entry reports known ransomware campaign use (True) or not / not on KEV (False). exploitation_likely: Optional filter on Microsoft's latest-release exploitation assessment: True matches "Exploitation More Likely" or "Exploitation Detected"; False matches everything else (including unassessed entries). Matching results include an exploitation_assessment field. cwe: Optional weakness filter; case-insensitive substring match against CWE entries (e.g. "CWE-416" or "use after free"). Matching results include their cwe list. min_epss: Optional minimum EPSS score (0-1), the probability of exploitation in the next 30 days (e.g. 0.5 for >= 50%). min_cvss: Optional minimum CVSS base score (0-10). attack_vector: Optional CVSS attack-vector filter, one of N (network), A (adjacent), L (local), P (physical). Matches the parsed CVSS v3.x vector; entries without a parseable vector are excluded. privileges_required: Optional CVSS privileges-required filter, one of N (none), L (low), H (high). user_interaction: Optional CVSS user-interaction filter, one of N (none), R (required). scope: Optional CVSS scope filter, one of U (unchanged), C (changed). include_chain: When True together with kb=, adds a supersedence_chain showing which KBs this KB replaces (newest to oldest), walked from Microsoft-stated supersedence links. Ignored without kb=. include_guidance: When True together with cve=, adds a guidance list to the CVE detail output with any Microsoft-provided mitigations, workarounds, and will-not-fix advisories (type/description/url). Omitted by default to keep responses lean. Ignored without cve=. include_references: When True, adds deterministic reference links (MSRC, NVD, EPSS, and KEV when listed) to each result row in month/KB/trend lists. CVE detail lookups always include them. include_kb_details: When True, kb_articles entries become full objects (per-KB url, fixed_build, supersedence, sub_type, and restart_required) instead of bare KB numbers; on cve= lookups it additionally adds restart_required to each KB entry. include_kev_details: When True, KEV-listed rows carry the full KEV entry (due_date, ransomware_use, required_action, vendor_project, product, vulnerability_name) instead of a boolean flag; on cve= lookups it extends the kev block with the extra catalog fields. include_known_issues: When True together with kb=, adds a known_issues block per KB with the issues Microsoft has publicly confirmed for that update (title, symptoms, workaround, and the resolving KB when stated), scraped best-effort from the KB's support page on support.microsoft.com. This reports what Microsoft has confirmed breaks -- it does not predict behavior in a specific environment. The block's status field is honest about coverage: "published" (issues listed), "none_published" (Microsoft publishes no known-issues data for this KB -- the norm for most non-Windows products; Windows cumulative/preview updates are the main source), or "unavailable" (the page could not be fetched or parsed; NOT the same as no issues). Attached even when the KB is not found in MSRC security releases (e.g. preview-only updates). Ignored without kb=. include_update_summary: When True together with kb=, adds an update_summary block per KB describing what the update changes, scraped best-effort from the same support.microsoft.com KB page: the page's Summary/Highlights text plus its Improvements bullet list (size-capped; truncated=True marks a capped block). The status field is honest like known_issues: "published" (a summary exists), "none_published" (Microsoft publishes no summary section for this KB), or "unavailable" (the page could not be fetched or parsed; NOT the same as no summary). Attached even when the KB is not found in MSRC security releases; combines freely with include_known_issues -- both blocks are served by a single fetch of the same page. Ignored without kb=. include_temporal: When True, cvss blocks gain the CVSS temporal score Microsoft publishes (exploit-code maturity adjusted). Applies to cve= detail and to list rows that carry a cvss block. list_months: When True, ignore other filters and return the catalog of available monthly releases (id, title, initial/current release dates, newest first) — useful for discovering valid month= values and spotting same-month revisions. format: Output format for a monthly/filtered search: "json" (default, most complete), "markdown", or "csv". "markdown" adds a prioritized triage briefing (executive summary + table) under a markdown key; "csv" adds a spreadsheet-ready table under a csv key plus a columns list. The JSON vulnerabilities list is always included. Ignored for cve=/kb= fast-path lookups. report: Optional report profile for format="markdown"/"csv". Currently only "triage" (the default rendering) is supported; reserved for future report shapes. force_refresh: When True, bypass the in-process caches for this request and re-fetch the MSRC document and EPSS/KEV enrichment from source. Use to pick up a same-day MSRC revision or fresh EPSS/KEV data. Only the data needed for this request is refreshed; unrelated cached months are left intact. include_freshness: When True (or when force_refresh is used), add a freshness block to the response reporting the cache age and TTL of the MSRC document and the EPSS/KEV enrichment data. months_back: Optional historical-trend control; search the N most recent released months (N >= 1) instead of a single month, aggregating matches with per-month counts. Mutually exclusive with start_month/end_month. Capped at 12 months per request. start_month: Optional start of a historical-trend range (e.g. "2026-Jan" or "2026-01"), inclusive. When end_month is omitted the range runs through the latest released month. Capped at 12 months. end_month: Optional end of a historical-trend range (inclusive); requires start_month (or months_back). Pre-release months are excluded. limit: Maximum number of results to return (default: 10, max: 100). Set to 0 with include_stats=True for a stats-only month overview. offset: Number of results to skip for pagination (default: 0). include_stats: When True, includes aggregate counts (by severity, impact, product family, exploited, KEV, publicly disclosed) for the filtered result set. Returns: Dictionary with: - month: Release ID (e.g. "2026-Jun") and title/release date - total_found: Number of vulnerabilities matching the filters - vulnerabilities: List of compact vulnerability summaries (up to limit) with epss_score and kev flag when available; full detail (epss_percentile, KEV due dates) returned for cve= lookups - filters_applied: Summary of which filters were used - stats: (only when include_stats=True) aggregate counts - supersedence_chain / chain_complete: (only for kb= lookups with include_chain=True) the walked chain, newest to oldest - known_issues: (only for kb= lookups with include_known_issues=True) per-KB block with status ("published" / "none_published" / "unavailable"), an issues list (title, symptoms, workaround, resolution, resolved_by) when published, a note otherwise, and the source_url of the Microsoft support page - update_summary: (only for kb= lookups with include_update_summary=True) per-KB block with status ("published" / "none_published" / "unavailable"), the page title, a summary string and an improvements list of what the update changes when published (truncated=True when size caps trimmed content), a note otherwise, and the source_url of the Microsoft support page - total_kbs / results: (only when kb= is a list) grouped batch output; results holds one entry per KB with kb, found, and either the single-KB response body or a per-KB error/error_kind, while the top-level total_found sums across all KBs - guidance: (only for cve= lookups with include_guidance=True) list of mitigation/workaround/will-not-fix advisories, when Microsoft provides them - format / markdown / csv / columns: (only when format="markdown" or "csv") the chosen format plus the rendered triage view; csv also carries the stable column-name list - freshness: (only with include_freshness=True or force_refresh=True) cache age/TTL for the MSRC document and EPSS/KEV enrichment - range / months_searched / trend: (only for historical-trend searches via months_back or start_month/end_month) the resolved month range, the number of months searched, and per-month aggregate counts (total, by_severity, exploited, publicly_disclosed, kev) - available_months: (only with list_months=True) the release catalog, newest first - error / error_kind: (only on failure) a message plus a category (invalid_input, not_found, upstream, internal) - note: (when relevant) explains month selection, e.g. that a newer pre-Patch-Tuesday document was skipped, or (with release_status="pre-patch-tuesday") that the requested month has not had its Patch Tuesday yet |
Schemas: list_tools.
{
"name": "io.github.jonnybottles/patch-tuesday",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://patch-tuesday-mcp.agreeabledesert-d0b8e491.eastus2.azurecontainerapps.io/mcp",
"type": "streamable-http"
}
],
"version": "0.9.1",
"packages": [
{
"version": "0.9.1",
"transport": {
"type": "stdio"
},
"identifier": "patch-tuesday-mcp",
"registryType": "pypi"
}
],
"repository": {
"url": "https://github.com/jonnybottles/patch-tuesday-mcp",
"source": "github"
},
"description": "Query Microsoft Patch Tuesday security updates (MSRC) with EPSS and CISA KEV enrichment"
}