tweede-kamer-mcp

wimjan123/tweede-kamer-mcp

3.2

If you are the rightful owner of tweede-kamer-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A comprehensive Model Context Protocol (MCP) server providing access to the Dutch Parliament (Tweede Kamer) open data API.

Tools
5
Resources
0
Prompts
0

Tweede Kamer MCP Server

A comprehensive Model Context Protocol (MCP) server providing access to the Dutch Parliament (Tweede Kamer) open data API.

Overview

This MCP server enables AI assistants to search and analyze Dutch parliamentary data including:

  • Documents - Bills, motions, written questions, government letters (662,629+ documents)
  • Voting Records - Parliamentary votes and party positions (938,047+ votes)
  • Parliament Members - MPs with transparency data (career, education, gifts, travel)
  • Parliamentary Cases - Legislative cases and dossiers (289,275+ cases)
  • Debates & Meetings - Committee and plenary sessions (92,275+ activities)
  • Committees & Parties - Current composition and membership
  • Ministerial Commitments - Track government promises and fulfillment

Features

  • 25+ specialized tools covering all aspects of parliamentary data
  • Both JSON and Markdown response formats
  • Pagination support for large result sets
  • Advanced filtering by date, type, keywords, status
  • Relationship navigation linking documents, votes, members, and cases
  • No authentication required - public data access

Installation

Quick Install (3 Commands)

# Clone to your MCP servers directory
git clone https://github.com/wimjan123/tweede-kamer-mcp.git ~/.mcp-servers/tweede-kamer

# Install dependencies
pip install -r ~/.mcp-servers/tweede-kamer/requirements.txt

# Add to Claude Desktop
claude mcp add tweede-kamer python ~/.mcp-servers/tweede-kamer/tweede_kamer_mcp.py

Then restart Claude Desktop and you're ready to go!

Prerequisites

  • Python 3.10 or higher
  • MCP-compatible client (e.g., Claude Desktop)

See for alternative installation methods.

Available Tools

Document Tools (5)

  • tk_search_documents - Search by keywords, type, date range
  • tk_get_document_details - Full document with versions and relationships
  • tk_get_document_versions - Version history with download links
  • tk_search_written_questions - Find parliamentary questions
  • tk_search_motions - Find motions with vote tracking

People Tools (4)

  • tk_search_members - Find MPs by name, party, function
  • tk_get_member_profile - Complete profile with transparency data
  • tk_get_member_activities - Member's parliamentary work
  • tk_get_member_documents - Documents authored by member

Voting Tools (3)

  • tk_search_votes - Find votes by party, decision, date
  • tk_get_vote_details - Voting breakdown for decision
  • tk_get_party_voting_record - Analyze party voting patterns

Case Tools (4)

  • tk_search_cases - Search cases by topic, type, status
  • tk_get_case_details - Full case with documents and timeline
  • tk_get_case_timeline - Chronological case progression
  • tk_track_motion_status - Track motion from submission to vote

Dossier Tools (3)

  • tk_search_dossiers - Find dossiers by topic
  • tk_get_dossier_contents - All cases and documents in dossier
  • tk_track_dossier_activity - Recent dossier activity

Activity & Meeting Tools (4)

  • tk_search_activities - Find debates and meetings
  • tk_get_activity_details - Activity with participants and agenda
  • tk_get_meeting_agenda - Meeting agenda items
  • tk_get_debate_participants - Debate participation details

Committee & Party Tools (4)

  • tk_list_committees - All committees with membership
  • tk_get_committee_details - Committee info and activities
  • tk_list_parties - All parties with seat counts
  • tk_get_party_details - Party info and members

Decision & Commitment Tools (2)

  • tk_search_decisions - Find parliamentary decisions
  • tk_track_ministerial_commitments - Monitor ministerial promises

Usage Examples

Find recent climate motions and their voting results

Use tk_search_motions with keywords="klimaat" and year=2024, then get vote details for specific motions.

Track a parliament member's activities

Use tk_search_members to find the member, then tk_get_member_activities to see their debates and committee work.

Monitor pending ministerial commitments

Use tk_track_ministerial_commitments with status="Openstaand" to find unfulfilled promises.

Analyze party voting patterns on specific topics

Search for cases with tk_search_cases, then use tk_get_party_voting_record to see how parties voted.

Dutch Terminology Guide

  • Tweede Kamer - House of Representatives (lower house of Dutch Parliament)
  • Kamerlid - Member of Parliament (MP)
  • Fractie - Parliamentary party/group
  • Commissie - Committee
  • Motie - Motion
  • Wetsvoorstel - Bill/legislative proposal
  • Schriftelijke vragen - Written questions
  • Plenair debat - Plenary debate
  • Stemming - Vote/voting
  • Besluit - Decision
  • Zaak - Case/matter
  • Kamerstukdossier - Parliamentary dossier
  • Toezegging - Commitment/promise

Data Source

All data comes from the official Dutch Parliament Open Data Portal:

Important Notes

Voting Structure

Most votes are recorded at the faction/party level, not individual MPs. Individual voting records are rare in the Dutch system where parties typically vote as a bloc.

Data Quality

  • Some fields may be null even on active records
  • Deleted records remain in database with Verwijderd: true flag (automatically filtered out)
  • Historical data goes back to 1990s
  • Future dates indicate scheduled meetings/activities

API Limitations

  • Maximum 250 results per query (use pagination for more)
  • Complex multi-level expansions may fail (tools handle this automatically)
  • Text search uses substring matching (no full-text search ranking)

Development

Testing

# Validate syntax
python -m py_compile tweede_kamer_mcp.py

# Run server (for manual testing in tmux)
python tweede_kamer_mcp.py

Evaluation

# Run evaluation suite (requires evaluation harness)
# See MCP documentation for evaluation setup

License

This MCP server is provided as-is for accessing public Dutch parliamentary data. The data itself is provided by the Tweede Kamer der Staten-Generaal under their open data policy.

Support

For issues or questions:

Version

1.0.0 - Initial release with 25+ tools covering all major parliamentary data entities