kadlint について
kadlint は、化粧品や健康食品の広告文を対象とする韓国語リンターです。マーケターや審査チーム向けに、違反の可能性を法的根拠、重大度、説明、安全な代替表現とともに示します。
主な機能
- 01厳選した299ルールの検査
- 02化粧品・健康食品・共通分野に対応
- 03重大度と法的根拠の提示
- 04安全な言い換えの提案
- 05コマンドラインとJavaScript API
- 06MCP による広告文チェック
活用シーン
- 01公開前の韓国語広告案の確認
- 02ランディングページやバナー文の検査
- 03AI を使った執筆中の文面チェック
MCP 対応
kadlint-mcp は stdio 経由で check_ad_copy ツールを提供し、LLM アシスタントが分野を指定して広告文を検査できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| text | string | はい | チェックする広告コピーのテキスト |
| domain | enum | いいえ | 製品分野。cosmetics(化粧品)または health_food(健康機能食品)を指定すると、その分野のルールと共通(common)ルールを併せてチェックします。省略した場合は、すべてのルールをチェックします。cosmetics | health_food | common |
詳細
kadlint
化粧品および健康食品のマーケティングコピー向け、韓国の広告コンプライアンスチェッカーです。法的根拠、重大度、より安全な代替表現とともに、禁止されている主張を検出します。
韓国の法律では、化粧品や健康機能食品の広告で謳える内容が厳しく規制されています。フェイスクリームが「ニキビを治療する」と謳うことはできません(化粧品法上、医薬品に関する主張にあたります)。プロバイオティクスも、まさにその機能が承認されていない限り、「免疫力を高める」と約束することはできません。また、「No.1」や「100%天然」といった主張には、公正表示・広告法に基づく客観的な裏付けが必要です。韓国の食品医薬品安全処(MFDS)は、こうしたカテゴリーで毎年、違法なオンライン広告を数千件検出しています。2025年にも定期的な調査で、医薬品のような効能を謳う広告や、根拠のない主張を含む化粧品・健康食品の広告が大量に指摘されました。違反した場合、広告禁止、販売停止、罰金などが科されることがあります。
kadlint は、以下をもとに作成された 299 件のルール(化粧品 183 件、健康食品 51 件、共通 65 件)の厳選辞書に照らして、韓国語のマーケティングコピーをチェックします。
- 化粧品法およびその施行規則(別表5)
- 健康機能食品法/食品表示広告法
- 表示広告法(公正表示・広告法)
- MFDS の広告ガイドラインおよび執行事例
検出された項目にはすべて、違反カテゴリー、法的根拠の引用、重大度(high/medium/low)、説明、およびより安全な代替表現が含まれます。
インストール
npm install -g kadlint # CLI
npm install kadlint # library
Node.js >= 18 が必要です。
CLI
kadlint check ad-copy.txt
kadlint check ./landing-pages --format json --min-severity high
kadlint check - < draft.md # stdin
kadlint check banner.html --domain cosmetics,common
ad-copy.txt:1:1 [HIGH] '여드름 치료' — 의약품 오인 표현 (cos-113)
근거: 화장품법 제13조제1항제1호, 식약처 「화장품 표시·광고 관리 지침」
대체 표현: 피지·각질 케어로 매끈한 피부결 / (실증 보유 시) 여드름성 피부에 사용 적합
✖ 1건 발견 (high 1 · medium 0 · low 0) — 파일 1개, 규칙 299개 검사
- 対応入力形式:
.txt、.md、.html(タグを除去し、オフセットを保持)、ディレクトリ(再帰的に処理)、-(標準入力)。 - 終了コード:
0問題なし、1--min-severity以上の検出項目あり、2使用方法のエラー。 - 文字どおりのルールは、挿入された空白、中黒、ハイフンを挟んでも一致します(
살 균、살·균、살-균)。これはよく使われる回避手法です。--no-normalizeで無効にできます。
API
import { lint, lintFile } from 'kadlint';
const result = lint('여드름 치료에 탁월한 크림', { domains: ['cosmetics'] });
for (const f of result.findings) {
console.log(f.ruleId, f.severity, f.match, f.legalBasis, f.alternatives);
}
const fileResult = lintFile('landing.html', { minSeverity: 'medium' });
オプション:domains(cosmetics | health_food | common)、minSeverity、normalize(デフォルトは true)。
ルールの exceptions にある語句が、一致箇所から 80 文字以内に含まれている場合(例:承認済みの機能性表示をそのまま使用している場合)、検出項目の重大度は low に引き下げられ、説明用の note が付与されます。
MCP サーバー
kadlint-mcp は、stdio 経由で check_ad_copy { text, domain? } ツールを公開します。これにより、LLM アシスタントはコピーの作成中にチェックを実行できます。
Claude Desktop(claude_desktop_config.json):
{
"mcpServers": {
"kadlint": {
"command": "npx",
"args": ["-y", "kadlint", "kadlint-mcp"]
}
}
}
グローバルにインストールされている場合は、"command": "kadlint-mcp" だけで十分です。
{
"mcpServers": {
"kadlint": { "command": "kadlint-mcp" }
}
}
Claude Code:
claude mcp add kadlint -- kadlint-mcp
または .mcp.json に記述します。
{
"mcpServers": {
"kadlint": {
"command": "kadlint-mcp",
"args": []
}
}
}
プレイグラウンド
playground/index.html は依存関係のない静的ページです(GitHub Pages での公開に対応)。コピーを貼り付けると、一致箇所がハイライト表示され、法的根拠と代替表現を含むルールカードが表示されます。
ルール辞書
ルールは data/*.json にあります。
{
"id": "cos-113",
"pattern": "여드름.{0,8}(개선|치료|완화|박멸|없애|케어|예방)",
"pattern_type": "regex",
"violation": "의약품 오인 표현",
"legal_basis": "화장품법 제13조제1항제1호",
"severity": "high",
"message": "…why this is prohibited…",
"alternatives": ["피지·각질 케어로 매끈한 피부결"],
"exceptions": ["여드름성 피부 완화 기능성화장품 심사(보고) 효능효과"]
}
data/_needs_review.json は、まだ検証されていないルール候補のバックログです。npm パッケージには含まれません。貢献を歓迎します。CONTRIBUTING.md をご覧ください(コーディングは不要です。すべてのルールに法的根拠の引用が必要です)。
免責事項
- kadlint は法的助言ではありません。手作業で厳選した辞書に基づく、ヒューリスティックなチェッカーです。
- 問題がないという結果が出ても、コンプライアンスが保証されるわけではありません。パターンマッチングには偽陰性がつきものであり、規制も変更されます。
- 広告に関する最終的な法的責任は、広告主にあります。重要なコピーについては、資格を有する専門家にご相談ください。
ロードマップ
- v0.2:PyPI ミラー(
pip install kadlint)、バックログにある_needs_review.jsonの 25 件のルールのレビュー、MFDS ガイドラインの改訂を追跡するパイプライン。
ライセンス
MIT © 2026 Jungkyun Lim
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。