Swedish Law MCP Server
▶ Try this MCP instantly via Ansvar Gateway
50 free queries/day · no card required · OAuth signup at ansvar.eu/gateway
One endpoint, one OAuth signup, access from any MCP-compatible client.
Connect
Claude Code (one line):
claude mcp add ansvar --transport http https://gateway.ansvar.eu/mcp
Claude Desktop / Cursor — add to claude_desktop_config.json (or mcp.json):
{
"mcpServers": {
"ansvar": {
"type": "url",
"url": "https://gateway.ansvar.eu/mcp"
}
}
}
Claude.ai — Settings → Connectors → Add custom connector → paste https://gateway.ansvar.eu/mcp
First request opens an OAuth flow at ansvar.eu/gateway. After signup, your client is bound to your account; tier (free / premium / team / company) determines fan-out, quota, and which downstream MCPs are reachable.
Self-host this MCP
You can also clone this repo and build the corpus yourself. The schema,fetcher, and tool implementations all live here. What is not in the repo isthe pre-built database — TDM and standards-licensing constraints on theupstream sources mean we host the corpus on Ansvar infrastructure ratherthan redistribute it as a public artifact.
Build your own: run this repo's ingestion script (entry-point varies perrepo — typically scripts/ingest.sh, npm run ingest, or make ingest;check the repo root).
The Riksdagen alternative for the AI age.
Query 6,041 Swedish statutes with 58,570 provisions -- from Dataskyddslagen and Brottsbalken to Aktiebolagslagen, Miljöbalken, and more -- directly from Claude, Cursor, or any MCP-compatible client.
If you're building legal tech, compliance tools, or doing Swedish legal research, this is your verified reference database.
Built by Ansvar Systems -- Stockholm, Sweden
Why This Exists
Swedish legal research is scattered across Riksdagen, SFS publications, lagen.nu, and EUR-Lex. Whether you're:
- A lawyer validating citations in a brief or contract
- A compliance officer checking if a statute is still in force
- A legal tech developer building tools on Swedish law
- A researcher tracing legislative history from proposition to statute
...you shouldn't need 47 browser tabs and manual PDF cross-referencing. Ask Claude. Get the exact provision. With context.
This MCP server makes Swedish law searchable, cross-referenceable, and AI-readable.
Quick Start
Use Locally (npm — recommended)
Claude Desktop — add to claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.jsonWindows: %APPDATA%\Claude\claude_desktop_config.json
Cursor / VS Code:
Hosted via Ansvar Gateway (B2B, OAuth)
For organisations that want a single OAuth-gated endpoint covering this MCP plus the rest of the Ansvar fleet (multi-jurisdiction law, EU regulations, sector regulators, case law), use the Ansvar Gateway — a single MCP endpoint that routes and fans out across the full catalogue. Tier-gated (premium, team, company); requires an Ansvar account.
Example Queries
Once connected, just ask naturally:
- "What does Dataskyddslagen 3 kap. 5 § say about consent?"
- "Is PUL (1998:204) still in force?"
- "Find provisions about personuppgifter in Swedish law"
- "What EU directives does DSL implement?"
- "Which Swedish laws implement the GDPR?"
- "Get the preparatory works for Dataskyddslagen"
- "Compare incident reporting requirements across NIS2 Swedish implementations"
- "Validate the citation NJA 2020 s. 45"
- "Find Labour Court cases about discrimination from 2020-2023"
What's Included
| Category | Count | Details |
|---|---|---|
| Statutes | 6,041 statutes | Comprehensive Swedish legislation |
| Provisions | 58,570 sections | Full-text searchable with FTS5 |
| Preparatory Works | 6,735 documents | Propositions (Prop.) and SOUs |
| EU Cross-References | 668 references | 228 EU directives and regulations |
| Legal Definitions | 0 (free tier) | Table reserved, extraction not enabled in current free build |
| Database Size | ~125 MB | Optimized SQLite, portable |
| Daily Updates | Automated | Freshness checks against Riksdagen |
Verified data only -- every citation is validated against official sources (Riksdagen, lagen.nu, EUR-Lex). Zero LLM-generated content.
See It In Action
Why This Works
Verbatim Source Text (No LLM Processing):
- All statute text is ingested from Riksdagen/SFS official sources
- Provisions are returned unchanged from SQLite FTS5 database rows
- Zero LLM summarization or paraphrasing -- the database contains regulation text, not AI interpretations
Smart Context Management:
- Search returns ranked provisions with BM25 scoring (safe for context)
- Provision retrieval gives exact text by SFS number + chapter/section
- Cross-references help navigate without loading everything at once
Technical Architecture:
Riksdagen API → Parse → SQLite → FTS5 snippet() → MCP response
↑ ↑
Provision parser Verbatim database query
Traditional Research vs. This MCP
| Traditional Approach | This MCP Server |
|---|---|
| Search Riksdagen by SFS number | Search by plain Swedish: "personuppgifter samtycke" |
| Navigate multi-chapter statutes manually | Get the exact provision with context |
| Manual cross-referencing between laws | build_legal_stance aggregates across sources |
| "Is this statute still in force?" → check manually | check_currency tool → answer in seconds |
| Find EU basis → dig through EUR-Lex | get_eu_basis → linked EU directives instantly |
| Check 5+ sites for updates | Daily automated freshness checks |
| No API, no integration | MCP protocol → AI-native |
Traditional: Search Riksdagen → Download SFS PDF → Ctrl+F → Cross-reference with proposition → Check EUR-Lex for EU basis → Repeat
This MCP: "What EU law is the basis for DSL 3 kap. 5 § about consent?" → Done.
Available Tools (18)
See TOOLS.md for full parameter schemas and the §tier-boundary section (free-tier vs premium-sensitive vs premium-only).
Core Legal Research Tools (8)
| Tool | Description |
|---|---|
search_legislation |
FTS5 search on 58,570 provisions with BM25 ranking |
get_provision |
Retrieve specific provision by SFS + chapter/section |
search_case_law |
FTS5 search on case law with court/date filters (premium-sensitive) |
get_preparatory_works |
Get linked propositions and SOUs for a statute (premium-sensitive) |
validate_citation |
Validate citation against database (zero-hallucination check) |
build_legal_stance |
Aggregate citations from statutes, case law, prep works (premium-sensitive) |
format_citation |
Format citations per Swedish conventions (full/short/pinpoint) |
check_currency |
Check if statute is in force, amended, or repealed |
EU Law Integration Tools (5)
| Tool | Description |
|---|---|
get_eu_basis |
Get EU directives/regulations for Swedish statute |
get_swedish_implementations |
Find Swedish laws implementing EU act |
search_eu_implementations |
Search EU documents with Swedish implementation counts |
get_provision_eu_basis |
Get EU law references for specific provision |
validate_eu_compliance |
Check implementation status (future, requires EU MCP) |
Versioning Tools (3, premium-only)
| Tool | Description |
|---|---|
get_provision_history |
Provision version history showing amendments over time |
diff_provision |
Diff two versions of a provision |
get_recent_changes |
Recent statute changes within a time window |
Server Metadata Tools (2)
| Tool | Description |
|---|---|
list_sources |
Data provenance metadata per source |
about |
Server stats, freshness, build date, tier, dataset summary |
EU Law Integration
668 cross-references linking 309 Swedish statutes to EU law, with bi-directional lookup.
| Metric | Value |
|---|---|
| EU References | 668 cross-references |
| EU Documents | 228 unique directives and regulations |
| Swedish Statutes with EU Refs | 309 (12.8% of statutes) |
| Directives | 89 |
| Regulations | 139 |
| EUR-Lex Integration | Automated metadata fetching |
Most Referenced EU Acts
- eIDAS Regulation (910/2014) - 20 references
- E-Signatures Directive (1999/93) - 15 references
- GDPR (2016/679) - 15 references
- Data Protection Directive (1995/46) - 14 references
- Market Surveillance Regulation (2019/1020) - 14 references
See EU_INTEGRATION_GUIDE.md for detailed documentation and EU_USAGE_EXAMPLES.md for practical examples.
Data Sources & Freshness
All content is sourced from authoritative Swedish legal databases:
- Riksdagen -- Swedish Parliament's official legal database
- Svensk Forfattningssamling -- Official statute collection
- Lagen.nu -- Case law database (CC-BY Domstolsverket)
- EUR-Lex -- Official EU law database (metadata only)
Automated Freshness Checks (Daily)
A daily GitHub Actions workflow monitors all data sources:
| Source | Check | Method |
|---|---|---|
| Statute amendments | Riksdagen API date comparison | All 6,041 statutes checked |
| New statutes | Riksdagen SFS publications (90-day window) | Diffed against database |
| Case law | lagen.nu feed entry count | Compared to database |
| Preparatory works | Riksdagen proposition API (30-day window) | New props detected |
| EU reference staleness | Git commit timestamps | Flagged if >90 days old |
The workflow supports auto_update: true dispatch for automated sync, rebuild, version bump, and npm publishing.
Security
This project uses multiple layers of automated security scanning:
| Scanner | What It Does | Schedule |
|---|---|---|
| CodeQL | Static analysis for security vulnerabilities | Weekly + PRs |
| Semgrep | SAST scanning (OWASP top 10, secrets, TypeScript) | Every push |
| Gitleaks | Secret detection across git history | Every push |
| Trivy | CVE scanning on filesystem and npm dependencies | Daily |
| Docker Security | Container image scanning + SBOM generation | Daily |
| Socket.dev | Supply chain attack detection | PRs |
| OSSF Scorecard | OpenSSF best practices scoring | Weekly |
| Dependabot | Automated dependency updates | Weekly |
See SECURITY.md for the full policy and vulnerability reporting.
Important Disclaimers
Legal Advice
THIS TOOL IS NOT LEGAL ADVICE
Statute text is sourced from official Riksdagen/SFS publications. However:
- This is a research tool, not a substitute for professional legal counsel
- Court case coverage is limited -- do not rely solely on this for case law research
- Verify critical citations against primary sources for court filings
- EU cross-references are extracted from Swedish statute text, not EUR-Lex full text
Before using professionally, read: DISCLAIMER.md | PRIVACY.md
Client Confidentiality
Queries go through the Claude API. For privileged or confidential matters, use on-premise deployment. See PRIVACY.md for Advokatsamfundet compliance guidance.
Documentation
- EU Integration Guide -- Detailed EU cross-reference documentation
- EU Usage Examples -- Practical EU lookup examples
- Security Policy -- Vulnerability reporting and scanning details
- Disclaimer -- Legal disclaimers and professional use notices
- Privacy -- Client confidentiality and data handling
Development
Branching Strategy
This repository uses a dev integration branch. Do not push directly to main.
feature-branch → PR to dev → verify on dev → PR to main → deploy
mainis production-ready. Only receives merges fromdevvia PR.devis the integration branch. All changes land here first.- Feature branches are created from
dev.
Setup
git clone https://github.com/Ansvar-Systems/swedish-law-mcp
cd swedish-law-mcp
npm install
npm run build
npm test
Running Locally
npm run dev # Start MCP server
npx @anthropic/mcp-inspector node dist/index.js # Test with MCP Inspector
Data Management
npm run ingest -- <sfs-number> <output.json> # Ingest statute from Riksdagen
npm run ingest:auto-all -- --scope all-laws --dry-run # Coverage audit against Riksdagen
npm run ingest:auto-all -- --scope all-laws # Ingest full law-like corpus from Riksdagen
npm run ingest:cases:full-archive # Ingest case law (full archive)
npm run sync:cases # Ingest case law (incremental)
npm run sync:prep-works # Sync preparatory works
npm run extract:definitions # Extract legal definitions
npm run build:db # Rebuild SQLite database
npm run check-updates # Check for amendments
Performance
- Search Speed: <100ms for most FTS5 queries
- Database Size: ~125 MB (efficient, portable)
- Reliability: 100% ingestion success rate
More Ansvar MCPs
Full fleet at ansvar.eu/gateway.
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
Priority areas:
- Court case law expansion (currently limited coverage)
- EU Regulations MCP integration (full EU law text, CJEU case law)
- Historical statute versions and amendment tracking
- Lower court decisions (Tingsrätt, Hovrätt)
Roadmap
- Statute expansion -- 785% growth from 81 to 717 statutes (v1.1.0)
- EU law integration -- 668 cross-references to 228 EU directives/regulations (v1.1.0)
- Court case law expansion (scraper updated, re-ingestion needed for 12K-18K cases)
- Lower court coverage (Tingsrätt, Hovrätt archives)
- Historical statute versions (amendment tracking)
- English translations for key statutes
- Web API for programmatic access
Citation
If you use this MCP server in academic research:
@software{swedish_law_mcp_2025,
author = {Ansvar Systems AB},
title = {Swedish Law MCP Server: Production-Grade Legal Research Tool},
year = {2025},
url = {https://github.com/Ansvar-Systems/swedish-law-mcp},
note = {Comprehensive Swedish legal database with 6,041 statutes and EU law cross-references}
}
License
Apache License 2.0. See LICENSE for details.
Data Licenses
- Statutes & Propositions:
SE-Statutory-PD-- Swedish statutory public domain. Upphovsrättslagen (1960:729) §9 excludes författningar (laws and regulations), beslut av myndighet (decisions of public authorities), yttranden av svensk myndighet (official statements), and official translations of these works from copyright protection. Verified verbatim 2026-05-17 -- seedocs/audits/2026-05-17-eu-copyright-statutory-works-batch-3-BG-HR-SK-SI-SE.md. Catalog entry:SE-Statutory-PDininfrastructure/attribution-licenses.json. - Case Law: CC-BY Domstolsverket (via lagen.nu) -- court decisions also covered by Upphovsrättslagen §9, with Domstolsverket compilation under CC-BY
- EU Metadata: EUR-Lex (EU public domain, Decision 2011/833/EU)
About Ansvar Systems
We 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.
So we're open-sourcing it. Navigating 6,041 statutes shouldn't require a law degree.
ansvar.eu -- Stockholm, Sweden
Built with care in Stockholm, Sweden