wimjan123/tweede-kamer-mcp
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.
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 rangetk_get_document_details- Full document with versions and relationshipstk_get_document_versions- Version history with download linkstk_search_written_questions- Find parliamentary questionstk_search_motions- Find motions with vote tracking
People Tools (4)
tk_search_members- Find MPs by name, party, functiontk_get_member_profile- Complete profile with transparency datatk_get_member_activities- Member's parliamentary worktk_get_member_documents- Documents authored by member
Voting Tools (3)
tk_search_votes- Find votes by party, decision, datetk_get_vote_details- Voting breakdown for decisiontk_get_party_voting_record- Analyze party voting patterns
Case Tools (4)
tk_search_cases- Search cases by topic, type, statustk_get_case_details- Full case with documents and timelinetk_get_case_timeline- Chronological case progressiontk_track_motion_status- Track motion from submission to vote
Dossier Tools (3)
tk_search_dossiers- Find dossiers by topictk_get_dossier_contents- All cases and documents in dossiertk_track_dossier_activity- Recent dossier activity
Activity & Meeting Tools (4)
tk_search_activities- Find debates and meetingstk_get_activity_details- Activity with participants and agendatk_get_meeting_agenda- Meeting agenda itemstk_get_debate_participants- Debate participation details
Committee & Party Tools (4)
tk_list_committees- All committees with membershiptk_get_committee_details- Committee info and activitiestk_list_parties- All parties with seat countstk_get_party_details- Party info and members
Decision & Commitment Tools (2)
tk_search_decisions- Find parliamentary decisionstk_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:
- Base URL: https://gegevensmagazijn.tweedekamer.nl/OData/v4/2.0
- Documentation: https://opendata.tweedekamer.nl
- Format: OData v4 API with JSON responses
- Access: No authentication required (public data)
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: trueflag (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:
- MCP Server issues: Check the code and documentation
- API questions: https://opendata.tweedekamer.nl
- Data questions: Contact Tweede Kamer support
Version
1.0.0 - Initial release with 25+ tools covering all major parliamentary data entities