{"_id":"@ansvar/swedish-law-mcp","_rev":"7-921ff767c7edbcb8ae0c88f2b4b9a197","name":"@ansvar/swedish-law-mcp","dist-tags":{"latest":"1.2.5"},"versions":{"1.1.0":{"name":"@ansvar/swedish-law-mcp","version":"1.1.0","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/swedish-law-mcp@1.1.0","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"bin":{"swedish-law-mcp":"dist/index.js"},"dist":{"shasum":"e16e937c0c74c82fcd515861142921b5b79f17d6","tarball":"https://registry.npmjs.org/@ansvar/swedish-law-mcp/-/swedish-law-mcp-1.1.0.tgz","fileCount":128,"integrity":"sha512-t+0o1Kr7LKIzjC6SvtUJjoaXYKEuvOv95GXqv23GGg+hNNNTpqvKm2Xjx6215zzqP9bXNEFOqtkLEgnlBGk7sA==","signatures":[{"sig":"MEQCIH3jXf/Prk5d3U5YNN3PNBDSpB1G0LXGxUNS9FvC4vsAAiArtGhLyOwdSh14y8/roEMKPkcUxGhGUGM2vOPtZhFcOQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":73277204},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"aee8032a7efce9d89cdf7f62dd3f02ea91b3db58","scripts":{"dev":"tsx src/index.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/index.js","ingest":"tsx scripts/ingest-riksdagen.ts","build:db":"tsx scripts/build-db.ts","sync:cases":"tsx scripts/sync-lagennu-cases.ts","test:watch":"vitest","audit:seeds":"tsx scripts/audit-seeds.ts","postinstall":"test -d dist || npm run build || true","fetch:eurlex":"tsx scripts/fetch-eurlex-metadata.ts","ingest:cases":"tsx scripts/ingest-lagennu-cases.ts","check-updates":"tsx scripts/check-updates.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","ingest:auto-all":"tsx scripts/auto-ingest-all-statutes.ts","ingest:relevant":"tsx scripts/ingest-relevant-laws.ts","sync:cases:full":"tsx scripts/sync-lagennu-cases.ts --full","sync:prep-works":"tsx scripts/ingest-preparatory-works.ts","verify:eu-coverage":"tsx scripts/verify-eu-coverage.ts","extract:definitions":"tsx scripts/extract-definitions.ts","migrate:eu-references":"tsx scripts/migrate-eu-references.ts","import:eurlex-documents":"tsx scripts/import-eurlex-documents.ts","ingest:cases:full-archive":"tsx scripts/ingest-lagennu-full-archive.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","directories":{},"_nodeVersion":"25.2.1","dependencies":{"better-sqlite3":"^12.6.2","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^27.4.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^22.15.29","@types/jsdom":"^21.1.7","fast-xml-parser":"^5.3.5","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/swedish-law-mcp_1.1.0_1770956472978_0.4869987898276127","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/swedish-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"1.2.0":{"name":"@ansvar/swedish-law-mcp","version":"1.2.0","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/swedish-law-mcp@1.2.0","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"bin":{"swedish-law-mcp":"dist/index.js"},"dist":{"shasum":"62eae5393b444ced5f146625d62f7667384caccb","tarball":"https://registry.npmjs.org/@ansvar/swedish-law-mcp/-/swedish-law-mcp-1.2.0.tgz","fileCount":128,"integrity":"sha512-NBnFP2TrUHidW4M1KTwkG12qUPDgtmRuaLnIpIIgaFFadxDfbpTGKJQtv48CbeBJ0uGhRo7r35sB58VoG1sd7A==","signatures":[{"sig":"MEUCIQDbaw941XW5ciawpXw4qz7tMAb5AT+lV5Vv/EHnUYOGMwIgbQ8UxTo/Tx8lCNS5woym9rOSYvuj14QKJF034TiUpds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fswedish-law-mcp@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73267227},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1a903a09deb1dfc235cd46665db0ada404de28f6","scripts":{"dev":"tsx src/index.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/index.js","ingest":"tsx scripts/ingest-riksdagen.ts","build:db":"tsx scripts/build-db.ts","sync:cases":"tsx scripts/sync-lagennu-cases.ts","test:watch":"vitest","audit:seeds":"tsx scripts/audit-seeds.ts","postinstall":"test -d dist || npm run build || true","fetch:eurlex":"tsx scripts/fetch-eurlex-metadata.ts","ingest:cases":"tsx scripts/ingest-lagennu-cases.ts","check-updates":"tsx scripts/check-updates.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","ingest:auto-all":"tsx scripts/auto-ingest-all-statutes.ts","ingest:relevant":"tsx scripts/ingest-relevant-laws.ts","sync:cases:full":"tsx scripts/sync-lagennu-cases.ts --full","sync:prep-works":"tsx scripts/ingest-preparatory-works.ts","verify:eu-coverage":"tsx scripts/verify-eu-coverage.ts","extract:definitions":"tsx scripts/extract-definitions.ts","migrate:eu-references":"tsx scripts/migrate-eu-references.ts","import:eurlex-documents":"tsx scripts/import-eurlex-documents.ts","ingest:cases:full-archive":"tsx scripts/ingest-lagennu-full-archive.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^27.4.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^22.15.29","@types/jsdom":"^21.1.7","fast-xml-parser":"^5.3.5"},"_npmOperationalInternal":{"tmp":"tmp/swedish-law-mcp_1.2.0_1771012619096_0.05852260412694976","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/swedish-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"1.2.1":{"name":"@ansvar/swedish-law-mcp","version":"1.2.1","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/swedish-law-mcp@1.2.1","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"bin":{"swedish-law-mcp":"dist/index.js"},"dist":{"shasum":"3e0e46768eac2fd371f176689bebf312a568f215","tarball":"https://registry.npmjs.org/@ansvar/swedish-law-mcp/-/swedish-law-mcp-1.2.1.tgz","fileCount":128,"integrity":"sha512-BPzUPIxqCvssHcvfmRkYaLnvVA1atfnVsQ95ZQSsqxjTxLdLqlKK8Qd1cgdlG2GlNANX8Bpw3Hqj8mGfUTk4nA==","signatures":[{"sig":"MEQCIGimAOcx6Em1Mqqt4xgERQrW/j1NYTBPAOsv6dT49+ddAiAz8kfGZAVCFjemDQSezU3iFQ7o88m7vluYejAhl74j4w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fswedish-law-mcp@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":73267307},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"1491fcfc1fab2c58f44d980adb650add5e9b3e67","mcpName":"eu.ansvar/swedish-law-mcp","scripts":{"dev":"tsx src/index.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/index.js","ingest":"tsx scripts/ingest-riksdagen.ts","build:db":"tsx scripts/build-db.ts","sync:cases":"tsx scripts/sync-lagennu-cases.ts","test:watch":"vitest","audit:seeds":"tsx scripts/audit-seeds.ts","postinstall":"test -d dist || npm run build || true","fetch:eurlex":"tsx scripts/fetch-eurlex-metadata.ts","ingest:cases":"tsx scripts/ingest-lagennu-cases.ts","check-updates":"tsx scripts/check-updates.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","ingest:auto-all":"tsx scripts/auto-ingest-all-statutes.ts","ingest:relevant":"tsx scripts/ingest-relevant-laws.ts","sync:cases:full":"tsx scripts/sync-lagennu-cases.ts --full","sync:prep-works":"tsx scripts/ingest-preparatory-works.ts","verify:eu-coverage":"tsx scripts/verify-eu-coverage.ts","extract:definitions":"tsx scripts/extract-definitions.ts","migrate:eu-references":"tsx scripts/migrate-eu-references.ts","import:eurlex-documents":"tsx scripts/import-eurlex-documents.ts","ingest:cases:full-archive":"tsx scripts/ingest-lagennu-full-archive.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^27.4.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^22.15.29","@types/jsdom":"^21.1.7","fast-xml-parser":"^5.3.5","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/swedish-law-mcp_1.2.1_1771014647248_0.4977874035398935","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/swedish-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"1.2.2":{"name":"@ansvar/swedish-law-mcp","version":"1.2.2","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/swedish-law-mcp@1.2.2","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"bin":{"swedish-law-mcp":"dist/index.js"},"dist":{"shasum":"d57090fdcbd09957b4cf9d901a603130ffddfda6","tarball":"https://registry.npmjs.org/@ansvar/swedish-law-mcp/-/swedish-law-mcp-1.2.2.tgz","fileCount":139,"integrity":"sha512-VE1wepC7Atp0zTZlYkZrCycjtT3YmhmGAZYhsu4axJt6dz9dBIjGANlGDpyvq82GVG8LEYBHetZrWTiOdr3TqQ==","signatures":[{"sig":"MEUCIBoAta3yJBAYB2GqOoT5T7g7y0V+AkNFrGC7fyGGemTDAiEAiIdCnonBh0DYPVdIwnhnsqbjcNSSSNPrTVZvZvWHfik=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fswedish-law-mcp@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":339945},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"feb97254ef56bb5ea5321e8ed5cc6a51ad22911c","mcpName":"eu.ansvar/swedish-law-mcp","scripts":{"dev":"tsx src/index.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/index.js","ingest":"tsx scripts/ingest-riksdagen.ts","build:db":"tsx scripts/build-db.ts","sync:cases":"tsx scripts/sync-lagennu-cases.ts","test:watch":"vitest","audit:seeds":"tsx scripts/audit-seeds.ts","postinstall":"test -d dist || npm run build || true","fetch:eurlex":"tsx scripts/fetch-eurlex-metadata.ts","ingest:cases":"tsx scripts/ingest-lagennu-cases.ts","build:db:paid":"tsx scripts/build-db-paid.ts","check-updates":"tsx scripts/check-updates.ts","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","ingest:auto-all":"tsx scripts/auto-ingest-all-statutes.ts","ingest:relevant":"tsx scripts/ingest-relevant-laws.ts","sync:cases:full":"tsx scripts/sync-lagennu-cases.ts --full","sync:prep-works":"tsx scripts/ingest-preparatory-works.ts","verify:eu-coverage":"tsx scripts/verify-eu-coverage.ts","extract:definitions":"tsx scripts/extract-definitions.ts","migrate:eu-references":"tsx scripts/migrate-eu-references.ts","import:eurlex-documents":"tsx scripts/import-eurlex-documents.ts","ingest:cases:full-archive":"tsx scripts/ingest-lagennu-full-archive.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^27.4.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^22.15.29","@types/jsdom":"^21.1.7","@vercel/node":"^5.6.3","fast-xml-parser":"^5.3.5","@vitest/coverage-v8":"^4.0.18"},"_npmOperationalInternal":{"tmp":"tmp/swedish-law-mcp_1.2.2_1771098814500_0.7453883668039374","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/swedish-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"1.2.3":{"name":"@ansvar/swedish-law-mcp","version":"1.2.3","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/swedish-law-mcp@1.2.3","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"bin":{"swedish-law-mcp":"dist/index.js"},"dist":{"shasum":"da8d313f26850451f536f8d7f42404d36b9d3d83","tarball":"https://registry.npmjs.org/@ansvar/swedish-law-mcp/-/swedish-law-mcp-1.2.3.tgz","fileCount":144,"integrity":"sha512-BoOK4Z5GpKLEUWQt0ejB8tMGQ50sWncccc8MO1H9ih/JK8FDi4xDo8XwmH2Ic0jBRJONXxH8OhTH+RQPwYUcRA==","signatures":[{"sig":"MEUCIFo+Tf/cBPKtNhWpp/ucFLjci+CEWouAGHA395tFRQGbAiEApTJn7ZQlXEUQC7k2fV1CT0H2nn2V7gZlSPvkuNiz1RE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":128290450},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"ffcea6e7e1364ee2da7791793c210c5ca01049ee","mcpName":"eu.ansvar/swedish-law-mcp","scripts":{"dev":"tsx src/index.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/index.js","ingest":"tsx scripts/ingest-riksdagen.ts","build:db":"tsx scripts/build-db.ts","validate":"npm run test && npm run test:contract","sync:cases":"tsx scripts/sync-lagennu-cases.ts","test:watch":"vitest","audit:seeds":"tsx scripts/audit-seeds.ts","postinstall":"test -d dist || npm run build || true","drift:detect":"tsx scripts/drift-detect.ts","fetch:eurlex":"tsx scripts/fetch-eurlex-metadata.ts","ingest:cases":"tsx scripts/ingest-lagennu-cases.ts","build:db:paid":"tsx scripts/build-db-paid.ts","check-updates":"tsx scripts/check-updates.ts","test:contract":"vitest run __tests__/contract/","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","ingest:auto-all":"tsx scripts/auto-ingest-all-statutes.ts","ingest:relevant":"tsx scripts/ingest-relevant-laws.ts","sync:cases:full":"tsx scripts/sync-lagennu-cases.ts --full","sync:prep-works":"tsx scripts/ingest-preparatory-works.ts","verify:eu-coverage":"tsx scripts/verify-eu-coverage.ts","extract:definitions":"tsx scripts/extract-definitions.ts","migrate:eu-references":"tsx scripts/migrate-eu-references.ts","import:eurlex-documents":"tsx scripts/import-eurlex-documents.ts","ingest:cases:full-archive":"tsx scripts/ingest-lagennu-full-archive.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"_npmVersion":"10.9.4","description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","directories":{},"_nodeVersion":"22.22.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^27.4.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^22.15.29","@types/jsdom":"^21.1.7","@vercel/node":"^5.6.3","better-sqlite3":"^12.6.2","fast-xml-parser":"^5.3.5","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/swedish-law-mcp_1.2.3_1772182822347_0.16668196854019635","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/swedish-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"1.2.5":{"name":"@ansvar/swedish-law-mcp","version":"1.2.5","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/swedish-law-mcp@1.2.5","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"bin":{"swedish-law-mcp":"dist/index.js"},"dist":{"shasum":"b62de8d4e249b7dc64a7939a0da99a4a589ba7e8","tarball":"https://registry.npmjs.org/@ansvar/swedish-law-mcp/-/swedish-law-mcp-1.2.5.tgz","fileCount":161,"integrity":"sha512-NBFMlsCH2TtZ8XlHFMJR0ALc8GwWhvPBbPGmLLV+Oq7SX8OrpetDdPr0mGB4zzlLIro0QcANwiGcohBQfX/cWQ==","signatures":[{"sig":"MEUCIDYpzznrtDXTJXcralTN4v9JAxaqiH++8yurPDVFzMzMAiEAijlcG/B4ahXGADy2MvG1nJ4uR+Fgdt+/mqfsHsikgkI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fswedish-law-mcp@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":409483},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"5e487340acb66b24de531a4fc4d15ca7a8d3e211","mcpName":"eu.ansvar/swedish-law-mcp","scripts":{"dev":"tsx src/index.ts","lint":"eslint src tests","test":"vitest run","build":"tsc","start":"node dist/index.js","ingest":"tsx scripts/ingest-riksdagen.ts","build:db":"tsx scripts/build-db.ts","validate":"npm run test && npm run test:contract","sync:cases":"tsx scripts/sync-lagennu-cases.ts","test:watch":"vitest","audit:seeds":"tsx scripts/audit-seeds.ts","download:db":"bash scripts/download-db.sh","postinstall":"test -d dist || npm run build || true","drift:detect":"tsx scripts/drift-detect.ts","fetch:eurlex":"tsx scripts/fetch-eurlex-metadata.ts","ingest:cases":"tsx scripts/ingest-lagennu-cases.ts","build:db:paid":"tsx scripts/build-db-paid.ts","check-updates":"tsx scripts/check-updates.ts","test:contract":"vitest run __tests__/contract/","test:coverage":"vitest run --coverage","prepublishOnly":"npm run build","ingest:auto-all":"tsx scripts/auto-ingest-all-statutes.ts","ingest:relevant":"tsx scripts/ingest-relevant-laws.ts","sync:cases:full":"tsx scripts/sync-lagennu-cases.ts --full","sync:prep-works":"tsx scripts/ingest-preparatory-works.ts","verify:eu-coverage":"tsx scripts/verify-eu-coverage.ts","extract:definitions":"tsx scripts/extract-definitions.ts","migrate:eu-references":"tsx scripts/migrate-eu-references.ts","import:eurlex-documents":"tsx scripts/import-eurlex-documents.ts","ingest:cases:full-archive":"tsx scripts/ingest-lagennu-full-archive.ts"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"overrides":{"ajv":"^8.18.0","undici":"^8.0.2","minimatch":"^10.2.5","smol-toml":"^1.6.1","path-to-regexp":"^8.4.2"},"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","directories":{},"_nodeVersion":"20.20.2","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.25.3"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","jsdom":"^27.4.0","vitest":"^4.0.18","typescript":"^5.9.3","@types/node":"^22.15.29","@types/jsdom":"^21.1.7","@vercel/node":"^5.6.3","better-sqlite3":"^12.6.2","fast-xml-parser":"^5.3.5","@vitest/coverage-v8":"^4.0.18","@types/better-sqlite3":"^7.6.13"},"_npmOperationalInternal":{"tmp":"tmp/swedish-law-mcp_1.2.5_1775885016232_0.6459391291564325","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/swedish-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"}},"time":{"created":"2026-02-13T04:21:12.860Z","modified":"2026-05-02T05:49:08.302Z","1.1.0":"2026-02-13T04:21:13.850Z","1.2.0":"2026-02-13T19:56:59.937Z","1.2.1":"2026-02-13T20:30:48.057Z","1.2.2":"2026-02-14T19:53:34.644Z","1.2.3":"2026-02-27T09:00:23.724Z","1.2.5":"2026-04-11T05:23:36.411Z"},"bugs":{"url":"https://github.com/Ansvar-Systems/swedish-law-mcp/issues"},"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","homepage":"https://github.com/Ansvar-Systems/swedish-law-mcp#readme","keywords":["mcp","model-context-protocol","ai","claude","swedish-law","sweden","legal","compliance","riksdagen","sfs","ansvar"],"repository":{"url":"git+https://github.com/Ansvar-Systems/swedish-law-mcp.git","type":"git"},"description":"Production-grade Swedish legal research MCP server with comprehensive statute coverage and EU law cross-references","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"readme":"# Swedish Law MCP Server\n\n**The Riksdagen alternative for the AI age.**\n\n[![npm version](https://badge.fury.io/js/@ansvar%2Fswedish-law-mcp.svg)](https://www.npmjs.com/package/@ansvar/swedish-law-mcp)\n[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![GitHub stars](https://img.shields.io/github/stars/Ansvar-Systems/swedish-law-mcp?style=social)](https://github.com/Ansvar-Systems/swedish-law-mcp)\n[![CI](https://github.com/Ansvar-Systems/swedish-law-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Ansvar-Systems/swedish-law-mcp/actions/workflows/ci.yml)\n[![Daily Data Check](https://github.com/Ansvar-Systems/swedish-law-mcp/actions/workflows/check-updates.yml/badge.svg)](https://github.com/Ansvar-Systems/swedish-law-mcp/actions/workflows/check-updates.yml)\n[![Database](https://img.shields.io/badge/database-pre--built-green)](docs/EU_INTEGRATION_GUIDE.md)\n[![Provisions](https://img.shields.io/badge/provisions-58%2C570-blue)](docs/EU_INTEGRATION_GUIDE.md)\n\nQuery **2,415 Swedish statutes** -- from Dataskyddslagen and Brottsbalken to Aktiebolagslagen, Miljöbalken, and more -- directly from Claude, Cursor, or any MCP-compatible client.\n\nIf you're building legal tech, compliance tools, or doing Swedish legal research, this is your verified reference database.\n\nBuilt by [Ansvar Systems](https://ansvar.eu) -- Stockholm, Sweden\n\n---\n\n## Why This Exists\n\nSwedish legal research is scattered across Riksdagen, SFS publications, lagen.nu, and EUR-Lex. Whether you're:\n- A **lawyer** validating citations in a brief or contract\n- A **compliance officer** checking if a statute is still in force\n- A **legal tech developer** building tools on Swedish law\n- A **researcher** tracing legislative history from proposition to statute\n\n...you shouldn't need 47 browser tabs and manual PDF cross-referencing. Ask Claude. Get the exact provision. With context.\n\nThis MCP server makes Swedish law **searchable, cross-referenceable, and AI-readable**.\n\n---\n\n## Quick Start\n\n### Use Remotely (No Install Needed)\n\n> Connect directly to the hosted version — zero dependencies, nothing to install.\n\n**Endpoint:** `https://mcp.ansvar.eu/law-se/mcp`\n\n| Client | How to Connect |\n|--------|---------------|\n| **Claude.ai** | Settings > Connectors > Add Integration > paste URL |\n| **Claude Code** | `claude mcp add swedish-law --transport http https://mcp.ansvar.eu/law-se/mcp` |\n| **Claude Desktop** | Add to config (see below) |\n| **GitHub Copilot** | Add to VS Code settings (see below) |\n\n**Claude Desktop** — add to `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"swedish-law\": {\n      \"type\": \"url\",\n      \"url\": \"https://mcp.ansvar.eu/law-se/mcp\"\n    }\n  }\n}\n```\n\n**GitHub Copilot** — add to VS Code `settings.json`:\n\n```json\n{\n  \"github.copilot.chat.mcp.servers\": {\n    \"swedish-law\": {\n      \"type\": \"http\",\n      \"url\": \"https://mcp.ansvar.eu/law-se/mcp\"\n    }\n  }\n}\n```\n\n### Use Locally (npm)\n\n```bash\nnpx @ansvar/swedish-law-mcp\n```\n\n**Claude Desktop** — add to `claude_desktop_config.json`:\n\n**macOS:** `~/Library/Application Support/Claude/claude_desktop_config.json`\n**Windows:** `%APPDATA%\\Claude\\claude_desktop_config.json`\n\n```json\n{\n  \"mcpServers\": {\n    \"swedish-law\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/swedish-law-mcp\"]\n    }\n  }\n}\n```\n\n**Cursor / VS Code:**\n\n```json\n{\n  \"mcp.servers\": {\n    \"swedish-law\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/swedish-law-mcp\"]\n    }\n  }\n}\n```\n\n## Example Queries\n\nOnce connected, just ask naturally:\n\n- *\"What does Dataskyddslagen 3 kap. 5 § say about consent?\"*\n- *\"Is PUL (1998:204) still in force?\"*\n- *\"Find provisions about personuppgifter in Swedish law\"*\n- *\"What EU directives does DSL implement?\"*\n- *\"Which Swedish laws implement the GDPR?\"*\n- *\"Get the preparatory works for Dataskyddslagen\"*\n- *\"Compare incident reporting requirements across NIS2 Swedish implementations\"*\n- *\"Validate the citation NJA 2020 s. 45\"*\n- *\"Find Labour Court cases about discrimination from 2020-2023\"*\n\n---\n\n## What's Included\n\n| Category | Count | Details |\n|----------|-------|---------|\n| **Statutes** | 2,415 statutes | Comprehensive Swedish legislation |\n| **Provisions** | 58,570 sections | Full-text searchable with FTS5 |\n| **Preparatory Works** | 6,735 documents | Propositions (Prop.) and SOUs |\n| **EU Cross-References** | 668 references | 228 EU directives and regulations |\n| **Legal Definitions** | 0 (free tier) | Table reserved, extraction not enabled in current free build |\n| **Database Size** | ~125 MB | Optimized SQLite, portable |\n| **Daily Updates** | Automated | Freshness checks against Riksdagen |\n\n**Verified data only** -- every citation is validated against official sources (Riksdagen, lagen.nu, EUR-Lex). Zero LLM-generated content.\n\n---\n\n## See It In Action\n\n### Why This Works\n\n**Verbatim Source Text (No LLM Processing):**\n- All statute text is ingested from Riksdagen/SFS official sources\n- Provisions are returned **unchanged** from SQLite FTS5 database rows\n- Zero LLM summarization or paraphrasing -- the database contains regulation text, not AI interpretations\n\n**Smart Context Management:**\n- Search returns ranked provisions with BM25 scoring (safe for context)\n- Provision retrieval gives exact text by SFS number + chapter/section\n- Cross-references help navigate without loading everything at once\n\n**Technical Architecture:**\n```\nRiksdagen API → Parse → SQLite → FTS5 snippet() → MCP response\n                  ↑                      ↑\n           Provision parser       Verbatim database query\n```\n\n### Traditional Research vs. This MCP\n\n| Traditional Approach | This MCP Server |\n|---------------------|-----------------|\n| Search Riksdagen by SFS number | Search by plain Swedish: *\"personuppgifter samtycke\"* |\n| Navigate multi-chapter statutes manually | Get the exact provision with context |\n| Manual cross-referencing between laws | `build_legal_stance` aggregates across sources |\n| \"Is this statute still in force?\" → check manually | `check_currency` tool → answer in seconds |\n| Find EU basis → dig through EUR-Lex | `get_eu_basis` → linked EU directives instantly |\n| Check 5+ sites for updates | Daily automated freshness checks |\n| No API, no integration | MCP protocol → AI-native |\n\n**Traditional:** Search Riksdagen → Download SFS PDF → Ctrl+F → Cross-reference with proposition → Check EUR-Lex for EU basis → Repeat\n\n**This MCP:** *\"What EU law is the basis for DSL 3 kap. 5 § about consent?\"* → Done.\n\n---\n\n## Available Tools (13)\n\n### Core Legal Research Tools (8)\n\n| Tool | Description |\n|------|-------------|\n| `search_legislation` | FTS5 search on 58,570 provisions with BM25 ranking |\n| `get_provision` | Retrieve specific provision by SFS + chapter/section |\n| `search_case_law` | FTS5 search on case law with court/date filters |\n| `get_preparatory_works` | Get linked propositions and SOUs for a statute |\n| `validate_citation` | Validate citation against database (zero-hallucination check) |\n| `build_legal_stance` | Aggregate citations from statutes, case law, prep works |\n| `format_citation` | Format citations per Swedish conventions (full/short/pinpoint) |\n| `check_currency` | Check if statute is in force, amended, or repealed |\n\n### EU Law Integration Tools (5)\n\n| Tool | Description |\n|------|-------------|\n| `get_eu_basis` | Get EU directives/regulations for Swedish statute |\n| `get_swedish_implementations` | Find Swedish laws implementing EU act |\n| `search_eu_implementations` | Search EU documents with Swedish implementation counts |\n| `get_provision_eu_basis` | Get EU law references for specific provision |\n| `validate_eu_compliance` | Check implementation status (future, requires EU MCP) |\n\n---\n\n## EU Law Integration\n\n**668 cross-references** linking 309 Swedish statutes to EU law, with bi-directional lookup.\n\n| Metric | Value |\n|--------|-------|\n| **EU References** | 668 cross-references |\n| **EU Documents** | 228 unique directives and regulations |\n| **Swedish Statutes with EU Refs** | 309 (12.8% of statutes) |\n| **Directives** | 89 |\n| **Regulations** | 139 |\n| **EUR-Lex Integration** | Automated metadata fetching |\n\n### Most Referenced EU Acts\n\n1. **eIDAS Regulation** (910/2014) - 20 references\n2. **E-Signatures Directive** (1999/93) - 15 references\n3. **GDPR** (2016/679) - 15 references\n4. **Data Protection Directive** (1995/46) - 14 references\n5. **Market Surveillance Regulation** (2019/1020) - 14 references\n\nSee [EU_INTEGRATION_GUIDE.md](docs/EU_INTEGRATION_GUIDE.md) for detailed documentation and [EU_USAGE_EXAMPLES.md](docs/EU_USAGE_EXAMPLES.md) for practical examples.\n\n---\n\n## Data Sources & Freshness\n\nAll content is sourced from authoritative Swedish legal databases:\n\n- **[Riksdagen](https://riksdagen.se/)** -- Swedish Parliament's official legal database\n- **[Svensk Forfattningssamling](https://svenskforfattningssamling.se/)** -- Official statute collection\n- **[Lagen.nu](https://lagen.nu)** -- Case law database (CC-BY Domstolsverket)\n- **[EUR-Lex](https://eur-lex.europa.eu/)** -- Official EU law database (metadata only)\n\n### Automated Freshness Checks (Daily)\n\nA [daily GitHub Actions workflow](.github/workflows/check-updates.yml) monitors all data sources:\n\n| Source | Check | Method |\n|--------|-------|--------|\n| **Statute amendments** | Riksdagen API date comparison | All 2,415 statutes checked |\n| **New statutes** | Riksdagen SFS publications (90-day window) | Diffed against database |\n| **Case law** | lagen.nu feed entry count | Compared to database |\n| **Preparatory works** | Riksdagen proposition API (30-day window) | New props detected |\n| **EU reference staleness** | Git commit timestamps | Flagged if >90 days old |\n\nThe workflow supports `auto_update: true` dispatch for automated sync, rebuild, version bump, and npm publishing.\n\n---\n\n## Security\n\nThis project uses multiple layers of automated security scanning:\n\n| Scanner | What It Does | Schedule |\n|---------|-------------|----------|\n| **CodeQL** | Static analysis for security vulnerabilities | Weekly + PRs |\n| **Semgrep** | SAST scanning (OWASP top 10, secrets, TypeScript) | Every push |\n| **Gitleaks** | Secret detection across git history | Every push |\n| **Trivy** | CVE scanning on filesystem and npm dependencies | Daily |\n| **Docker Security** | Container image scanning + SBOM generation | Daily |\n| **Socket.dev** | Supply chain attack detection | PRs |\n| **OSSF Scorecard** | OpenSSF best practices scoring | Weekly |\n| **Dependabot** | Automated dependency updates | Weekly |\n\nSee [SECURITY.md](SECURITY.md) for the full policy and vulnerability reporting.\n\n---\n\n## Important Disclaimers\n\n### Legal Advice\n\n> **THIS TOOL IS NOT LEGAL ADVICE**\n>\n> Statute text is sourced from official Riksdagen/SFS publications. However:\n> - This is a **research tool**, not a substitute for professional legal counsel\n> - **Court case coverage is limited** -- do not rely solely on this for case law research\n> - **Verify critical citations** against primary sources for court filings\n> - **EU cross-references** are extracted from Swedish statute text, not EUR-Lex full text\n\n**Before using professionally, read:** [DISCLAIMER.md](DISCLAIMER.md) | [PRIVACY.md](PRIVACY.md)\n\n### Client Confidentiality\n\nQueries go through the Claude API. For privileged or confidential matters, use on-premise deployment. See [PRIVACY.md](PRIVACY.md) for Advokatsamfundet compliance guidance.\n\n---\n\n## Documentation\n\n- **[EU Integration Guide](docs/EU_INTEGRATION_GUIDE.md)** -- Detailed EU cross-reference documentation\n- **[EU Usage Examples](docs/EU_USAGE_EXAMPLES.md)** -- Practical EU lookup examples\n- **[Security Policy](SECURITY.md)** -- Vulnerability reporting and scanning details\n- **[Disclaimer](DISCLAIMER.md)** -- Legal disclaimers and professional use notices\n- **[Privacy](PRIVACY.md)** -- Client confidentiality and data handling\n\n---\n\n## Development\n\n### Branching Strategy\n\nThis repository uses a `dev` integration branch. **Do not push directly to `main`.**\n\n```\nfeature-branch → PR to dev → verify on dev → PR to main → deploy\n```\n\n- `main` is production-ready. Only receives merges from `dev` via PR.\n- `dev` is the integration branch. All changes land here first.\n- Feature branches are created from `dev`.\n\n### Setup\n\n```bash\ngit clone https://github.com/Ansvar-Systems/swedish-law-mcp\ncd swedish-law-mcp\nnpm install\nnpm run build\nnpm test\n```\n\n### Running Locally\n\n```bash\nnpm run dev                                       # Start MCP server\nnpx @anthropic/mcp-inspector node dist/index.js   # Test with MCP Inspector\n```\n\n### Data Management\n\n```bash\nnpm run ingest -- <sfs-number> <output.json>   # Ingest statute from Riksdagen\nnpm run ingest:auto-all -- --scope all-laws --dry-run  # Coverage audit against Riksdagen\nnpm run ingest:auto-all -- --scope all-laws   # Ingest full law-like corpus from Riksdagen\nnpm run ingest:cases:full-archive              # Ingest case law (full archive)\nnpm run sync:cases                             # Ingest case law (incremental)\nnpm run sync:prep-works                        # Sync preparatory works\nnpm run extract:definitions                    # Extract legal definitions\nnpm run build:db                               # Rebuild SQLite database\nnpm run check-updates                          # Check for amendments\n```\n\n### Performance\n\n- **Search Speed:** <100ms for most FTS5 queries\n- **Database Size:** ~125 MB (efficient, portable)\n- **Reliability:** 100% ingestion success rate\n\n---\n\n## Related Projects: Complete Compliance Suite\n\nThis server is part of **Ansvar's Compliance Suite** -- MCP servers that work together for end-to-end compliance coverage:\n\n### [@ansvar/eu-regulations-mcp](https://github.com/Ansvar-Systems/EU_compliance_MCP)\n**Query 49 EU regulations directly from Claude** -- GDPR, AI Act, DORA, NIS2, MiFID II, eIDAS, and more. Full regulatory text with article-level search. `npx @ansvar/eu-regulations-mcp`\n\n### @ansvar/swedish-law-mcp (This Project)\n**Query 2,415 Swedish statutes directly from Claude** -- DSL, BrB, ABL, MB, and more. Full provision text with EU cross-references. `npx @ansvar/swedish-law-mcp`\n\n### [@ansvar/us-regulations-mcp](https://github.com/Ansvar-Systems/US_Compliance_MCP)\n**Query US federal and state compliance laws** -- HIPAA, CCPA, SOX, GLBA, FERPA, and more. `npm install @ansvar/us-regulations-mcp`\n\n### [@ansvar/ot-security-mcp](https://github.com/Ansvar-Systems/ot-security-mcp)\n**Query IEC 62443, NIST 800-82/53, and MITRE ATT&CK for ICS** -- Specialized for OT/ICS environments. `npx @ansvar/ot-security-mcp`\n\n### [@ansvar/automotive-cybersecurity-mcp](https://github.com/Ansvar-Systems/Automotive-MCP)\n**Query UNECE R155/R156 and ISO 21434** -- Automotive cybersecurity compliance. `npx @ansvar/automotive-cybersecurity-mcp`\n\n### [@ansvar/sanctions-mcp](https://github.com/Ansvar-Systems/Sanctions-MCP)\n**Offline-capable sanctions screening** -- OFAC, EU, UN sanctions lists. `pip install ansvar-sanctions-mcp`\n\n---\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\nPriority areas:\n- Court case law expansion (currently limited coverage)\n- EU Regulations MCP integration (full EU law text, CJEU case law)\n- Historical statute versions and amendment tracking\n- Lower court decisions (Tingsrätt, Hovrätt)\n\n---\n\n## Roadmap\n\n- [x] **Statute expansion** -- 785% growth from 81 to 717 statutes (v1.1.0)\n- [x] **EU law integration** -- 668 cross-references to 228 EU directives/regulations (v1.1.0)\n- [ ] Court case law expansion (scraper updated, re-ingestion needed for 12K-18K cases)\n- [ ] Full EU text integration (via @ansvar/eu-regulations-mcp)\n- [ ] Lower court coverage (Tingsrätt, Hovrätt archives)\n- [ ] Historical statute versions (amendment tracking)\n- [ ] English translations for key statutes\n- [ ] Web API for programmatic access\n\n---\n\n## Citation\n\nIf you use this MCP server in academic research:\n\n```bibtex\n@software{swedish_law_mcp_2025,\n  author = {Ansvar Systems AB},\n  title = {Swedish Law MCP Server: Production-Grade Legal Research Tool},\n  year = {2025},\n  url = {https://github.com/Ansvar-Systems/swedish-law-mcp},\n  note = {Comprehensive Swedish legal database with 2,415 statutes and EU law cross-references}\n}\n```\n\n---\n\n## License\n\nApache License 2.0. See [LICENSE](./LICENSE) for details.\n\n### Data Licenses\n\n- **Statutes & Propositions:** Swedish Government (public domain)\n- **Case Law:** CC-BY Domstolsverket (via lagen.nu)\n- **EU Metadata:** EUR-Lex (EU public domain)\n\n---\n\n## About Ansvar Systems\n\nWe build AI-accelerated compliance and legal research tools for the European market. This MCP server started as our internal reference tool for Swedish law -- turns out everyone building for the Swedish market has the same research frustrations.\n\nSo we're open-sourcing it. Navigating 2,415 statutes shouldn't require a law degree.\n\n**[ansvar.eu](https://ansvar.eu)** -- Stockholm, Sweden\n\n---\n\n<p align=\"center\">\n  <sub>Built with care in Stockholm, Sweden</sub>\n</p>\n","readmeFilename":"README.md"}