Skip to main content
Glama
Hack23

European Parliament MCP Server

by Hack23

ISMS OpenSSF Best Practices Ask DeepWiki

📊 Quality Metrics & Documentation

Related MCP server: eRegulations MCP Server

📋 Overview

The European Parliament MCP Server implements the Model Context Protocol (MCP) to provide AI assistants, IDEs, and other MCP clients with structured access to European Parliament open datasets. Access information about MEPs, plenary sessions, committees, legislative documents, and parliamentary questions through a secure, type-safe TypeScript/Node.js implementation.

🎯 Key Features

  • 🔌 Full MCP Implementation: 63 tools (9 core + 3 advanced + 15 OSINT + 8 Phase 4 + 15 Phase 5 + 13 feed), 9 Resources, and 7 Prompts

  • 🏛️ Complete EP API v2 Coverage: All European Parliament Open Data API endpoints covered

  • 🕵️ OSINT Intelligence: MEP influence scoring, coalition analysis, anomaly detection

  • 🔒 Security First: ISMS-compliant, GDPR-ready, SLSA Level 3 provenance

  • 🚀 High Performance: <200ms API responses, intelligent caching, rate limiting

  • 📊 Type Safety: TypeScript strict mode + Zod runtime validation

  • 🧪 Well-Tested: 80%+ code coverage, 1130+ unit tests, 71 E2E test cases

  • 📚 Complete Documentation: Architecture, TypeDoc API (HTML + Markdown), security guidelines


🌍 Hack23 Political Intelligence Ecosystem

This MCP server is the EU data backbone of Hack23's mission to disrupt parliamentary journalism with AI-generated political intelligence and real-time accountability analysis — increasing democratic transparency through structured open-source intelligence (OSINT) tradecraft applied to public legislative data.

🎯 Vision: AI-Powered Democratic Transparency

Hack23 AB builds open-source intelligence platforms that put rigorous, evidence-based political analysis in the hands of every citizen, journalist, researcher and policymaker. By combining MCP servers, agentic AI newsrooms, and open parliamentary data, we produce automated intelligence products — coalition analysis, voting-pattern decoding, MEP/MP influence scoring, legislative-pipeline forecasting — that previously required well-funded lobbying organisations or in-house policy units to generate.

"Democratising access to political intelligence — what used to require a team of analysts can now be done by any citizen with an AI assistant."

The portfolio is non-partisan, fully open-source (Apache-2.0), operated under the Hack23 ISMS with full ISO 27001:2022 / NIST CSF 2.0 / CIS Controls v8.1 alignment, GDPR-by-design, and architecturally engineered so it cannot be weaponised for partisan influence: equal treatment of all political groups, public-data only, no user accounts, no ads, no tracking.

🧭 The Ecosystem at a Glance

%%{init: {"theme":"base","themeVariables":{"primaryColor":"#6366f1","primaryTextColor":"#fff","primaryBorderColor":"#4f46e5","lineColor":"#94a3b8","secondaryColor":"#003399","tertiaryColor":"#00338d","background":"#0f172a"}}}%%
graph LR
    subgraph SOURCES["📡 Primary Open-Data Sources"]
        EP["🇪🇺 European Parliament<br/>Open Data Portal v2<br/><i>data.europarl.europa.eu</i>"]
        RD["🇸🇪 Riksdagen Open Data<br/><i>data.riksdagen.se</i>"]
        REG["🇸🇪 Regeringskansliet<br/><i>regeringen.se</i>"]
        IMF["💰 IMF / World Bank<br/><i>economic context</i>"]
    end

    subgraph MCP["🔌 MCP Servers"]
        EPMCP["<b>European-Parliament-<br/>MCP-Server</b><br/>63 tools · 9 resources<br/>7 prompts · TS strict<br/><i>(this repository)</i>"]
        RRMCP["riksdag-regering MCP<br/>32+ tools"]
    end

    subgraph PRODUCTS["📰 AI-Driven Public Platforms"]
        EUPM["🏛️ <b>EU Parliament Monitor</b><br/>euparliamentmonitor.com<br/>8 unified gh-aw workflows<br/>51-artifact analysis<br/>14 languages"]
        RM["🗳️ <b>Riksdagsmonitor</b><br/>riksdagsmonitor.com<br/>11 agentic workflows<br/>91 skills · 14 languages<br/>Tidö coalition tracker"]
        CIA["🕵️ <b>Citizen Intelligence<br/>Agency (CIA)</b><br/>Java/Spring backend<br/>15 subsystems · 1971–2024<br/>3.5M votes · 109K docs"]
    end

    subgraph CITIZENS["👥 Citizens · Journalists · Researchers · NGOs"]
        AUDIENCE["AI assistants · Dashboards · 14-language news · Intelligence briefings"]
    end

    EP --> EPMCP
    RD --> RRMCP
    REG --> RRMCP
    EPMCP --> EUPM
    RRMCP --> RM
    RM <-->|"15 CIA subsystems<br/>nightly sync"| CIA
    IMF -.->|"economic context"| EUPM
    IMF -.->|"economic context"| RM
    EUPM --> AUDIENCE
    RM --> AUDIENCE
    CIA --> AUDIENCE
    EPMCP -.->|"AI assistants<br/>Claude · Cursor · VS Code"| AUDIENCE

    style EPMCP fill:#6366f1,stroke:#4f46e5,color:#fff,stroke-width:3px
    style EP fill:#003399,stroke:#ffcc00,color:#fff
    style RD fill:#00338d,stroke:#fecc00,color:#fff
    style REG fill:#00338d,stroke:#fecc00,color:#fff
    style EUPM fill:#003399,stroke:#ffcc00,color:#fff
    style RM fill:#00338d,stroke:#fecc00,color:#fff
    style CIA fill:#1b5e20,stroke:#43a047,color:#fff
    style AUDIENCE fill:#7b1fa2,stroke:#9c27b0,color:#fff

This MCP server's role: the canonical, type-safe TypeScript bridge between the European Parliament Open Data Portal and any MCP-aware AI client (Claude Desktop, VS Code, Cursor, GitHub Copilot) — and the upstream data layer that powers the EU Parliament Monitor newsroom. Every tool is Zod-validated, audit-logged, GDPR-aware, and SLSA Level 3 attested.

🗂️ Portfolio Comparison Matrix

🇪🇺 EU Parliament Monitor — euparliamentmonitor.com

European Parliament Political Intelligence Platform🧠 Political intelligence · 🔍 Radical transparency · 🗳️ Democratic accountability · 🤖 AI-generated news in 14 languages

Live Site Political Intelligence Hub Site Map OpenSSF Scorecard OpenSSF Best Practices SLSA 3 License ISMS Ask DeepWiki News Generation CodeQL Test and Report E2E Tests Release

🗳️ Riksdagsmonitor — riksdagsmonitor.com

Swedish Political Intelligence Platform🕵️ Political intelligence · 🔍 Democratic transparency · 🤖 AI-generated news · 📊 50+ years of evidence

OpenSSF Scorecard Quality Checks Dependency Review CodeQL JavaScript Testing Translation Validation Release OpenSSF Best Practices License ISMS ISO 27001 NIST CSF CIS Controls Ask DeepWiki

🕵️ Citizen Intelligence Agency (CIA)

Political transparency platform — Java/Spring data backbone behind Riksdagsmonitor's historical evidence layer

CII Best Practices OpenSSF Scorecard SLSA 3 Verify & Deploy Scorecard supply-chain security Quality Gate Status Security Rating Maintainability Rating Reliability Rating Ask DeepWiki

🌍 Shared Across the Portfolio

Dimension

Coverage

🌐 Languages

14 — English · Swedish · Danish · Norwegian · Finnish · German · French · Spanish · Dutch · Arabic (RTL) · Hebrew (RTL) · Japanese · Korean · Chinese

Accessibility

WCAG 2.1 AA · keyboard navigable · screen-reader optimised · 4.5:1 contrast · responsive 320 px → 1440 px+

🔒 Compliance

ISO 27001:2022 · NIST CSF 2.0 · CIS Controls v8.1 · GDPR · NIS2 · EU CRA

🛡️ Supply chain

SHA-pinned GitHub Actions · step-security/harden-runner · Dependabot · CodeQL · Secret Scanning · SLSA Level 3 · SPDX SBOM

📜 License

Apache License 2.0 across the entire portfolio

🏢 Operator

Hack23 AB (Org.nr 559534-7807) — Swedish cybersecurity & open-source intelligence consultancy

🛡️ ISMS

Hack23 ISMS-PUBLIC — fully documented information-security management system


🔐 Security & Compliance


🚀 Quick Start

Run with npx (No Installation Required)

npx -y european-parliament-mcp-server

Prerequisites

  • Node.js 26.x or higher

  • npm 10.x or higher

Installation

# Install the package globally
npm install -g european-parliament-mcp-server

# Or install as a dependency in your project
npm install european-parliament-mcp-server

Option 2: Install from source

# Clone the repository
git clone https://github.com/Hack23/European-Parliament-MCP-Server.git
cd European-Parliament-MCP-Server

# Install dependencies
npm install

# Build the project
npm run build

# Run tests
npm test

Usage with MCP Client

Claude Desktop Configuration (npm install)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "european-parliament": {
      "command": "npx",
      "args": ["european-parliament-mcp-server"],
      "env": {
        "EP_API_KEY": "your-api-key-if-needed"
      }
    }
  }
}

Claude Desktop Configuration (source install)

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "european-parliament": {
      "command": "node",
      "args": ["/path/to/European-Parliament-MCP-Server/dist/index.js"],
      "env": {
        "EP_API_KEY": "your-api-key-if-needed"
      }
    }
  }
}

VS Code Extension

Configure in .vscode/mcp.json:

{
  "servers": {
    "european-parliament": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "european-parliament-mcp-server"]
    }
  }
}

Cursor IDE Configuration

Add to ~/.cursor/mcp.json (or project-level .cursor/mcp.json):

{
  "mcpServers": {
    "european-parliament": {
      "command": "npx",
      "args": ["european-parliament-mcp-server"],
      "env": {}
    }
  }
}

Custom Timeout Configuration

Use --timeout <ms> to override the default 60 s request timeout. This is especially useful in copilot-mcp.json or other contexts where the env field may not reliably propagate:

{
  "args": ["european-parliament-mcp-server", "--timeout", "90000"]
}

Precedence: --timeout CLI arg > EP_REQUEST_TIMEOUT_MS env var > default (60 000 ms).

Note: The procedures/feed and events/feed endpoints automatically use an extended 120 s timeout because these EP API endpoints are significantly slower than others. If you experience timeouts with one-month timeframes, consider using year-based queries (e.g., get_procedures({ year: 2026 })) as a faster alternative.


📚 Documentation

🌐 Documentation Portal

📖 Complete Documentation Site - Live documentation portal with:

  • 📖 API Reference (HTML) - TypeDoc generated API documentation with search, hierarchy navigation, and full type information

  • 📖 API Reference (Markdown) - SEO-friendly Markdown API documentation

  • 📊 Coverage Reports - Test coverage analysis

  • Test Reports - Unit and E2E test results

  • 🔐 Build Attestations - SLSA Level 3 provenance

  • 📦 SBOM - Software Bill of Materials

  • 🗺️ Sitemap - Auto-generated sitemap for search engines

💡 Note: Documentation is automatically generated and committed with each release via npm run docs:build

Generated API Documentation

The API documentation is generated using TypeDoc with the following plugins:

Plugin

Purpose

typedoc

Core HTML documentation generator

typedoc-plugin-markdown

Generates SEO-friendly Markdown alongside HTML

typedoc-plugin-mdn-links

Links TypeScript built-in types to MDN documentation

typedoc-plugin-zod

Renders Zod schema definitions as readable type documentation

Generate documentation locally:

npm run docs          # HTML API docs → docs/api/
npm run docs:md       # Markdown API docs → docs/api-markdown/
npm run docs:build    # Full documentation build (HTML + MD + coverage + test reports)

Core Documentation

Additional Documentation


🏗️ Architecture Overview

graph TB
    Client[MCP Client<br/>Claude / VS Code / Cursor] -->|MCP Protocol stdio| Server[EP MCP Server<br/>TypeScript/Node.js]

    subgraph "MCP Server (src/)"
        direction TB
        Tools["🔧 61 Tools<br/>getMEPs · analyzeCoalition<br/>assessMepInfluence · …"]
        Resources["📦 9 Resources<br/>ep://meps/\{mepId\}<br/>ep://procedures/\{procedureId\} · …"]
        Prompts["💬 7 Prompts<br/>mep_briefing<br/>coalition_analysis · …"]
    end

    Server --> Tools
    Server --> Resources
    Server --> Prompts

    subgraph "Infrastructure"
        Cache["LRU Cache<br/>500 entries · 15 min TTL"]
        RateLimiter[Rate Limiter<br/>100 req/min]
        AuditLog[Audit Logger<br/>GDPR Article 30]
    end

    Tools --> EPClient["EuropeanParliamentClient<br/>Facade → 8 sub-clients"]
    Resources --> EPClient
    EPClient --> Cache
    EPClient --> RateLimiter
    EPClient --> AuditLog
    EPClient -->|HTTPS/TLS 1.3| EPAPI[European Parliament<br/>Open Data API v2<br/>data.europarl.europa.eu]

    style Server fill:#4caf50,stroke:#2e7d32,color:#fff
    style EPClient fill:#2196f3,stroke:#1565c0,color:#fff
    style EPAPI fill:#9c27b0,stroke:#6a1b9a,color:#fff
    style Cache fill:#ff9800,stroke:#e65100,color:#fff
    style RateLimiter fill:#f44336,stroke:#b71c1c,color:#fff
    style AuditLog fill:#607d8b,stroke:#37474f,color:#fff

Data flow: MCP client sends a tool call → server validates input (Zod) → EP client checks cache → on miss, fetches from EP API (rate-limited) → response cached and returned as structured JSON. All personal data access is audit-logged per GDPR Article 30.


🔌 MCP Tools (63 Total)

63 tools organized by capability — OSINT intelligence first, then analytical, data access, feed endpoints, and reference tools. Every tool includes Zod input validation, caching, and rate limiting.

🗺️ Political Intelligence Coverage Map

graph TB
    subgraph OSINT["🕵️ OSINT Intelligence — 15 Tools"]
        direction LR
        subgraph MEP["MEP Profiling"]
            A1["assess_mep_influence"]
            A2["comparative_intelligence"]
            A3["network_analysis"]
            A4["track_mep_attendance"]
        end
        subgraph COALITION["Coalition Dynamics"]
            B1["analyze_coalition_dynamics"]
            B2["compare_political_groups"]
            B3["detect_voting_anomalies"]
            B4["sentiment_tracker"]
        end
        subgraph STRATEGY["Strategic Warning"]
            C1["early_warning_system"]
            C2["generate_political_landscape"]
            C3["correlate_intelligence"]
        end
        subgraph LEG_INTEL["Legislative Intelligence"]
            D1["analyze_legislative_effectiveness"]
            D2["monitor_legislative_pipeline"]
            D3["analyze_committee_activity"]
            D4["analyze_country_delegation"]
        end
    end

    subgraph ANALYTICS["📊 Advanced Analysis — 4 Tools"]
        E1["analyze_voting_patterns"]
        E2["track_legislation"]
        E3["generate_report"]
        E4["get_all_generated_stats"]
    end

    subgraph DATA["📦 Core EP Data — 30 Tools"]
        F1["👤 MEP Tools (7)"]
        F2["🏛️ Plenary & Meeting (9)"]
        F3["📄 Document Tools (7)"]
        F4["⚖️ Legislative (4)"]
        F5["🏢 Committee (2)"]
        F6["🔧 Diagnostics (1)"]
    end

    subgraph FEEDS["📡 Real-Time Feeds — 13 Tools"]
        G1["13 change monitoring endpoints"]
    end

    OSINT -->|"enriched by"| ANALYTICS
    ANALYTICS -->|"queries"| DATA
    DATA -->|"monitors"| FEEDS

    style OSINT fill:#d32f2f,stroke:#b71c1c,color:#fff,stroke-width:2px
    style ANALYTICS fill:#1565c0,stroke:#0d47a1,color:#fff,stroke-width:2px
    style DATA fill:#2e7d32,stroke:#1b5e20,color:#fff,stroke-width:2px
    style FEEDS fill:#ff8f00,stroke:#e65100,color:#000,stroke-width:2px
    style MEP fill:#e53935,stroke:#c62828,color:#fff,stroke-width:2px
    style COALITION fill:#e53935,stroke:#c62828,color:#fff,stroke-width:2px
    style STRATEGY fill:#e53935,stroke:#c62828,color:#fff,stroke-width:2px
    style LEG_INTEL fill:#e53935,stroke:#c62828,color:#fff,stroke-width:2px

🎯 OSINT Intelligence Workflow

graph LR
    subgraph COLLECT["1️⃣ Collect"]
        direction TB
        C1["get_meps"]
        C2["get_plenary_sessions"]
        C3["get_voting_records"]
        C4["get_procedures"]
        C5["13 feed tools"]
    end

    subgraph ANALYZE["2️⃣ Analyze"]
        direction TB
        AN1["analyze_voting_patterns"]
        AN2["track_legislation"]
        AN3["generate_report"]
        AN4["get_all_generated_stats"]
    end

    subgraph ENRICH["3️⃣ Enrich"]
        direction TB
        E1["assess_mep_influence"]
        E2["analyze_coalition_dynamics"]
        E3["detect_voting_anomalies"]
        E4["network_analysis"]
        E5["analyze_legislative_effectiveness"]
    end

    subgraph FUSE["4️⃣ Fuse & Alert"]
        direction TB
        F1["correlate_intelligence"]
        F2["early_warning_system"]
        F3["generate_political_landscape"]
        F4["comparative_intelligence"]
        F5["sentiment_tracker"]
    end

    COLLECT -->|"raw data"| ANALYZE
    ANALYZE -->|"structured"| ENRICH
    ENRICH -->|"intelligence"| FUSE

    style COLLECT fill:#2e7d32,stroke:#1b5e20,color:#fff,stroke-width:2px
    style ANALYZE fill:#1565c0,stroke:#0d47a1,color:#fff,stroke-width:2px
    style ENRICH fill:#9c27b0,stroke:#7b1fa2,color:#fff,stroke-width:2px
    style FUSE fill:#d32f2f,stroke:#b71c1c,color:#fff,stroke-width:2px

🕵️ OSINT Intelligence Tools (15)

Tool

Description

Key Parameters

Output

correlate_intelligence

Cross-tool OSINT correlation engine — fuses influence, anomaly, coalition, and network signals into unified intelligence alerts

mepIds (required), groups, sensitivityLevel

Correlated alerts with severity & confidence

assess_mep_influence

MEP influence scoring (5-dimension model)

mepId (required), dateFrom, dateTo, includeDetails

Influence scorecard

detect_voting_anomalies

Party defection & anomaly detection

mepId, groupId, sensitivityThreshold

Anomaly report

analyze_coalition_dynamics

Coalition cohesion & stress analysis

groupIds, dateFrom, minimumCohesion

Coalition metrics

early_warning_system

Detect emerging political shifts & coalition fractures

sensitivity, focusArea

Warnings with severity levels & stability score

comparative_intelligence

Cross-reference 2–10 MEP activities across dimensions

mepIds (required), dimensions

Ranked profiles, correlation matrix, cluster analysis

network_analysis

MEP relationship network via committee co-membership

mepId, analysisType, depth

Network map with centrality scores

sentiment_tracker

Political group institutional-positioning scores

groupId, timeframe

Positioning scores & polarization index

generate_political_landscape

Parliament-wide political landscape

dateFrom, dateTo

Landscape overview

compare_political_groups

Cross-group comparative analysis

groupIds (required), dimensions, dateFrom

Comparison matrix

analyze_legislative_effectiveness

MEP/committee legislative scoring

subjectType (required), subjectId (required), dateFrom

Effectiveness score

monitor_legislative_pipeline

Pipeline status & bottleneck detection

committee, status, limit

Pipeline status

analyze_committee_activity

Committee workload & engagement analysis

committeeId (required), dateFrom, dateTo

Activity report

track_mep_attendance

MEP attendance patterns & trends

mepId, country, groupId, dateFrom, dateTo, limit

Attendance report

analyze_country_delegation

Country delegation voting & composition

country (required), dateFrom, dateTo

Delegation analysis

📊 Advanced Analysis Tools (4)

Tool

Description

Key Parameters

Output

get_all_generated_stats

Precomputed EP activity statistics (2004-2026) with rankings, predictions, political landscape, and 30 OSINT-derived intelligence metrics including 3-axis political compass

yearFrom, yearTo, category, includePredictions

Statistics object

analyze_voting_patterns

Analyze MEP voting behavior

mepId (required), dateFrom, compareWithGroup

Analysis object

track_legislation

Track legislative procedure

procedureId (required)

Procedure object

generate_report

Generate analytical reports

reportType (required), subjectId, dateFrom

Report object

👤 MEP Tools (7)

Tool

Description

Key Parameters

EP API Endpoint

get_meps

List MEPs with filters

country, group, committee, limit

GET /meps

get_mep_details

Detailed MEP information

id (required)

GET /meps/{id}

get_current_meps

Currently active MEPs with country & political group

limit, offset

GET /meps/show-current

get_incoming_meps

Newly arriving MEPs for current term

limit, offset

GET /meps/show-incoming

get_outgoing_meps

Departing MEPs for current term

limit, offset

GET /meps/show-outgoing

get_homonym_meps

MEPs with identical names (disambiguation)

limit, offset

GET /meps/show-homonyms

get_mep_declarations

MEP financial interest declarations

docId, year, limit

GET /meps-declarations, GET /meps-declarations/{id}

🏛️ Plenary & Meeting Tools (9)

Tool

Description

Key Parameters

EP API Endpoint

get_plenary_sessions

List plenary sessions/meetings, or single by eventId

dateFrom, dateTo, eventId, year, location

GET /meetings, GET /meetings/{id}

get_voting_records

Retrieve aggregate voting records (no per‑MEP positions)

sessionId, topic, dateFrom

GET /meetings/{id}/vote-results

get_speeches

Plenary speeches and debate contributions

speechId, year, dateFrom, dateTo, limit

GET /speeches, GET /speeches/{id}

get_events

EP events (hearings, conferences, seminars)

eventId, year, dateFrom, dateTo, limit

GET /events, GET /events/{id}

get_meeting_activities

Activities linked to a plenary sitting

sittingId (required), limit

GET /meetings/{id}/activities

get_meeting_decisions

Decisions made in a plenary sitting

sittingId (required), limit

GET /meetings/{id}/decisions

get_meeting_foreseen_activities

Planned agenda items for upcoming meetings

sittingId (required), limit

GET /meetings/{id}/foreseen-activities

get_meeting_plenary_session_documents

Plenary session documents linked to a specific sitting

sittingId (required), limit, offset

GET /meetings/{id}/plenary-session-documents

get_meeting_plenary_session_document_items

Agenda item documents for a specific plenary sitting

sittingId (required), limit, offset

GET /meetings/{id}/plenary-session-document-items

🏢 Committee Tools (2)

Tool

Description

Key Parameters

EP API Endpoint

get_committee_info

Committee/corporate body info, or all current bodies

id, abbreviation, showCurrent

GET /corporate-bodies, GET /corporate-bodies/show-current

get_committee_documents

Committee documents and drafts

docId, year, limit

GET /committee-documents, GET /committee-documents/{id}

📄 Document Tools (7)

Tool

Description

Key Parameters

EP API Endpoint

search_documents

Search documents or get single by docId

keyword, docId, documentType, dateFrom

GET /documents, GET /documents/{id}

get_adopted_texts

Adopted legislative texts and resolutions

docId, year, limit

GET /adopted-texts, GET /adopted-texts/{id}

get_plenary_documents

Plenary legislative documents

docId, year, limit

GET /plenary-documents, GET /plenary-documents/{id}

get_plenary_session_documents

Session agendas, minutes, voting lists

docId, limit

GET /plenary-session-documents, GET /plenary-session-documents/{id}

get_plenary_session_document_items

Individual items within session documents

limit, offset

GET /plenary-session-documents-items

get_external_documents

Non-EP documents (Council, Commission)

docId, year, limit

GET /external-documents, GET /external-documents/{id}

get_parliamentary_questions

Parliamentary Q&A, or single by docId

type, author, topic, docId

GET /parliamentary-questions, GET /parliamentary-questions/{id}

⚖️ Legislative Procedure Tools (4)

Tool

Description

Key Parameters

EP API Endpoint

get_procedures

Legislative procedures, or single by processId

processId, year, limit

GET /procedures, GET /procedures/{id}

get_procedure_events

Timeline events for a legislative procedure

processId (required), limit

GET /procedures/{id}/events

get_procedure_event_by_id

Specific event linked to a legislative procedure

processId (required), eventId (required)

GET /procedures/{id}/events/{event-id}

get_controlled_vocabularies

Standardized classification terms

vocId, limit

GET /controlled-vocabularies, GET /controlled-vocabularies/{id}

📡 Feed Tools (13)

Real-time change feeds for monitoring recently updated data across all EP API categories. Per the EP OpenAPI spec, feeds fall into two groups:

  • Configurable-window (6 tools): Accept timeframe (today, one-day, one-week, one-month, custom) + optional startDate

  • Fixed-window (7 tools): No parameters — return updates from a server-defined default window (typically one month)

Key behaviors:

  • All feeds return JSON-LD with data[], @context[], and dataQualityWarnings[]

  • Empty feeds (EP API 404 or error-in-body) are converted to empty data[] with a warning — not errors

  • get_events_feed and get_procedures_feed always use a minimum 120s timeout because these endpoints are consistently slow

  • Fixed-window feeds can be very slow (30–180 s) and often return error-in-body responses

  • For configurable feeds, when timeframe is custom, startDate (YYYY-MM-DD) is required

Configurable-window feeds:

Tool

Description

Key Parameters

EP API Endpoint

get_meps_feed

Recently updated MEPs

timeframe, startDate

GET /meps/feed

get_events_feed

Recently updated events

timeframe, startDate, activityType

GET /events/feed

get_procedures_feed

Recently updated procedures

timeframe, startDate, processType

GET /procedures/feed

get_adopted_texts_feed

Recently updated adopted texts

timeframe, startDate, workType

GET /adopted-texts/feed

get_mep_declarations_feed

Recently updated MEP declarations

timeframe, startDate, workType

GET /meps-declarations/feed

get_external_documents_feed

Recently updated external documents

timeframe, startDate, workType

GET /external-documents/feed

Fixed-window feeds (no parameters):

Tool

Description

Key Parameters

EP API Endpoint

get_documents_feed

Recently updated documents

(none)

GET /documents/feed

get_plenary_documents_feed

Recently updated plenary documents

(none)

GET /plenary-documents/feed

get_committee_documents_feed

Recently updated committee docs

(none)

GET /committee-documents/feed

get_plenary_session_documents_feed

Recently updated plenary session docs

(none)

GET /plenary-session-documents/feed

get_parliamentary_questions_feed

Recently updated questions

(none)

GET /parliamentary-questions/feed

get_corporate_bodies_feed

Recently updated corporate bodies

(none)

GET /corporate-bodies/feed

get_controlled_vocabularies_feed

Recently updated vocabularies

(none)

GET /controlled-vocabularies/feed

🔧 Server Diagnostics (1)

Tool

Description

Key Parameters

Output

get_server_health

Server health and feed availability status (no upstream API calls)

(none)

Health object

📖 Complete TypeDoc API documentation → · Markdown API docs →

Common Use Cases

Research a specific MEP:

1. Find MEP: get_meps → {country: "SE"}
2. Get details: get_mep_details → {id: "MEP-123"}
3. Analyze voting: analyze_voting_patterns → {mepId: "MEP-123"}
4. Generate report: generate_report → {reportType: "MEP_ACTIVITY", subjectId: "MEP-123"}

Track legislation:

1. Search documents: search_documents → {keywords: "climate change"}
2. Track procedure: track_legislation → {procedureId: "2024/0001(COD)"}
3. Get voting records: get_voting_records → {topic: "climate"}

Committee analysis:

1. Get committee: get_committee_info → {abbreviation: "ENVI"}
2. List members: get_meps → {committee: "ENVI"}
3. Generate report: generate_report → {reportType: "COMMITTEE_PERFORMANCE", subjectId: "COMM-ENVI"}

OSINT Intelligence analysis:

1. Score MEP influence: assess_mep_influence → {mepId: "MEP-123"}
2. Detect anomalies: detect_voting_anomalies → {mepId: "MEP-123"}
3. Analyze coalitions: analyze_coalition_dynamics → {groupIds: ["EPP", "S&D"]}
4. Compare groups: compare_political_groups → {groupIds: ["EPP", "S&D", "Renew"]}
5. Pipeline status: monitor_legislative_pipeline → {committee: "ENVI"}
6. Country delegation: analyze_country_delegation → {country: "SE"}
7. Political landscape: generate_political_landscape → {}

🎯 More use cases and examples →

📝 MCP Prompts

Pre-built intelligence analysis prompt templates:

Prompt

Description

Arguments

mep_briefing

Comprehensive MEP intelligence briefing

mepId (required), period?

coalition_analysis

Coalition dynamics and voting bloc analysis

policyArea?, period?

legislative_tracking

Legislative procedure tracking report

procedureId?, committee?

political_group_comparison

Multi-dimensional group comparison

groups?

committee_activity_report

Committee workload and engagement

committeeId (required)

voting_pattern_analysis

Voting pattern trend detection

topic?, mepId?

country_delegation_analysis

Country delegation composition and activity

country (required), period?

📦 MCP Resources

Direct data access via EP resource URIs:

Resource URI

Description

ep://meps

List of all current MEPs

ep://meps/{mepId}

Individual MEP profile

ep://committees/{committeeId}

Committee information

ep://plenary-sessions

Recent plenary sessions

ep://votes/{sessionId}

Voting records for a session

ep://political-groups

Political group listing

ep://procedures/{procedureId}

Legislative procedure details

ep://plenary/{plenaryId}

Single plenary session details

ep://documents/{documentId}

Legislative document details


🗺️ Global Political MCP Servers & OSINT Coverage

The European Parliament MCP Server is part of a growing ecosystem of political and government open data MCP servers enabling AI-powered OSINT analysis of democratic institutions worldwide. Below is the most comprehensive directory of political and government MCP servers available.

🏛️ Parliamentary & Legislative MCP Servers

Country

Server

Data Source

Coverage

🇪🇺 European Union

European Parliament MCP Server

data.europarl.europa.eu

MEPs, votes, legislation, committees, questions — 63 tools (15 OSINT)

🇺🇸 United States

Congress.gov API MCP Server

congress.gov

Bills, members, votes, committees (TypeScript, v3 API)

🇺🇸 United States

CongressMCP

congress.gov

Real-time Congress data — bills, votes, members

🇺🇸 United States

Congress.gov MCP

congress.gov

Unofficial Congress.gov API access

🇬🇧 United Kingdom

Parliament MCP

parliament.uk

Hansard, members, debates, divisions

🇸🇪 Sweden

Riksdag & Regering MCP

riksdagen.se

Swedish Parliament & Government data (used by riksdagsmonitor.com)

🇳🇱 Netherlands

OpenTK MCP

tweedekamer.nl

Dutch Parliament (Tweede Kamer) documents

🇵🇱 Poland

Parliament of Poland MCP

sejm.gov.pl

Members, votes, committees

🇵🇱 Poland

Sejm MCP

api.sejm.gov.pl

Parliament data + legislation

🇮🇱 Israel

Knesset MCP Server

knesset.gov.il

Knesset parliament API

🇧🇷 Brazil

Senado BR MCP

senado.leg.br

Federal Senate — members, proposals, votes

📊 Government Open Data MCP Servers

Country

Server

Data Source

Coverage

🇺🇸 United States

USA Spending MCP

usaspending.gov

Federal spending data

🇺🇸 United States

Open Census MCP

census.gov

Demographics & statistics (natural language)

🇺🇸 United States

Data.gov MCP Server

data.gov

Federal dataset catalog

🇺🇸 United States

CMS Data.gov MCP

data.cms.gov

Healthcare data — search/filter/pagination

🇺🇸 United States

SEC EDGAR MCP

sec.gov

SEC filings — annual reports, insider data

🇺🇸 United States

NPS MCP

nps.gov

National Park Service API

🇸🇪 Sweden

SCB MCP Server

scb.se

Official Swedish statistics

🇸🇪 Sweden

Skolverket MCP

skolverket.se

Swedish National Agency for Education

🇫🇷 France

data.gouv.fr MCP

data.gouv.fr

National open data platform

🇫🇷 France

Data Gouv MCP Server

data.gouv.fr

Companies & organizations search

🇬🇧 United Kingdom

Planning Data MCP

planning.data.gov.uk

Planning & land use data

🇬🇧 United Kingdom

Property Prices MCP

landregistry.data.gov.uk

Housing price search

🇳🇱 Netherlands

CBS Open Data MCP

cbs.nl

Dutch statistics bureau

🇮🇱 Israel

Data.gov.il MCP

data.gov.il

National CKAN data portal

🇮🇱 Israel

DataGov Israel MCP

data.gov.il

Alternative implementation + visualization

🇮🇱 Israel

Israel Statistics MCP

cbs.gov.il

CPI & economic time series

🇮🇱 Israel

BudgetKey MCP

open-budget.org.il

State budget, contracts, grants

🇹🇷 Turkey

Mevzuat MCP

mevzuat.gov.tr

Legislation system — search/retrieve laws

🇭🇰 Hong Kong

HK Data.gov.hk MCP

data.gov.hk

Hong Kong open data portal

🇲🇾 Malaysia

Data.gov.my MCP

data.gov.my

National data portal

🇮🇳 India

Data.gov.in MCP

data.gov.in

Semantic search + dataset access

🇸🇬 Singapore

Gahmen MCP Server

data.gov.sg

Government datasets + CKAN search

🇸🇬 Singapore

Singapore Data MCPs

data.gov.sg

Multiple servers (parking, health, datasets)

🇦🇺 Australia

ABS MCP Server

abs.gov.au

Bureau of Statistics (SDMX-ML)

🌍 Multi-Portal & Generic MCP Servers

Scope

Server

Platform

Coverage

🌐 Global (CKAN)

CKAN MCP Server

CKAN portals

Generic server for any CKAN-based open data portal

🌐 Global (Socrata)

OpenGov MCP Server

Socrata portals

City/county/state/federal Socrata-powered portals

🕵️ OSINT Intelligence Capabilities Comparison

Capability

🇪🇺 EU Parliament MCP

🇺🇸 Congress.gov MCP

🇬🇧 UK Parliament MCP

🇸🇪 Riksdag MCP

Member profiling

✅ 5-dimension influence model

✅ Basic profiles

✅ Basic profiles

✅ Basic profiles

Voting analysis

✅ Anomaly detection + patterns

✅ Roll call votes

✅ Division records

✅ Vote records

Coalition dynamics

✅ Cohesion & stress analysis

Committee intelligence

✅ Workload & engagement metrics

✅ Committee data

✅ Committee data

Legislative pipeline

✅ Bottleneck detection + forecasting

✅ Bill tracking

✅ Bill tracking

✅ Bill tracking

Country delegation analysis

✅ National cohesion metrics

N/A

N/A

N/A

Political landscape

✅ Parliament-wide situational awareness

Attendance tracking

✅ Trend detection + engagement scoring

GDPR compliance

✅ Privacy-first design

N/A

N/A

MCP prompts & resources

✅ 7 prompts + 9 resources

Tool count

63 tools

~5 tools

~5 tools

~4 tools

💡 The European Parliament MCP Server offers the most comprehensive OSINT intelligence capabilities of any political MCP server, with 63 specialized tools including advanced analytics like coalition stress analysis, voting anomaly detection, cross-tool intelligence correlation, political landscape generation, and precomputed longitudinal statistics. It is the only political MCP server with built-in MCP prompts, resources, and a 5-dimension MEP influence scoring model.


🏛️ European Parliament Datasets

Complete EP API v2 Coverage

All 55 European Parliament Open Data API v2 endpoints are fully covered — 41 core data endpoints, 13 feed endpoints, and 1 optional endpoint (/procedures/{id}/events/{event-id}):

Category

Endpoints

MCP Tools

MEPs

/meps, /meps/{id}, /meps/show-current, /meps/show-incoming, /meps/show-outgoing, /meps/show-homonyms

get_meps, get_mep_details, get_current_meps, get_incoming_meps, get_outgoing_meps, get_homonym_meps

MEP Documents

/meps-declarations, /meps-declarations/{id}

get_mep_declarations

Corporate Bodies

/corporate-bodies, /corporate-bodies/{id}, /corporate-bodies/show-current

get_committee_info

Events

/events, /events/{id}

get_events

Meetings

/meetings, /meetings/{id}, /meetings/{id}/activities, /meetings/{id}/decisions, /meetings/{id}/foreseen-activities, /meetings/{id}/vote-results, /meetings/{id}/plenary-session-documents, /meetings/{id}/plenary-session-document-items

get_plenary_sessions, get_meeting_activities, get_meeting_decisions, get_meeting_foreseen_activities, get_voting_records, get_meeting_plenary_session_documents, get_meeting_plenary_session_document_items

Speeches

/speeches, /speeches/{id}

get_speeches

Procedures

/procedures, /procedures/{id}, /procedures/{id}/events, /procedures/{id}/events/{event-id}

get_procedures, get_procedure_events, get_procedure_event_by_id

Documents

/documents, /documents/{id}, /adopted-texts, /adopted-texts/{id}, /committee-documents, /committee-documents/{id}, /plenary-documents, /plenary-documents/{id}, /plenary-session-documents, /plenary-session-documents/{id}, /plenary-session-documents-items

search_documents, get_adopted_texts, get_committee_documents, get_plenary_documents, get_plenary_session_documents, get_plenary_session_document_items

Questions

/parliamentary-questions, /parliamentary-questions/{id}

get_parliamentary_questions

External Documents

/external-documents, /external-documents/{id}

get_external_documents

Vocabularies

/controlled-vocabularies, /controlled-vocabularies/{id}

get_controlled_vocabularies

Feed Endpoints

/meps/feed, /events/feed, /procedures/feed, /adopted-texts/feed, /meps-declarations/feed, /documents/feed, /plenary-documents/feed, /committee-documents/feed, /plenary-session-documents/feed, /external-documents/feed, /parliamentary-questions/feed, /corporate-bodies/feed, /controlled-vocabularies/feed

get_meps_feed, get_events_feed, get_procedures_feed, get_adopted_texts_feed, get_mep_declarations_feed, get_documents_feed, get_plenary_documents_feed, get_committee_documents_feed, get_plenary_session_documents_feed, get_external_documents_feed, get_parliamentary_questions_feed, get_corporate_bodies_feed, get_controlled_vocabularies_feed

Data Source


🔒 Security & Compliance

ISMS Compliance

This project aligns with Hack23 AB's Information Security Management System (ISMS):

  • ISO 27001:2022 - Information security management

  • NIST CSF 2.0 - Cybersecurity framework

  • CIS Controls v8.1 - Security best practices

  • GDPR - EU data protection compliance

Security Features

  • 🔐 Authentication: API key + OAuth 2.0 (planned)

  • 🛡️ Input Validation: Zod schemas for all inputs

  • Rate Limiting: 100 requests per minute

  • 🔒 Security Headers: CSP, HSTS, X-Frame-Options, etc.

  • 📝 Audit Logging: All data access logged

  • 🔍 Vulnerability Scanning: CodeQL, Dependabot, OSSF Scorecard

Supply Chain Security

This project achieves SLSA Level 3 compliance:

  • Build Provenance - Cryptographic proof of build integrity

  • Attestations - All artifacts cryptographically signed

  • Verification - gh attestation verify <artifact> --owner Hack23 --repo European-Parliament-MCP-Server

  • npm Provenance - Published with provenance for package integrity

  • SBOM - SPDX-format Software Bill of Materials

  • Dependency Review - Automated vulnerability scanning

  • License Compliance - Only MIT, Apache-2.0, BSD, ISC allowed

See ATTESTATIONS.md for verification instructions and security benefits.

📋 Project Classification

Per Hack23 Open Source Policy:

Property

Value

CRA Classification

Standard Non-commercial Open Source Software

Confidentiality

Public

Integrity

Moderate

Availability

Standard

See CRA-ASSESSMENT.md for the full EU Cyber Resilience Act conformity assessment.


🧪 Development

Setup Development Environment

# Install dependencies
npm install

# Run in development mode with auto-reload
npm run dev

# Type checking
npm run type-check

# Linting
npm run lint

# Format code
npm run format

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

Project Structure

European-Parliament-MCP-Server/
├── src/                      # Source code
│   ├── server.ts            # MCP server entry point
│   ├── tools/               # MCP tool implementations
│   ├── resources/           # MCP resource handlers
│   ├── prompts/             # MCP prompt templates
│   ├── clients/             # European Parliament API client
│   ├── schemas/             # Zod validation schemas
│   ├── types/               # TypeScript type definitions
│   └── utils/               # Utility functions
├── tests/                   # Test files
├── .github/                 # GitHub configuration
│   ├── agents/             # Custom Copilot agents
│   ├── skills/             # Reusable skill patterns
│   └── workflows/          # CI/CD workflows
└── docs/                    # Additional documentation

Documentation

📚 Developer Documentation

🏗️ Architecture & Design

  • Architecture Documentation - System architecture and design patterns

  • Data Model - Data structures and type definitions

  • API Usage Guide - Guide for using the MCP server API

  • EP Political Landscape - 📊 Comprehensive Mermaid visualization of all EP statistics (2004–2026), political compass, coalition dynamics, and OSINT intelligence metrics — all years validated against EP API v2

🧪 Testing & Quality

🔒 Security & Compliance

📦 Deployment & Operations

Testing

# Unit tests
npm test

# Integration tests (requires EP_INTEGRATION_TESTS=true)
EP_INTEGRATION_TESTS=true npm run test:integration

# Integration tests with fixture capture
EP_INTEGRATION_TESTS=true EP_SAVE_FIXTURES=true npm run test:integration

# E2E tests
npm run test:e2e

# Coverage report
npm run test:coverage

# Watch mode
npm run test:watch

Integration Testing: When EP_INTEGRATION_TESTS=true, the integration test suite validates 46 MCP tools against the real European Parliament API endpoints (see INTEGRATION_TESTING.md for the complete 62-tool coverage guide). All tools return real data — no mock or placeholder data is used. Live API tests are disabled by default to respect rate limits (100 req/min).

Code Quality

# Lint code
npm run lint

# Fix linting issues
npm run lint:fix

# Check for unused dependencies
npm run knip

# Security audit
npm audit

# License compliance
npm run test:licenses

# Mermaid diagram validation (parses every ```mermaid block in *.md)
npm run test:mermaid

🛠️ Troubleshooting

API Rate Limits

Symptom: Requests return 429 Too Many Requests or slow down unexpectedly.

The European Parliament Open Data API enforces rate limits. The MCP server automatically applies a token-bucket rate limiter (100 requests per minute).

Solutions:

# Reduce concurrency — don't call multiple tools in parallel bursts
# Use the built-in cache — repeated identical requests are served from LRU cache
# Add a delay between bulk operations:
# e.g., call get_meps, wait 1 s, then call get_mep_details

# Check current cache stats (if using programmatic access):
const stats = epClient.getCacheStats();
console.log(`Cache hit rate: ${stats.hitRate}%`);

Connectivity Issues

Symptom: ECONNREFUSED, ETIMEDOUT, or Network error from tools.

Solutions:

  1. Verify EP API reachability: curl https://data.europarl.europa.eu/api/v2/meps?limit=1

  2. Check firewall / proxy settings — the server connects outbound to data.europarl.europa.eu:443

  3. Enable retry (default: on) — the client retries transient failures with exponential backoff

  4. Review API status at https://data.europarl.europa.eu/en/developer-corner

Installation Problems

Symptom: npm install fails, or node dist/index.js throws import errors.

Solutions:

# Ensure Node.js 26+ is installed
node --version   # Must be >= 26.0.0

# Clear npm cache and reinstall
npm cache clean --force
rm -rf node_modules package-lock.json
npm install

# Rebuild TypeScript output
npm run build

# Verify the package starts correctly
node dist/index.js --version

Symptom: MCP client shows "server not found" or no tools listed.

Solutions:

  • Confirm the command path in your MCP client config points to the correct binary

  • For npx: ensure european-parliament-mcp-server is in your npm registry

  • For node: use the absolute path to dist/index.js

  • Check MCP client logs — most clients (Claude Desktop, VS Code) log connection errors

Integration Test Failures

Symptom: Integration tests fail with EP_INTEGRATION_TESTS must be set.

Integration tests are disabled by default to respect API rate limits.

# Enable integration tests explicitly:
EP_INTEGRATION_TESTS=true npm run test:integration

# Capture fresh fixtures for offline testing:
EP_INTEGRATION_TESTS=true EP_SAVE_FIXTURES=true npm run test:integration

TypeScript / Build Errors

Symptom: tsc reports type errors after pulling latest changes.

# Regenerate all types
npm run type-check

# Check for mismatched Node types
npm install  # updates @types/node

# Ensure tsconfig is correct
cat tsconfig.json

Getting Help


🤝 Contributing

We welcome contributions! Please see CONTRIBUTING.md for details on:

  • Code of conduct

  • Development process

  • Pull request guidelines

  • Coding standards

  • Testing requirements

GitHub Copilot Integration

This repository includes custom agents and skills for GitHub Copilot:

Release Process

We follow Semantic Versioning and use automated release management:

Version Types:

  • Major (x.0.0): Breaking changes (e.g., API incompatible changes)

  • Minor (0.x.0): New features, backward compatible (e.g., new MCP tools)

  • Patch (0.0.x): Bug fixes, security updates, backward compatible

Automated Release Workflow:

  1. Develop features in feature branches

  2. Create PR with descriptive title using Conventional Commits

  3. Labels are automatically applied based on changed files

  4. After merge to main, release draft is automatically created

  5. Review and publish release (creates git tag automatically)

Release Notes Include:

  • Categorized changes by feature area

  • Security badges (OpenSSF Scorecard, SLSA)

  • Technology stack and compatibility

  • ISMS compliance status

  • Full changelog link

For detailed workflow documentation, see .github/WORKFLOWS.md.


🤖 AI-Disrupted Intelligence & Future Roadmap

📰 News is dead. Long live intelligence.

While the world's newsrooms race to replace journalists with GPT-powered headline factories — churning out "10 Things the EU Did Today" listicles at the speed of hallucination — we took a different path. Instead of automating the news ticker, we built a political intelligence platform that actually understands what the European Parliament does. Disrupted news generation produces noise; deep political intelligence produces signal. Any chatbot can summarize a press release. It takes 62 MCP tools, 15 OSINT analyzers, and a 5-dimension influence model to tell you which MEP quietly brokered the amendment that changed the directive that reshaped an industry — three months before the newspapers notice.

This is not a news bot. This is parliamentary intelligence infrastructure.

🏗️ Agentic Architecture Overview

This repository is powered by a comprehensive AI-augmented development ecosystem — 14 specialized Copilot agents, 41 reusable skills, and 11 CI/CD workflows — working in concert to maintain, analyze, and evolve the most advanced political MCP server in existence.

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#6366f1', 'primaryTextColor': '#fff', 'primaryBorderColor': '#4f46e5', 'lineColor': '#94a3b8', 'secondaryColor': '#f59e0b', 'tertiaryColor': '#10b981', 'background': '#0f172a', 'mainBkg': '#1e293b', 'nodeBorder': '#475569'}}}%%
graph TB
    subgraph AGENTS["🤖 14 Copilot Agents"]
        style AGENTS fill:#1e1b4b,stroke:#6366f1,color:#e0e7ff
        A1["🎯 product-task-agent"]
        A2["📝 documentation-writer"]
        A3["🔧 frontend-specialist"]
        A4["🔌 api-integration-engineer"]
        A5["⚙️ mcp-developer"]
        A6["🛡️ security-specialist"]
        A7["🧪 test-engineer"]
        A8["🕵️ intelligence-operative"]
        A9["🏛️ european-parliament-specialist"]
        A10["📊 performance-optimizer"]
        A11["📋 isms-compliance-auditor"]
        A12["💼 business-development-specialist"]
        A13["📣 marketing-specialist"]
        A14["🧩 zod-schema-architect"]
    end

    subgraph SKILLS["🎯 41 Reusable Skills"]
        style SKILLS fill:#1c1917,stroke:#f59e0b,color:#fef3c7
        S1["🔧 10 Core Dev Skills"]
        S2["🛡️ 6 Security Skills"]
        S3["⚙️ 4 DevOps Skills"]
        S4["🔍 10 Intel & OSINT Skills"]
        S5["💼 2 Business Skills"]
        S6["🤖 3 AI & MCP Gateway Skills"]
        S7["📋 6 ISMS Compliance Skills"]
    end

    subgraph WORKFLOWS["⚙️ 11 CI/CD Workflows"]
        style WORKFLOWS fill:#022c22,stroke:#10b981,color:#d1fae5
        W1["🧪 test-and-report"]
        W2["🔍 codeql"]
        W3["📦 release"]
        W4["🌐 integration-tests"]
        W5["📋 sbom-generation"]
        W6["🔒 slsa-provenance"]
        W7["📊 scorecard"]
        W8["🔎 dependency-review"]
        W9["🏷️ labeler"]
        W10["⚙️ setup-labels"]
        W11["🤖 copilot-setup-steps"]
    end

    subgraph TOOLS["🔌 62 MCP Tools"]
        style TOOLS fill:#172554,stroke:#3b82f6,color:#dbeafe
        T1["🕵️ 15 OSINT Intelligence"]
        T2["📊 3 Advanced Analysis + 1 Diagnostics"]
        T3["👤 7 MEP Data"]
        T4["🏛️ 9 Plenary & Meeting"]
        T5["📄 12 Document, Committee & Legislative"]
    end

    AGENTS --> SKILLS
    AGENTS --> TOOLS
    SKILLS --> WORKFLOWS
    WORKFLOWS --> TOOLS

📅 Future Advanced Roadmap: 2026–2037

From 62 MCP tools today to a transformative democratic intelligence platform serving all 195 parliamentary systems — powered by the relentless march of AI model generations.

Phase 5: Advanced Intelligence (2026–2027)

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#6366f1', 'primaryTextColor': '#fff', 'primaryBorderColor': '#4f46e5', 'lineColor': '#94a3b8', 'secondaryColor': '#22d3ee', 'tertiaryColor': '#10b981'}}}%%
timeline
    title 2026–2027 · Advanced Intelligence Era
    section Q1–Q2 2026
        Agentic News Generation : Opus 4.6–4.7
        : AI-generated parliamentary briefings
        : Automated committee intelligence reports
        : Real-time vote analysis summaries
    section Q3–Q4 2026
        Deep Analysis Pipelines : Opus 4.8–4.9
        : Cross-institutional correlation engine
        : MEP behavioral prediction models
        : Legislative outcome forecasting
    section Q1–Q2 2027
        Predictive Analytics : Opus 5.0–5.1
        : Coalition formation prediction
        : Amendment survival probability
        : Policy impact pre-assessment
    section Q3–Q4 2027
        Multi-source Intelligence : Opus 5.2–5.3
        : EUR-Lex deep integration
        : Council position analysis
        : Commission proposal tracking

Phase 6: AGI Era & Transformative Democracy (2034–2037)

Scenario: AGI or near-AGI systems become available through Amazon Bedrock or successor platforms

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#a855f7', 'primaryTextColor': '#fff', 'lineColor': '#c084fc', 'secondaryColor': '#f59e0b', 'tertiaryColor': '#ec4899'}}}%%
mindmap
  root(("🌐 AGI Era\n2034–2037"))
    🤖 AGI-Enhanced Intelligence
      Autonomous real-time analysis
        All 195 parliamentary systems
        Every legislative session globally
        Sub-second pattern detection
      Universal language support
        All UN official languages
        Regional dialects & legal terminology
        Real-time translation & summarization
    📊 Predictive Governance
      Policy impact prediction
        Before legislation is proposed
        Economic modeling integration
        Social impact forecasting
      Democratic health monitoring
        Voter engagement indices
        Institutional resilience scores
        Democratic backsliding alerts
    ⚖️ Ethical AI Governance
      Human oversight maintained
        Regardless of AI capability level
        Escalation protocols for critical decisions
        Transparency reports on AI judgments
      Bias detection & correction
        Multi-cultural fairness auditing
        Political neutrality verification
        Algorithmic accountability logs
    🛡️ Democratic Safeguards
      Anti-weaponization architecture
        Platform prevents manipulation
        Disinformation detection layer
        Foreign influence monitoring
      Sovereignty protection
        EU data sovereignty enforced
        Quantum-resistant encryption
        Air-gapped government deployments

🧬 AI Model Evolution Strategy

Assumptions: Anthropic Opus minor updates every ~2.3 months through 2037 (or until successor paradigm). Major version upgrades annually. Competitors (OpenAI, Google, Meta, EU sovereign AI) evaluated at each major release. Architecture must accommodate potential paradigm shifts (quantum AI, neuromorphic computing).

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#6366f1', 'primaryTextColor': '#fff', 'primaryBorderColor': '#4f46e5', 'lineColor': '#94a3b8', 'secondaryColor': '#f59e0b', 'tertiaryColor': '#10b981'}}}%%
gantt
    title AI Model Evolution & Platform Capability Growth
    dateFormat YYYY
    axisFormat %Y
    todayMarker off

    section AI Models
    Opus 4.6–4.9        :a1, 2026, 2027
    Opus 5.x             :a2, 2027, 2028
    Opus 6.x Multimodal  :a3, 2028, 2029
    Opus 7.x Autonomous  :a4, 2029, 2030
    Opus 8.x Near-Expert :a5, 2030, 2031
    Opus 9–10.x Pre-AGI  :a6, 2031, 2034
    AGI / Post-AGI       :a7, 2034, 2037

    section Platform Phases
    Phase 5 Advanced Intel     :p5, 2026, 2028
    Phase 5b Predictive        :p5b, 2028, 2030
    Phase 5c Autonomous        :p5c, 2030, 2031
    Phase 6 Pre-AGI Global     :p6a, 2031, 2034
    Phase 6 AGI Transformative :p6b, 2034, 2037

📊 Workflow Count & Capability Projection

Baseline: 11 GitHub Actions workflows today. Projected growth includes AI-generated workflows, scheduled intelligence pipelines, multi-environment deployment chains, and automated OSINT processing — see FUTURE_WORKFLOWS.md for detailed expansion plans.

Year

Total Workflows

AI Model

Key Capability

Tools

2026

44–50

Opus 4.6–4.9

🤖 Agentic news generation, AI-authored briefings

46→55

2027

50–55

Opus 5.x

📈 Predictive analytics, coalition forecasting

55→65

2028

55–65

Opus 6.x

🎥 Multi-modal content, video/speech analysis

65→80

2029

65–75

Opus 7.x

⚡ Autonomous pipeline, self-optimizing CI/CD

80→90

2030

75–85

Opus 8.x

🧠 Near-expert analysis, domain specialist AI

90→100

2031–2033

85–100

Opus 9–10.x / Pre-AGI

🌍 Global coverage, all EU national parliaments

100→120

2034–2037

100–120+

AGI / Post-AGI

🌐 Transformative platform, 195 parliaments

120→200+

🔮 Strategic Considerations

Pillar

Description

Safeguard

🤖 Autonomous Analysis

AGI-powered real-time political intelligence across all 195 parliamentary systems

Human analyst review for high-stakes assessments

🌐 Universal Language

Every UN language supported natively with legal terminology precision

Multi-cultural fairness auditing at every release

📊 Predictive Governance

Policy impact prediction before legislation is proposed

Confidence intervals and uncertainty quantification mandatory

⚖️ Ethical AI Governance

Human oversight maintained regardless of AI capability level

ISMS-aligned escalation protocols, transparency reports

🛡️ Democratic Safeguards

Platform architecture prevents weaponization or manipulation

Quarterly red-team exercises, sovereignty-first data policies

🗺️ Extended Roadmap Visualization

%%{init: {'theme': 'base', 'themeVariables': {'primaryColor': '#6366f1', 'primaryTextColor': '#fff', 'lineColor': '#94a3b8'}}}%%
graph LR
    subgraph Y2026["2026"]
        style Y2026 fill:#1e40af,stroke:#3b82f6,color:#dbeafe
        Y26["🤖 Opus 4.6–4.9\n44–50 workflows\nAgentic news gen"]
    end
    subgraph Y2027["2027"]
        style Y2027 fill:#1e3a8a,stroke:#3b82f6,color:#dbeafe
        Y27["📈 Opus 5.x\n50–55 workflows\nPredictive analytics"]
    end
    subgraph Y2028["2028"]
        style Y2028 fill:#312e81,stroke:#6366f1,color:#e0e7ff
        Y28["🎥 Opus 6.x\n55–65 workflows\nMulti-modal content"]
    end
    subgraph Y2029["2029"]
        style Y2029 fill:#4c1d95,stroke:#8b5cf6,color:#ede9fe
        Y29["⚡ Opus 7.x\n65–75 workflows\nAutonomous pipeline"]
    end
    subgraph Y2030["2030"]
        style Y2030 fill:#581c87,stroke:#a855f7,color:#f3e8ff
        Y30["🧠 Opus 8.x\n75–85 workflows\nNear-expert analysis"]
    end
    subgraph Y2031_33["2031–33"]
        style Y2031_33 fill:#701a75,stroke:#d946ef,color:#fae8ff
        Y31["🌍 Pre-AGI\n85–100 workflows\nGlobal coverage"]
    end
    subgraph Y2034_37["2034–37"]
        style Y2034_37 fill:#831843,stroke:#ec4899,color:#fce7f3
        Y34["🌐 AGI Era\n100–120+ workflows\nTransformative platform"]
    end

    Y26 --> Y27 --> Y28 --> Y29 --> Y30 --> Y31 --> Y34

📚 Future Architecture Documents

For deep dives into specific evolution tracks, see:

Document

Focus

Link

📊 EP Political Landscape

OSINT intelligence dashboard (2004–2026) — seat composition, fragmentation, political compass, coalition dynamics, derived metrics; all years validated against EP API v2

EP_POLITICAL_LANDSCAPE.md

🧠 Future Mind Map

Capability expansion vision, AI analysis, OSINT evolution

FUTURE_MINDMAP.md

⚙️ Future Workflows

CI/CD evolution, AI-augmented pipelines, 2027–2037 roadmap

FUTURE_WORKFLOWS.md

🏛️ Future Architecture

Platform architecture evolution, AWS deployment, federation

FUTURE_ARCHITECTURE.md

🛡️ Future Security

Security maturity roadmap, quantum-ready encryption

FUTURE_SECURITY_ARCHITECTURE.md

📊 Future Data Model

Enhanced data structures, graph databases, temporal models

FUTURE_DATA_MODEL.md

💼 Future SWOT

Strategic positioning, competitive analysis, market evolution

FUTURE_SWOT.md


📜 License

This project is licensed under the Apache License 2.0 - see LICENSE.md for details.


Project Resources

Hack23 Ecosystem

European Parliament

MCP Protocol

MCP Registries

Political & Government MCP Servers

Hack23 ISMS


🙏 Acknowledgments

  • European Parliament for providing open data access

  • Model Context Protocol team for the MCP specification

  • Hack23 AB for ISMS policies and security standards

  • OpenSSF for supply chain security tools

  • Contributors who help improve this project


A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
1dResponse time
1dRelease cycle
112Releases (12mo)
Commit activity
Issues opened vs closed

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Hack23/european-parliament-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server