Skip to directory

OpenTK Dutch Parliament

r-huijts

stdio17 documented tools6

About OpenTK Dutch Parliament

Provides a bridge to Dutch parliamentary data through Bert Hubert's tkconv service, enabling search across documents, MP information retrieval, and access to official records for political research and civic engagement.

What you can use it for

  • developer tools
  • analytics data
Connection and setup
Hosting
Local stdio process
Transport
stdio
Endpoint
Local process; no hosted endpoint documented
Authentication
No credentials were configured; the tested read-only tool “get_overview” succeeded in an isolated environment. Other tools may have additional requirements.

Requirements

  • Node.js 18+
  • The public install config and runtime call passed; npm metadata did not declare a repository URL.

Setup steps

  1. npx -y @r-huijts/opentk-mcp@1.0.17
Tools 17

README lists 17 tools and stored rows match; source data service is third-party tkconv.

  • get_overview

    Provides a comprehensive overview of recent parliamentary activities, including the most recent documents and MPs celebrating birthdays today. The response contains structured data with two main sections: 'recentDocuments' (listing the latest parliamentary documents with their IDs, titles, types, dates, and URLs) and 'birthdays' (listing MPs celebrating birthdays today). The results are paginated with 10 documents per page. The tool supports iterative pagination - check the pagination.hasMoreDocuments field in the response to determine if additional pages are available. The response includes pagination information showing the current page, whether more documents are available, and the total number of documents retrieved. Applicable when general information about recent parliamentary activities is needed.

    Parameters: page
    01
  • birthdays_today

    Lists all Members of Parliament celebrating their birthday today, including their names, political parties, and birth dates. The response is a JSON array where each entry contains the MP's ID, name, party affiliation, and other details. This tool takes no parameters as it always returns today's birthdays. Applicable when information about MPs' birthdays is needed.

    02
  • list_persons

    Provides a complete directory of current Members of Parliament with their IDs, names, titles, party affiliations, and faction memberships. The response is a JSON array where each entry contains an MP's full details including unique MP IDs that can be referenced by other tools. This tool takes no parameters as it returns all current MPs. Applicable when comprehensive information about all MPs is needed or when analyzing the composition of parliament by party.

    03
  • search_tk

    Performs a comprehensive search across all parliamentary data including documents, activities, and cases. Returns results matching the provided keyword or phrase. Use this for general searches when you need information on any topic discussed in parliament, regardless of document type or context. Search syntax: Searching for 'Joe Biden' finds documents containing both 'Joe' and 'Biden' anywhere in the text. Searching for "Joe Biden" (with quotes) finds only documents where these words appear next to each other. Searching for 'Hubert NOT Bruls' finds documents containing 'Hubert' but not 'Bruls'. The capital letters in 'NOT' are important. You can also use 'OR' and 'NEAR()' operators.

    Parameters: query, page, limit, format
    04
  • search_tk_filtered

    Performs a search within a specific category of parliamentary data, allowing results to be limited to only documents, activities, or cases. Returns paginated results sorted by date (most recent first). Search syntax supports: keyword searches ('Joe Biden' finds both terms), exact phrase searches ("Joe Biden" with quotes finds the exact phrase), exclusion ('Hubert NOT Bruls' excludes documents with 'Bruls'), and boolean operators ('OR', 'NEAR()'). Results can be returned in 'full' or 'summary' format.

    Parameters: query, type, page, limit, format
    05
  • get_photo

    Retrieves the official portrait photograph of a Member of Parliament. Returns the image as a binary resource that can be displayed or saved. Use this when you need to include a visual representation of an MP in reports, presentations, or profiles.

    Parameters: personId
    06
  • get_document_details

    Retrieves metadata about a parliamentary document in a structured JSON format, without downloading the actual document content. Returns information including title, type, document number, dates, version number, and links to both the PDF version and the official Tweede Kamer webpage.

    Parameters: nummer
    07
  • get_document_links

    Converts document URLs into clickable markdown-formatted links. This tool takes either a direct PDF link or a Tweede Kamer webpage link and returns them as properly formatted clickable links.

    Parameters: pdfUrl, tkUrl
    08
  • get_committees

    Retrieves a list of all parliamentary committees with their IDs, names, and URLs. The response is a JSON array where each entry represents a committee with its unique identifier and name. Committees are specialized groups of MPs that focus on specific domains like defense, healthcare, or finance. This tool takes no parameters as it returns all active committees.

    09
  • get_committee_details

    Retrieves detailed information about a specific parliamentary committee, including its members, recent activities, and description. This provides deeper insight into the committee's composition, leadership roles, and recent work. Use this when you need comprehensive information about a particular committee's structure and activities.

    Parameters: committeeId
    10
  • get_upcoming_activities

    Retrieves a list of upcoming parliamentary activities including debates, committee meetings, and other events. The response contains a structured JSON object with both a chronological list of activities and activities grouped by date. Each activity includes details like date, time, location, committee, type, and a URL for more information. The results are sorted by date with the most imminent activities first. The optional 'limit' parameter controls the number of results returned (default: 20, max: 100).

    Parameters: limit
    11
  • get_voting_results

    Retrieves recent voting results on parliamentary motions and bills. The response contains a structured JSON object with voting results sorted by date (newest first). Each result includes detailed information such as the title of the motion/bill, the date of the vote, the submitter, whether it was accepted or rejected, the vote counts (for/against), and which political parties voted for or against. The 'limit' parameter controls the number of results (default: 20, max: 100) and 'format' parameter allows choosing between 'full' or 'summary' format. The 'summary' format provides a more structured representation with renamed fields, while both formats include complete party voting information.

    Parameters: limit, format
    12
  • search_by_category

    Performs a search for documents of a certain category, such as questions ('vragen'), motions ('moties'), or all document types ('alles'). The response contains a structured JSON object with paginated results and metadata. The search syntax supports advanced queries: 'Joe Biden' finds documents with both terms anywhere, '"Joe Biden"' (with quotes) finds exact phrases, 'Hubert NOT Bruls' finds documents with 'Hubert' but not 'Bruls' (capital NOT is required), and 'OR' for alternatives. Results are sorted by date with the most recent documents first.

    Parameters: query, category, page, limit
    13
  • get_document_content

    Retrieves the content of a parliamentary document (PDF or DOCX). This tool supports three modes of operation depending on parameters provided: 1. TARGETED RETRIEVAL (with offset): Provide docId + offset (+ optional maxLength, default 3000). Returns text centered around the offset position, extracting approximately 1,500 chars before and 1,500 chars after the offset. Finds natural paragraph boundaries for clean extraction. 2. SEQUENTIAL READING (with maxLength, no offset): Provide docId + maxLength (no offset). Returns first maxLength characters from document start. Includes nextOffset for pagination to continue reading. 3. FULL DOCUMENT RETRIEVAL (no offset, no maxLength): Provide docId only. Returns complete document text (may be 100KB+). Note: May use significant context window space. PARAMETERS: - docId: Document ID to retrieve (required) - offset (optional): Character position to center extraction around. Can be obtained from find_person_in_document or from the nextOffset value

    Parameters: docId, offset, maxLength
    14
  • find_person_in_document

    Searches for all occurrences of a person's name within a parliamentary document and returns their precise locations. This tool efficiently navigates large documents by identifying where specific persons speak, are mentioned, or are referenced without loading the entire document. The tool uses fuzzy matching, so partial names work well: - Searching for "Wilders" will find "Geert Wilders", "de heer Wilders", "Minister Wilders", etc. - Searching for "Rutte" will find "Mark Rutte", "Premier Rutte", "Minister-president Rutte", etc. - Searching for "Van der" will find "Van der Staaij", "Van der Plas", etc. The response includes: - Total number of occurrences found - For each occurrence: - Line range (e.g., lines 45-47) showing where in the document the name appears - Character offset in the full document text (can be used with get_document_content) - A brief snippet (preview) of the surrounding text to verify context Particularly valuable for debate transcripts, committee meetings,

    Parameters: docId, personName
    15
  • find_party_in_document

    Searches for all occurrences of a political party within a parliamentary document and returns their precise locations. This tool efficiently navigates large documents by identifying where specific political parties are mentioned, referenced, or their positions are discussed without loading the entire document. The tool uses fuzzy matching with party abbreviations: - Searching for "VVD" will find "VVD", "de VVD", "VVD-fractie", "VVD-kamerlid", etc. - Searching for "PVV" will find "PVV", "de PVV", "PVV-fractie", "PVV-kamerlid", etc. - Searching for "CDA" will find "CDA", "de CDA", "CDA-fractie", "CDA-kamerlid", etc. - Searching for "D66" will find "D66", "de D66", "D66-fractie", "D66-kamerlid", etc. The response includes: - Total number of occurrences found - For each occurrence: - Line range (e.g., lines 45-47) showing where in the document the party appears - Character offset in the full document text (can be used with get_document_content) - A brief snippet (preview) of the su

    Parameters: docId, partyName
    16
  • analyze_document_relevance

    Performs intelligent pre-analysis of a parliamentary document to determine its relevance WITHOUT loading the full content into your context window. This is a lightweight reconnaissance tool that extracts key information about a document's content before you commit to reading the full text. Use this to efficiently assess whether a document is worth reading in detail, especially when you're uncertain about relevance or need to triage multiple documents. WHAT THIS TOOL RETURNS: - **Keywords**: Top 10-15 most important terms extracted via TF-IDF analysis, revealing the document's main subjects (e.g., 'klimaat', 'belasting', 'migratie', 'gezondheidszorg') - **Named Entities**: Structured lists of people mentioned (MPs, ministers, officials), political parties (VVD, PVV, CDA, D66, GroenLinks, etc.), and organizations - **Statistics**: Document length (character count, word count), estimated reading time, and structural information about the document format - **Preview**: The first ~500 char

    Parameters: docId, searchTerms
    17
Limitations and notes
  • Runtime verification covered one read-only tool call (get_overview); other listed tools were not individually exercised.
  • The npm package metadata did not declare a repository URL; the repository link comes from the public MCP.Directory profile.
  • {}
Original sources
  • MCP.Directory public profile

    Name, description, publisher identifier, categories, transport, tool inventory, and install configuration.

  • Linked publisher repository

    Repository URL linked from the public profile; any npm repository difference is recorded separately.

  • npm registry metadata

    Published package version 1.0.17 checked before launch. Registry metadata did not declare a repository URL.

  • maintainer repository documentation

    Maintainer README explicitly states 17 specialized tools for Dutch parliamentary data; it also identifies tkconv as the upstream service, not the official parliament API.

Documentation checked 2026-10-28T00:00:00Z. Connection has not been runtime tested.