{"_id":"@ansvar/german-law-mcp","_rev":"7-ca10f3e75976364ba6bbb1b2b6a095e1","name":"@ansvar/german-law-mcp","dist-tags":{"latest":"0.4.0"},"versions":{"0.2.0":{"name":"@ansvar/german-law-mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/german-law-mcp@0.2.0","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"bin":{"german-law-mcp":"dist/src/index.js"},"dist":{"shasum":"be6826a2e14fe8e82bf3c8438a6ca5989d2b9713","tarball":"https://registry.npmjs.org/@ansvar/german-law-mcp/-/german-law-mcp-0.2.0.tgz","fileCount":29,"integrity":"sha512-H8/6nr+CXght9cR2JD9lno5y1Qk5IvXAHLhYDKsIo+RmvPKONkglCHbhSMZWuHrikEtucGGZxV2d9p2WDRuHlA==","signatures":[{"sig":"MEYCIQDfshzYhfi6hNtV3135tSGtRWp9r+qfZC9f+gNkoDXfYwIhAN0abbV9d6hBMp4VIW/JCLcOn5a31APnFiyzG3Eyfpkc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163426},"main":"dist/src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"7a23611cdb08917cece0d9d6d75fb756de950e90","mcpName":"eu.ansvar/german-law-mcp","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test dist/test/**/*.test.js","build":"tsc -p tsconfig.json","start":"node dist/src/index.js","ingest":"python3 scripts/ingest_gesetze_im_internet.py","validate":"npm run typecheck && npm test","typecheck":"tsc --noEmit -p tsconfig.json","auto-update":"python3 scripts/auto_update_german_law.py --quiet","ingest:prep":"python3 scripts/ingest_dip_bundestag.py","ingest:cases":"python3 scripts/ingest_rechtsprechung_im_internet.py","build:db:paid":"tsx scripts/build-db-paid.ts","ingest:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --dry-run","ingest:missing":"python3 scripts/ingest_gesetze_im_internet.py --only-missing","write:metadata":"tsx scripts/write-db-metadata.ts","scaffold:country":"npm run build && node dist/scripts/scaffold-country.js","auto-update:daemon":"python3 scripts/auto_update_german_law.py --loop-minutes 30 --quiet","ingest:all:missing":"npm run ingest:missing && npm run ingest:cases:missing && npm run ingest:prep:missing","auto-update:dry-run":"python3 scripts/auto_update_german_law.py --dry-run --quiet","ingest:prep:dry-run":"python3 scripts/ingest_dip_bundestag.py --dry-run","ingest:prep:missing":"python3 scripts/ingest_dip_bundestag.py --only-missing","ingest:cases:dry-run":"python3 scripts/ingest_rechtsprechung_im_internet.py --dry-run","ingest:cases:missing":"python3 scripts/ingest_rechtsprechung_im_internet.py --only-missing","ingest:missing:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --only-missing --dry-run"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.13.4","@vercel/node":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/german-law-mcp_0.2.0_1771067880836_0.3727518092885631","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/german-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"0.3.2":{"name":"@ansvar/german-law-mcp","version":"0.3.2","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/german-law-mcp@0.3.2","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"bin":{"german-law-mcp":"dist/src/index.js"},"dist":{"shasum":"4a5a70518ee367bc44a805e18c2fc325b1d46a6b","tarball":"https://registry.npmjs.org/@ansvar/german-law-mcp/-/german-law-mcp-0.3.2.tgz","fileCount":35,"integrity":"sha512-cT3DQ3RxGfJJImI+jr50WnEPl/Xe4J/tHjoxOK7EfRVmXrS0AhGNjjdieyOMm1XaBrk9psiJxfh8atOU3/h46Q==","signatures":[{"sig":"MEUCIGygqKGNOaifQKM4K/54QLjppoU53IqQECaWtj/2vjhHAiEAwUySRbbSaG72wM406ywEOrAZc8Zwd34cVeBDO79NuXM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fgerman-law-mcp@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":225664},"main":"dist/src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"a761976cc9c1d6b1936018ff4ebe9553ee8e23b5","mcpName":"eu.ansvar/german-law-mcp","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","start":"node dist/src/index.js","ingest":"python3 scripts/ingest_gesetze_im_internet.py","validate":"npm run typecheck && npm test && npm run test:contract","typecheck":"tsc --noEmit -p tsconfig.json","auto-update":"python3 scripts/auto_update_german_law.py --quiet","ingest:prep":"python3 scripts/ingest_dip_bundestag.py","drift:detect":"tsx scripts/drift-detect.ts","ingest:cases":"python3 scripts/ingest_rechtsprechung_im_internet.py","build:db:free":"tsx scripts/build-db-free.ts","build:db:paid":"tsx scripts/build-db-paid.ts","test:contract":"npm run build && node --test dist/__tests__/contract/*.test.js","ingest:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --dry-run","ingest:missing":"python3 scripts/ingest_gesetze_im_internet.py --only-missing","write:metadata":"tsx scripts/write-db-metadata.ts","scaffold:country":"npm run build && node dist/scripts/scaffold-country.js","auto-update:daemon":"python3 scripts/auto_update_german_law.py --loop-minutes 30 --quiet","ingest:all:missing":"npm run ingest:missing && npm run ingest:cases:missing && npm run ingest:prep:missing","auto-update:dry-run":"python3 scripts/auto_update_german_law.py --dry-run --quiet","ingest:prep:dry-run":"python3 scripts/ingest_dip_bundestag.py --dry-run","ingest:prep:missing":"python3 scripts/ingest_dip_bundestag.py --only-missing","ingest:cases:dry-run":"python3 scripts/ingest_rechtsprechung_im_internet.py --dry-run","ingest:cases:missing":"python3 scripts/ingest_rechtsprechung_im_internet.py --only-missing","ingest:missing:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --only-missing --dry-run"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.13.4","@vercel/node":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/german-law-mcp_0.3.2_1771421753918_0.4567854899814934","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/german-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"0.3.3":{"name":"@ansvar/german-law-mcp","version":"0.3.3","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/german-law-mcp@0.3.3","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"bin":{"german-law-mcp":"dist/src/index.js"},"dist":{"shasum":"008965d53d63fb41bf2e981e59a33c273bc4cac3","tarball":"https://registry.npmjs.org/@ansvar/german-law-mcp/-/german-law-mcp-0.3.3.tgz","fileCount":35,"integrity":"sha512-YpCBZgi7+kzn+0OJqJIf6Jir0YGUIdKJkDBqcR2fyd7AJi2ii6P/kZpD1+BQ2vUgvWkxC1o8aXmL3kRI0PmX4A==","signatures":[{"sig":"MEUCIBEXNzrCh+JxaXAaB1mCHJSoC2RyYVsJ4CN1j8/CDVwoAiEAiUd/tUMeevdq5Az/v4nDXLsKc1Rvy06q/iJv+00PzwE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231442},"main":"dist/src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"b4dca54f2f57c20f3eda0fe8c022b562140b605f","mcpName":"eu.ansvar/german-law-mcp","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","start":"node dist/src/index.js","ingest":"python3 scripts/ingest_gesetze_im_internet.py","validate":"npm run typecheck && npm test && npm run test:contract","typecheck":"tsc --noEmit -p tsconfig.json","auto-update":"python3 scripts/auto_update_german_law.py --quiet","ingest:prep":"python3 scripts/ingest_dip_bundestag.py","drift:detect":"tsx scripts/drift-detect.ts","ingest:cases":"python3 scripts/ingest_rechtsprechung_im_internet.py","build:db:free":"tsx scripts/build-db-free.ts","build:db:paid":"tsx scripts/build-db-paid.ts","test:contract":"npm run build && node --test dist/__tests__/contract/*.test.js","ingest:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --dry-run","ingest:missing":"python3 scripts/ingest_gesetze_im_internet.py --only-missing","write:metadata":"tsx scripts/write-db-metadata.ts","scaffold:country":"npm run build && node dist/scripts/scaffold-country.js","auto-update:daemon":"python3 scripts/auto_update_german_law.py --loop-minutes 30 --quiet","ingest:all:missing":"npm run ingest:missing && npm run ingest:cases:missing && npm run ingest:prep:missing","auto-update:dry-run":"python3 scripts/auto_update_german_law.py --dry-run --quiet","ingest:prep:dry-run":"python3 scripts/ingest_dip_bundestag.py --dry-run","ingest:prep:missing":"python3 scripts/ingest_dip_bundestag.py --only-missing","ingest:cases:dry-run":"python3 scripts/ingest_rechtsprechung_im_internet.py --dry-run","ingest:cases:missing":"python3 scripts/ingest_rechtsprechung_im_internet.py --only-missing","ingest:missing:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --only-missing --dry-run"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.13.4","@vercel/node":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/german-law-mcp_0.3.3_1771590369028_0.87840821682008","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/german-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"0.3.4":{"name":"@ansvar/german-law-mcp","version":"0.3.4","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/german-law-mcp@0.3.4","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"bin":{"german-law-mcp":"dist/src/index.js"},"dist":{"shasum":"0d4553a2cc47e5ecd01d334f19af4c0878b85a16","tarball":"https://registry.npmjs.org/@ansvar/german-law-mcp/-/german-law-mcp-0.3.4.tgz","fileCount":35,"integrity":"sha512-RmSTLVHB3xAH4/I75VRh0SE61j3jnjjuyCWPfgB7cxWYEaa4S/kKlnlVqxRBHIGl9OAiEH0RKzaCxD22nB3Kkw==","signatures":[{"sig":"MEUCIQDr3eC7r7dejPjjHCp6gpYwPaXCNF4eoE8xgiV5SXDcBwIgYtnUACasT/NpIP54+nkqjjD0Gvwpv+Xx/EKdMzjQe58=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":231442},"main":"dist/src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"b4dca54f2f57c20f3eda0fe8c022b562140b605f","mcpName":"eu.ansvar/german-law-mcp","scripts":{"dev":"tsx src/index.ts","test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","start":"node dist/src/index.js","ingest":"python3 scripts/ingest_gesetze_im_internet.py","validate":"npm run typecheck && npm test && npm run test:contract","typecheck":"tsc --noEmit -p tsconfig.json","auto-update":"python3 scripts/auto_update_german_law.py --quiet","ingest:prep":"python3 scripts/ingest_dip_bundestag.py","drift:detect":"tsx scripts/drift-detect.ts","ingest:cases":"python3 scripts/ingest_rechtsprechung_im_internet.py","build:db:free":"tsx scripts/build-db-free.ts","build:db:paid":"tsx scripts/build-db-paid.ts","test:contract":"npm run build && node --test dist/__tests__/contract/*.test.js","ingest:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --dry-run","ingest:missing":"python3 scripts/ingest_gesetze_im_internet.py --only-missing","write:metadata":"tsx scripts/write-db-metadata.ts","scaffold:country":"npm run build && node dist/scripts/scaffold-country.js","auto-update:daemon":"python3 scripts/auto_update_german_law.py --loop-minutes 30 --quiet","ingest:all:missing":"npm run ingest:missing && npm run ingest:cases:missing && npm run ingest:prep:missing","auto-update:dry-run":"python3 scripts/auto_update_german_law.py --dry-run --quiet","ingest:prep:dry-run":"python3 scripts/ingest_dip_bundestag.py --dry-run","ingest:prep:missing":"python3 scripts/ingest_dip_bundestag.py --only-missing","ingest:cases:dry-run":"python3 scripts/ingest_rechtsprechung_im_internet.py --dry-run","ingest:cases:missing":"python3 scripts/ingest_rechtsprechung_im_internet.py --only-missing","ingest:missing:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --only-missing --dry-run"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"_npmVersion":"11.6.2","description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","directories":{},"_nodeVersion":"25.2.1","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.13.4","@vercel/node":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/german-law-mcp_0.3.4_1771590423702_0.8064077159512004","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/german-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"0.3.5":{"name":"@ansvar/german-law-mcp","version":"0.3.5","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/german-law-mcp@0.3.5","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"bin":{"german-law-mcp":"dist/src/index.js"},"dist":{"shasum":"e14b9fd6e529ae992886abdb30fd9bf7bef8103d","tarball":"https://registry.npmjs.org/@ansvar/german-law-mcp/-/german-law-mcp-0.3.5.tgz","fileCount":35,"integrity":"sha512-2UCZnpPCBGZog6GPabnc3U/fSCFvdxiAhL2vI1UIgXv5WTvacQQM7vNwWaXdtaEST13NcfBkcK3HBn3bf/AYDw==","signatures":[{"sig":"MEQCIFQN2xkvFFwzb9DYLVV35VZQcMLpgJ24jOcJELQsTLETAiBQOBSocHeJLMe9AWLzaISt4XsN1hEgdkxqL+rbk3vcMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fgerman-law-mcp@0.3.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":231470},"main":"dist/src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"eaa8cb28a170c3e6de8ed1bd2b3e2f820f5d9710","mcpName":"eu.ansvar/german-law-mcp","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","start":"node dist/src/index.js","ingest":"python3 scripts/ingest_gesetze_im_internet.py","validate":"npm run typecheck && npm test && npm run test:contract","typecheck":"tsc --noEmit -p tsconfig.json","auto-update":"python3 scripts/auto_update_german_law.py --quiet","ingest:prep":"python3 scripts/ingest_dip_bundestag.py","drift:detect":"tsx scripts/drift-detect.ts","ingest:cases":"python3 scripts/ingest_rechtsprechung_im_internet.py","build:db:free":"tsx scripts/build-db-free.ts","build:db:paid":"tsx scripts/build-db-paid.ts","test:contract":"npm run build && node --test dist/__tests__/contract/*.test.js","ingest:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --dry-run","ingest:missing":"python3 scripts/ingest_gesetze_im_internet.py --only-missing","write:metadata":"tsx scripts/write-db-metadata.ts","scaffold:country":"npm run build && node dist/scripts/scaffold-country.js","auto-update:daemon":"python3 scripts/auto_update_german_law.py --loop-minutes 30 --quiet","ingest:all:missing":"npm run ingest:missing && npm run ingest:cases:missing && npm run ingest:prep:missing","auto-update:dry-run":"python3 scripts/auto_update_german_law.py --dry-run --quiet","ingest:prep:dry-run":"python3 scripts/ingest_dip_bundestag.py --dry-run","ingest:prep:missing":"python3 scripts/ingest_dip_bundestag.py --only-missing","ingest:cases:dry-run":"python3 scripts/ingest_rechtsprechung_im_internet.py --dry-run","ingest:cases:missing":"python3 scripts/ingest_rechtsprechung_im_internet.py --only-missing","ingest:missing:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --only-missing --dry-run"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.13.4","@vercel/node":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/german-law-mcp_0.3.5_1771781728744_0.6558500670298875","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/german-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"},"0.4.0":{"name":"@ansvar/german-law-mcp","version":"0.4.0","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","_id":"@ansvar/german-law-mcp@0.4.0","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"bin":{"german-law-mcp":"dist/src/index.js"},"dist":{"shasum":"158c508b1105f8f93c944593ba2afa167c005ff5","tarball":"https://registry.npmjs.org/@ansvar/german-law-mcp/-/german-law-mcp-0.4.0.tgz","fileCount":38,"integrity":"sha512-YNwJyZaJ2RRHYeaO1DIY4U3Uwvf63bvVSQR5SBupRH0wAPzjJeMowJzNCf7CwaqNoiC6hoEe2tc/27bqfxtjFw==","signatures":[{"sig":"MEUCIQD+5IL8OW8W6WvEA283TCNIUDDGo/5LEemdaYOIQrLsFAIgclsO7eWQJQvPDOBMwI6vcBxnz5HUAYw3VFm9zVfioPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@ansvar%2fgerman-law-mcp@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":247904},"main":"dist/src/index.js","type":"module","engines":{"node":">=20"},"gitHead":"3eddefa1ff767d6ccec6935aee6c2069086c1d20","mcpName":"eu.ansvar/german-law-mcp","scripts":{"dev":"tsx src/index.ts","lint":"tsc --noEmit","test":"npm run build && node --test dist/test/*.test.js","build":"tsc -p tsconfig.json","start":"node dist/src/index.js","ingest":"python3 scripts/ingest_gesetze_im_internet.py","validate":"npm run typecheck && npm test && npm run test:contract","typecheck":"tsc --noEmit -p tsconfig.json","auto-update":"python3 scripts/auto_update_german_law.py --quiet","ingest:prep":"python3 scripts/ingest_dip_bundestag.py","drift:detect":"tsx scripts/drift-detect.ts","ingest:cases":"python3 scripts/ingest_rechtsprechung_im_internet.py","build:db:free":"tsx scripts/build-db-free.ts","build:db:paid":"tsx scripts/build-db-paid.ts","test:contract":"npm run build && node --test dist/__tests__/contract/*.test.js","ingest:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --dry-run","ingest:missing":"python3 scripts/ingest_gesetze_im_internet.py --only-missing","write:metadata":"tsx scripts/write-db-metadata.ts","scaffold:country":"npm run build && node dist/scripts/scaffold-country.js","auto-update:daemon":"python3 scripts/auto_update_german_law.py --loop-minutes 30 --quiet","ingest:all:missing":"npm run ingest:missing && npm run ingest:cases:missing && npm run ingest:prep:missing","auto-update:dry-run":"python3 scripts/auto_update_german_law.py --dry-run --quiet","ingest:prep:dry-run":"python3 scripts/ingest_dip_bundestag.py --dry-run","ingest:prep:missing":"python3 scripts/ingest_dip_bundestag.py --only-missing","ingest:cases:dry-run":"python3 scripts/ingest_rechtsprechung_im_internet.py --dry-run","ingest:cases:missing":"python3 scripts/ingest_rechtsprechung_im_internet.py --only-missing","ingest:missing:dry-run":"python3 scripts/ingest_gesetze_im_internet.py --only-missing --dry-run"},"_npmUser":{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"},"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","directories":{},"_nodeVersion":"20.20.0","dependencies":{"@ansvar/mcp-sqlite":"^1.0.3","@modelcontextprotocol/sdk":"^1.26.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","typescript":"^5.7.3","@types/node":"^22.13.4","@vercel/node":"^5.6.3"},"_npmOperationalInternal":{"tmp":"tmp/german-law-mcp_0.4.0_1772644975646_0.41535311826516086","host":"s3://npm-registry-packages-npm-production"},"deprecated":"Ansvar MCP servers are now distributed as source from github.com/Ansvar-Systems/german-law-mcp under Apache 2.0. Self-hosting instructions: see the repo README. Hosted gateway: ansvar.eu"}},"time":{"created":"2026-02-14T11:18:00.730Z","modified":"2026-05-02T05:47:04.895Z","0.2.0":"2026-02-14T11:18:00.976Z","0.3.2":"2026-02-18T13:35:54.080Z","0.3.3":"2026-02-20T12:26:09.180Z","0.3.4":"2026-02-20T12:27:03.875Z","0.3.5":"2026-02-22T17:35:28.906Z","0.4.0":"2026-03-04T17:22:55.791Z"},"bugs":{"url":"https://github.com/Ansvar-Systems/German-law-mcp/issues"},"author":{"name":"Ansvar Systems AB","email":"hello@ansvar.ai"},"license":"Apache-2.0","homepage":"https://github.com/Ansvar-Systems/German-law-mcp#readme","keywords":["mcp","model-context-protocol","ai","claude","german-law","germany","legal","compliance","gesetze","ansvar"],"repository":{"url":"git+https://github.com/Ansvar-Systems/German-law-mcp.git","type":"git"},"description":"German legal research MCP server with statutes, case law, and preparatory works from gesetze-im-internet.de","maintainers":[{"name":"ansvar","email":"jeffrey.von.rotz@ansvar.eu"}],"readme":"# German Law MCP Server\n\n**The gesetze-im-internet.de alternative for the AI age.**\n\n[![npm version](https://badge.fury.io/js/@ansvar%2Fgerman-law-mcp.svg)](https://www.npmjs.com/package/@ansvar/german-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/German-law-mcp?style=social)](https://github.com/Ansvar-Systems/German-law-mcp)\n[![CI](https://github.com/Ansvar-Systems/German-law-mcp/actions/workflows/ci.yml/badge.svg)](https://github.com/Ansvar-Systems/German-law-mcp/actions/workflows/ci.yml)\n[![Daily Data Check](https://github.com/Ansvar-Systems/German-law-mcp/actions/workflows/check-updates.yml/badge.svg)](https://github.com/Ansvar-Systems/German-law-mcp/actions/workflows/check-updates.yml)\n\nQuery **6,870 German federal statutes** -- from the BGB and StGB to the GG, BDSG, and more -- directly from Claude, Cursor, or any MCP-compatible client.\n\nIf you're building legal tech, compliance tools, or doing German 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\nGerman legal research is scattered across gesetze-im-internet.de, dejure.org, rechtsprechung-im-internet.de, and DIP Bundestag. Whether you're:\n- A **Rechtsanwalt** validating citations in a Schriftsatz or contract\n- A **compliance officer** checking if a statute is still in force\n- A **legal tech developer** building tools on German law\n- A **researcher** tracing legislative history from Drucksache 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 German 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://german-law-mcp.vercel.app/mcp`\n\n| Client | How to Connect |\n|--------|---------------|\n| **Claude.ai** | Settings > Connectors > Add Integration > paste URL |\n| **Claude Code** | `claude mcp add german-law --transport http https://german-law-mcp.vercel.app/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    \"german-law\": {\n      \"type\": \"url\",\n      \"url\": \"https://german-law-mcp.vercel.app/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    \"german-law\": {\n      \"type\": \"http\",\n      \"url\": \"https://german-law-mcp.vercel.app/mcp\"\n    }\n  }\n}\n```\n\n### Use Locally (npm)\n\n```bash\nnpx @ansvar/german-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    \"german-law\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/german-law-mcp\"]\n    }\n  }\n}\n```\n\n**Cursor / VS Code:**\n\n```json\n{\n  \"mcp.servers\": {\n    \"german-law\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@ansvar/german-law-mcp\"]\n    }\n  }\n}\n```\n\n## Example Queries\n\nOnce connected, just ask naturally:\n\n- *\"Was sagt § 823 Abs. 1 BGB über Schadensersatz?\"*\n- *\"Ist das BDSG 2018 noch in Kraft?\"*\n- *\"Find provisions about Datenschutz in German law\"*\n- *\"What EU directives does the BDSG implement?\"*\n- *\"Which German laws implement the GDPR?\"*\n- *\"Get the preparatory works for the IT-Sicherheitsgesetz\"*\n- *\"Validate the citation § 433 BGB\"*\n- *\"Search for Kündigungsschutz in case law\"*\n- *\"Compare DSGVO implementation across German statutes\"*\n\n---\n\n## What's Included\n\n| Category | Count | Details |\n|----------|-------|---------|\n| **Statutes** | 6,870 laws | Complete German federal legislation |\n| **Provisions** | 91,843 sections | Full-text searchable with FTS5 |\n| **Case Law** | 5,000 decisions | BVerfG, BGH, BVerwG, BAG, BSG, BFH, BPatG |\n| **Preparatory Works** | 89,423 records | Drucksachen + Plenarprotokolle (WP 19 + 20) |\n| **Database Size** | ~300 MB | Runtime download on cold start (Strategy B) |\n| **Daily Updates** | Automated | Freshness checks against gesetze-im-internet.de |\n\n**Verified data only** -- every provision is ingested from official government sources. 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 gesetze-im-internet.de official XML exports\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- Three-tier search strategy: exact citation match → FTS5 full-text → LIKE fallback\n- Cross-references help navigate without loading everything at once\n\n**Technical Architecture:**\n```\ngesetze-im-internet.de → Parse XML → 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 gesetze-im-internet.de by law name | Search by plain German: *\"Datenschutz Arbeitnehmer\"* |\n| Navigate multi-section 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` → answer in seconds |\n| Find EU basis → dig through EUR-Lex | `get_eu_basis` → linked EU directives instantly |\n| Check DIP Bundestag for legislative history | `get_preparatory_works` → structured results |\n| No API, no integration | MCP protocol → AI-native |\n\n**Traditional:** Search gesetze-im-internet.de → Download XML → Ctrl+F → Cross-reference with Drucksache → Check EUR-Lex for EU basis → Repeat\n\n**This MCP:** *\"What EU law is the basis for § 1 BDSG?\"* → Done.\n\n---\n\n## Available Tools (19)\n\n### Core Legal Research Tools (8)\n\n| Tool | Description |\n|------|-------------|\n| `search_legislation` | FTS5 search on 91,843 provisions with BM25 ranking |\n| `get_provision` | Retrieve specific provision by document ID |\n| `search_case_law` | Search 5,000 federal court decisions with court/date filters |\n| `get_preparatory_works` | Get Drucksachen and Plenarprotokolle 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 German conventions (default/short/pinpoint) |\n| `check_currency` | Check if statute is in force in the ingested corpus |\n\n### Citation Tools (2)\n\n| Tool | Description |\n|------|-------------|\n| `parse_citation` | Parse `§ 823 Abs. 1 BGB` or `Art. 1 Abs. 1 GG` into structured components |\n| `validate_citation` | Check if a citation exists in the database |\n\n### EU Law Integration Tools (5)\n\n| Tool | Description |\n|------|-------------|\n| `get_eu_basis` | Get EU directives/regulations for a German statute |\n| `get_german_implementations` | Find German laws implementing an EU act |\n| `search_eu_implementations` | Search EU documents with German implementation counts |\n| `get_provision_eu_basis` | Get EU law references for specific provision |\n| `validate_eu_compliance` | Check implementation status |\n\n### Discovery & Metadata Tools (2)\n\n| Tool | Description |\n|------|-------------|\n| `list_sources` | Data provenance and source metadata |\n| `about` | Server version, tier, statistics, and freshness |\n\n---\n\n## Data Sources & Freshness\n\nAll content is sourced from authoritative German legal databases:\n\n- **[gesetze-im-internet.de](https://www.gesetze-im-internet.de/)** -- Federal Ministry of Justice, all consolidated federal statutes\n- **[rechtsprechung-im-internet.de](https://www.rechtsprechung-im-internet.de/)** -- Federal court decisions (BVerfG, BGH, BVerwG, BAG, BSG, BFH, BPatG)\n- **[DIP Bundestag](https://dip.bundestag.de/)** -- Legislative preparatory works (Drucksachen, Plenarprotokolle)\n- **[EUR-Lex](https://eur-lex.europa.eu/)** -- EU cross-reference metadata\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** | gesetze-im-internet.de XML index | All 6,870 statutes checked |\n| **New statutes** | New entries in federal gazette | Diffed against database |\n| **Case law** | rechtsprechung-im-internet.de feed | Compared to database |\n| **Preparatory works** | DIP API query (30-day window) | New records detected |\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\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 gesetze-im-internet.de publications. However:\n> - This is a **research tool**, not a substitute for professional legal counsel\n> - **Court case coverage is limited** (5,000 decisions) -- 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 German 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. Lawyers should consider Bundesrechtsanwaltskammer (BRAK) confidentiality obligations when using cloud-based AI tools. See [PRIVACY.md](PRIVACY.md) for compliance guidance.\n\n---\n\n## Documentation\n\n- **[Architecture](docs/ARCHITECTURE.md)** -- Multi-country adapter architecture\n- **[Accuracy Plan](docs/ACCURACY_PLAN.md)** -- Roadmap to production accuracy\n- **[Auto Update](docs/AUTO_UPDATE.md)** -- Automated data freshness system\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/German-law-mcp\ncd German-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/src/index.js   # Test with MCP Inspector\n```\n\n### Data Management\n\n```bash\nnpm run ingest                    # Ingest statutes from gesetze-im-internet.de\nnpm run ingest:cases              # Ingest case law from rechtsprechung-im-internet.de\nnpm run ingest:prep               # Ingest preparatory works from DIP Bundestag\nnpm run auto-update               # Run full update cycle\nnpm run auto-update:dry-run       # Preview what would be updated\nnpm run drift:detect              # Detect schema/data drift\n```\n\n### Performance\n\n- **Search Speed:** <100ms for most FTS5 queries\n- **Database Size:** ~300 MB (runtime download, Strategy B)\n- **Ingestion Coverage:** 6,870/6,870 statutes (100% TOC coverage)\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/german-law-mcp (This Project)\n**Query 6,870 German statutes directly from Claude** -- BGB, StGB, GG, BDSG, and more. Full provision text with EU cross-references. `npx @ansvar/german-law-mcp`\n\n### [@ansvar/dutch-law-mcp](https://github.com/Ansvar-Systems/Dutch-law-mcp)\n**Query 3,248 Dutch statutes directly from Claude** -- BW, Sr, Awb, and more. Full provision text with EU cross-references. `npx @ansvar/dutch-law-mcp`\n\n### [@ansvar/swedish-law-mcp](https://github.com/Ansvar-Systems/Swedish-law-mcp)\n**Query 717 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. `npx @ansvar/us-regulations-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---\n\n## Contributing\n\nContributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\nPriority areas:\n- Lower court decisions (Landesgerichte, Oberlandesgerichte)\n- Historical statute versions and amendment tracking (Fassungsvergleich)\n- Expanded case law coverage (currently 5,000 of ~50,000+ published decisions)\n- State law (Landesrecht) for major Bundesländer\n\n---\n\n## Roadmap\n\n- [x] **Full statute coverage** -- 6,870 federal statutes, 91,843 provisions\n- [x] **Case law** -- 5,000 federal court decisions\n- [x] **Preparatory works** -- 89,423 DIP records (WP 19 + 20)\n- [x] **EU cross-references** -- Extracted from statute text\n- [x] **Citation parsing** -- `§ 823 Abs. 1 BGB` and `Art. 1 Abs. 1 GG` formats\n- [x] **Free/Professional tier gating** -- Honest messaging for tier limitations\n- [ ] Expanded case law (full archive, ~50,000+ decisions)\n- [ ] Lower court coverage (Landesgerichte)\n- [ ] Historical statute versions (Fassungsvergleich)\n- [ ] State law (Landesrecht)\n- [ ] English translations for key statutes\n\n---\n\n## Citation\n\nIf you use this MCP server in academic research:\n\n```bibtex\n@software{german_law_mcp_2025,\n  author = {Ansvar Systems AB},\n  title = {German Law MCP Server: Production-Grade Legal Research Tool},\n  year = {2025},\n  url = {https://github.com/Ansvar-Systems/German-law-mcp},\n  note = {Comprehensive German legal database with 6,870 statutes, 91,843 provisions, and EU 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 & Regulations:** gesetze-im-internet.de (public domain, German federal government)\n- **Case Law:** rechtsprechung-im-internet.de (public domain)\n- **Preparatory Works:** DIP Bundestag (public domain)\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 German law -- turns out everyone building for the DACH market has the same research frustrations.\n\nSo we're open-sourcing it. Navigating 6,870 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"}