Evidence-Driven Conformity Through Systematic Assessment
Demonstrating CRA Compliance Excellence for Open Source MCP Server
π Document Owner: CEO | π Version: 1.1 | π Last Updated: 2026-03-19 (UTC) π Review Cycle: Quarterly | β° Next Review: 2026-06-19 π·οΈ Classification: Public (Open Source MCP Server) β ISMS Compliance: ISO 27001 (A.14.2), NIST CSF 2.0 (PR.DS, ID.SC), CIS Controls v8.1 (16.1)
Where this document fits in the security documentation portfolio:
| Document | Focus | Link |
|---|---|---|
| SECURITY.md | Vulnerability reporting & security policy | View |
| SECURITY_ARCHITECTURE.md | Current security controls & design | View |
| THREAT_MODEL.md | STRIDE analysis & threat scenarios | View |
| π‘οΈ CRA-ASSESSMENT.md | β You are here β CRA conformity assessment | View |
| SECURITY_HEADERS.md | HTTP security headers implementation | View |
| BCPPlan.md | Business continuity & disaster recovery | View |
| FinancialSecurityPlan.md | Security investment strategy | View |
Hack23 AB's CRA conformity assessment demonstrates how systematic regulatory compliance directly enables business growth rather than creating operational burden. Our comprehensive assessment framework serves as both operational tool and client demonstration of our cybersecurity consulting methodologies.
This assessment documents the European Parliament MCP Server's conformity with the EU Cyber Resilience Act (CRA), providing evidence-based compliance verification for open-source software distribution via npm. The assessment follows the CRA Conformity Assessment Process template.
β James Pether SΓΆrling, CEO/Founder
Supports CRA Annex V Β§ 1 β Product Description Requirements
| Field | Value |
|---|---|
| π¦ Product | European Parliament MCP Server |
| π·οΈ Version Tag | v1.1.13 (reflects current project state) |
| π Repository | https://github.com/Hack23/European-Parliament-MCP-Server |
| π§ Security Contact | security@hack23.org |
| π― Purpose | MCP server providing AI assistants with structured access to European Parliament open datasets (MEPs, plenary sessions, committees, legislative documents, parliamentary questions) via 61 tools, 9 resources, and 7 prompts |
| πͺ Market | Open Source |
Open source, processes only public European Parliament data
Parliamentary data accuracy important for political analysis
Tolerates brief outages; local stdio transport
npm reinstallation restores service
No persistent state; source-of-truth is EP Open Data API
Supports CRA Article 6 β Scope and Article 7 β Product Classification Assessment
Published via npm registry; source on GitHub
π CRA Scope Justification: The European Parliament MCP Server is a non-commercial open-source tool distributed via npm that processes publicly available European Parliament data. It does not handle critical infrastructure, cryptographic functions, or safety-critical operations. As a standard-classification product, self-assessment is the appropriate conformity route.
π Classification Impact:
graph LR
subgraph "π Assessment"
A1[Product Classification] --> A2[Risk Assessment]
A2 --> A3[Requirements Mapping]
end
subgraph "π‘οΈ Implementation"
A3 --> B1[Security Controls]
B1 --> B2[Testing & Validation]
B2 --> B3[Evidence Collection]
end
subgraph "π¦ Maintenance"
B3 --> C1[Vulnerability Monitoring]
C1 --> C2[Security Updates]
C2 --> C3[Continuous Assessment]
C3 --> A2
end
Supports CRA Annex V Β§ 2 β Technical Documentation Requirements
| ποΈ CRA Technical Area | π Implementation Summary | π Evidence Location |
|---|---|---|
| π¨ Product Architecture (Annex V Β§ 2.1) | C4 model with Context, Container, Component views; Mermaid diagrams | ARCHITECTURE.md, ARCHITECTURE_DIAGRAMS.md |
| π¦ SBOM & Components (Annex I Β§ 1.1) | CycloneDX SBOM generation per release; npm dependency tree | docs/SBOM.md, GitHub Release artifacts |
| π Cybersecurity Controls (Annex I Β§ 1.2) | 4-layer security: Zod validation β rate limiting β audit logging β GDPR compliance | SECURITY_ARCHITECTURE.md |
| π‘οΈ Supply Chain Security (Annex I Β§ 1.3) | SLSA Level 3 build provenance, npm provenance, Dependabot | GitHub Attestations |
| π Update Mechanism (Annex I Β§ 1.4) | npm update mechanism with semantic versioning | CHANGELOG.md |
| π Security Monitoring (Annex I Β§ 1.5) | CodeQL analysis, OpenSSF Scorecard, Dependabot alerts | .github/workflows/ |
| π·οΈ Data Protection (Annex I Β§ 2.1) | Public data only, no PII storage, GDPR compliance | SECURITY_ARCHITECTURE.md |
| π User Guidance (Annex I Β§ 2.2) | Comprehensive documentation portal, API guide, deployment guide | README.md, API_USAGE_GUIDE.md, DEPLOYMENT_GUIDE.md |
| π Vulnerability Disclosure (Annex I Β§ 2.3) | Coordinated disclosure via SECURITY.md, GitHub Security Advisories | SECURITY.md |
π ISMS Policy Integration:
Supports CRA Annex V Β§ 3 β Risk Assessment Documentation
Reference: π Risk Assessment Methodology and β οΈ Risk Register
| π¨ CRA Risk Category | π― Asset | π Likelihood | π₯ Impact (C/I/A) | π‘οΈ CRA Control Implementation | βοΈ Residual | π Evidence |
|---|---|---|---|---|---|---|
| Supply Chain Attack (Art. 11) | npm dependencies | M | L/H/M | SBOM + SLSA provenance + Dependabot + npm audit | L | Attestations |
| Input Injection (Art. 11) | MCP tool parameters | M | L/M/L | Zod schema validation on all 61 tools | L | src/tools/ (Zod schemas) |
| Data Integrity (Art. 11) | EP API responses | L | L/H/L | HTTPS transport + response validation + Zod parsing | L | SECURITY_ARCHITECTURE.md |
| Denial of Service (Art. 11) | Rate limiter | M | L/L/H | Token-bucket rate limiting (100 req/min) + LRU cache | L | src/clients/ep/baseClient.ts |
| Component Vulnerability (Art. 11) | npm packages | M | L/M/M | CodeQL + npm audit + Dependabot + weekly scans | L | .github/workflows/ |
| Information Disclosure (Art. 11) | Error messages | L | L/L/L | Sanitized error responses, no stack traces in production | L | Error handling patterns |
βοΈ CRA Risk Statement: LOW β Assessment supports CRA essential cybersecurity requirements evaluation. The product processes only publicly available European Parliament data via a local stdio transport, significantly limiting the attack surface.
β Risk Acceptance: James Pether SΓΆrling (CEO) β 2026-03-19
π Risk Management Framework:
Supports CRA Annex I β Essential Requirements Self-Assessment
| π CRA Annex I Requirement | β Status | π Implementation Evidence |
|---|---|---|
| π‘οΈ Β§ 1.1 β Secure by Design | [x] | TypeScript strict mode, Zod validation for all 61 tools, defense-in-depth architecture β SECURITY_ARCHITECTURE.md |
| π Β§ 1.2 β Secure by Default | [x] | Safe defaults, no credentials required, public data only, stdio transport (no network exposure) β src/config.ts |
| π·οΈ Β§ 2.1 β Personal Data Protection | [x] | Public data only, no PII storage, GDPR compliance, data minimization in API requests β SECURITY_ARCHITECTURE.md |
| π Β§ 2.2 β Vulnerability Disclosure | [x] | Public VDP via SECURITY.md + GitHub Security Advisories + β οΈ Vulnerability Management |
| π¦ Β§ 2.3 β Software Bill of Materials | [x] | CycloneDX SBOM generation per release: docs/SBOM.md + GitHub Release artifacts |
| π Β§ 2.4 β Secure Updates | [x] | npm registry distribution with SLSA Level 3 attestation: GitHub Attestations |
| π Β§ 2.5 β Security Monitoring | [x] | CodeQL (every PR), OpenSSF Scorecard, Dependabot, npm audit in CI/CD β .github/workflows/ |
| π Β§ 2.6 β Security Documentation | [x] | Comprehensive security documentation: SECURITY.md, SECURITY_ARCHITECTURE.md, THREAT_MODEL.md, SECURITY_HEADERS.md |
Extended Annex I Requirements:
| # | Requirement | Implementation | Evidence | Status |
|---|---|---|---|---|
| 1 | Security by design | TypeScript strict mode, Zod validation, defense-in-depth | SECURITY_ARCHITECTURE.md | β |
| 2 | Secure default configuration | Safe defaults, no credentials required, public data only | src/config.ts |
β |
| 3 | Protection against unauthorized access | stdio transport (local only), input validation on all tools | SECURITY_ARCHITECTURE.md | β |
| 4 | Confidentiality of data | Public data only, no PII storage, GDPR compliance | SECURITY_ARCHITECTURE.md | β |
| 5 | Integrity of data | HTTPS for EP API calls, Zod response validation, typed schemas | src/tools/ (all tool handlers) |
β |
| 6 | Data minimization | Request only needed fields, TTL-based LRU caching | src/clients/ep/baseClient.ts |
β |
| 7 | Availability | Rate limiting (100 req/min), graceful error handling, circuit patterns | src/clients/ep/baseClient.ts |
β |
| 8 | Minimize negative impact | Error isolation per tool, no cascade failures, sanitized errors | Error handling patterns | β |
| 9 | Security updates | Dependabot automated updates, CI/CD pipeline, npm publishing | .github/workflows/ | β |
| 10 | Vulnerability handling | CodeQL, npm audit, responsible disclosure process | SECURITY.md | β |
| 11 | Information and instructions | README, API docs, security documentation, deployment guide | README.md, API_USAGE_GUIDE.md | β |
| 12 | Software Bill of Materials | CycloneDX SBOM generation per release | docs/SBOM.md | β |
| 13 | Coordinated vulnerability disclosure | Security policy, GitHub advisories, 48h acknowledgment SLA | SECURITY.md | β |
π― CRA Self-Assessment Status: EVIDENCE_GATHERED β All requirements documented with implementation evidence
Supports CRA Article 19 β Conformity Assessment Documentation
Reference: π οΈ Secure Development Policy
| π§ͺ Control | π― Requirement | β Implementation | π Evidence |
|---|---|---|---|
| π§ͺ Unit Testing | β₯80% line coverage, β₯70% branch | β 80%+ coverage, 1130+ tests | Coverage Reports |
| π E2E Testing | Critical user journeys validated | β 4 E2E suites / 71 tests passing | E2E Results |
| π SAST Scanning | Zero critical/high vulnerabilities | β CodeQL on every PR | CodeQL Workflow |
| π¦ SCA Scanning | Zero critical unresolved dependencies | β Dependabot + npm audit | Dependabot Config |
| π Secret Scanning | Zero exposed secrets/credentials | β GitHub secret scanning enabled | GitHub Security Settings |
| π¦ SBOM Generation | CycloneDX per release | β Automated in release workflow | docs/SBOM.md |
| π‘οΈ Provenance | SLSA Level 3 attestation | β npm provenance + GitHub attestations | Attestations |
| π Quality Gates | Passing quality metrics | β CI/CD pipeline with lint, build, test gates | Workflows |
| π License Compliance | OSI-approved license verification | β Apache-2.0, automated license checks | LICENSE.md, npm run test:licenses |
π Best Practices & Quality:
| Evidence Type | Location | Verification | CRA Mapping |
|---|---|---|---|
| OpenSSF Scorecard | Scorecard | Automated | Annex I Β§10 |
| SLSA Level 3 | Attestations | Build provenance | Annex V Β§8 |
| SBOM (CycloneDX) | docs/SBOM.md | Generated per build | Annex V Β§7 |
| Test Coverage (80%+) | Coverage | Automated | Annex I Β§1 |
| Dependency Scanning | Dependabot alerts | Automated | Annex I Β§10 |
| Static Analysis | CodeQL results | Automated per PR | Annex I Β§1 |
| Security Documentation | This repository | Manual review | Annex V Β§1-9 |
| npm Audit | CI/CD pipeline | Automated | Annex I Β§9 |
| License Compliance | npm run test:licenses |
Automated | Annex V Β§1 |
| Branch Protection | GitHub settings | Configured | Annex I Β§2 |
| Step | Action | Timeline |
|---|---|---|
| 1 | Report via SECURITY.md or GitHub Security Advisories | Immediate |
| 2 | Acknowledgment of report | 48 hours |
| 3 | Initial assessment and triage | 72 hours |
| 4 | Fix development and testing | Based on severity |
| 5 | Security advisory publication | With fix release |
| 6 | npm package update | Same day as fix |
Per β οΈ Vulnerability Management:
| Severity | CVSS Score | Remediation Target |
|---|---|---|
| π΄ Critical | 9.0 β 10.0 | 24 hours |
| π High | 7.0 β 8.9 | 7 days |
| π‘ Medium | 4.0 β 6.9 | 30 days |
| π’ Low | 0.1 β 3.9 | 90 days |
π Standard Security Reporting Process:
ISMS Integration: All vulnerability reports processed through β οΈ Vulnerability Management procedures
The following Hack23 AB projects demonstrate completed CRA assessments using the CRA Conformity Assessment Process template:
| π Project | π¦ Product Type | π·οΈ CRA Classification | π Assessment Status | π Reference Link |
|---|---|---|---|---|
| π΅οΈ CIA | Political transparency platform | Standard (Non-commercial OSS) | β Complete | π CRA Assessment |
| β« Black Trigram | Korean martial arts game | Standard (Non-commercial OSS) | β Complete | π CRA Assessment |
| π‘οΈ CIA Compliance Manager | Compliance automation tool | Standard (Non-commercial OSS) | β Complete | π CRA Assessment |
| πͺπΊ European Parliament MCP Server | Political intelligence MCP server | Standard (Non-commercial OSS) | β Complete | This document |
| ISMS Policy | Relevance | Link |
|---|---|---|
| π Information Security | Overarching security governance | Information_Security_Policy.md |
| π Secure Development | Development security practices | Secure_Development_Policy.md |
| π¦ Open Source Policy | OSS governance and transparency | Open_Source_Policy.md |
| π Vulnerability Management | Vulnerability handling SLAs | Vulnerability_Management.md |
| π·οΈ Classification | Data classification framework | CLASSIFICATION.md |
| π Cryptography | Encryption standards | Cryptography_Policy.md |
| π¨ Incident Response | Incident procedures | Incident_Response_Plan.md |
| π‘οΈ CRA Process | CRA conformity assessment template | CRA_Conformity_Assessment_Process.md |
| Document | Description | Link |
|---|---|---|
| π― Threat Model | STRIDE analysis, attack trees, and risk assessment | THREAT_MODEL.md |
| π‘οΈ Security Architecture | Current security controls and 4-layer defense model | SECURITY_ARCHITECTURE.md |
| ποΈ Architecture | C4 model system design overview | ARCHITECTURE.md |
| π Business Continuity Plan | Recovery procedures and degradation strategy | BCPPlan.md |
| π° Financial Security Plan | Security investment strategy | FinancialSecurityPlan.md |
| π¦ End-of-Life Strategy | Technology lifecycle and migration planning | End-of-Life-Strategy.md |
| π Security Headers | HTTP security headers implementation | SECURITY_HEADERS.md |
| π Data Model | Entity relationships and data flows | DATA_MODEL.md |
| π Workflows | CI/CD pipeline documentation | WORKFLOWS.md |
This CRA assessment follows the Hack23 CRA Conformity Assessment Process template.
Maintained as part of the Hack23 AB ISMS framework.
Licensed under Apache-2.0