EP Votes
Server Details
European Parliament roll-call votes, MEP records and dossiers from official records.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Score is being calculated.
Available Tools
6 toolscompare_groupsCompare political groupsRead-onlyIdempotentInspect
Use this when the user wants to compare how two or three European Parliament political groups voted across recent final votes on texts (amendments left out), e.g. "how often did EPP and S&D vote the same way". Groups: The Left, S&D, Greens/EFA, Renew, EPP, ECR, PfE, ESN.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional end date, YYYY-MM-DD. | |
| from | No | Optional start date, YYYY-MM-DD. | |
| limit | No | Newest votes to compare. | |
| groups | Yes | Two or three group names, e.g. ["EPP", "S&D"]. |
get_dossierGet a dossierRead-onlyIdempotentInspect
Use this when the user asks about one European Parliament dossier (procedure): what it is, its type, lead committee, rapporteurs, the steps so far in Parliament, its plenary votes, and the Legislative Observatory summary. Takes a procedure reference such as "2023/0212(COD)" or an id such as "2023-0212" (use search_parliament first if you only know the title).
| Name | Required | Description | Default |
|---|---|---|---|
| dossier | Yes | Procedure reference "2023/0212(COD)" or id "2023-0212". | |
| votes_page | No | Page of plenary votes, 50 per page. |
get_mepGet an MEP's recordRead-onlyIdempotentInspect
Use this when the user asks about one Member of the European Parliament: country, political group, committees, how often they vote with their group, where they broke with it, and their recent roll-call votes. Takes an MEP id or a name. Set topic to keep only votes whose label, agenda item topic or dossier title contains those words (e.g. "digital euro", "Mercosur"). Set from and to to read one period; page through all votes of the term with page.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Optional: only votes on or before this day, YYYY-MM-DD. | |
| mep | Yes | The MEP id (e.g. "124834") or name (e.g. "Martin Sonneborn"). | |
| from | No | Optional: only votes on or after this day, YYYY-MM-DD. | |
| page | No | Page of votes, 25 per page, newest first (400 pages reach 10,000 votes; use from and to for older votes of a busy term). | |
| topic | No | Optional: only votes whose label, agenda item topic or dossier title contains these words. |
get_voteGet a roll-call voteRead-onlyIdempotentInspect
Use this when you need the result of one European Parliament roll-call vote: totals, the split by political group and by country, the dossier it belongs to, and optionally how individual MEPs voted. Takes a vote id from list_votes, get_dossier or get_mep (or an epvotes.com/votes/ url). Set members to a group (e.g. "EPP", "S&D") or a country code (e.g. "DE", "FRA") to list those MEPs' votes.
| Name | Required | Description | Default |
|---|---|---|---|
| members | No | Optional: list individual MEP votes for one political group or one country. "all" lists every MEP. | |
| vote_id | Yes | The numeric vote id, e.g. "198885". |
list_votesList plenary votesRead-onlyIdempotentInspect
Use this when the user asks what the European Parliament voted on a sitting day, this week, between two dates or on a subject, e.g. "what did Parliament vote today" or "votes on Ukraine in October". Without arguments it returns the latest sitting day; with only a query it searches the last 92 days. Votes are grouped by agenda item; each item has its deciding (final) vote with result and totals and the ids of its other votes for get_vote. Lists at most 40 items.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | End of a date range, YYYY-MM-DD (with from). | |
| day | No | One sitting day, YYYY-MM-DD. | |
| from | No | Start of a date range, YYYY-MM-DD (with to). | |
| query | No | Keep only agenda items whose topic, title or vote labels contain these words, e.g. "psychosocial". | |
| this_week | No | All votes of the current week. |
search_parliamentSearch the ParliamentRead-onlyIdempotentInspect
Use this when you need to find a European Parliament dossier (legislative or non-legislative procedure), an MEP, a committee, a political group or an EP document by name, topic or reference, and you do not know its id yet. Returns up to 15 matching records with their ids and epvotes.com urls; pass an id to get_dossier or get_mep next. Matches words in titles and names (e.g. "digital euro", "Metsola", "ECON", "2023/0212(COD)"). Do not use it for votes of a day; use list_votes.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Limit the search to one kind of record. | any |
| query | Yes | Words to match: a dossier title, procedure reference, MEP name, committee code or document number. |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- Changed
get_dossier1 field changed- added
Input schema / properties / votes_pageAdded value: +{ + "default": 1, + "description": "Page of plenary votes, 50 per page.", + "maximum": 20, + "minimum": 1, + "type": "integer" +}
- Changed
get_mep5 fields changed- added
Input schema / properties / fromAdded value: +{ + "description": "Optional: only votes on or after this day, YYYY-MM-DD.", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - changed
Input schema / properties / page / descriptionPrevious value: -"Page of votes, 25 per page, newest first."New value: +"Page of votes, 25 per page, newest first (400 pages reach 10,000 votes; use from and to for older votes of a busy term)." - changed
Input schema / properties / page / maximumPrevious value: -50New value: +400 - added
Input schema / properties / toAdded value: +{ + "description": "Optional: only votes on or before this day, YYYY-MM-DD.", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - changed
Input schema / properties / topic / descriptionPrevious value: -"Optional: only votes whose titles contain these words."New value: +"Optional: only votes whose label, agenda item topic or dossier title contains these words."
- Changed
list_votes1 field changed- changed
Input schema / properties / query / descriptionPrevious value: -"Keep only agenda items whose titles contain these words."New value: +"Keep only agenda items whose topic, title or vote labels contain these words, e.g. \"psychosocial\"."
6 tool updates
- First observed
compare_groups - First observed
get_dossier - First observed
get_mep - First observed
get_vote - First observed
list_votes - First observed
search_parliament
Related MCP Connectors
Danish parliamentary cases, votes, politicians, parties, elections, and comparison tools.
U.S. federal policy data — bills, Congress members, voting records, and civic info.
Abgeordnetenwatch MCP — German federal & state parliament data.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides access to European Parliament open data, enabling queries about MEPs, plenary documents, and session calendar.11 npmMIT
- FlicenseNot gradedqualityBmaintenanceProvides live, source-linked transparency data on German MPs, including roll-call voting, side jobs, committee memberships, and election programs, via the Abgeordnetenwatch API. No API key required.-
- AlicenseAqualityDmaintenanceProvides access to live UK Parliament data including bills, votes, MP profiles, and financial interests without requiring an API key. It enables users to track parliamentary rebellions, search petitions, and cross-reference voting records with declared financial interests.54 npm9MIT

Moonlit Legal Researchofficial
AlicenseNot gradedqualityCmaintenanceOfficial European law, expanding globally: 20M+ documents, 35+ jurisdictions, verifiable citations.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.