Datainsamling av Arbetsdomstolens domar till SQLite, med komplettering från lagen.nu och riksdagen.se.
- Databas:
arbetsdomstolen.db - Domtabell:
domar - PDF:er:
pdfs/ - Import/underhållsskript:
add_2011_2019.py,add_2020_2024.py,populate_db.py,fetch_all_details.py,extract_pdf_text.py,fix_old_urls.py,update_summaries.py,import_lagennu_1993_2010.py,check_lagennu_diff.py,import_laws_forarbeten.py,backfill_forarbeten_from_riksdagen.py
Innehåller AD-domar (målnummer, datum, titel, URL, sammanfattning, lagrum, rättsfrågor, domslut, PDF/fulltext, källmärkning).
Utvalda lagar (SFS), lagtitel, URL och fulltext.
Förarbetsdokument (doc_id, typ, titel, URL, fulltext, källa).
Kopplingstabell mellan lag (sfs) och förarbete (doc_id).
Projektet innehåller en read-only MCP-server i mcp_server.py som exponerar databasen som tools och resources.
Installera beroenden:
uv syncKör servern lokalt via stdio:
uv run python mcp_server.pyOm databasen ligger någon annanstans:
ADFALL_DB_PATH=/path/to/arbetsdomstolen.db uv run python mcp_server.pyExempel på klientkonfiguration:
{
"mcpServers": {
"adfall": {
"command": "uv",
"args": [
"--directory",
"/Users/jsundlo/Projects/adfall",
"run",
"python",
"mcp_server.py"
]
}
}
}Exponerade tools:
database_statssearch_ad_casesget_ad_casefind_cases_by_lawsearch_law_textget_lawget_forarbeten_for_lawsearch_forarbeten
Exponerade resources:
adfall://case/{malnummer}adfall://law/{sfs}adfall://forarbete/{doc_id}
Servern kan även köras live med Streamable HTTP på /mcp.
railway init
railway up
railway domainRailway använder Dockerfile och railway.toml. Health check ligger på /health.
Den okomprimerade databasen arbetsdomstolen.db är git-ignorerad, men Railway-bygget använder arbetsdomstolen.db.xz och packar upp den till /app/arbetsdomstolen.db i Docker-bygget.
Om databasen byggs om lokalt:
uv run python optimize_database.py
sqlite3 arbetsdomstolen.db "VACUUM;"
xz -kf -9 arbetsdomstolen.db
railway upRemote MCP-URL:
https://DIN-RAILWAY-DOMAIN/mcp
Som standard är endpointen publik. För privat endpoint, sätt ADFALL_API_KEY i Railway:
railway variable set ADFALL_API_KEY="$(openssl rand -hex 32)"Skicka då nyckeln från klienten som:
Authorization: Bearer <ADFALL_API_KEY>
Utan ADFALL_API_KEY startar servern ändå, men /mcp blir publik.
python3 import_lagennu_1993_2010.py./check_lagennu_diff.py --start 1993 --end 2023Med detaljer:
./check_lagennu_diff.py --show-listspython3 import_laws_forarbeten.pypython3 backfill_forarbeten_from_riksdagen.pydomar: 2594 poster- AD 1993-2023: 0 saknade mot lagen.nu, 20 extra lokalt (2023 nr 58-77)
- Lagar inlästa: 7 unika SFS
- Relevanta förarbeten till dessa lagar: 150 (128 från lagen.nu + 22 från riksdagen.se)
AD 2013 nr 1saknar PDF-länk på källsidan.AD 2019 nr 53har PDF men fulltext kunde inte extraheras automatiskt.