Proof of Concept Digitale Assistent voor MijnOverheid Zakelijk (MOZa): een AI-gestuurde assistent die ondernemers helpt bij vragen over overheidsdienstverlening.
De assistent ontsluit overheidsbronnen (KvK, KOOP, RegelRecht, RVO, netbeheerder) als tools voor een Large Language Model via het Model Context Protocol (MCP). Een FastAPI-host orkestreert het gesprek; per bron is er een MCP-server.
Dit Open Source project is opgezet als PoC voor het verantwoord inzetten van generatieve AI als runtime-component in een digitale overheidsdienst, conform de MCP-standaard voor Generieke Interactieservices. De PoC bestaat uit de volgende onderdelen:
- host: FastAPI-service met LLM-orkestratie (Claude of VLAM/Mistral) en MCP-clients
- mcp: Vijf MCP-servers (KvK, KOOP, RegelRecht, RVO, netbeheerder-mock)
- cli: Equivalente CLI-tools voor on-demand gebruik en als fallback
- Python 3.12+
- uv (package/project manager)
- Docker (optioneel: voor containerized draaien)
ANTHROPIC_API_KEYof VLAM-credentials
# 1) Dependencies installeren
uv sync
# 2) .env aanmaken (vul minimaal ANTHROPIC_API_KEY in)
cp services/host/.env.example services/host/.env
# 3) Host starten
uv run uvicorn api:app --app-dir services/host --reload --port 8000De assistent is bereikbaar op http://localhost:8000:
| Endpoint | Doel |
|---|---|
POST /chat |
Conversatie (één response): body { "message": "...", "mode": "vlam" } (mode is optioneel, default vlam; gebruik claude voor Anthropic) |
POST /chat/stream |
Idem maar als Server-Sent Events stream |
GET /health |
Health-check van host en MCP-servers |
GET /tools |
Lijst van beschikbare MCP-tools |
DELETE /chat/{session_id} |
Wis sessie |
cp services/host/.env.example services/host/.env # eerste keer
docker compose up --builduv run pytestservices/host/tests/test_smoke.py checkt importeerbaarheid; uitgebreide
manuele scripts (vereisen API-keys) staan in services/host/scripts/.
uv run ruff check .Belangrijkste env-variabelen (zie services/host/.env.example):
ANTHROPIC_API_KEY=sk-ant-...
CLAUDE_MODEL=claude-sonnet-4-20250514
VLAM_API_KEY=...
VLAM_BASE_URL=https://api...
VLAM_MODEL_ID=ubiops-deployment/...
# Paden naar MCP-server-scripts (in Docker via compose overschreven)
MCP_SERVER_KVK=../mcp/kvk/server.py
MCP_SERVER_KOOP=../mcp/koop/server.py
MCP_SERVER_REGELRECHT=../mcp/regelrecht/server.py
MCP_SERVER_RVO=../mcp/rvo/server.pyArchitectuur- en routerings-beslisboom staan in
docs/architecture.md. Ontwerpbeslissingen zijn
vastgelegd als Product Decision Records in
docs/decisions/.
Dit project is gelicenseerd onder de EUPL-1.2.
De code in deze PoC is grotendeels gegenereerd met generatieve AI (Claude Code); alle niet-testcode wordt menselijk gereviewd en testcode wordt functioneel beproefd. Zie DISCLAIMER.md voor de disclaimer en docs/ai-verantwoording.md voor de volledige verantwoording, getoetst aan de Overheidsbrede handreiking voor de verantwoorde inzet van generatieve AI.
Zie SUPPORT.md voor informatie over hoe en waar je hulp kunt krijgen.
Zie GOVERNANCE.md voor informatie over de governance-structuur van dit project.