ris_landesrecht
Search Austrian state laws by keywords, titles, or specific federal states to find relevant legal information from provincial legislation databases.
Instructions
Search Austrian state/provincial laws (Landesrecht).
Use this tool to find laws enacted by Austrian federal states (Bundeslaender).
Example: suchworte="Bauordnung", bundesland="Salzburg"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| suchworte | No | Full-text search terms | |
| titel | No | Search in law titles | |
| bundesland | No | Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland | |
| applikation | No | "LrKons" (consolidated, default) | LrKons |
| seite | No | Page number | |
| limit | No | Results per page | |
| response_format | No | "markdown" or "json" | markdown |
Implementation Reference
- src/tools/landesrecht.ts:44-69 (handler)The handler function for the 'ris_landesrecht' tool which processes search parameters and executes the search.
async (args) => { const { suchworte, titel, bundesland, applikation, seite, limit, response_format } = args; if (!hasAnyParam(args, ['suchworte', 'titel', 'bundesland'])) { return createValidationErrorResponse([ 'suchworte` fuer Volltextsuche', 'titel` fuer Suche in Gesetzesnamen', 'bundesland` fuer Suche nach Bundesland', ]); } const params = buildBaseParams(applikation, limit, seite); addOptionalParams(params, [ [suchworte, 'Suchworte'], [titel, 'Titel'], ]); if (bundesland) { const apiKey = BUNDESLAND_MAPPING[bundesland]; if (apiKey) { params[`Bundesland.${apiKey}`] = 'true'; } } return executeSearchTool(searchLandesrecht, params, response_format); }, - src/tools/landesrecht.ts:19-71 (registration)Registration of the 'ris_landesrecht' tool with the MCP server.
export function registerLandesrechtTool(server: McpServer): void { server.tool( 'ris_landesrecht', `Search Austrian state/provincial laws (Landesrecht). Use this tool to find laws enacted by Austrian federal states (Bundeslaender). Example: suchworte="Bauordnung", bundesland="Salzburg"`, { suchworte: z.string().max(1000).optional().describe('Full-text search terms'), titel: z.string().max(500).optional().describe('Search in law titles'), bundesland: LandesrechtBundeslandSchema.optional().describe( 'Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland', ), applikation: z .enum(['LrKons']) .default('LrKons') .describe('"LrKons" (consolidated, default)'), seite: z.number().default(1).describe('Page number'), limit: z.number().default(20).describe('Results per page'), response_format: z .enum(['markdown', 'json']) .default('markdown') .describe('"markdown" or "json"'), }, async (args) => { const { suchworte, titel, bundesland, applikation, seite, limit, response_format } = args; if (!hasAnyParam(args, ['suchworte', 'titel', 'bundesland'])) { return createValidationErrorResponse([ 'suchworte` fuer Volltextsuche', 'titel` fuer Suche in Gesetzesnamen', 'bundesland` fuer Suche nach Bundesland', ]); } const params = buildBaseParams(applikation, limit, seite); addOptionalParams(params, [ [suchworte, 'Suchworte'], [titel, 'Titel'], ]); if (bundesland) { const apiKey = BUNDESLAND_MAPPING[bundesland]; if (apiKey) { params[`Bundesland.${apiKey}`] = 'true'; } } return executeSearchTool(searchLandesrecht, params, response_format); }, ); }