get_parliament_members
Retrieve Swiss Parliament members from the National Council and Council of States. Filter results by canton, political party, or active status to find specific representatives.
Instructions
List current or past Swiss Parliament members (National Council and Council of States). Filter by canton or party.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| canton | No | Canton name in German to filter by (e.g. 'Zürich', 'Bern', 'Genf', 'Waadt') | |
| party | No | Party name or abbreviation to search (e.g. 'SVP', 'SP', 'FDP', 'Grüne', 'Mitte') | |
| active | No | Only active (currently seated) members (default: true) | |
| limit | No | Max results (default: 10, max: 50) |
Implementation Reference
- src/modules/parliament.ts:305-364 (handler)The implementation of the get_parliament_members tool handler function.
async function getParliamentMembers(args: { canton?: string; party?: string; active?: boolean; limit?: number; }): Promise<string> { const limit = Math.min(args.limit ?? 10, 50); const active = args.active !== false; const params: Record<string, string | number | boolean | undefined> = { body_key: "CHE", active, lang: "de", lang_format: "flat", limit, }; // Filter by canton using electoral_district_de (German canton name) if (args.canton) { params.electoral_district_de = args.canton; } // Filter by party using search if (args.party) { params.search = args.party; } const url = buildUrl("/persons/", params); const resp = await apiFetch<PersonRecord>(url); const members = resp.data.map((p) => ({ id: p.id, name: p.fullname, party: p.party_de, partyFull: p.party_harmonized_de, canton: p.electoral_district_de, council: p.parliament_sector, group: p.parliamentary_group_name_de, occupation: p.occupation_de, gender: p.gender, active: p.active, url: p.website_parliament_url_de, })); return truncate( JSON.stringify({ count: members.length, total: resp.meta.total_records, members, }) ); } interface VotingRecord { id: number; affair_id: number; meaning_yes_de: string; meaning_no_de: string; total_yes: number; total_no: number; - src/modules/parliament.ts:76-96 (registration)The tool definition and schema registration for get_parliament_members.
name: "get_parliament_members", description: "List current or past Swiss Parliament members (National Council and Council of States). Filter by canton or party.", inputSchema: { type: "object" as const, properties: { canton: { type: "string", description: "Canton name in German to filter by (e.g. 'Zürich', 'Bern', 'Genf', 'Waadt')", }, party: { type: "string", description: "Party name or abbreviation to search (e.g. 'SVP', 'SP', 'FDP', 'Grüne', 'Mitte')", }, active: { type: "boolean", description: "Only active (currently seated) members (default: true)", }, limit: {