European Parliament roll-call votes, MEP records and dossiers from official records.
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
Two or three group names, e.g. ["EPP", "S&D"].
Optional end date, YYYY-MM-DD.
Optional start date, YYYY-MM-DD.
Newest votes to compare.
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.
| Argument | Type | Description |
|---|---|---|
| to | string | Optional end date, YYYY-MM-DD. |
| from | string | Optional start date, YYYY-MM-DD. |
| limit | integer | Newest votes to compare. |
| groups* | array | Two or three group names, e.g. ["EPP", "S&D"]. |
{
"type": "object",
"required": [
"groups"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional end date, YYYY-MM-DD."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional start date, YYYY-MM-DD."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 50,
"minimum": 1,
"description": "Newest votes to compare."
},
"groups": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 3,
"minItems": 2,
"description": "Two or three group names, e.g. [\"EPP\", \"S&D\"]."
}
},
"additionalProperties": false
}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).
| Argument | Type | Description |
|---|---|---|
| dossier* | string | Procedure reference "2023/0212(COD)" or id "2023-0212". |
| votes_page | integer | Page of plenary votes, 50 per page. |
{
"type": "object",
"required": [
"dossier"
],
"properties": {
"dossier": {
"type": "string",
"maxLength": 120,
"description": "Procedure reference \"2023/0212(COD)\" or id \"2023-0212\"."
},
"votes_page": {
"type": "integer",
"default": 1,
"maximum": 20,
"minimum": 1,
"description": "Page of plenary votes, 50 per page."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| to | string | Optional: only votes on or before this day, YYYY-MM-DD. |
| mep* | string | The MEP id (e.g. "124834") or name (e.g. "Martin Sonneborn"). |
| from | string | Optional: only votes on or after this day, YYYY-MM-DD. |
| page | integer | 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 | string | Optional: only votes whose label, agenda item topic or dossier title contains these words. |
{
"type": "object",
"required": [
"mep"
],
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional: only votes on or before this day, YYYY-MM-DD."
},
"mep": {
"type": "string",
"maxLength": 120,
"description": "The MEP id (e.g. \"124834\") or name (e.g. \"Martin Sonneborn\")."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Optional: only votes on or after this day, YYYY-MM-DD."
},
"page": {
"type": "integer",
"default": 1,
"maximum": 400,
"minimum": 1,
"description": "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": {
"type": "string",
"maxLength": 120,
"description": "Optional: only votes whose label, agenda item topic or dossier title contains these words."
}
},
"additionalProperties": false
}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/<id> url). Set members to a group (e.g. "EPP", "S&D") or a country code (e.g. "DE", "FRA") to list those MEPs' votes.
| Argument | Type | Description |
|---|---|---|
| members | string | Optional: list individual MEP votes for one political group or one country. "all" lists every MEP. |
| vote_id* | string | The numeric vote id, e.g. "198885". |
{
"type": "object",
"required": [
"vote_id"
],
"properties": {
"members": {
"type": "string",
"maxLength": 40,
"description": "Optional: list individual MEP votes for one political group or one country. \"all\" lists every MEP."
},
"vote_id": {
"type": "string",
"description": "The numeric vote id, e.g. \"198885\"."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| to | string | End of a date range, YYYY-MM-DD (with from). |
| day | string | One sitting day, YYYY-MM-DD. |
| from | string | Start of a date range, YYYY-MM-DD (with to). |
| query | string | Keep only agenda items whose topic, title or vote labels contain these words, e.g. "psychosocial". |
| this_week | boolean | All votes of the current week. |
{
"type": "object",
"properties": {
"to": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "End of a date range, YYYY-MM-DD (with from)."
},
"day": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "One sitting day, YYYY-MM-DD."
},
"from": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Start of a date range, YYYY-MM-DD (with to)."
},
"query": {
"type": "string",
"maxLength": 120,
"description": "Keep only agenda items whose topic, title or vote labels contain these words, e.g. \"psychosocial\"."
},
"this_week": {
"type": "boolean",
"description": "All votes of the current week."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| type | string | Limit the search to one kind of record. |
| query* | string | Words to match: a dossier title, procedure reference, MEP name, committee code or document number. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"type": {
"enum": [
"any",
"dossier",
"mep",
"committee",
"group",
"document"
],
"type": "string",
"default": "any",
"description": "Limit the search to one kind of record."
},
"query": {
"type": "string",
"maxLength": 200,
"minLength": 2,
"description": "Words to match: a dossier title, procedure reference, MEP name, committee code or document number."
}
},
"additionalProperties": false
}