# Function handleGetPlenaryDocuments

- handleGetPlenaryDocuments(args: unknown): Promise<ToolResult>

  Handles the get_plenary_documents MCP tool request.

  Retrieves European Parliament plenary documents including legislative texts, reports, and amendments. Supports both single-document lookup by document ID and list retrieval with optional year filtering. Central to policy analysis and legislative tracking workflows.

  #### Parameters

  - args: unknown

    Raw tool arguments, validated against GetPlenaryDocumentsSchema

  #### Returns Promise<ToolResult>

  MCP tool result containing either a single plenary document (when `docId` is provided) or a paginated list of documents, optionally filtered by year

  #### Throws

  - If `args` fails schema validation (e.g., limit out of range 1–100)
  - If the European Parliament API is unreachable or returns an error response

  #### Example

      // List documents for a specific year
      const result = await handleGetPlenaryDocuments({ year: 2024, limit: 25 });
      // Returns up to 25 plenary documents from 2024

      // Fetch a single document by ID
      const single = await handleGetPlenaryDocuments({ docId: 'DOC-2024-001' });
      // Returns the full plenary document record

  #### Security

  - Input is validated with Zod before any API call.
  - Personal data in responses is minimised per GDPR Article 5(1)(c).
  - All requests are rate-limited and audit-logged per ISMS Policy AU-002.

  #### Since

  0.8.0

  #### See

  - getPlenaryDocumentsToolMetadata for MCP schema registration
  - handleGetPlenarySessions for the sessions associated with these documents
  - handleGetPlenarySessionDocuments for session-level agendas and minutes
  - Defined in tools/getPlenaryDocuments.ts:58