ris_landesgesetzblatt
Search official Austrian state law gazettes (Landesgesetzblatt) to find provincial legislation across all 9 federal states using gazette numbers, years, states, or keywords.
Instructions
Search Austrian State Law Gazettes (Landesgesetzblatt).
Use this tool to find official publications of state/provincial laws. Covers all 9 federal states (Bundeslaender).
Example queries:
lgblnummer="50", jahrgang="2023", bundesland="Wien"
suchworte="Bauordnung", bundesland="Salzburg"
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| lgblnummer | No | Gazette number (e.g., "50") | |
| jahrgang | No | Year (e.g., "2023") | |
| bundesland | No | Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland | |
| suchworte | No | Full-text search terms | |
| titel | No | Search in gazette titles | |
| applikation | No | "LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Lower Austria) | LgblAuth |
| 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/landesgesetzblatt.ts:49-88 (handler)The handler function that processes the arguments, validates input, prepares parameters, and executes the search using `executeSearchTool`.
async (args) => { const { lgblnummer, jahrgang, bundesland, suchworte, titel, applikation, seite, limit, response_format, } = args; if (!hasAnyParam(args, ['lgblnummer', 'jahrgang', 'bundesland', 'suchworte', 'titel'])) { return createValidationErrorResponse([ 'lgblnummer` fuer Gesetzblatt-Nummer', 'jahrgang` fuer Jahr', 'bundesland` fuer Bundesland', 'suchworte` fuer Volltextsuche', 'titel` fuer Suche in Titeln', ]); } const params = buildBaseParams(applikation, limit, seite); addOptionalParams(params, [ [lgblnummer, 'Lgblnummer'], [jahrgang, 'Jahrgang'], [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/landesgesetzblatt.ts:19-90 (registration)The registration function `registerLandesgesetzblattTool` which registers the `ris_landesgesetzblatt` tool with the MCP server.
export function registerLandesgesetzblattTool(server: McpServer): void { server.tool( 'ris_landesgesetzblatt', `Search Austrian State Law Gazettes (Landesgesetzblatt). Use this tool to find official publications of state/provincial laws. Covers all 9 federal states (Bundeslaender). Example queries: - lgblnummer="50", jahrgang="2023", bundesland="Wien" - suchworte="Bauordnung", bundesland="Salzburg"`, { lgblnummer: z.string().max(100).optional().describe('Gazette number (e.g., "50")'), jahrgang: z.string().max(10).optional().describe('Year (e.g., "2023")'), bundesland: LandesrechtBundeslandSchema.optional().describe( 'Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland', ), suchworte: z.string().max(1000).optional().describe('Full-text search terms'), titel: z.string().max(500).optional().describe('Search in gazette titles'), applikation: z .enum(['LgblAuth', 'Lgbl', 'LgblNO']) .default('LgblAuth') .describe('"LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Lower Austria)'), 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 { lgblnummer, jahrgang, bundesland, suchworte, titel, applikation, seite, limit, response_format, } = args; if (!hasAnyParam(args, ['lgblnummer', 'jahrgang', 'bundesland', 'suchworte', 'titel'])) { return createValidationErrorResponse([ 'lgblnummer` fuer Gesetzblatt-Nummer', 'jahrgang` fuer Jahr', 'bundesland` fuer Bundesland', 'suchworte` fuer Volltextsuche', 'titel` fuer Suche in Titeln', ]); } const params = buildBaseParams(applikation, limit, seite); addOptionalParams(params, [ [lgblnummer, 'Lgblnummer'], [jahrgang, 'Jahrgang'], [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/landesgesetzblatt.ts:30-48 (schema)Zod schema defining the input parameters for the `ris_landesgesetzblatt` tool.
{ lgblnummer: z.string().max(100).optional().describe('Gazette number (e.g., "50")'), jahrgang: z.string().max(10).optional().describe('Year (e.g., "2023")'), bundesland: LandesrechtBundeslandSchema.optional().describe( 'Filter by state - Wien, Niederoesterreich, Oberoesterreich, Salzburg, Tirol, Vorarlberg, Kaernten, Steiermark, Burgenland', ), suchworte: z.string().max(1000).optional().describe('Full-text search terms'), titel: z.string().max(500).optional().describe('Search in gazette titles'), applikation: z .enum(['LgblAuth', 'Lgbl', 'LgblNO']) .default('LgblAuth') .describe('"LgblAuth" (authentic, default), "Lgbl" (general), "LgblNO" (Lower Austria)'), 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"'), },