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

    Sub-client for parliamentary-questions EP API endpoints.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    baseURL: string

    European Parliament API base URL.

    cache: LRUCache<string, Record<string, unknown>>

    LRU cache for API responses.

    enableRetry: boolean

    Enable automatic retry on transient failures.

    maxResponseBytes: number

    Maximum allowed response body size in bytes.

    maxRetries: number

    Maximum number of retry attempts.

    rateLimiter: RateLimiter

    Token bucket rate limiter.

    timeoutMs: number

    Request timeout in milliseconds.

    Methods

    • Private

      Builds EP API parameters for parliamentary question search.

      Parameters

      • params: {
            dateFrom?: string;
            limit?: number;
            offset?: number;
            type?: "WRITTEN" | "ORAL";
        }

      Returns Record<string, unknown>

    • Protected

      Executes a cached, rate-limited GET request to the EP API.

      Type Parameters

      • T extends Record<string, unknown>

        Expected response type (extends Record<string, unknown>)

      Parameters

      • endpoint: string

        API endpoint path (relative to baseURL)

      • Optionalparams: Record<string, unknown>

        Optional query parameters

      Returns Promise<T>

      Promise resolving to the typed API response

      On HTTP errors, network failures, or parse failures

    • Returns cache statistics for monitoring and debugging.

      Returns { hitRate: number; hits: number; maxSize: number; misses: number; size: number }

      { size, maxSize, hitRate, hits, misses }

    • Retrieves parliamentary questions with filtering by type, author, and status.

      EP API Endpoint: GET /parliamentary-questions

      Parameters

      • params: {
            author?: string;
            dateFrom?: string;
            dateTo?: string;
            limit?: number;
            offset?: number;
            status?: "PENDING" | "ANSWERED";
            topic?: string;
            type?: "WRITTEN" | "ORAL";
        }

        type, author, topic, status, dateFrom, dateTo, limit, offset

      Returns Promise<PaginatedResponse<ParliamentaryQuestion>>

      Paginated parliamentary questions list

      Audit logged per GDPR Article 30