@iflow-mcp/ansvar-systems-german-law-mcp
Version:
German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de
42 lines (41 loc) • 1.44 kB
JavaScript
import { NORWEGIAN_LEGISLATION } from "../sample-data/no-legislation.js";
import { createRegexCitationHandlers, createStaticIngestionRunner, getDocumentFromMemory, searchDocumentsInMemory, } from "../shell/adapter-kit.js";
const LOV_PATTERN = /^LOV-(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})-(?<number>\d+)$/i;
const { parseCitation, validateCitation } = createRegexCitationHandlers({
pattern: LOV_PATTERN,
reason: "Citation does not match expected LOV format (LOV-YYYY-MM-DD-NNN).",
normalize: ({ year, month, day, number }) => `LOV-${year}-${month}-${day}-${number}`,
});
const runIngestion = createStaticIngestionRunner({
defaultSource: "lovdata",
count: NORWEGIAN_LEGISLATION.length,
});
export const norwayAdapter = {
country: {
code: "no",
name: "Norway",
defaultLanguage: "no",
sources: ["lovdata"],
},
capabilities: {
documents: true,
caseLaw: false,
preparatoryWorks: false,
citations: true,
formatting: false,
currency: false,
legalStance: false,
eu: false,
ingestion: true,
versionTracking: false,
},
async searchDocuments(request) {
return searchDocumentsInMemory(NORWEGIAN_LEGISLATION, request);
},
async getDocument(id) {
return getDocumentFromMemory(NORWEGIAN_LEGISLATION, id);
},
parseCitation,
validateCitation,
runIngestion,
};