Quickstart with Docker¶
The Docker image does not bundle legal text data. Mount a generated
package at /data/legal-texts.
Pull the image¶
docker pull ghcr.io/klein-business/legal-text-mcp-de:v1.0.0
(After v1.0.0 release. Pre-release: build locally from the repo.)
Verify the signature¶
cosign verify ghcr.io/klein-business/legal-text-mcp-de:v1.0.0 \
--certificate-identity-regexp 'https://github.com/klein-business/.*' \
--certificate-oidc-issuer https://token.actions.githubusercontent.com
See Verify with cosign for details.
Run¶
docker run --rm -p 8001:8001 \
-v /path/to/legal-text-package:/data/legal-texts:ro \
ghcr.io/klein-business/legal-text-mcp-de:v1.0.0
The container runs as UID 10001 (non-root). The dataset mount is read-only.
Build locally (development)¶
docker build -t legal-text-mcp-de:dev .
docker run --rm -p 8001:8001 \
-v $(pwd)/mcp/tests/fixtures/normalized:/data/legal-texts:ro \
legal-text-mcp-de:dev
Verification¶
curl http://localhost:8001/mcp -X POST \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Expected: JSON response listing nine tools.
Environment variables¶
| Variable | Default | Description |
|---|---|---|
DATASET_PATH |
/data/legal-texts |
Path to the corpus inside the container. |
STRICT_STARTUP |
false |
Fail fast on dataset errors when true. |
HOST |
0.0.0.0 |
Bind address inside the container. |
PORT |
8001 |
Port inside the container. |
Related¶
- uvx — running without Docker.
- Verify with cosign — image signature verification.
- SBOM — inspecting the image SBOM.