内容
### 免责声明:本项目为独立、自行构建的项目,并非官方微软工具或服务。
# 每月补丁星期二 MCP 服务器
[](https://glama.ai/mcp/servers/jonnybottles/patch-tuesday-mcp)
[](https://pypi.org/project/patch-tuesday-mcp/)
[](https://registry.modelcontextprotocol.io/v0/servers?search=patch-tuesday)
[](LICENSE)
mcp-name: io.github.jonnybottles/patch-tuesday
询问您的 AI 助手关于微软安全更新的信息。此 Python 基础的 MCP(模型上下文协议)服务器连接 AI 助手(如 Claude、Copilot 和 ChatGPT)到 [MSRC 安全更新指南](https://msrc.microsoft.com/update-guide) — 每個 CVE 微软补丁的权威来源 — 使自然语言查询 Patch Tuesday 发布:CVEs、KB 文章、严重性评级、CVSS 分数、受影响的产品和野外利用状态。
## 它做什么
Patch Tuesday MCP 服务器桥接微软官方 CVRF 安全更新 API 和您的 AI 助手,允许您:
- **获取每月汇总** - “这个月的 Patch Tuesday 修复了什么?”
- **查找正在积极利用的漏洞** - “哪些漏洞正在被野外利用?”
- **查找任何 CVE** - “告诉我关于 CVE-2026-41108”(KB、受影响的产品、CVSS 描述)
- **映射 KB 到 CVE** - “KB5094123 修复哪些漏洞?”
- **按产品过滤** - “本月哪些关键 CVE 影响 Windows Server 2022?”
- **跟踪零日漏洞** - “四月份是否有公开披露的漏洞被修复?”
- **查看已确认利用的漏洞** - “本月的哪些 CVE 在 CISA KEV 列表中?” — 带有联邦补救截止日期
- **按利用概率排名** - “显示 EPSS 大于 50% 的 CVE” — 每日 FIRST.org 利用预测分数
- **查找零点击、互联网可达的关键漏洞** - “哪些关键 CVE 是网络可达且无需权限和用户交互?” — 过滤解析的 CVSS 攻击向量、权限和用户交互字段
- **直接跳转到权威来源** - 每个 CVE 详细信息都带有可打开的 MSRC、NVD、EPSS 和(当列出时)CISA KEV 参考链接
- **避免过时补丁** - “KB5087538 是否被更新的补丁取代?” — 跟踪微软的取代链接
- **获取缓解措施,当没有补丁时** - “CVE-2026-47291 有缓解措施或变通方法吗?” — 显示微软的缓解措施、变通方法和不会修复的指导
- **发现趋势随时间的变化** - “过去 6 个月内有多少个 HTTP.sys CVE 发布?”(`months_back=6` 或 `start_month`/`end_month`)— 跨发布月份汇总匹配项,并附有每月的计数
- **按微软自己的利用预测进行过滤** - “本月哪些 CVE 微软评级为‘利用可能性较大’?”(`exploitation_likely=True`)
- **发现被勒索软件利用的 CVE** - “本月哪些 CVE 被用于已知的勒索软件活动?”(`ransomware=True`;添加 `include_kev_details=True` 以获取完整的 CISA 条目,包含所需操作)
- **计划部署,而不仅仅是优先级** - “KB5094123 是否需要重启,以及哪个版本修复了它?”(`include_kb_details=True` 添加每个 KB 的 URL、修复的版本、取代关系和重启要求)
- **了解微软更新破坏了什么** - “KB5094126 有任何已知问题吗?”(`include_known_issues=True` 添加每个 KB 的微软确认的已知问题 — 症状、变通方法和解决更新 — 来自其公共支持页面的最佳努力;主要为 Windows 更新发布,并且当微软发布时,响应会明确说明)
- **按弱点类别切片** - “显示本月的使用后免费 CVE” (`cwe="CWE-416"` 或 `cwe="use after free"`)
- **发现发布目录** - “哪些月度发布可用,何时最后修订?”(`list_months=True`)
- **导出分类简报** - “给我这个月的关键 CVE 作为 Markdown 报告” 或 “…作为 CSV” — 优先级高管摘要和表格,或可导出为电子表格 (`format="markdown"` / `format="csv"`)
- **强制刷新和检查数据新鲜度** - “重新拉取这个月的最新数据”(`force_refresh=True`)绕过进程内缓存;`include_freshness=True` 报告 MSRC 文档和 EPSS/KEV 增强的缓存年龄/ TTL
- **优先级补丁** - 结果按紧急程度排序:KEV/利用、EPSS、严重性、CVSS
适用于每个月都需要对微软安全更新进行分类的安全分析师、系统管理员和 IT 专业人员 — 无需点击安全更新指南门户。
数据来自官方、公开的 [MSRC CVRF v3 API](https://github.com/microsoft/MSRC-Microsoft-Security-Updates-API)。无需身份验证或 API 密钥。
## 为什么使用此服务器?
**这是唯一一个模拟 Patch Tuesday 发布本身的 MCP 服务器。** 许多 MCP 服务器可以查找 CVE — 通用漏洞聚合器将已知 CVE ID 风扇扩展到 NVD、OSV 和威胁情报馈送。他们回答“告诉我关于 CVE-X”。但他们没有每月微软发布的概念、KB 文章或产品家族的概念 — 因此他们在结构上无法回答微软商店在每个月的第二个星期二实际提出的问题:
| 您实际遇到的问题 | 通用 CVE 查找服务器 | patch-tuesday-mcp |
|---|---|---|
| “总结这个月的 Patch Tuesday” | ❌ 没有发布的概念 | ✅ 一次调用中汇总 + 统计 |
| “哪些关键 CVE 影响本月 Windows Server 2022?” | ❌ 无法按微软产品过滤 | ✅ 产品和产品家族过滤 |
| “KB5094123 修复哪些漏洞?” | ❌ 没有 KB 感知 | ✅ KB ↔ CVE 映射 |
| “什么是当前正在被利用的?” | ⚠️ 每个 CVE 仅限,如果您已经知道 CVE | ✅ 过滤整个月份 |
| “我应该先修补什么?” | ❌ | ✅ 按紧急程度排序:利用/KEV → EPSS → 严重性 → CVSS |
| “哪些关键漏洞是零点击和互联网可达的?” | ⚠️ 每个 CVE 仅限 CVSS | ✅ 按解析的 CVSS 攻击向量/权限/用户交互过滤月份 |
| “告诉我关于 CVE-X” | ✅ (通常具有更多生态系统数据) | ✅ MSRC 详细信息:KB、版本、取代关系、解析的 CVSS、MSRC/NVD/EPSS/KEV 链接 |
在后台,区别在于数据源:此服务器解析完整的 **MSRC CVRF 月度文档** — ProductTree、每个产品的安全威胁、利用评估和 KB 修复链 — 而每个 CVE API 都无法公开这些信息。这就是为什么发布中心问题成为可能。
其他功能:
- **零 API 密钥,零帐户** — MSRC API 是公开的;设置是一个 `uvx` 命令
- **一个工具,而不是三十个** — 一个集成的 `msrc_search` 保持您的 AI 客户端上下文精简和工具选择可靠
- **为月度工作流而构建** — 分类发布,简报您的团队,优先修补,然后继续您的生活
## 立即试用 — 主机端点(无需安装)
一个免费的远程实例可在此处获得:
```
https://patch-tuesday-mcp.happyrock-b60185ec.eastus.azurecontainerapps.io/mcp
```
无需帐户或 API 密钥。端点提供与本地安装相同的数据 — 对于大量使用或保证可用性,请在本地运行(如下)或 [自行托管您自己的](#self-hosting-as-a-remote-mcp-server)。仅记录最小的匿名使用数据 — 请参见 [遥测和隐私](#telemetry--privacy)。
## 要求
### 一般
- **Python 3.11+**
- 与 MCP 兼容的客户端(Claude Desktop、Cursor、Claude Code、GitHub Copilot CLI 等)
### 使用 `uvx`(推荐)
如果您通过 **`uvx`** 安装或运行服务器,则必须先安装 **uv**。
- **uv** (包括 `uvx`):https://github.com/astral-sh/uv
安装 uv:
```bash
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex
```
> `uvx` 允许您在不全局安装包的情况下运行 MCP 服务器。
### 使用 pip(替代方案)
```bash
pip install patch-tuesday-mcp
```
## 安装
### 从 PyPI 安装
```bash
uvx patch-tuesday-mcp
```
或使用 pip 安装:
```bash
pip install patch-tuesday-mcp
```
### 升级到最新版本
```bash
uvx patch-tuesday-mcp@latest
```
或使用 pip:
```bash
pip install --upgrade patch-tuesday-mcp
```
## 快速设置
[](https://vscode.dev/redirect/mcp/install?name=patch-tuesday-mcp&config=%7B%22type%22%3A%20%22stdio%22%2C%20%22command%22%3A%20%22uvx%22%2C%20%22args%22%3A%20%5B%22patch-tuesday-mcp%22%5D%7D)
[](https://cursor.com/docs/context/mcp)
[](https://code.claude.com/docs/en/mcp)
[](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli)
> **一键设置:** 点击 VS Code 徽章进行自动配置(需要安装 `uv`)
> **手动设置:** 参见以下适用于 VS Code、Cursor、Claude Code、Copilot CLI 或 Claude Desktop 的说明
## 功能
- **msrc_search** – 按关键词、CVE、KB 编号、月份、产品、严重性、CVSS 分数、野外利用状态或公开披露搜索和过滤微软安全更新。 当未指定月份时,结果默认为已发生的最近发布的 Patch Tuesday — 默认跳过即将发布的月份的预发布文档(仅早期 Chromium/带外条目)。 结果通过 **EPSS 分数** (FIRST.org 30 天利用概率,`min_epss=0.5` 过滤器)和 **CISA KEV** 目录状态带有联邦补救截止日期(`kev=True` 过滤器)进行丰富 — 两个公开的无密钥源。 按 **解析的 CVSS v3.x 暴露字段** 过滤 — `attack_vector` (N/A/L/P)、`privileges_required` (N/L/H)、`user_interaction` (N/R)和 `scope` (U/C)— 以隔离例如网络可达的零点击临界值;匹配结果显示一个结构化的 `cvss` 对象,从原始向量字符串中分解出来。 每个 CVE 详细信息还包括一个 **引用** 块,包含可打开的链接(MSRC 更新指南、NVD、EPSS API 和 CISA KEV 目录,当 CVE 被列出时)。 添加 `include_chain=True` 到 KB 查找以遍历微软声明的 **取代链** (哪些 KB 被替换,新版本 → 旧版本)。 传递一个 **KB 编号列表** (`kb=["5094123", "KB5094127", ...]`,最多 30 个)以解析它们,并在一次调用中获取所有内容 — 例如,机器的已安装更新列表作为补丁报告的上下文 — 并获取一个分组响应,每个 KB 条目(找到或未找到,每个响应与单个 KB 查找相同);每个月度文档仍会向上游最多一次获取整个批次。 添加 `include_known_issues=True` 到任何 KB 查找(单个或批处理)以获取每个更新的 **微软确认的已知问题** — 问题标题、症状、变通方法和解决的 KB(如果微软指定)— 从 KB 的公共支持页面以最佳努力抓取;它报告微软确认的内容破坏了什么,而不是对您的环境进行预测。 添加 `include_guidance=True` 到 CVE 查找以获取微软提供的 **缓解措施、工作区和不会修复的建议** 以及供应商修复的 KB。 传递 `format="markdown"` 或 `format="csv"` 到月度/过滤搜索以获取 **分类简报** — 优先级高管摘要和表格(Markdown)或可导出为电子表格的导出(CSV)— 从相同的紧急程度排名中呈现;JSON `vulnerabilities` 列表始终包含。 使用 `force_refresh=True` 绕过进程内缓存并重新获取请求的 MSRC 文档和 EPSS/KEV 增强功能,并使用 `include_freshness=True` 添加一个 **新鲜度** 块,报告 MSRC 文档和增强功能数据的缓存年龄和 TTL。 搜索 **历史范围** 而不是单个月份,使用 `months_back=N`(N 个最近发布的月份)或 `start_month`/`end_month` — 响应会聚合匹配的 CVE 跨范围,并添加每个月的 **趋势** 计数;范围最多可达 12 个月,并重用现有的缓存/并发控制。 设置 `include_stats=True` 获取聚合计数(按严重性、影响、产品家族、利用、KEV)。 使用 `limit=0` 和 `include_stats=True` 获取仅限统计的月度概览。 按 **微软的利用可能性评估** 使用 `exploitation_likely=True` 进行筛选(“利用可能性较大”/“已检测到利用”;匹配项带有 `exploitation_assessment` 字段)和 **已知勒索软件活动** 使用 `ransomware=True` (来自 CISA KEV 目录)。 选择更丰富的行时需要它们:`include_references=True` 将 MSRC/NVD/EPSS/KEV 链接块添加到月度/KB/趋势列表结果,`include_kev_details=True` 替换布尔 KEV 标志为完整的目录条目(截止日期、所需操作、供应商/产品、勒索软件使用),`include_kb_details=True` 将 KB 编号扩展为完整的对象,包含每个 KB 的 URL、修复的版本、取代关系、子类型和 **重启要求** 状态,并且 `include_temporal=True` 将微软的 **CVSS 时间评分** 添加到 cvss 块。 按 **弱点类别** 使用 `cwe=`(ID 或名称子字符串,例如 `cwe="CWE-416"`)。 使用 `list_months=True` 获取 **发布目录**(每个可用月份的初始/当前发布日期 — 适用于有效的 `month=` 值和发现相同月份的修订)。 所有新字段都是可选的:默认 JSON 形状保持不变。
## 产品配置文件(监视列表)
将任何搜索范围限定在您实际运行的产品上。 传递 `product_profile="identity-core"`(内置配置文件:`identity-core` 、 `endpoint` 、 `server-infrastructure`)或提供临时 `products=["Exchange Server", "Windows Server"]` / `product_families=["Windows", "Azure"]`。 如果漏洞与 **任何** 列出的产品或系列匹配,则保留。 所有匹配都是本地的 — 配置文件内容永远不会传输到 MSRC、FIRST.org、CISA 或遥测。
通过将 `MSRC_PROFILES_PATH` 指向 JSON 文件来覆盖或扩展内置配置文件:
```json
{
"my-estate": {
"families": ["Windows", "Azure"],
"products": ["Exchange Server", "Microsoft Entra"]
}
}
```
每个条目可以设置 `products` 和/或 `families`(不区分大小写的部分匹配)。 具有与内置配置文件相同名称的条目会替换它。 未知 `product_profile` 或缺少/无效的 `MSRC_PROFILES_PATH` 返回一个明确的 `invalid_input` 错误,而不是回落到广泛、无范围的结果。
### 配套分类技能
一个可移植的 [代理技能](skills/README.md) — `patch-tuesday-triage` — 教导 AI 代理如何通过月度工作流驱动 `msrc_search`(哪些搜索运行、什么顺序、如何优先)。它是纯 Markdown,可以 **独立于服务器部署**:复制 `skills/patch-tuesday-triage/` 进入代理的技能目录。参见 [`skills/README.md`](skills/README.md)部署详细信息。
## 有导向的分类提示
服务器注册了一个 MCP **提示** 名为 `monthly_triage`。支持提示的 MCP 客户端可以选择它以获取一步一步的分析师工作流构建的 `msrc_search` — 公开披露的零日漏洞、CISA KEV、利用的、网络/无身份验证/无 UI 临界值、身份附加产品、端点/Intune 和简报。 它接受两个可选参数: `product_profile`(将整个工作流范围限定到监视列表)和 `month`(分类特定发布)。 没有引入新工具 — 提示仅编排 `msrc_search` 调用。
可移植的纯文本副本提示位于 [`prompts/`](prompts/README.md)因此工作流可以 **独立于服务器使用**。
## 提示示例
连接到 MCP 客户端后,您可以提出以下问题:
1. **每月概述**: "总结本月的 Patch Tuesday"
2. **被利用的漏洞**: "哪些 Microsoft 漏洞正在被积极利用?"
3. **CVE 查询**: "什么是 CVE-2026-41108,它由哪个 KB 修复?"
4. **KB 查询**: "KB5094123 修复了什么?"
5. **机器补丁报告**: "以下是此服务器上安装的 KB:KB5094123、KB5094127、KB5093998 — 它们修复了什么,是否有任何更新?"
6. **产品过滤**: "显示本月影响 Exchange Server 的关键漏洞"
7. **补丁优先级**: "我应该先从 2026 年 6 月的更新中修复哪些?"
8. **CISA KEV**: "本月的哪些 CVE 在 CISA KEV 列表中?"
9. **EPSS**: "显示 EPSS 高于 50% 的 CVE"
10. **暴露过滤**: "哪些关键 CVE 是网络可达的,无需权限和用户交互?"
11. **参考链接**: "为 CVE-2026-41108 提供 MSRC、NVD 和 EPSS 链接"
12. **缓解措施和临时解决方法**: "CVE-2026-41108 有任何缓解措施或临时解决方法吗?"
13. **分类报告**: "以 Markdown 格式的简报提供本月的关键 CVE"(或“...导出为 CSV”)
14. **按需新鲜数据**: "重新拉取本月的更新,并告诉我数据更新到什么时候"(`force_refresh=True`,`include_freshness=True`)
15. **历史趋势**: "过去 6 个月内有多少个 HTTP.sys RCE CVE 被发布?"(`query="HTTP.sys"`,`months_back=6`)
16. **更新替换**: "KB5087538 是否被更新的版本取代?"
17. **利用预测**: "Microsoft 本月将哪些 CVE 评为 '利用可能性较大'?"
18. **勒索软件**: "本月的哪些 CVE 被用于已知的勒索软件攻击?"
19. **部署规划**: "KB5094123 是否需要重启,以及哪个版本修复了它?"
20. **已知问题在部署前**: "Microsoft 已确认 KB5094126 中存在哪些问题,是否有修复或解决方法?"(`include_known_issues=True`)
21. **弱点类别**: "显示本月的使用后释放漏洞"(`cwe="CWE-416"`)
22. **发布目录**: "哪些 Patch Tuesday 月份可用于查询?"
23. **产品监视列表**: "显示本月在我所有资产中的关键 CVE"(`product_profile="identity-core"`,`severity="Critical"`)
24. **引导分类**: "引导我完成本月对我的身份资产的分类"(选择带有 `product_profile="identity-core"` 的 `monthly_triage` 提示)
## 用法
### 运行 MCP 服务器
```bash
uvx patch-tuesday-mcp
```
或者,如果使用 pip 安装:
```bash
patch-tuesday-mcp
```
### 从 VS Code 连接
**选项 1:单击安装(推荐)**
点击 README 顶部的 **[在此 VS Code 中设置](#快速设置)** 徽章进行自动配置(需要安装 `uv`)。
**选项 2:手动配置**
VS Code 将 MCP 服务器存储在专用的 `mcp.json` 文件中 - 而不是 `settings.json`。打开命令面板(Windows/Linux 上的 `Ctrl+Shift+P`,macOS 上的 `Cmd+Shift+P`),并运行以下命令之一:
- **`MCP: 打开用户配置`** - 编辑用户级别的 `mcp.json`(在每个工作区中可用)
- **`MCP: 打开工作区文件夹配置`** - 编辑项目本地的 `.vscode/mcp.json`
然后添加服务器。注意,VS Code 使用顶级 **`"servers"`** 键(与下面其他客户端使用的 `"mcpServers"` 键不同):
```json
{
"servers": {
"patch-tuesday": {
"type": "stdio",
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
```
### 从 Claude Desktop 连接
将以下内容添加到您的 Claude Desktop MCP 配置:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
**使用 uvx(推荐)**
```json
{
"mcpServers": {
"patch-tuesday": {
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
```
**使用已安装的软件包**
```json
{
"mcpServers": {
"patch-tuesday": {
"command": "patch-tuesday-mcp"
}
}
}
```
### 从 Cursor 连接
**选项 1:单击安装(推荐)**
```
cursor://anysphere.cursor-deeplink/mcp/install?name=patch-tuesday-mcp&config=eyJjb21tYW5kIjogInV2eCIsICJhcmdzIjogWyJwYXRjaC10dWVzZGF5LW1jcCJdfQ==
```
**选项 2:手动配置**
将以下内容添加到您的 Cursor MCP 配置(`~/.cursor/mcp.json`):
```json
{
"mcpServers": {
"patch-tuesday": {
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
```
### 从 Claude Code 连接
```bash
claude mcp add --transport stdio patch-tuesday -- uvx patch-tuesday-mcp
```
### 从 GitHub Copilot CLI 连接
将以下内容添加到 `~/.copilot/mcp-config.json`:
```json
{
"mcpServers": {
"patch-tuesday": {
"type": "stdio",
"command": "uvx",
"args": ["patch-tuesday-mcp"]
}
}
}
```
## 作为远程 MCP 服务器自行托管
服务器还支持 HTTP 传输,用于远程/共享部署:
```bash
MCP_TRANSPORT=http MCP_PORT=8000 patch-tuesday-mcp
# MCP 端点:http://localhost:8000/mcp
```
或者使用 Docker:
```bash
docker build -t patch-tuesday-mcp .
docker run -p 8000:8000 patch-tuesday-mcp
```
HTTP 模式环境变量:
| 变量 | 默认值 | 描述 |
| --- | --- | --- |
| `MCP_TRANSPORT` | `stdio` | 设置为 `http` 以进行远程服务 |
| `MCP_HOST` / `MCP_PORT` | `0.0.0.0` / `8000` | 绑定地址 |
| `MCP_MAX_BODY_BYTES` | `262144` | 最大请求体大小,超过时返回 413(`0` 禁用) |
| `MCP_CORS_ORIGINS` | `*`(所有) | 浏览器来源的逗号分隔允许列表。**为公共部署设置显式列表**(例如 `https://app.example.com`) |
| `MCP_LIMIT_CONCURRENCY` | `40` | 最大并发连接数;uvicorn 超出时响应 503(`0` 禁用) |
| `MCP_TIMEOUT_KEEP_ALIVE` | `15` | 空闲保持活动连接关闭前的秒数 |
| `MCP_LOG_LEVEL` | `WARNING` | 根日志级别(`DEBUG`/`INFO`/`WARNING`/`ERROR`/`CRITICAL`);日志输出到 stderr |
| `MCP_MSRC_MAX_RESPONSE_BYTES` | `67108864`(64 MiB) | 单个 MSRC 上游响应体的上限(读取时流式传输,绝不会超出上限) |
| `MCP_ENRICHMENT_MAX_RESPONSE_BYTES` | `33554432`(32 MiB) | 单个 EPSS/KEV 上游响应体的上限 |
| `MCP_KNOWN_ISSUES_MAX_RESPONSE_BYTES` | `4194304`(4 MiB) | 单个 support.microsoft.com KB 页面正文的上限(已知问题查找) |
| `APPLICATIONINSIGHTS_CONNECTION_STRING` | 未设置 | 加入使用遥测(需要 `pip install patch-tuesday-mcp[telemetry]`) |
HTTP 模式还提供 `GET /health`(活动端点)并无状态运行,
因此它可以扩展到负载均衡器后面的多个副本,而无需会话
亲和力。
### 强化公共 HTTP 部署
HTTP 传输 **未经身份验证** - `msrc_search` 仅读取公共
漏洞数据,但开放的端点仍然可被滥用。在暴露给
互联网之前:
- **将其置于身份验证前门后面。** 终止 TLS 并在反向代理/API 网关(例如 Azure API Management,使用 `oauth2-proxy` 的 OAuth2/OIDC 代理,例如 Cloudflare Access 或 ingress 控制器身份验证)处要求身份验证。此服务器故意不包含内置身份验证,以便您可以将组织的标准访问控制层在其前面。
- **限制 CORS。** 将 `MCP_CORS_ORIGINS` 设置为 MCP 客户端的确切来源,而不是宽松的 `*` 默认值。
- **保持默认值。** 将 `MCP_MAX_BODY_BYTES` 和 `MCP_LIMIT_CONCURRENCY` 保持在其默认值(或收紧它们)- 它们是抵御大型有效负载和连接耗尽的第一道防线。
- **上游读取是有界限且无重定向的。** MSRC/EPSS/KEV 的响应在流式传输时大小上限,且绝不会跟随 HTTP 重定向,
因此不合规的上游无法耗尽容器内存。
本地 `stdio` 使用不受上述影响;对于默认传输,
不会运行此中间件。
容器可以在任何支持 HTTP 的主机上运行 - Azure Container Apps、Cloud Run、Fly.io 或普通 VM。
## 遥测和隐私
- **本地 stdio(默认):永远不会有遥测数据** - 没有代码路径会发送任何内容。
- **托管端点** 记录最小的使用数据到 Azure Application Insights(90 天保留):客户端 IP 的每日加盐哈希(原始 IP 永远不会存储;它们仅在内存中短暂保留以进行滥用保护),请求路径和时间戳,使用了哪些工具参数(仅限参数 *名称* - 永远不会查询文本或 CVE/KB 值;仅保留低基数 `month` 和 `severity` 值),结果计数,延迟和错误类别。没有 cookie,没有帐户,没有请求/响应正文。
- **自托管 HTTP** 除非您将 `APPLICATIONINSIGHTS_CONNECTION_STRING` 设置为自己的资源,否则不会收集任何数据 - 然后将相同的最小数据集流式传输到您的实例。
## 开发
```bash
pip install -e ".[dev]"
pytest # 离线套件(模拟馈送)
pytest --run-live # 还要运行针对真实 MSRC / EPSS / KEV API 的实时烟雾测试
pytest --cov=patch_tuesday_mcp # 覆盖率(CI 强制 >= 90%)
ruff check src/ tests/
```
CI(GitHub Actions)在 Python 3.11/3.12/3.14 上运行离线套件,覆盖率
门控 lint 使用 ruff,构建容器,使用 Trivy 扫描,并生成
SBOM SPDX 每次推送/PR。发布构建证明了 provenance 用于
发布的轮子/sdist。依赖项锁定在 `uv.lock` 中(Docker 构建使用 `uv sync --locked`)。
## 安全
参见 [SECURITY.md](SECURITY.md) 获取支持的版本、范围以及如何
私密报告漏洞。
## 许可证
MIT
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器