Read club members, court availability, reservations, events, attendance and revenue reports.
klaws — Korean compliance risk scanner
Overview
Description from the maker (original English)
Scan code for Korean compliance risks — PIPA/개인정보보호법, Network Act, Credit Info. Not legal advice.
PopNx MCP’s three pillars
These three are never merged into one score: opinions, measurements and popularity are different things.
- User voiceiNo reviews yetReviews open together with accounts in a later step
- Our basic checksi1 of 1 passedChecked from public information; code not scanned yet
- UsageiNot measured yet★ –
What you can do with it
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
- Connection: Runs on your computer
- Transport: stdio
- Category: Law & government data
Install
Pick the AI app you use, then copy the settings.
Before you install
- Basic checks: 1 of 1 passed
- Runs on your computer with your user’s permissions (files, network, apps).
- The registry lists no key to fill in.
You need
- DockerDocker installed
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"klaws": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rostradamus/klaws:0.1.6"
]
}
}
}Run this in your terminal
claude mcp add klaws -- docker run -i --rm ghcr.io/rostradamus/klaws:0.1.6Or copy the settings yourself
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"klaws": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rostradamus/klaws:0.1.6"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Or copy the settings yourself
Paste into .vscode/mcp.json in your project
{
"servers": {
"klaws": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/rostradamus/klaws:0.1.6"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
What it can do
Runs on your computer; the tool list appears in your AI app after you install it.
Basic checksi
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
- ✓ Pass
Maker matches the repo
The registry name was verified with the GitHub account rostradamus, which owns the repo
- … Not checked yet
Still maintained
We have not read this repo from GitHub yet
- … Not checked yet
Has a licence
We have not read this repo from GitHub yet
- – Not applicable
Endpoint responds
This one runs on your computer; there is no internet endpoint
- – Not applicable
Sign-in with OAuth
Runs on your computer and uses local settings instead
- … Not checked yet
No hidden instructions in tool descriptions
Runs on your computer; we can only read tool lists from internet endpoints
Compared with others in Law & government datai
- More stars than 0% of the other 1731 servers in this category
- Published to the registry more recently than 16% of the other 1731 servers in this category
- Basic checks equal to or better than 100% of the other 1731 servers in this category
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
Common questions
Is klaws — Korean compliance risk scanner safe?
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
What keys or codes does it need?
The registry does not list a required key, though some servers ask you to sign in on first use.
Does it run on my computer or in the cloud?
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
Is it still maintained?
The GitHub repo last changed –, and the latest version (0.1.6) reached the registry 4 months ago.
Which apps can use it?
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.
What can I use instead?
In the same category: CourtReserve MCP by usefulapi, Census MCP by usefulapi, Korea Stay
Alternatives
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Census MCP by usefulapi
List reverse-ETL sources, destinations, models, syncs and runs; trigger syncs into SaaS tools.
Korea Stay
Korean lodging: 84,490 stays from 4 government permit ledgers + KTO TourAPI, honest gaps
README from the maker
Open the README
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
klaws
한국어
Korean law compliance risk scanner for codebases. Scans source code for patterns that may indicate compliance risks under Korean law and maps findings to specific legal provisions. Runs as an MCP server (so AI coding assistants can scan on request) and as a standalone CLI.
Currently covers PIPA (Personal Information Protection Act), the Network Act (정보통신망법), the Credit Information Act (신용정보법), and the E-Commerce Act (전자상거래법).
Disclaimer: klaws identifies possible compliance risks for review. It does not constitute legal advice. Consult qualified legal counsel for definitive guidance.
Privacy: klaws analyzes code locally and transmits nothing. The only outbound network call is the optional
--livelaw lookup to law.go.kr; without that flag it is fully offline. See Privacy & Security.
Quick Start
# Scan the current directory with Docker — no install needed
docker run --rm -v "$PWD":/src:ro ghcr.io/rostradamus/klaws scan /src
...or, if you installed the binary:
klaws scan ./my-project # scan a directory klaws scan ./MyService.java # scan a single file
Installation
Docker (recommended)
No toolchain required — the image is published to GitHub Container Registry and works identically on macOS, Linux, and Windows:
# Scan the current directory (mount it read-only at /src)
docker run --rm -v "$PWD":/src:ro ghcr.io/rostradamus/klaws scan /src
Pin a version instead of the floating latest tag
docker run --rm -v "$PWD":/src:ro ghcr.io/rostradamus/klaws:0.1.6 scan /src
Prebuilt binary
Download the archive for your platform from the latest release, extract it, and move klaws onto your PATH.
go install
go install github.com/rostradamus/klaws/cmd/klaws@latest
From source
Requirements: Go 1.23+
git clone https://github.com/rostradamus/klaws.git
cd klaws go build -o klaws ./cmd/klaws/
Verify the install:
klaws --version
Usage
Scan
# Scan a directory (default: *.java files)
klaws scan ./src
Scan specific file types
klaws scan ./src --pattern "*.kt"
Text output (default is JSON)
klaws scan ./src --format text
SARIF output (for GitHub code scanning / other tools)
klaws scan ./src --format sarif > klaws.sarif
Fail the command (exit 1) if any finding is at or above a severity
klaws scan ./src --fail-on HIGH
Use a custom laws file
klaws scan ./src --laws ./my-laws.yaml
Example Output
klaws scan report
Target: ./testdata Files: 4 Findings: 7
--- Finding 1 --- Detector: PIPA-CST-001 Risk: HIGH Location: testdata/MemberController.java:10 Snippet: @PostMapping("/register") Message: Endpoint accepts possible personal data without apparent consent mechanism — may require review under PIPA Article 15 Laws: PIPA-15
--- Finding 2 --- Detector: PIPA-ENC-001 Risk: HIGH Location: testdata/MemberEntity.java:11 Snippet: private String residentNumber; Message: Possible unencrypted personal identifier (residentNumber) — may require review under PIPA Article 24-2 Laws: PIPA-24-2, PIPA-29
--- Finding 3 --- Detector: PIPA-LOG-001 Risk: MEDIUM Location: testdata/UserService.java:11 Snippet: log.info("User registered: " + email); Message: Possible personal data (email) in log output — may require review under PIPA Article 29 Laws: PIPA-29
Look Up Law Provisions
# Look up from bundled database
klaws law PIPA-15
Fetch live text from law.go.kr
klaws law PIPA-15 --live
List Detectors
klaws detectors
[
{ "id": "PIPA-LOG-001", "name": "Personal Data Logging Risk", "description": "Detects log statements that may contain personal data fields", "related_laws": ["PIPA-29"] }, { "id": "PIPA-ENC-001", "name": "Unencrypted Personal Data Risk", "description": "Detects personal identifier fields stored without apparent encryption", "related_laws": ["PIPA-24-2", "PIPA-29"] }, { "id": "PIPA-CST-001", "name": "Missing Consent Check Risk", "description": "Detects endpoints accepting personal data without apparent consent verification", "related_laws": ["PIPA-15"] } ]
Detectors
| ID | Name | What it looks for | Risk | Related Law |
|---|---|---|---|---|
PIPA-LOG-001 | Personal Data Logging | log.*() calls containing personal data field names (email, phone, SSN, password) | MEDIUM | PIPA Art. 29 |
PIPA-ENC-001 | Unencrypted Personal Data | Sensitive identifier fields (resident number, SSN) without encryption annotations or calls | HIGH | PIPA Art. 24-2, 29 |
PIPA-CST-001 | Missing Consent Check | @PostMapping/@PutMapping endpoints accepting personal data without consent verification | HIGH | PIPA Art. 15 |
NIA-MKT-001 | Marketing Message Consent | Advertising/marketing message dispatch (send/push) without an apparent opt-in consent check | MEDIUM | Network Act Art. 50 |
CIA-ENC-001 | Unprotected Credit Information | Credit/financial identifier fields (card number, account number, credit score) without encryption or masking | HIGH | Credit Information Act Art. 19 |
ECA-RET-001 | Transaction Record Retention | Transaction record fields (order/payment IDs) stored without apparent retention or preservation handling | MEDIUM | E-Commerce Act Art. 6 |
PIPA-RET-001 | Personal Data Retention | Personal data fields (email, phone, resident number) stored without apparent destruction or retention-limit handling | MEDIUM | PIPA Art. 21 |
PIPA-XBR-001 | Third-Party Data Transfer | Personal data sent to a third-party or external endpoint (outbound call to an external URL/partner) without an apparent consent check | HIGH | PIPA Art. 17 |
Detectors use regex-based pattern matching. They support both English and Korean field names (e.g., email/이메일, residentNumber/주민번호, consent/동의).
MCP Server
klaws can run as an MCP server, making its scanning capabilities available to AI coding assistants.
klaws serve
Available Tools
| Tool | Description |
|---|---|
scan_directory | Scan a directory for compliance risks |
scan_file | Scan a single file |
list_detectors | List all available detectors |
get_law_reference | Look up a Korean law provision by ID |
Configuration
All clients use the same launch command: klaws serve over stdio. Use the absolute path to the binary (run which klaws, or where klaws on Windows, to find it), or just klaws if it is on your PATH. Prefer not to install anything? Use the Docker variant below — it works in any client that supports stdio MCP servers.
Claude Code — ~/.claude/settings.json:
{
"mcpServers": { "klaws": { "command": "klaws", "args": ["serve"] } } }
Or add it in one command:
claude mcp add klaws -- klaws serve
Claude Desktop — claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": { "klaws": { "command": "klaws", "args": ["serve"] } } }
Cursor — ~/.cursor/mcp.json (or .cursor/mcp.json in a project):
{
"mcpServers": { "klaws": { "command": "klaws", "args": ["serve"] } } }
VS Code — .vscode/mcp.json:
{
"servers": { "klaws": { "command": "klaws", "args": ["serve"] } } }
Once connected, ask your assistant something like *"scan this directory for Korean compliance risks with klaws."*
Run the MCP server via Docker
No binary install needed — swap the command/args for a docker run that mounts the code you want scannable. The -i flag keeps stdin open for the stdio transport; --scan-root /src confines scans to the mounted directory:
{
"mcpServers": { "klaws": { "command": "docker", "args": [ "run", "--rm", "-i", "-v", "/absolute/path/to/your/project:/src:ro", "ghcr.io/rostradamus/klaws:latest", "serve", "--scan-root", "/src" ] } } }
Point the assistant at paths under /src (the container-side mount), e.g. *"scan /src for Korean compliance risks."*
Remote (Streamable HTTP)
By default klaws serve uses stdio (local). To run it as a remote MCP server over HTTP, pass --http:
klaws serve --http :8080
or via the published container image:
docker run --rm -p 8080:8080 ghcr.io/rostradamus/klaws serve --http :8080
The MCP endpoint is then available at http:// :8080/mcp (Streamable HTTP transport). Point an HTTP-capable MCP client at that URL.
Securing a remote server
klaws serve --http :8080 \
--auth-token "$(openssl rand -hex 32)" \ --scan-root /workspace
--auth-token— requiresAuthorization: Beareron every HTTP request; unauthenticated requests get401. Can also be supplied via theKLAWS_AUTH_TOKENenvironment variable. Applies to--httponly.--scan-root— restrictsscan_directory/scan_fileto paths within; requests for paths outside it are rejected. (Also honored in stdio mode.)
Notes:
-
--auth-tokenprovides bearer auth but not TLS. For untrusted networks, still terminate TLS at a reverse proxy / gateway in front of klaws.
- The
scan_directoryandscan_filetools read the server's filesystem (the paths you pass resolve on the host running klaws). For remote scanning, run klaws where the code lives (e.g. a CI runner with the repo checked out) and set--scan-rootto that checkout. Theget_law_referenceandlist_detectorstools have no filesystem dependency.
Bundled Law Provisions
klaws ships with 40 articles across 4 Korean laws embedded in the binary (no external files needed):
PIPA (개인정보 보호법) — 10 articles
| ID | Article | Topic |
|---|---|---|
PIPA-15 | Art. 15 | Collection and use of personal information |
PIPA-17 | Art. 17 | Provision to third parties |
PIPA-18 | Art. 18 | Restriction on use beyond purpose |
PIPA-21 | Art. 21 | Destruction of personal information |
PIPA-23 | Art. 23 | Restriction on sensitive information |
PIPA-24 | Art. 24 | Restriction on unique identification info |
PIPA-24-2 | Art. 24-2 | Restrictions on resident registration numbers |
PIPA-29 | Art. 29 | Duty of safety measures |
PIPA-30 | Art. 30 | Privacy policy |
PIPA-34 | Art. 34 | Notification of data breach |
Network Act (정보통신망법) — 11 articles
| ID | Article | Topic |
|---|---|---|
NIA-22 | Art. 22 | Consent for collection/use of personal info |
NIA-23 | Art. 23 | Restriction on collection |
NIA-23-2 | Art. 23-2 | Restriction on resident registration numbers |
NIA-24 | Art. 24 | Restriction on use |
| NIA-24-2 | Art
Only the beginning is shown; read the rest in the repo