loading…
Search for a command to run...
loading…
Brings GDPR compliance knowledge directly into your IDE, enabling developers to identify and address data protection requirements early in the development lifec
Brings GDPR compliance knowledge directly into your IDE, enabling developers to identify and address data protection requirements early in the development lifecycle.
Tests & Judges PyPI version Python versions License: MIT
A Model Context Protocol (MCP) server that brings GDPR compliance knowledge directly into your IDE, enabling developers and compliance teams to "shift left" — identifying and addressing data protection requirements early in the development lifecycle.
⚠️ Disclaimer: This tool provides informational guidance only and does not constitute legal advice. Organisations should consult qualified legal counsel for binding GDPR compliance decisions.
The server is published to the MCP Registry. You can install it directly in VS Code:
Ctrl+Shift+X)@mcp GDPR in the search fieldNote: The VS Code MCP gallery shows a curated subset of servers by default. If the server doesn't appear, add this to your VS Code User Settings (
Ctrl+,→ Open Settings JSON):"chat.mcp.gallery.serviceUrl": "https://registry.modelcontextprotocol.io"This points VS Code at the full MCP Registry (5,000+ servers) instead of GitHub's curated list.
uvx gdpr-shift-left-mcp
# Clone the repository
git clone https://github.com/KevinRabun/GDPRShiftLeftMCP.git
cd GDPRShiftLeftMCP
# Install in development mode
pip install -e ".[dev]"
The repository includes .vscode/mcp.json for automatic MCP server registration. After installation, the GDPR tools appear in GitHub Copilot's tool list.
To configure manually, add to your VS Code settings:
{
"mcp": {
"servers": {
"gdpr-shift-left-mcp": {
"type": "stdio",
"command": "python",
"args": ["-m", "gdpr_shift_left_mcp"]
}
}
}
}
# Run directly
python -m gdpr_shift_left_mcp
# Or via the installed entry point
gdpr-shift-left-mcp
| Tool | Description | GDPR Articles |
|---|---|---|
get_article |
Retrieve a GDPR article by number | All |
list_chapter_articles |
List all articles in a chapter | All |
search_gdpr |
Full-text search across GDPR | All |
get_recital |
Retrieve a recital by number | All |
get_azure_mapping |
Azure services for a GDPR article | All |
get_definition |
Art. 4 term definition | Art. 4 |
list_definitions |
List all definitions | Art. 4 |
search_definitions |
Search definitions | Art. 4 |
assess_dpia_need |
Check if DPIA is required | Art. 35 |
generate_dpia_template |
Generate DPIA document | Art. 35 |
get_dpia_guidance |
DPIA area guidance | Art. 35–36 |
generate_ropa_template |
Art. 30 ROPA template | Art. 30 |
validate_ropa |
Validate ROPA completeness | Art. 30 |
get_ropa_requirements |
ROPA field requirements | Art. 30 |
get_dsr_guidance |
DSR handling guidance | Arts. 12–23 |
generate_dsr_workflow |
DSR fulfilment workflow | Arts. 12–23 |
get_dsr_timeline |
DSR response timelines | Art. 12(3) |
analyze_infrastructure_code |
Scan IaC for GDPR issues | Art. 25, 32, 44 |
analyze_application_code |
Scan app code for GDPR issues | Art. 5, 25, 32 |
validate_gdpr_config |
Pass/fail GDPR validation | All |
assess_retention_policy |
Assess retention policy | Art. 5(1)(e) |
get_retention_guidance |
Category-specific retention | Art. 5(1)(e) |
check_deletion_requirements |
Deletion capability checklist | Art. 17 |
assess_controller_processor_role |
Assess data controller/processor role | Art. 4, 24, 26, 28 |
get_role_obligations |
Role-specific GDPR obligations | Art. 24, 26, 28 |
analyze_code_for_role_indicators |
Detect controller/processor code patterns | Art. 4, 24, 28 |
generate_dpa_checklist |
Art. 28 DPA agreement checklist | Art. 28 |
get_role_scenarios |
Common role classification scenarios | Art. 4, 24, 26, 28 |
analyze_dsr_capabilities |
Detect DSR implementation (access, erase, portability, etc.) | Arts. 15–22 |
analyze_cross_border_transfers |
Detect third-party APIs/SDKs with risk justifications | Arts. 44–49 |
analyze_breach_readiness |
Assess breach detection, logging, and notification capabilities | Arts. 33–34 |
analyze_data_flow |
Map personal data lifecycle (collection, storage, transmission, deletion) | Art. 30 |
analyze_code_ast |
Deep AST analysis for Python/JS/TS/Java/C#/Go (PII, cross-border, DSR) | Art. 5, 25, 32, 44 |
get_ast_capabilities |
Get AST analyzer supported languages and features | All |
src/gdpr_shift_left_mcp/
├── __init__.py # Package init
├── __main__.py # Entry point
├── server.py # FastMCP server + prompt registration
├── disclaimer.py # Legal disclaimer utility
├── data_loader.py # Online GDPR data fetching + caching
├── tools/
│ ├── __init__.py # Tool registration (34 tools)
│ ├── articles.py # Article/recital/search tools
│ ├── definitions.py # Art. 4 definition tools
│ ├── dpia.py # DPIA assessment tools
│ ├── ropa.py # ROPA builder tools
│ ├── dsr.py # Data subject rights tools
│ ├── analyzer.py # IaC + app code analyzer
│ ├── ast_analyzer.py # AST-based deep code analysis
│ ├── retention.py # Retention/deletion tools
│ └── role_classifier.py # Controller/processor role classification
├── prompts/
│ ├── __init__.py # Prompt loader
│ └── *.txt # 8 expert prompt templates
└── templates/
├── __init__.py # Template loader
└── *.bicep # GDPR-aligned Azure Bicep templates
# Run all tests
pytest
# Run with coverage
pytest --cov=gdpr_shift_left_mcp --cov-report=html
# Run judges (end-to-end evaluators)
python -m tests.evaluator.run_judges
The server fetches GDPR data from a configurable online source, with local caching:
GDPR_SOURCE_URL environment variableGDPR_CACHE_TTL)__gdpr_cache__/ (configurable via GDPR_CACHE_DIR)See CONTRIBUTING.md for guidelines. This project follows Git Flow branching:
feature/<name> for new featuresbugfix/<name> for fixesrelease/<version> for releaseshotfix/<name> for production fixesAll PRs must pass automated tests and judges before merging.
MIT — see LICENSE for details.
Выполни в терминале:
claude mcp add io-github-kevinrabun-gdprshiftleftmcp -- npx Безопасность
Низкий рискАвтоматическая эвристика по публичным данным — не гарантия безопасности.