PrivatesafeGeneric error-safe wrapper around callToolWithRetry. Retries transient failures (timeouts, connection drops) with a bounded back-off delay before falling back. Non-retriable errors (session expiry, rate limits, programmer errors) are caught immediately without additional delay. Catches any error thrown by the tool (or by the args factory), logs a warning, and returns a fallback payload.
Accepts either a plain args object or a factory function () => object.
Using a factory ensures that options normalization/destructuring runs inside
the try/catch so invalid runtime inputs fall back gracefully.
MCP tool name
Tool arguments or a factory that builds them
JSON text to return when the tool is unavailable
Tool result or fallback
Get a summary of tools that returned fallback data in the current session. Useful for diagnosing feed availability and data quality issues.
Map of tool name to error description
Get a human-readable feed health summary for diagnostics.
Formatted summary of feed availability
Get Members of European Parliament
Filter options
List of MEPs
Get plenary sessions
Filter options. dateFrom is mapped to startDate and dateTo to endDate
per the tool schema when the canonical fields are absent.
Plenary sessions data
Search legislative documents
Search options (normalizes query to keyword if keyword is absent,
since the MCP tool schema requires the keyword parameter)
Search results
Get parliamentary questions
Filter options. dateFrom is mapped to startDate per the tool schema.
dateTo is intentionally ignored because the get_parliamentary_questions tool schema
only supports startDate as a date filter; passing dateTo would have no effect.
Parliamentary questions data
Get committee information
Filter options
Committee info data
Monitor legislative pipeline
Filter options
Legislative pipeline data
Analyze legislative effectiveness of an MEP or committee
Options including subjectType and subjectId
Legislative effectiveness data
Assess MEP influence using 5-dimension scoring model
Options including required mepId and optional date range
MEP influence score and breakdown
Analyze coalition dynamics and cohesion
Options including optional political groups and date range
Coalition cohesion and stress analysis
Detect voting anomalies and party defections
Options including optional MEP id, political group, and date
Anomaly detection results
Compare political groups across dimensions
Options including required groups and optional metrics and date
Cross-group comparative analysis
Get detailed information about a specific MEP
MEP identifier (must be non-empty)
Detailed MEP information including biography, contact, and activities
Retrieve voting records with optional filters
Filter options (mepId, sessionId, limit)
Voting records data
Analyze voting behavior patterns for an MEP
Analysis options (mepId required non-empty, dateFrom, compareWithGroup)
Voting pattern analysis
Track a legislative procedure by its identifier
Legislative procedure identifier (must be non-empty)
Procedure status and timeline
Generate an analytical report
Report options (reportType required non-empty, subjectId, dateFrom)
Generated report data
Analyze committee activity, workload, and engagement
Options including optional committeeId and date range
Committee activity analysis data
Track MEP attendance patterns and trends
Options including optional mepId and date range
MEP attendance data
Analyze country delegation voting behavior and composition
Options including required country code and optional date range
Country delegation analysis data
Generate a parliament-wide political landscape overview
Options including optional date range and detail level
Political landscape overview data
Get currently active Members of European Parliament
Pagination options
Active MEPs data
Get plenary speeches and debate contributions
Filter options including optional speechId or date range
Speeches data
Get legislative procedures
Filter options including optional processId or year
Procedures data
Get adopted texts (legislative resolutions, positions, non-legislative resolutions)
Filter options including optional docId or year
Adopted texts data
Get European Parliament events (hearings, conferences, seminars)
Filter options including optional eventId or date range
Events data
Get activities linked to a specific plenary sitting
Options including required sittingId
Meeting activities data
Get decisions made in a specific plenary sitting
Options including required sittingId
Meeting decisions data
Get MEP declarations of financial interests
Filter options including optional docId or year
MEP declarations data
Get incoming Members of European Parliament
Pagination options
Incoming MEPs data
Get outgoing Members of European Parliament
Pagination options
Outgoing MEPs data
Get homonym MEPs (MEPs with identical names)
Pagination options
Homonym MEPs data
Get plenary documents
Filter options including optional docId or year
Plenary documents data
Get committee documents
Filter options including optional docId or year
Committee documents data
Get plenary session documents (agendas, minutes, voting lists)
Filter options including optional docId
Plenary session documents data
Get plenary session document items
Pagination options
Plenary session document items data
Get controlled vocabularies (standardized classification terms)
Filter options including optional vocId
Controlled vocabularies data
Get external documents (non-EP documents such as Council positions)
Filter options including optional docId or year
External documents data
Get foreseen (planned) activities for a specific plenary sitting
Options including required sittingId
Foreseen activities data
Get events linked to a specific legislative procedure
Options including required processId
Procedure events data
Get plenary session documents linked to a specific meeting
Options including required sittingId
Meeting plenary session documents data
Get plenary session document items linked to a specific meeting
Options including required sittingId
Meeting plenary session document items data
MEP relationship network mapping using committee co-membership
Options including optional mepId, analysisType, and depth
Network analysis with centrality scores and clusters
Track political group institutional positioning and sentiment
Options including optional groupId and timeframe
Sentiment tracking data
Detect emerging political shifts and coalition fracture signals
Options including optional sensitivity and focusArea
Early warning alerts and trend indicators
Cross-reference MEP activities for comparative multi-dimensional profiling
Options including required mepIds array and optional dimensions
Comparative intelligence profiles
Cross-tool OSINT intelligence correlation engine
Options including optional mepId and correlation scenarios
Correlated intelligence alerts and insights
Retrieve precomputed European Parliament activity statistics (EP6–EP10, 2004–2025). Includes yearly stats, category rankings, political landscape history, and average-based predictions for 2026–2030. Static data refreshed weekly — no live API calls.
Filter options including optional year range, category, and flags
Precomputed EP statistics data
Get MEPs feed (most recent updates via EP API v2)
Pagination options
MEPs feed data
Get events feed (most recent updates via EP API v2)
Pagination options
Events feed data
Get procedures feed (most recent updates via EP API v2)
Pagination options
Procedures feed data
Get adopted texts feed (most recent updates via EP API v2)
Pagination options
Adopted texts feed data
Get MEP declarations feed (most recent updates via EP API v2)
Pagination options
MEP declarations feed data
Get documents feed (most recent updates via EP API v2)
Pagination options
Documents feed data
Get plenary documents feed (most recent updates via EP API v2)
Pagination options
Plenary documents feed data
Get committee documents feed (most recent updates via EP API v2)
Pagination options
Committee documents feed data
Get plenary session documents feed (most recent updates via EP API v2)
Pagination options
Plenary session documents feed data
Get external documents feed (most recent updates via EP API v2)
Pagination options
External documents feed data
Get parliamentary questions feed (most recent updates via EP API v2)
Pagination options
Parliamentary questions feed data
Get corporate bodies feed (most recent updates via EP API v2)
Pagination options
Corporate bodies feed data
Get controlled vocabularies feed (most recent updates via EP API v2)
Pagination options
Controlled vocabularies feed data
Get a specific event linked to a legislative procedure. Returns a single event for the specified procedure and event identifiers.
Options including required processId and eventId
Procedure event data
Check server health and feed availability status. Returns server version, uptime, per-feed health status, and overall availability. Does not make upstream API calls — reports cached status from recent tool invocations.
Server health and feed availability data
Check if client is connected
Connection status
Check if using gateway HTTP transport
True if gateway mode is active
Get the configured gateway URL
Gateway URL or null if using stdio transport
Get the configured gateway API key
Gateway API key or null if not set
Get the current MCP session ID
Session ID returned by the gateway, or null if not yet connected
Get connection health metrics for telemetry
Object with timeout count, reconnection count, and current connection status
Connect to the MCP server with retry logic
Disconnect from the MCP server
Handle incoming messages from MCP server (stdio mode only)
JSON message line from server
Send a request to the MCP server
RPC method name
Method parameters
Server response
List available MCP tools
List of available tools
Call an MCP tool
Tool name
Tool arguments (must be a plain object, non-null, not an array)
Tool execution result
Call an MCP tool with automatic retry on timeout or connection loss. Reconnects automatically if the connection was lost between attempts.
Only transient failures are retried (see isRetriableError). Non-retriable
errors — rate-limit (429), session-expired (401), and programmer errors such
as TypeError — are re-thrown immediately without consuming any retry budget.
Tool name
Tool arguments (plain object, non-null, not an array)
OptionalmaxRetries: numberOverride the default retry count from options
Tool execution result
Private Readonly_Tracks tools that returned fallback data in the current session
Private Readonly_Tracks tools that have been called (attempted) in the current session
Private Static ReadonlyFEED_Fallback payload for feed tools
ProtectedserverHuman-readable server name for log messages
MCP Client for European Parliament data access. Extends MCPConnection with EP-specific tool wrapper methods.