European Parliament MCP Server API - v1.0.1
    Preparing search index...

    European Parliament MCP Server API - v1.0.1

    Hack23 Logo

    ๐Ÿ›๏ธ European Parliament MCP Server

    Model Context Protocol Server for European Parliament Open Data
    Providing AI assistants with structured access to parliamentary datasets and OSINT Intelligence Capabilities

    European Parliament MCP Server

    Model Context Protocol Server for European Parliament Open Data โ€” providing AI assistants with structured access to MEPs, plenary sessions, committees, legislative documents, and parliamentary questions through a secure, type-safe TypeScript implementation.

    MEP influence scoring (5-dimension model), Coalition cohesion & stress analysis, Party defection & anomaly detection, Cross-group comparative analysis, MEP/committee legislative scoring, Pipeline status & bottleneck detection, Committee workload & engagement analysis, MEP attendance patterns & trends, Country delegation voting & composition, Parliament-wide political landscape

    ISMS Ask DeepWiki

    Test Coverage Unit Test Results E2E Test Results API Documentation Documentation Portal

    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.

    • ๐Ÿ”Œ Full MCP Implementation: 47 tools (7 core + 3 advanced analysis + 15 OSINT intelligence + 8 Phase 4 + 14 Phase 5), 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, 23 E2E tests
    • ๐Ÿ“š Complete Documentation: Architecture, TypeDoc API (HTML + Markdown), security guidelines

    This MCP server is part of Hack23's mission to disrupt journalism with AI-generated news coverage and real-time analysis of democratic governments โ€” increasing transparency and accountability through open-source intelligence.

    Hack23 builds open-source intelligence platforms that enable citizens, journalists, and researchers to monitor democratic institutions in real-time. By combining MCP servers, AI analysis, and open parliamentary data, we create automated intelligence products that were previously only available to well-funded lobbying organizations.

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

    EU Parliament Monitor

    European Parliament Intelligence Platform โ€” an automated multi-language news platform that monitors EU Parliament activities with 14-language support, covering plenary sessions, committee reports, propositions, and breaking news.

    OpenSSF Scorecard SLSA 3 News Generation Test and Report License ISMS Ask DeepWiki

    Riksdagsmonitor

    Swedish Parliament Intelligence Platform monitoring political activity in Sweden's Riksdag with systematic transparency through real-time analysis and 50+ years of historical data (1971-2024).

    OpenSSF Scorecard Quality Checks Dependency Review License ISMS Ask DeepWiki

    CIA Logo

    Political transparency platform monitoring Swedish political activity with data-driven insights, analytics, dashboard visualizations, and accountability metrics.

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


    Security Architecture Architecture Diagrams Workflows Documentation Performance Guide

    OpenSSF Scorecard SLSA 3 SBOM SBOM Quality Build Attestations

    ISO 27001 NIST CSF 2.0 CIS Controls GDPR


    • Node.js 24.x or higher
    • npm 10.x or higher
    • Git
    # 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
    # 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

    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"
    }
    }
    }
    }

    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"
    }
    }
    }
    }

    Configure in .vscode/mcp.json:

    {
    "servers": {
    "european-parliament": {
    "type": "stdio",
    "command": "node",
    "args": ["./dist/index.js"]
    }
    }
    }

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

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

    ๐Ÿ“– 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

    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)

    graph TB
        Client[MCP Client
    Claude / VS Code / Cursor] -->|MCP Protocol stdio| Server[EP MCP Server
    TypeScript/Node.js] subgraph "MCP Server (src/)" direction TB Tools[๐Ÿ”ง 46 Tools
    getMEPs ยท analyzeCoalition
    assessMepInfluence ยท โ€ฆ] Resources[๐Ÿ“ฆ 9 Resources
    ep://meps/{id}
    ep://procedures/{id} ยท โ€ฆ] Prompts[๐Ÿ’ฌ 7 Prompts
    mep_briefing
    coalition_analysis ยท โ€ฆ] end Server --> Tools Server --> Resources Server --> Prompts subgraph "Infrastructure" Cache[LRU Cache
    500 entries ยท 15 min TTL] RateLimiter[Rate Limiter
    100 req / 15 min] AuditLog[Audit Logger
    GDPR Article 30] end Tools --> EPClient[EuropeanParliamentClient
    Facade โ†’ 8 sub-clients] Resources --> EPClient EPClient --> Cache EPClient --> RateLimiter EPClient --> AuditLog EPClient -->|HTTPS/TLS 1.3| EPAPI[European Parliament
    Open Data API v2
    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.


    47 tools organized by capability โ€” OSINT intelligence first, then analytical, data access, and reference tools. Every tool includes Zod input validation, caching, and rate limiting.

    Tool Description Key Parameters Output
    correlate_intelligence Cross-tool OSINT correlation engine โ€” fuses influence, anomaly, coalition, and network signals into unified intelligence alerts toolOutputs, correlationMode Correlated alerts with severity & confidence
    assess_mep_influence MEP influence scoring (5-dimension model) mepId (required), dateFrom, dateTo Influence scorecard
    detect_voting_anomalies Party defection & anomaly detection mepId, politicalGroup, dateFrom Anomaly report
    analyze_coalition_dynamics Coalition cohesion & stress analysis politicalGroups, dateFrom, dateTo 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 groups (required), metrics, dateFrom Comparison matrix
    analyze_legislative_effectiveness MEP/committee legislative scoring subjectId (required), subjectType, dateFrom Effectiveness score
    monitor_legislative_pipeline Pipeline status & bottleneck detection committeeId, status, dateFrom 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
    Tool Description Key Parameters Output
    get_all_generated_stats Precomputed EP activity statistics (2004-2025) with rankings, predictions, and political landscape 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
    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 active mandates 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}
    Tool Description Key Parameters EP API Endpoint
    get_plenary_sessions List plenary sessions/meetings, or single by eventId dateFrom, dateTo, eventId, limit 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, dateFrom, dateTo, limit GET /speeches, GET /speeches/{id}
    get_events EP events (hearings, conferences, seminars) eventId, 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
    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}
    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}
    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_controlled_vocabularies Standardized classification terms vocId, limit GET /controlled-vocabularies, GET /controlled-vocabularies/{id}

    ๐Ÿ“– Complete TypeDoc API documentation โ†’ ยท Markdown API docs โ†’

    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 โ†’ {politicalGroups: ["EPP", "S&D"]}
    4. Compare groups: compare_political_groups โ†’ {groups: ["EPP", "S&D", "Renew"]}
    5. Pipeline status: monitor_legislative_pipeline โ†’ {committeeId: "ENVI"}
    6. Country delegation: analyze_country_delegation โ†’ {country: "SE"}
    7. Political landscape: generate_political_landscape โ†’ {}

    ๐ŸŽฏ More use cases and examples โ†’

    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?

    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

    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.

    Country Server Data Source Coverage
    ๐Ÿ‡ช๐Ÿ‡บ European Union European Parliament MCP Server data.europarl.europa.eu MEPs, votes, legislation, committees, questions โ€” 47 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
    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)
    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
    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 47 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 47 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.


    All European Parliament Open Data API v2 endpoint categories are fully covered:

    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 get_procedures, get_procedure_events
    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

    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
    • ๐Ÿ” Authentication: API key + OAuth 2.0 (planned)
    • ๐Ÿ›ก๏ธ Input Validation: Zod schemas for all inputs
    • โšก Rate Limiting: 100 requests per 15 minutes per IP
    • ๐Ÿ”’ Security Headers: CSP, HSTS, X-Frame-Options, etc.
    • ๐Ÿ“ Audit Logging: All data access logged
    • ๐Ÿ” Vulnerability Scanning: CodeQL, Dependabot, OSSF Scorecard

    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.


    # 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
    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
    # 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, all 47 MCP tools are tested against the real European Parliament API endpoints. 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/15min). See INTEGRATION_TESTING.md for the complete guide.

    # 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

    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 15 minutes).

    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}%`);

    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

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

    Solutions:

    # Ensure Node.js 24+ is installed
    node --version # Must be >= 24.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

    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

    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

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

    • Code of conduct
    • Development process
    • Pull request guidelines
    • Coding standards
    • Testing requirements

    This repository includes custom agents and skills for GitHub Copilot:

    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.


    ๐Ÿ“ฐ 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 47 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.

    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["๐Ÿ”Œ 47 MCP Tools"]
            style TOOLS fill:#172554,stroke:#3B82F6,color:#DBEAFE
            T1["๐Ÿ•ต๏ธ 15 OSINT Intelligence"]
            T2["๐Ÿ“Š 4 Advanced Analysis"]
            T3["๐Ÿ‘ค 7 MEP Data"]
            T4["๐Ÿ›๏ธ 9 Plenary & Meeting"]
            T5["๐Ÿ“„ 12 Document, Committee & Legislative"]
        end
    
        AGENTS --> SKILLS
        AGENTS --> TOOLS
        SKILLS --> WORKFLOWS
        WORKFLOWS --> TOOLS
    

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

    %%{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
    

    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
    

    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
    

    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+
    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
    %%{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
    

    For deep dives into specific evolution tracks, see:

    Document Focus Link
    ๐Ÿง  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

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



    • 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

    Built with โค๏ธ by Hack23 AB
    Demonstrating security excellence through transparent open source