search_parliament_business
Search Swiss Parliament political affairs including bills, motions, and questions using OpenParlData.ch full-text search across the Federal Assembly.
Instructions
Search Swiss Parliament political affairs — bills, motions, interpellations, postulates, questions, and initiatives. Uses OpenParlData.ch full-text search across the Federal Assembly (Bundesversammlung).
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g. 'Klimaschutz', 'AHV', 'Neutralität') | |
| limit | No | Max results (default: 5, max: 20) |
Implementation Reference
- src/modules/parliament.ts:250-285 (handler)The implementation function for search_parliament_business.
async function searchParliamentBusiness(args: { query: string; limit?: number; }): Promise<string> { const limit = Math.min(args.limit ?? 5, 20); const url = buildUrl("/affairs/", { search: args.query, body_key: "CHE", lang: "de", lang_format: "flat", sort_by: "-begin_date", limit, }); const resp = await apiFetch<AffairRecord>(url); const affairs = resp.data.map((a) => ({ id: a.id, number: a.number, title: a.title_de, type: a.type_name_de, typeCategory: a.type_harmonized_de, status: a.state_name_de, date: a.begin_date ? a.begin_date.split("T")[0] : null, url: a.url_external_de, })); return truncate( JSON.stringify({ count: affairs.length, total: resp.meta.total_records, query: args.query, affairs, }) ); } - src/modules/parliament.ts:673-674 (registration)The tool registration logic that invokes the searchParliamentBusiness function.
case "search_parliament_business": return searchParliamentBusiness(args as { query: string; limit?: number }); - src/modules/parliament.ts:54-67 (schema)The MCP tool definition for search_parliament_business.
export const parliamentTools = [ { name: "search_parliament_business", description: "Search Swiss Parliament political affairs — bills, motions, interpellations, postulates, questions, and initiatives. Uses OpenParlData.ch full-text search across the Federal Assembly (Bundesversammlung).", inputSchema: { type: "object" as const, required: ["query"], properties: { query: { type: "string", description: "Search term (e.g. 'Klimaschutz', 'AHV', 'Neutralität')", },