European Parliament MCP Server
Provides comprehensive access to European Parliament open data, including MEP information, plenary sessions, committees, legislative documents, and parliamentary questions through OSINT analytics tools.
📊 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:#fffThis 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
🗳️ Riksdagsmonitor — riksdagsmonitor.com
Swedish Political Intelligence Platform — 🕵️ Political intelligence · 🔍 Democratic transparency · 🤖 AI-generated news · 📊 50+ years of evidence
🕵️ Citizen Intelligence Agency (CIA)
Political transparency platform — Java/Spring data backbone behind Riksdagsmonitor's historical evidence layer
🌍 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 · |
📜 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 |
🔗 Hack23 Portfolio Quick Links
🌐 Live platforms — euparliamentmonitor.com · riksdagsmonitor.com · hack23.github.io/cia · hack23.com
🧠 Political Intelligence Hubs — EU Parliament · Riksdag
📂 Source repositories — European-Parliament-MCP-Server · euparliamentmonitor · riksdagsmonitor · cia · ISMS-PUBLIC
📦 npm packages —
european-parliament-mcp-server·euparliamentmonitor·riksdagsmonitor📰 Blog & company — Hack23 blog · LinkedIn — Hack23 AB · founder James Pether Sörling, CISSP, CISM
🤖 AI-readable wikis — DeepWiki: European-Parliament-MCP-Server · DeepWiki: euparliamentmonitor · DeepWiki: riksdagsmonitor · DeepWiki: cia
🔐 Security & Compliance
🚀 Quick Start
Run with npx (No Installation Required)
npx -y european-parliament-mcp-serverPrerequisites
Node.js 26.x or higher
npm 10.x or higher
Installation
Option 1: Install from npm (Recommended)
# Install the package globally
npm install -g european-parliament-mcp-server
# Or install as a dependency in your project
npm install european-parliament-mcp-serverOption 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 testUsage 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/feedandevents/feedendpoints automatically use an extended 120 s timeout because these EP API endpoints are significantly slower than others. If you experience timeouts withone-monthtimeframes, 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
API Usage Guide - Complete tool documentation with examples
Architecture Diagrams - C4 model diagrams and data flows
Troubleshooting Guide - Common issues and solutions
Developer Guide - Development workflow and contributing
Deployment Guide - Claude Desktop, VS Code, Docker setup
Performance Guide - Optimization strategies
Documentation as Code Guide - How documentation is generated
Additional Documentation
ARCHITECTURE.md - Complete architecture and design documentation
SECURITY.md - Security policy and vulnerability disclosure
SECURITY_HEADERS.md - API security headers implementation
docs/SBOM.md - Software Bill of Materials documentation
CONTRIBUTING.md - Contribution guidelines
CODE_OF_CONDUCT.md - Community code of conduct
.github/copilot-instructions.md - Development guidelines for GitHub Copilot
.github/agents/README.md - Custom GitHub Copilot agents
.github/skills/README.md - Reusable skill patterns
🏗️ 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:#fffData 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 |
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 | |
MEP influence scoring (5-dimension model) | mepId (required), dateFrom, dateTo, includeDetails | Influence scorecard | |
Party defection & anomaly detection | mepId, groupId, sensitivityThreshold | Anomaly report | |
Coalition cohesion & stress analysis | groupIds, dateFrom, minimumCohesion | Coalition metrics | |
Detect emerging political shifts & coalition fractures | sensitivity, focusArea | Warnings with severity levels & stability score | |
Cross-reference 2–10 MEP activities across dimensions | mepIds (required), dimensions | Ranked profiles, correlation matrix, cluster analysis | |
MEP relationship network via committee co-membership | mepId, analysisType, depth | Network map with centrality scores | |
Political group institutional-positioning scores | groupId, timeframe | Positioning scores & polarization index | |
Parliament-wide political landscape | dateFrom, dateTo | Landscape overview | |
Cross-group comparative analysis | groupIds (required), dimensions, dateFrom | Comparison matrix | |
MEP/committee legislative scoring | subjectType (required), subjectId (required), dateFrom | Effectiveness score | |
Pipeline status & bottleneck detection | committee, status, limit | Pipeline status | |
Committee workload & engagement analysis | committeeId (required), dateFrom, dateTo | Activity report | |
MEP attendance patterns & trends | mepId, country, groupId, dateFrom, dateTo, limit | Attendance report | |
Country delegation voting & composition | country (required), dateFrom, dateTo | Delegation analysis |
📊 Advanced Analysis Tools (4)
Tool | Description | Key Parameters | Output |
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 MEP voting behavior | mepId (required), dateFrom, compareWithGroup | Analysis object | |
Track legislative procedure | procedureId (required) | Procedure object | |
Generate analytical reports | reportType (required), subjectId, dateFrom | Report object |
👤 MEP Tools (7)
Tool | Description | Key Parameters | EP API Endpoint |
List MEPs with filters | country, group, committee, limit |
| |
Detailed MEP information | id (required) |
| |
Currently active MEPs with country & political group | limit, offset |
| |
Newly arriving MEPs for current term | limit, offset |
| |
Departing MEPs for current term | limit, offset |
| |
MEPs with identical names (disambiguation) | limit, offset |
| |
MEP financial interest declarations | docId, year, limit |
|
🏛️ Plenary & Meeting Tools (9)
Tool | Description | Key Parameters | EP API Endpoint |
List plenary sessions/meetings, or single by eventId | dateFrom, dateTo, eventId, year, location |
| |
Retrieve aggregate voting records (no per‑MEP positions) | sessionId, topic, dateFrom |
| |
Plenary speeches and debate contributions | speechId, year, dateFrom, dateTo, limit |
| |
EP events (hearings, conferences, seminars) | eventId, year, dateFrom, dateTo, limit |
| |
Activities linked to a plenary sitting | sittingId (required), limit |
| |
Decisions made in a plenary sitting | sittingId (required), limit |
| |
Planned agenda items for upcoming meetings | sittingId (required), limit |
| |
Plenary session documents linked to a specific sitting | sittingId (required), limit, offset |
| |
Agenda item documents for a specific plenary sitting | sittingId (required), limit, offset |
|
🏢 Committee Tools (2)
Tool | Description | Key Parameters | EP API Endpoint |
Committee/corporate body info, or all current bodies | id, abbreviation, showCurrent |
| |
Committee documents and drafts | docId, year, limit |
|
📄 Document Tools (7)
Tool | Description | Key Parameters | EP API Endpoint |
Search documents or get single by docId | keyword, docId, documentType, dateFrom |
| |
Adopted legislative texts and resolutions | docId, year, limit |
| |
Plenary legislative documents | docId, year, limit |
| |
Session agendas, minutes, voting lists | docId, limit |
| |
Individual items within session documents | limit, offset |
| |
Non-EP documents (Council, Commission) | docId, year, limit |
| |
Parliamentary Q&A, or single by docId | type, author, topic, docId |
|
⚖️ Legislative Procedure Tools (4)
Tool | Description | Key Parameters | EP API Endpoint |
Legislative procedures, or single by processId | processId, year, limit |
| |
Timeline events for a legislative procedure | processId (required), limit |
| |
Specific event linked to a legislative procedure | processId (required), eventId (required) |
| |
Standardized classification terms | vocId, limit |
|
📡 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) + optionalstartDateFixed-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[], anddataQualityWarnings[]Empty feeds (EP API 404 or error-in-body) are converted to empty
data[]with a warning — not errors
get_events_feedandget_procedures_feedalways use a minimum 120s timeout because these endpoints are consistently slowFixed-window feeds can be very slow (30–180 s) and often return error-in-body responses
For configurable feeds, when
timeframeiscustom,startDate(YYYY-MM-DD) is required
Configurable-window feeds:
Tool | Description | Key Parameters | EP API Endpoint |
Recently updated MEPs | timeframe, startDate |
| |
Recently updated events | timeframe, startDate, activityType |
| |
Recently updated procedures | timeframe, startDate, processType |
| |
Recently updated adopted texts | timeframe, startDate, workType |
| |
Recently updated MEP declarations | timeframe, startDate, workType |
| |
Recently updated external documents | timeframe, startDate, workType |
|
Fixed-window feeds (no parameters):
Tool | Description | Key Parameters | EP API Endpoint |
Recently updated documents | (none) |
| |
Recently updated plenary documents | (none) |
| |
Recently updated committee docs | (none) |
| |
Recently updated plenary session docs | (none) |
| |
Recently updated questions | (none) |
| |
Recently updated corporate bodies | (none) |
| |
Recently updated vocabularies | (none) |
|
🔧 Server Diagnostics (1)
Tool | Description | Key Parameters | Output |
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 |
| Comprehensive MEP intelligence briefing | mepId (required), period? |
| Coalition dynamics and voting bloc analysis | policyArea?, period? |
| Legislative procedure tracking report | procedureId?, committee? |
| Multi-dimensional group comparison | groups? |
| Committee workload and engagement | committeeId (required) |
| Voting pattern trend detection | topic?, mepId? |
| Country delegation composition and activity | country (required), period? |
📦 MCP Resources
Direct data access via EP resource URIs:
Resource URI | Description |
| List of all current MEPs |
| Individual MEP profile |
| Committee information |
| Recent plenary sessions |
| Voting records for a session |
| Political group listing |
| Legislative procedure details |
| Single plenary session details |
| 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 | data.europarl.europa.eu | MEPs, votes, legislation, committees, questions — 63 tools (15 OSINT) | |
🇺🇸 United States | congress.gov | Bills, members, votes, committees (TypeScript, v3 API) | |
🇺🇸 United States | congress.gov | Real-time Congress data — bills, votes, members | |
🇺🇸 United States | congress.gov | Unofficial Congress.gov API access | |
🇬🇧 United Kingdom | parliament.uk | Hansard, members, debates, divisions | |
🇸🇪 Sweden | riksdagen.se | Swedish Parliament & Government data (used by riksdagsmonitor.com) | |
🇳🇱 Netherlands | tweedekamer.nl | Dutch Parliament (Tweede Kamer) documents | |
🇵🇱 Poland | sejm.gov.pl | Members, votes, committees | |
🇵🇱 Poland | api.sejm.gov.pl | Parliament data + legislation | |
🇮🇱 Israel | knesset.gov.il | Knesset parliament API | |
🇧🇷 Brazil | senado.leg.br | Federal Senate — members, proposals, votes |
📊 Government Open Data MCP Servers
Country | Server | Data Source | Coverage |
🇺🇸 United States | usaspending.gov | Federal spending data | |
🇺🇸 United States | census.gov | Demographics & statistics (natural language) | |
🇺🇸 United States | data.gov | Federal dataset catalog | |
🇺🇸 United States | data.cms.gov | Healthcare data — search/filter/pagination | |
🇺🇸 United States | sec.gov | SEC filings — annual reports, insider data | |
🇺🇸 United States | nps.gov | National Park Service API | |
🇸🇪 Sweden | scb.se | Official Swedish statistics | |
🇸🇪 Sweden | skolverket.se | Swedish National Agency for Education | |
🇫🇷 France | data.gouv.fr | National open data platform | |
🇫🇷 France | data.gouv.fr | Companies & organizations search | |
🇬🇧 United Kingdom | planning.data.gov.uk | Planning & land use data | |
🇬🇧 United Kingdom | landregistry.data.gov.uk | Housing price search | |
🇳🇱 Netherlands | cbs.nl | Dutch statistics bureau | |
🇮🇱 Israel | data.gov.il | National CKAN data portal | |
🇮🇱 Israel | data.gov.il | Alternative implementation + visualization | |
🇮🇱 Israel | cbs.gov.il | CPI & economic time series | |
🇮🇱 Israel | open-budget.org.il | State budget, contracts, grants | |
🇹🇷 Turkey | mevzuat.gov.tr | Legislation system — search/retrieve laws | |
🇭🇰 Hong Kong | data.gov.hk | Hong Kong open data portal | |
🇲🇾 Malaysia | data.gov.my | National data portal | |
🇮🇳 India | data.gov.in | Semantic search + dataset access | |
🇸🇬 Singapore | data.gov.sg | Government datasets + CKAN search | |
🇸🇬 Singapore | data.gov.sg | Multiple servers (parking, health, datasets) | |
🇦🇺 Australia | abs.gov.au | Bureau of Statistics (SDMX-ML) |
🌍 Multi-Portal & Generic MCP Servers
Scope | Server | Platform | Coverage |
🌐 Global (CKAN) | CKAN portals | Generic server for any CKAN-based open data portal | |
🌐 Global (Socrata) | 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 |
|
|
MEP Documents |
|
|
Corporate Bodies |
|
|
Events |
|
|
Meetings |
|
|
Speeches |
|
|
Procedures |
|
|
Documents |
|
|
Questions |
|
|
External Documents |
|
|
Vocabularies |
|
|
Feed Endpoints |
|
|
Data Source
Documentation: https://data.europarl.europa.eu/en/developer-corner
Format: JSON-LD, RDF/XML, Turtle
License: European Parliament Open Data License
🔒 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 |
|
Confidentiality | |
Integrity | |
Availability |
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:coverageProject 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 documentationDocumentation
📚 Developer Documentation
JSDoc Coverage Report - Detailed analysis of JSDoc documentation coverage across all source files
JSDoc Quick Reference - Quick reference guide for writing comprehensive JSDoc comments
JSDoc Coverage Summary - Executive summary of documentation status and priorities
JSDoc Coverage Visualization - Visual representation of documentation coverage with charts and graphs
🏗️ 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
Test Coverage Report - Test coverage statistics and analysis
Developer Guide - Development setup and guidelines
Performance Guide - Performance optimization strategies
🔒 Security & Compliance
Security Policy - Vulnerability reporting and security practices
Security Architecture - Security controls and architecture
Secure Development Policy - Secure coding standards
Open Source Policy - Open source compliance guidelines
📦 Deployment & Operations
Deployment Guide - Production deployment instructions
Troubleshooting Guide - Common issues and solutions
NPM Publishing Guide - Package publishing workflow
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:watchIntegration 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:
Verify EP API reachability:
curl https://data.europarl.europa.eu/api/v2/meps?limit=1Check firewall / proxy settings — the server connects outbound to
data.europarl.europa.eu:443Enable retry (default: on) — the client retries transient failures with exponential backoff
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 --versionSymptom: MCP client shows "server not found" or no tools listed.
Solutions:
Confirm the
commandpath in your MCP client config points to the correct binaryFor
npx: ensureeuropean-parliament-mcp-serveris in your npm registryFor
node: use the absolute path todist/index.jsCheck 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:integrationTypeScript / 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.jsonGetting 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:
Agents: Specialized AI assistants for development, testing, security, and documentation
Skills: Reusable patterns for MCP development, security, testing, and performance
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:
Develop features in feature branches
Create PR with descriptive title using Conventional Commits
Labels are automatically applied based on changed files
After merge to main, release draft is automatically created
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 trackingPhase 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 | |
🧠 Future Mind Map | Capability expansion vision, AI analysis, OSINT evolution | |
⚙️ Future Workflows | CI/CD evolution, AI-augmented pipelines, 2027–2037 roadmap | |
🏛️ Future Architecture | Platform architecture evolution, AWS deployment, federation | |
🛡️ Future Security | Security maturity roadmap, quantum-ready encryption | |
📊 Future Data Model | Enhanced data structures, graph databases, temporal models | |
💼 Future SWOT | Strategic positioning, competitive analysis, market evolution |
📜 License
This project is licensed under the Apache License 2.0 - see LICENSE.md for details.
🔗 Links
Project Resources
Hack23 Ecosystem
🏢 Hack23 AB — Swedish cybersecurity & open-source intelligence consultancy (blog · LinkedIn)
🏛️ EU Parliament Monitor (repo · npm · Political Intelligence Hub · DeepWiki) — daily AI-generated EU parliamentary intelligence in 14 languages, powered by this MCP server
🗳️ Riksdagsmonitor (repo · npm · News · Dashboard · DeepWiki) — Swedish Parliament intelligence, 11 agentic workflows, 50+ years of historical evidence
🕵️ Citizen Intelligence Agency (CIA) (Pages · DeepWiki) — Java/Spring political-analytics backend, 15 subsystems, 1971–2024 voting & document corpus
🛡️ Hack23 ISMS-PUBLIC — public ISO 27001:2022 / NIST CSF 2.0 / CIS Controls v8.1 information-security management system
European Parliament
MCP Protocol
MCP Registries
npm Package — npm registry
Political & Government MCP Servers
Congress.gov API MCP Server — US Congress data (TypeScript)
UK Parliament MCP — UK Hansard, members, debates
Riksdag & Regering MCP — Swedish Parliament data
Parliament of Poland MCP — Polish Parliament data
OpenTK MCP — Dutch Parliament (Tweede Kamer) documents
Knesset MCP — Israeli Parliament data
CKAN MCP Server — Generic CKAN portal access
OpenGov MCP Server — Socrata-powered portals
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
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Appeared in Searches
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