/ Directory / Playground / Privacy & Terms
● Community kimlawtech ⚡ Instant

Privacy & Terms

by kimlawtech · kimlawtech/korean-privacy-terms

An interactive privacy-policy & ToS generator that encodes Korean PIPA (2025 rev.), EU GDPR, and US CCPA/CPRA — one interview, compliant output.

A Claude Code skill for generating privacy policies and terms of service. It reflects the Korean government's updated 개인정보 처리방침 작성지침 (2025.4.21) and recent regulatory moves globally. V3's modular architecture routes /privacy-terms to privacy-kr, privacy-eu, or privacy-global based on your company/user-base. Ships React UI components (consent modals, cookie banners) alongside the legal text. Disclaimer: informational/drafting aid, not legal advice.

Why use it

Key features

Live Demo

What it looks like in practice

privacy-terms-skill.replay ▶ ready
0/0

Install

Pick your client

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "privacy-terms-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/kimlawtech/korean-privacy-terms.git",
        "~/.claude/skills/privacy-terms"
      ],
      "_inferred": false
    }
  }
}

Open Claude Desktop → Settings → Developer → Edit Config. Restart after saving.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "privacy-terms-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/kimlawtech/korean-privacy-terms.git",
        "~/.claude/skills/privacy-terms"
      ],
      "_inferred": false
    }
  }
}

Cursor uses the same mcpServers schema as Claude Desktop. Project config wins over global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "privacy-terms-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/kimlawtech/korean-privacy-terms.git",
        "~/.claude/skills/privacy-terms"
      ],
      "_inferred": false
    }
  }
}

Click the MCP Servers icon in the Cline sidebar, then "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "privacy-terms-skill": {
      "command": "git",
      "args": [
        "clone",
        "https://github.com/kimlawtech/korean-privacy-terms.git",
        "~/.claude/skills/privacy-terms"
      ],
      "_inferred": false
    }
  }
}

Same shape as Claude Desktop. Restart Windsurf to pick up changes.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "privacy-terms-skill",
      "command": "git",
      "args": [
        "clone",
        "https://github.com/kimlawtech/korean-privacy-terms.git",
        "~/.claude/skills/privacy-terms"
      ]
    }
  ]
}

Continue uses an array of server objects rather than a map.

~/.config/zed/settings.json
{
  "context_servers": {
    "privacy-terms-skill": {
      "command": {
        "path": "git",
        "args": [
          "clone",
          "https://github.com/kimlawtech/korean-privacy-terms.git",
          "~/.claude/skills/privacy-terms"
        ]
      }
    }
  }
}

Add to context_servers. Zed hot-reloads on save.

claude mcp add privacy-terms-skill -- git clone https://github.com/kimlawtech/korean-privacy-terms.git ~/.claude/skills/privacy-terms

One-liner. Verify with claude mcp list. Remove with claude mcp remove.

Use Cases

Real-world ways to use Privacy & Terms

Ship a Korean-compliant privacy policy for a SaaS launching in Korea

👤 Teams launching a product targeting Korean users ⏱ ~45 min intermediate

When to use: You're live in Korea within a week and need a PIPA-compliant 개인정보 처리방침 that reflects the 2025.4.21 guideline.

Prerequisites
  • Skill installed — git clone https://github.com/kimlawtech/korean-privacy-terms.git ~/.claude/skills/privacy-terms
  • Answers ready to interview questions — Know your data categories, retention periods, processors, transfers
Flow
  1. Kick off the interview
    /privacy-terms — jurisdiction: Korea. Service type: B2C SaaS. Begin the interview.✓ Copied
    → Skill asks about data categories, legal basis, third parties — one at a time
  2. Answer and iterate
    We collect email + login metadata. Retention: 3 years or on account deletion. Processors: AWS Seoul, Slack.✓ Copied
    → Skill incorporates answers; conditional sections light up (e.g. cross-border transfer disclosure)
  3. Export
    Export the final 개인정보 처리방침 as /legal/privacy-ko.md and the consent modal as React component.✓ Copied
    → Two artifacts on disk; consent modal compiles

Outcome: A draft privacy policy that matches the current KR guideline — your lawyer reviews, you ship.

Pitfalls
  • Copying last year's template — The 2025.4.21 update changed several required disclosures; rely on the skill's current template, not archived PDFs
  • Treating as legal advice — Have a Korean privacy counsel review before publish — this is a drafting aid
Combine with: filesystem

Add a GDPR companion policy for EU visitors

👤 Teams with a primary market but EU traffic ⏱ ~30 min intermediate

When to use: Your main privacy policy covers KR or US, and you need a GDPR-focused companion for EU users.

Flow
  1. Route to EU module
    /privacy-terms — jurisdiction: EU (GDPR). Service type: SaaS. We already have a KR policy; generate a companion.✓ Copied
    → Skill produces an EU-focused doc; cross-references the KR one where appropriate
  2. Handle transfers
    Data flows KR ↔ EU. Add the SCC-based transfer disclosure and DPO contact placeholder.✓ Copied
    → Transfer section filled; DPO contact is a placeholder you override
  3. Ship
    Export to /legal/privacy-eu.md and add a locale switcher component for the Privacy page.✓ Copied
    → Locale switcher added; user language detected client-side

Outcome: Multilingual privacy surface without rewriting your KR policy.

Pitfalls
  • Assuming GDPR adequacy for KR-EU — Korea was granted adequacy (2021); skill reflects this but check current status before relying
Combine with: filesystem

Combinations

Pair with other MCPs for X10 leverage

privacy-terms-skill + filesystem

Write policy files and components to /legal and /src/components

Save /privacy-terms output to /legal/privacy-ko.md; components to src/components/consent/.✓ Copied
privacy-terms-skill + github

Open a PR with the legal update

Commit the new policy + components and open a PR 'legal: adopt 2025.4.21 KR template' tagged @legal-review.✓ Copied
privacy-terms-skill + web-design-skill

Style consent components to match your DESIGN.md tokens

Style ConsentModal per DESIGN.md primary/accent tokens; keep WCAG AA contrast.✓ Copied

Tools

What this MCP exposes

ToolInputsWhen to callCost
/privacy-terms jurisdiction, service_type → routed to /privacy-kr | /privacy-eu | /privacy-global Top-level entry; routes to the correct jurisdiction module Claude API calls only
/privacy-kr business details Direct Korea-only invocation free + Claude API
/privacy-eu business details Direct EU-only invocation free + Claude API
/privacy-global business details US / global-default invocation free + Claude API

Cost & Limits

What this costs to run

API quota
None beyond normal Claude usage
Tokens per call
Moderate — final policy is long-form prose
Monetary
Free (check repo license)
Tip
Interview once; re-run only the sections that change. The modular split lets you regenerate EU without re-doing KR.

Security

Permissions, secrets, blast radius

Credential storage: None
Data egress: Your business details are sent to Anthropic as part of normal Claude calls. Don't paste full customer lists or raw PII into answers.

Troubleshooting

Common errors and fixes

Skill outputs pre-2025 Korean template

git pull inside ~/.claude/skills/privacy-terms; the repo tracks the guideline updates

Verify: Check the skill's README for the guideline date it reflects
EU policy missing SCC transfer section

You answered 'no transfers'. If data touches AWS us-east-1 or similar, say yes — the section only generates when triggered.

Verify: Re-interview with the correct transfer flag
Consent modal doesn't respect jurisdiction defaults

useJurisdiction() hook requires IP or locale detection; default is conservative (off) when unknown. Wire in a geoIP lib or Accept-Language fallback.

Alternatives

Privacy & Terms vs others

AlternativeWhen to use it insteadTradeoff
Iubenda / TermlyYou want a hosted, legally-warranted servicePaid; less editable; less dev-friendly
Hand-written policyYou have in-house counsel drafting from scratchMost rigorous; most expensive; slow
copying a friend's policyDon'tWorst option — templates fall out of sync with your actual practices

More

Resources

📖 Read the official README on GitHub

🐙 Browse open issues

🔍 Browse all 400+ MCP servers and Skills