ris_bundesrecht
Search Austrian federal laws and legislation by keywords, titles, or specific paragraphs to find legal information from official sources.
Instructions
Search Austrian federal laws (Bundesrecht).
Use this tool to find Austrian federal legislation like ABGB, StGB, UGB, etc.
Example queries:
suchworte="Mietrecht" -> Find laws mentioning rent law
titel="ABGB", paragraph="1319a" -> Find specific ABGB section
applikation="Begut" -> Search draft legislation
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| suchworte | No | Full-text search terms (e.g., "Mietrecht", "Schadenersatz") | |
| titel | No | Search in law titles (e.g., "ABGB", "Strafgesetzbuch") | |
| paragraph | No | Paragraph number to search for (e.g., "1295" for §1295) | |
| applikation | No | Data source - "BrKons" (consolidated, default), "Begut" (drafts), "BgblAuth" (gazette), "Erv" (English) | BrKons |
| fassung_vom | No | Date for historical version (YYYY-MM-DD) | |
| seite | No | Page number (default: 1) | |
| limit | No | Results per page 10/20/50/100 (default: 20) | |
| response_format | No | "markdown" (default) or "json" | markdown |
Implementation Reference
- src/tools/bundesrecht.ts:56-90 (handler)The handler function for the `ris_bundesrecht` tool. It processes the arguments, prepares the search parameters, and delegates the execution to `executeSearchTool`.
async (args) => { const { suchworte, titel, paragraph, applikation, fassung_vom, seite, limit, response_format, } = args; if (!hasAnyParam(args, ['suchworte', 'titel', 'paragraph'])) { return createValidationErrorResponse([ 'suchworte` fuer Volltextsuche', 'titel` fuer Suche in Gesetzesnamen', 'paragraph` fuer Suche nach Paragraphen', ]); } const params = buildBaseParams(applikation, limit, seite); addOptionalParams(params, [ [suchworte, 'Suchworte'], [titel, 'Titel'], [fassung_vom, 'FassungVom'], ]); if (paragraph) { params['Abschnitt.Von'] = paragraph; params['Abschnitt.Bis'] = paragraph; params['Abschnitt.Typ'] = 'Paragraph'; } return executeSearchTool(searchBundesrecht, params, response_format); }, - src/tools/bundesrecht.ts:18-92 (registration)The registration function for the `ris_bundesrecht` tool. It defines the tool name, description, schema, and handler.
export function registerBundesrechtTool(server: McpServer): void { server.tool( 'ris_bundesrecht', `Search Austrian federal laws (Bundesrecht). Use this tool to find Austrian federal legislation like ABGB, StGB, UGB, etc. Example queries: - suchworte="Mietrecht" -> Find laws mentioning rent law - titel="ABGB", paragraph="1319a" -> Find specific ABGB section - applikation="Begut" -> Search draft legislation`, { suchworte: z .string() .max(1000) .optional() .describe('Full-text search terms (e.g., "Mietrecht", "Schadenersatz")'), titel: z .string() .max(500) .optional() .describe('Search in law titles (e.g., "ABGB", "Strafgesetzbuch")'), paragraph: z .string() .max(100) .optional() .describe('Paragraph number to search for (e.g., "1295" for §1295)'), applikation: BundesrechtApplikationSchema.default('BrKons').describe( 'Data source - "BrKons" (consolidated, default), "Begut" (drafts), "BgblAuth" (gazette), "Erv" (English)', ), fassung_vom: DateSchema.optional().describe('Date for historical version (YYYY-MM-DD)'), seite: z.number().default(1).describe('Page number (default: 1)'), limit: z.number().default(20).describe('Results per page 10/20/50/100 (default: 20)'), response_format: z .enum(['markdown', 'json']) .default('markdown') .describe('"markdown" (default) or "json"'), }, async (args) => { const { suchworte, titel, paragraph, applikation, fassung_vom, seite, limit, response_format, } = args; if (!hasAnyParam(args, ['suchworte', 'titel', 'paragraph'])) { return createValidationErrorResponse([ 'suchworte` fuer Volltextsuche', 'titel` fuer Suche in Gesetzesnamen', 'paragraph` fuer Suche nach Paragraphen', ]); } const params = buildBaseParams(applikation, limit, seite); addOptionalParams(params, [ [suchworte, 'Suchworte'], [titel, 'Titel'], [fassung_vom, 'FassungVom'], ]); if (paragraph) { params['Abschnitt.Von'] = paragraph; params['Abschnitt.Bis'] = paragraph; params['Abschnitt.Typ'] = 'Paragraph'; } return executeSearchTool(searchBundesrecht, params, response_format); }, ); }