README
🚀 GDPR Shift-Left MCP Server
这是一个模型上下文协议(MCP)服务器,它能将GDPR合规知识直接集成到你的IDE中,使开发者和合规团队能够“左移”——在开发生命周期的早期识别并解决数据保护要求。
⚠️ 重要提示
本工具仅提供信息指导,不构成法律建议。组织应咨询合格的法律顾问以做出具有约束力的GDPR合规决策。
🚀 快速开始
前提条件
- Python 3.10+
- 安装了GitHub Copilot的VS Code
安装
从MCP注册表安装(推荐)
该服务器已发布到 MCP注册表。你可以直接在VS Code中安装:
- 打开扩展视图 (
Ctrl+Shift+X) - 在搜索字段中输入
@mcp GDPR - 点击 “GDPR Shift-Left Compliance” 旁边的 安装
💡 使用建议
VS Code MCP库默认显示经过筛选的服务器子集。如果该服务器未显示,请将以下内容添加到你的VS Code 用户设置 (
Ctrl+,→ 打开设置JSON):"chat.mcp.gallery.serviceUrl": "https://registry.modelcontextprotocol.io"这样VS Code将指向完整的MCP注册表(5000多个服务器),而不是GitHub的筛选列表。
通过uvx安装(无需克隆)
uvx gdpr-shift-left-mcp
从源代码安装
# 克隆仓库
git clone https://github.com/KevinRabun/GDPRShiftLeftMCP.git
cd GDPRShiftLeftMCP
# 以开发模式安装
pip install -e ".[dev]"
VS Code集成
该仓库包含 .vscode/mcp.json 文件,用于自动注册MCP服务器。安装完成后,GDPR工具将出现在GitHub Copilot的工具列表中。
若要手动配置,请将以下内容添加到你的VS Code设置中:
{
"mcp": {
"servers": {
"gdpr-shift-left-mcp": {
"type": "stdio",
"command": "python",
"args": ["-m", "gdpr_shift_left_mcp"]
}
}
}
}
运行服务器
# 直接运行
python -m gdpr_shift_left_mcp
# 或者通过已安装的入口点运行
gdpr-shift-left-mcp
✨ 主要特性
🔍 GDPR知识库(34个工具)
- 条款查询 — 按编号检索任何GDPR条款,可搜索全部99项条款和173项说明
- 定义查询 — 第4条术语定义及上下文解释
- 章节导航 — 通过完整目录按章节浏览条款
- Azure映射 — 将GDPR条款映射到Azure服务和控制措施
📋 合规工作流
- 数据保护影响评估(DPIA) — 评估是否需要进行DPIA(EDPB 9项标准测试),生成第35条模板
- 处理活动记录(ROPA)生成器 — 生成并验证第30条处理活动记录
- 数据主体权利(DSR)指南 — 针对所有7项数据主体权利(第12 - 23条)的分步工作流
- 保留期分析 — 根据第5(1)(e)条存储限制评估数据保留策略
- 控制器/处理者角色分类 — 评估数据角色,获取相关义务,分析代码模式,生成数据处理协议(DPA)清单
🏗️ 基础设施与代码审查
- Bicep/Terraform/ARM分析器 — 扫描基础设施即代码(IaC)中的GDPR违规行为(加密、访问、网络、数据驻留、日志记录、保留)
- 应用程序代码分析器 — 检测个人身份信息(PII)日志记录、硬编码密钥、缺失的同意检查、数据最小化问题
- GDPR配置验证器 — 在严格或建议模式下进行通过/失败验证
- DSR功能分析器 — 检测所有7项数据主体权利(第15 - 22条)的实现情况
- 跨境数据传输分析器 — 识别可能将数据传输到欧洲经济区(EEA)以外的第三方API/SDK,并提供风险说明,解释每个提供商被分配风险级别的原因(基于总部位置、充分性决定和数据敏感性)
- 数据泄露准备分析器 — 评估数据泄露检测、日志记录和通知能力
- 数据流分析器 — 绘制个人数据生命周期(收集、存储、传输、删除)
- 抽象语法树(AST)代码分析器 — 使用抽象语法树对Python、JavaScript、TypeScript、Java、C#和Go进行深度分析,包括:
- 检测函数参数和变量中的PII
- 通过导入分析检测跨境数据传输(150多个提供商及风险说明)
- 检测PII日志记录违规行为
- 验证DSR实现模式
- 跟踪数据流并进行调用图分析
📝 引导式提示(8个专家提示)
- 差距分析、DPIA评估、合规路线图、数据映射
- 事件响应、Azure隐私审查、供应商评估、跨境数据传输
📐 Azure Bicep模板(19个模板)
- 存储账户 — 客户管理密钥(CMK)加密、专用终结点、生命周期策略(第5、25、32、44 - 49条)
- 密钥保管库 — 基于硬件安全模块(HSM)的高级版、清除保护、基于角色的访问控制(RBAC)(第25、32条)
- Azure SQL — 仅使用Azure AD身份验证、透明数据加密(TDE)、审计(第25、32条)
- 日志分析 — 365天保留期、保存用于跟踪数据泄露/访问/擦除的GDPR查询(第5(2)、30、33条)
- Cosmos DB — 仅限欧盟区域、强一致性、连续备份、启用TTL的ROPA容器(第25、32、44 - 49条)
- 应用服务 — 托管标识、TLS 1.2、虚拟网络(VNet)集成、暂存槽、完整审计日志记录(第25、32条)
- 虚拟网络 — 3个子网、具有最小权限规则的网络安全组(NSG)、服务终结点(第25、32、5(1)(f)条)
- 容器应用 — 内部入口、相互TLS、区域冗余、托管标识(第25、32条)
- 监控警报 — 数据保护官(DPO)操作组、4个用于登录/数据泄露/升级/密钥保管库的计划警报(第33、34、32条)
- PostgreSQL灵活服务器 — 区域冗余高可用性(HA)、Azure AD身份验证、pgaudit、异地冗余备份(第25、32、5(1)(e)条)
- 服务总线高级版 — CMK加密、用于DSR/同意/数据泄露/保留的GDPR队列(第25、32、5(1)(f)条)
- Azure Kubernetes服务(AKS) — 专用集群、Azure容器网络接口(CNI)、容器防御、工作负载标识、网络策略(第25、32、5(1)(f)条)
- 机密账本 — 基于可信执行环境(TEE)的防篡改审计跟踪,用于GDPR问责记录(第5(2)、30、33条)
- 机密虚拟机 — AMD SEV - SNP加密内存、虚拟可信平台模块(vTPM)、安全启动、临时操作系统磁盘(第25、32、5(1)(f)条)
- Azure AD配置 — 审计日志路由、登录监控、条件访问清单(第32、5(2)条)
- Azure策略 — 欧盟区域限制、CMK强制执行、标签要求、仅使用HTTPS(第25、32、44条)
- 云防御 — 所有防御计划、安全联系人、自动预配、GDPR合规仪表板(第32、33条)
- API管理 — 内部VNet、TLS 1.2+、速率限制、数据掩码策略、审计日志记录(第25、32、30条)
- 带Web应用程序防火墙(WAF)的前端网关 — OWASP规则、欧盟/EEA地理过滤、机器人防护、速率限制(第25、32、44条)
📚 详细文档
| 工具 | 描述 | GDPR条款 |
|------|-------------|---------------|
| get_article | 按编号检索GDPR条款 | 全部 |
| list_chapter_articles | 列出某一章节的所有条款 | 全部 |
| search_gdpr | 对GDPR进行全文搜索 | 全部 |
| get_recital | 按编号检索说明 | 全部 |
| get_azure_mapping | 获取与GDPR条款对应的Azure服务 | 全部 |
| get_definition | 获取第4条术语定义 | 第4条 |
| list_definitions | 列出所有定义 | 第4条 |
| search_definitions | 搜索定义 | 第4条 |
| assess_dpia_need | 检查是否需要进行DPIA | 第35条 |
| generate_dpia_template | 生成DPIA文档 | 第35条 |
| get_dpia_guidance | 获取DPIA领域指南 | 第35 - 36条 |
| generate_ropa_template | 生成第30条ROPA模板 | 第30条 |
| validate_ropa | 验证ROPA的完整性 | 第30条 |
| get_ropa_requirements | 获取ROPA字段要求 | 第30条 |
| get_dsr_guidance | 获取DSR处理指南 | 第12 - 23条 |
| generate_dsr_workflow | 生成DSR履行工作流 | 第12 - 23条 |
| get_dsr_timeline | 获取DSR响应时间线 | 第12(3)条 |
| analyze_infrastructure_code | 扫描IaC中的GDPR问题 | 第25、32、44条 |
| analyze_application_code | 扫描应用程序代码中的GDPR问题 | 第5、25、32条 |
| validate_gdpr_config | 进行GDPR通过/失败验证 | 全部 |
| assess_retention_policy | 评估数据保留策略 | 第5(1)(e)条 |
| get_retention_guidance | 获取特定类别的数据保留指南 | 第5(1)(e)条 |
| check_deletion_requirements | 检查数据删除能力清单 | 第17条 |
| assess_controller_processor_role | 评估数据控制器/处理者角色 | 第4、24、26、28条 |
| get_role_obligations | 获取特定角色的GDPR义务 | 第24、26、28条 |
| analyze_code_for_role_indicators | 检测控制器/处理者代码模式 | 第4、24、28条 |
| generate_dpa_checklist | 生成第28条DPA协议清单 | 第28条 |
| get_role_scenarios | 获取常见的角色分类场景 | 第4、24、26、28条 |
| analyze_dsr_capabilities | 检测DSR实现情况(访问、擦除、可移植性等) | 第15 - 22条 |
| analyze_cross_border_transfers | 检测第三方API/SDK并提供风险说明 | 第44 - 49条 |
| analyze_breach_readiness | 评估数据泄露检测、日志记录和通知能力 | 第33 - 34条 |
| analyze_data_flow | 绘制个人数据生命周期(收集、存储、传输、删除) | 第30条 |
| analyze_code_ast | 对Python/JS/TS/Java/C#/Go进行深度AST分析(PII、跨境、DSR) | 第5、25、32、44条 |
| get_ast_capabilities | 获取AST分析器支持的语言和功能 | 全部 |
🔧 技术细节
src/gdpr_shift_left_mcp/
├── __init__.py # 包初始化
├── __main__.py # 入口点
├── server.py # FastMCP服务器 + 提示注册
├── disclaimer.py # 法律免责声明工具
├── data_loader.py # 在线GDPR数据获取 + 缓存
├── tools/
│ ├── __init__.py # 工具注册(34个工具)
│ ├── articles.py # 条款/说明/搜索工具
│ ├── definitions.py # 第4条定义工具
│ ├── dpia.py # DPIA评估工具
│ ├── ropa.py # ROPA生成器工具
│ ├── dsr.py # 数据主体权利工具
│ ├── analyzer.py # IaC + 应用程序代码分析器
│ ├── ast_analyzer.py # 基于AST的深度代码分析
│ ├── retention.py # 保留/删除工具
│ └── role_classifier.py # 控制器/处理者角色分类
├── prompts/
│ ├── __init__.py # 提示加载器
│ └── *.txt # 8个专家提示模板
└── templates/
├── __init__.py # 模板加载器
└── *.bicep # 符合GDPR的Azure Bicep模板
📦 安装指南
从MCP注册表安装(推荐)
该服务器已发布到 MCP注册表。你可以直接在VS Code中安装:
- 打开扩展视图 (
Ctrl+Shift+X) - 在搜索字段中输入
@mcp GDPR - 点击 “GDPR Shift-Left Compliance” 旁边的 安装
💡 使用建议
VS Code MCP库默认显示经过筛选的服务器子集。如果该服务器未显示,请将以下内容添加到你的VS Code 用户设置 (
Ctrl+,→ 打开设置JSON):"chat.mcp.gallery.serviceUrl": "https://registry.modelcontextprotocol.io"这样VS Code将指向完整的MCP注册表(5000多个服务器),而不是GitHub的筛选列表。
通过uvx安装(无需克隆)
uvx gdpr-shift-left-mcp
从源代码安装
# 克隆仓库
git clone https://github.com/KevinRabun/GDPRShiftLeftMCP.git
cd GDPRShiftLeftMCP
# 以开发模式安装
pip install -e ".[dev]"
💻 使用示例
运行服务器
# 直接运行
python -m gdpr_shift_left_mcp
# 或者通过已安装的入口点运行
gdpr-shift-left-mcp
测试
# 运行所有测试
pytest
# 运行带覆盖率的测试
pytest --cov=gdpr_shift_left_mcp --cov-report=html
# 运行评估器(端到端评估)
python -m tests.evaluator.run_judges
📄 许可证
本项目采用MIT许可证,详情请参阅 LICENSE。
致谢
- 架构灵感来源于 FedRAMP20xMCP
- GDPR文本来自 EUR-Lex
- EDPB指南来自 edpb.europa.eu
微信扫一扫