🇪🇺

EU-parlamentet MCP Server-funktioner Latest

Full Model Context Protocol implementation for AI-powered access to EU-parlamentet open datasets. TypeScript, SLSA Nivå 3, ISMS compliant.

GitHub Release License OpenSSF Scorecard SLSA 3 Verify & Release npm version

Platform Overview

The EU-parlamentet MCP Server is an open-source TypeScript/Node.js implementation of the Model Context Protocol (MCP) designed to give AI assistants structured, programmatic access to EU-parlamentet open datasets. It connects to the official EU-parlamentet Open Data API (data.europarl.europa.eu) and exposes a comprehensive suite of purpose-built tools — covering OSINT intelligence, data access, and analytics — across the full breadth of parliamentary activity.

The server achieves SLSA Nivå 3 supply chain security, ships with an extensive automated test suite (unit + end-to-end), and is fully compliant with ISO 27001:2022, NIST CSF 2.0, CIS Controls v8.1, and GDPR. Install via npm and start querying EU-parlamentet data through your AI assistant.

CodeQL SecurityOpenSSF ScorecardSLSA Nivå 3 npm versionDeepWiki
📦 npm Package 📖 TypeDoc 📚 DeepWiki

Key Features

🔌 Full MCP Protocol Implementation

Complete Model Context Protocol implementation with 9 specialized tools, resource definitions, and tool schemas compatible with all MCP-enabled AI clients.

🇪🇺 EU-parlamentet Data Access

Direct integration with the official EU-parlamentet Open Data API for MEPs, sessions, voting, committees, documents, and questions.

📘 TypeScript Type Safety

Fully typed TypeScript codebase with strict mode enabled. All API contracts validated with Zod schemas for runtime type safety.

🛡️ SLSA Nivå 3 Security

Build provenance attestations, OpenSSF Scorecard validation, dependency security auditing, and automated vulnerability scanning.

🧪 High Test Coverage

268 unit tests and 23 E2E integration tests maintaining 80%+ code coverage with automated CI quality gates.

🔒 Security Controls

Rate limiting, security headers, Zod input validation, audit logging, and dependency pinning for enterprise-grade security posture.

📦 npm Distribution

Published to npm as european-parliament-mcp-server for simple installation and integration into existing AI workflows.

📋 ISMS Documentation

Complete ISMS documentation including threat model, security architecture, BCP, CRA assessment, and financial security plan.

🔧 Extensible Architecture

Modular TypeScript architecture enabling easy addition of new EU-parlamentet data endpoints and custom tool implementations.

MCP Tools

The server implements 9 specialized MCP tools providing comprehensive access to EU-parlamentet data:

👤 get_meps

Retrieve Member of EU-parlamentet (MEP) profiles with optional filtering by country, political group, and committee. Returns full contact information, group affiliations, and committee memberships.

📅 get_plenary_sessions

Access plenary session records and agendas. Filter by date range to retrieve historical and upcoming session information including agenda items and outcomes.

🗳️ get_voting_records

Query detailed voting records for any legislative vote. Retrieve individual MEP votes, vote totals by political group, and legislative context for accountability research.

🔍 search_documents

Full-text search across the EU-parlamentet document repository including reports, opinions, resolutions, and legislative texts. Filter by type, date, and committee origin.

🏛️ get_committee_info

Access detailed utskottsinformation including full membership lists, mandate descriptions, rapporteur assignments, and recent committee activities and opinions.

❓ get_parliamentary_questions

Retrieve written and oral parlamentsfrågor submitted by MEPs along with official responses from the European Commission and Council of the EU.

📊 analyze_voting_patterns

Analyze röstmönster across political groups, countries, and legislative topics. Identify cohesion rates, cross-group alliances, and MEP voting consistency over time.

📋 track_legislation

Track legislative procedures from initial proposal through committee review, amendments, readings, and final vote. Monitor progress of specific dossiers and identify key decision points.

📄 generate_report

Generate structured AI-ready reports on parliamentary activity, MEP profiles, voting summaries, and political group analyses formatted for consumption by AI assistants and humans alike.

Security Features

The EU-parlamentet MCP Server implements enterprise-grade security controls aligned with ISMS best practices:

🚦 Rate Limiting

  • Configurable request rate limits per client
  • Sliding window rate limiting algorithm
  • Graceful throttling with informative error messages
  • Protection against API quota exhaustion

✅ Zod Validation

  • Schema validation for all MCP tool inputs
  • Type-safe API response parsing
  • Strict mode TypeScript throughout
  • Runtime type coercion and sanitization

🔒 Security Headers

  • Content Security Policy (CSP)
  • HSTS for transport security
  • X-Frame-Options and X-Content-Type-Options
  • Dependency pinning and supply chain integrity

📋 Audit Logging

  • Structured JSON audit logs for all tool invocations
  • Request/response logging for debugging
  • Error tracking and alerting
  • GDPR-compliant data handling in logs

ISMS Compliance

The EU-parlamentet MCP Server is fully aligned with the Hack23 ISMS framework and international security standards:

🌍 ISO 27001:2022

Information Security Management System compliance with documented security controls, risk assessments, and continuous improvement processes.

🇺🇸 NIST CSF 2.0

Cybersecurity Framework alignment across all six functions: Govern, Identify, Protect, Detect, Respond, and Recover.

🔒 CIS Controls v8.1

Implementation of prioritized CIS security controls for hardened configuration and continuous monitoring.

🇪🇺 GDPR

General Data Protection Regulation compliance for processing publicly available EU-parlamentet data with privacy-by-design principles.

Data Model Overview

The server provides structured access to the following EU-parlamentet data domains:

MEP Data

Comprehensive MEP information enabling political analysis and accountability research:

  • Profile: Name, nationality, date of birth, political biography
  • Affiliation: Political group, national party, constituency
  • Committees: Full and substitute member positions
  • Contact: Official EU-parlamentet contact information

Plenary & Voting Data

Complete plenary session and voting record data for transparency and accountability:

  • Sessions: Agenda, dates, location (Strasbourg/Brussels)
  • Votes: Individual MEP votes, for/against/abstain tallies
  • Context: Legislative dossier, committee recommendation, debate references

Documents & Questions

Access to the full parliamentary document repository and question archive:

  • Documents: Reports, opinions, resolutions, amendments
  • Questions: Written questions, oral questions, priority questions
  • Responses: Official Commission and Council responses