FUTURE_ARCHITECTURE.md

April 8, 2026 Β· View on GitHub

Hack23 Logo

πŸš€ European Parliament MCP Server β€” Future Architecture

Architectural Evolution Roadmap β€” v1.1, v1.2, v2.0
Planned capabilities, migration paths, and next-generation architecture design

Owner Version Effective Date Review Cycle

πŸ“‹ Document Owner: Hack23 | πŸ“„ Version: 2.0 | πŸ“… 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.5.1, A.8.1, A.14.2), NIST CSF 2.0 (ID.AM, PR.DS), CIS Controls v8.1 (2.1, 16.1)


πŸ“‘ Table of Contents

  1. Security Documentation Map
  2. Roadmap Overview
  3. v1.1 β€” Performance and Reliability
  4. v1.2 β€” HTTP Transport and Streaming
  5. v2.0 β€” Enterprise Platform
  6. Future C4 Context Diagram
  7. Future Container Architecture
  8. Migration Path
  9. Technology Evolution

πŸ—ΊοΈ Security Documentation Map

DocumentCurrentFutureDescription
ArchitectureARCHITECTURE.mdFUTURE_ARCHITECTURE.mdC4 model, containers, components, ADRs
Security ArchitectureSECURITY_ARCHITECTURE.mdFUTURE_SECURITY_ARCHITECTURE.mdSecurity controls, threat model
Data ModelDATA_MODEL.mdFUTURE_DATA_MODEL.mdEntity relationships, branded types
FlowchartFLOWCHART.mdFUTURE_FLOWCHART.mdBusiness process flows
State DiagramSTATEDIAGRAM.mdFUTURE_STATEDIAGRAM.mdSystem state transitions
Mind MapMINDMAP.mdFUTURE_MINDMAP.mdSystem concepts and relationships
SWOT AnalysisSWOT.mdFUTURE_SWOT.mdStrategic positioning

πŸ—“οΈ Roadmap Overview

flowchart LR
    subgraph v10["v1.0 - Current (2026-02)"]
        T1["62 tools\n9 resources\n7 prompts"]
        T2["stdio transport"]
        T3["LRU cache\n500 entries, 15-min"]
        T4["4-layer security"]
    end

    subgraph v11["v1.1 - Q2 2026"]
        U1["Persistent cache\n(Redis optional)"]
        U2["Enhanced metrics\n(OpenTelemetry)"]
        U3["Retry strategies\nimproved"]
        U4["More tool coverage"]
    end

    subgraph v12["v1.2 - Q3 2026"]
        V1["HTTP transport\n(SSE streaming)"]
        V2["WebSocket support"]
        V3["GraphQL endpoint"]
        V4["Docker packaging"]
    end

    subgraph v20["v2.0 - Q4 2026 / Q1 2027"]
        W1["OAuth 2.0 auth"]
        W2["RBAC per tool"]
        W3["Multi-instance\nhorizontal scale"]
        W4["EU institution\ndata federation"]
    end

    v10 --> v11
    v11 --> v12
    v12 --> v20

πŸ”§ v1.1 β€” Performance and Reliability

Target: Q2 2026

New Capabilities

FeatureDescriptionPriority
Optional Redis CachePersistent cache backend for cross-restart warm cacheHigh
OpenTelemetry IntegrationStructured observability with traces, metrics, logsHigh
Improved Retry LogicConfigurable retry strategies per endpoint typeMedium
Circuit BreakerPrevent cascade failures when EP API degradesMedium
Tool Coverage +55 additional tools for emerging EP API endpointsMedium
Cache WarmupPre-load frequently accessed data on startupLow

v1.1 Architecture Changes

flowchart TD
    subgraph v11New["v1.1 New Components"]
        REDIS["Optional Redis Cache\n(configurable via env)"]
        OTEL["OpenTelemetry Exporter\n(traces + metrics + logs)"]
        CB["Circuit Breaker\n(per EP API endpoint)"]
        RETRY["Retry Manager\n(configurable strategies)"]
    end

    CACHE["Existing LRU Cache"] -->|"write-through"| REDIS
    REDIS -->|"warm on startup"| CACHE
    METRICS["MetricsService"] -->|"export"| OTEL
    FETCH["EP API Clients"] --> CB
    CB -->|"open state"| RETRY
    RETRY --> FETCH

🌐 v1.2 β€” HTTP Transport and Streaming

Target: Q3 2026

New Capabilities

FeatureDescriptionPriority
HTTP/SSE TransportMCP over HTTP with Server-Sent Events for streamingCritical
WebSocket TransportReal-time bidirectional MCP communicationHigh
GraphQL APIOptional GraphQL interface for complex queriesMedium
Docker ContainerOfficial Docker image with multi-arch supportHigh
Kubernetes Helm ChartEnterprise deployment via HelmMedium
Health EndpointHTTP /health endpoint for load balancer integrationHigh

v1.2 Transport Architecture

flowchart TD
    subgraph Transports["v1.2 Transport Layer"]
        STDIO["stdio Transport\n(existing, preserved)"]
        HTTP["HTTP/SSE Transport\n(new: Express + SSE)"]
        WS["WebSocket Transport\n(new: ws library)"]
    end

    subgraph Clients["MCP Clients"]
        LOCAL["Claude Desktop\n(stdio)"]
        WEB["Web Browser\n(SSE)"]
        ENT["Enterprise Client\n(WebSocket)"]
    end

    subgraph Core["Core MCP Handler (unchanged)"]
        HANDLER["MCP Request Handler\n62 tools, 9 resources, 7 prompts"]
    end

    LOCAL --> STDIO
    WEB --> HTTP
    ENT --> WS
    STDIO --> HANDLER
    HTTP --> HANDLER
    WS --> HANDLER

🏒 v2.0 β€” Enterprise Platform

Target: Q4 2026 / Q1 2027

New Capabilities

FeatureDescriptionPriority
OAuth 2.0User authentication with OAuth 2.0 / OIDCCritical
Fine-grained RBACPer-tool, per-dataset access controlCritical
Multi-instance ScalingHorizontal scaling with shared Redis cacheHigh
EU Data FederationEUR-Lex, Council, Eurostat data integrationHigh
Webhook NotificationsSubscribe to EP data change eventsMedium
GraphQL SubscriptionsReal-time data updates via GraphQLMedium
Tenant IsolationMulti-tenant deployment for SaaSLow
Audit Trail ExportCompliance export (CSV, JSON, SIEM integration)High

v2.0 Context Diagram

flowchart TD
    subgraph Users["Users and Systems"]
        ANALYST["Political Analyst"]
        JOURNALIST["Journalist"]
        NGO["NGO System"]
        ENTERPRISE["Enterprise Platform"]
    end

    subgraph AuthLayer["v2.0 Auth Layer"]
        OAUTH["OAuth 2.0 Provider\n(Keycloak / Auth0)"]
        RBAC["RBAC Engine\n(per-tool permissions)"]
    end

    subgraph EPMCPv2["EP MCP Server v2.0"]
        GATEWAY["API Gateway"]
        TOOLS["46+ Tools"]
        CACHE["Distributed Cache\n(Redis Cluster)"]
        AUDIT["Enhanced Audit\n(SIEM integration)"]
    end

    subgraph DataSources["EU Data Sources"]
        EPA["EP Open Data API v2"]
        EURLEX["EUR-Lex API"]
        COUNCIL["Council API"]
        EUROSTAT["Eurostat API"]
    end

    ANALYST -->|"MCP stdio"| EPMCPv2
    JOURNALIST -->|"HTTP/SSE"| GATEWAY
    NGO -->|"WebSocket"| GATEWAY
    ENTERPRISE -->|"OAuth token"| OAUTH
    OAUTH --> RBAC
    RBAC --> GATEWAY
    GATEWAY --> TOOLS
    TOOLS --> CACHE
    TOOLS --> EPA
    TOOLS --> EURLEX
    TOOLS --> COUNCIL
    TOOLS --> EUROSTAT
    TOOLS --> AUDIT

πŸ”„ Migration Path

v1.0 β†’ v1.1 (Non-Breaking)

All v1.0 configurations remain valid. New features are opt-in via environment variables:

# v1.1 optional features (all off by default for backward compat)
EP_MCP_REDIS_URL=redis://localhost:6379  # Optional Redis cache
EP_MCP_OTEL_ENDPOINT=http://jaeger:4317  # Optional OpenTelemetry
EP_MCP_CIRCUIT_BREAKER=true              # Optional circuit breaker

v1.1 β†’ v1.2 (Additive)

New transport options added. stdio remains default and unchanged:

# v1.2 optional transport (stdio remains default)
EP_MCP_HTTP_PORT=3000        # Enable HTTP/SSE transport
EP_MCP_WS_PORT=3001          # Enable WebSocket transport
EP_MCP_GRAPHQL_PORT=3002     # Enable GraphQL endpoint

v1.2 β†’ v2.0 (Breaking for Enterprise)

v2.0 introduces mandatory authentication for non-local deployments:

# v2.0 auth configuration (required for HTTP/WS transport)
EP_MCP_AUTH_ISSUER=https://auth.example.com
EP_MCP_AUTH_AUDIENCE=ep-mcp-server
EP_MCP_AUTH_REQUIRED=true

stdio transport remains unauthenticated for local development.


πŸ› οΈ Technology Evolution

Componentv1.0v1.1v1.2v2.0
CacheLRU in-memoryLRU + optional RedisLRU + RedisRedis Cluster
Transportstdio onlystdiostdio + HTTP + WSAll + GraphQL
AuthNoneNoneNoneOAuth 2.0 + RBAC
ObservabilityConsoleOpenTelemetryOpenTelemetrySIEM integration
Deploymentnpm / npxnpm + DockerDocker + K8s HelmMulti-tenant SaaS
Data SourcesEP API v2EP API v2EP API v2EP + EUR-Lex + Council
Tools61707580+

This document defines the planned evolution. Actual delivery timelines depend on community contributions and EP API developments. See ARCHITECTURE.md for the current implemented architecture.