景品表示法 措置命令・課徴金納付命令

io.github.eoylabPublished by GitHub account eoylabv0.1.3Updated Nov 6, 2026

Japan's 景表法 enforcement orders (措置命令・課徴金) with cited provisions and source URLs. No verdicts.

VerifiedSTDIODesktop onlyKnowledge & MemoryBusiness & Commerce

Overview

AI-generated overview

Bundled dataset of Japan's Consumer Affairs Agency advertising-law orders (措置命令・課徴金納付命令) that lets an assistant search and cite real published cases.

What you can do
  • Search orders by company, product, provision, publication date or order type
  • Fetch a single record by id, with cited provisions and the source URL
  • List the most recently published orders
  • Get counts by fiscal year, order type and provision
  • Return verbatim titles and lead text from the agency's published pages
When to use it
Useful when answering questions about Japanese advertising regulation (景品表示法) and you want the model to cite an actual published order instead of inventing one. Also handy for checking which provisions a given order cites or how many orders exist per year.
Requirements
Runs locally over stdio; install via the MCP Registry name, the release .mcpb bundle, or npx from the GitHub repository. No dependencies, no API keys, no environment variables, and no network access at runtime — it reads only the bundled JSON data.
Before you install
The dataset records only orders already issued and published; it does not judge whether a given advertisement is unlawful, and past orders are not an answer to whether a specific expression is legal. It contains no PDF text and no surcharge amounts, and the index before fiscal 2020 is empty. Company fields drop individual names, but verbatim titles may still contain them. The README lists paid hosted options as proposals only.

Installation

In SourceWeft

  1. Open 景品表示法 措置命令・課徴金納付命令 in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

keihyo-cases

景品表示法(不当景品類及び不当表示防止法)の措置命令・課徴金納付命令のデータセットと MCP サーバー

消費者庁が公表した処分 151件(128社、2021-04-09〜2026-08-06)を、 機械可読な形にしたものです。全件に出典URLがあります。

→ 検索できる一覧

A machine-readable dataset of Japanese advertising-law (Keihyoho) enforcement actions published by the Consumer Affairs Agency, plus an MCP server so a model can cite a real order instead of inventing one. Japanese-language source data.

姉妹データセット

eoylab/jftc-actions — 公正取引委員会の排除措置命令・取適法勧告 361件。同じ設計方針(判断しない・自然人を扱わない・出典URL付き)で作っています。

自然人について

company 欄に自然人の氏名を残しません。 個人事業主は庁が「〈屋号〉こと〈氏名〉」の形で公表するので、屋号だけを残して氏名を落としています (屋号は庁が名宛人を指すのに使う事業の識別で、自然人の氏名ではありません)。

title は庁の公表表題を逐語で収録しているため、そこには氏名が残ります。 表題を書き換えると、庁が公表したものと違うものになるので、そこは触りません。

一度きりの削除ではなく検出器にしてあります(withoutNaturalPerson)。 個人事業主への措置命令は今後も出るので、削除だけでは次に静かに戻ります。 両方を1つの表に揃えた統合バンドルもあります。

これは何をしないか

違反の判定をしません。 各レコードは、消費者庁が既に発出して公表した処分の再記述です。 「この表示は違反にあたる」という判断は含みません。

過去の処分の一覧は、個別の広告表現が適法かどうかの答えにはなりません。 消費者庁自身が個別事案ごとの判断という立場を取っています。

なぜあるか

広告表示のチェックを LLM にやらせると、実在しない処分事例を作ります。 根拠になる機械可読なデータが無いからです。 このデータセットは、モデルが思い出す代わりに引用できるものを置くために作りました。

使う

MCP サーバー(Claude Desktop / Claude Code など)

json
{  "mcpServers": {    "keihyo-cases": {      "command": "npx",      "args": ["-y", "github:eoylab/keihyo-cases", "keihyo-mcp"]    }  }}

依存パッケージはありません。ネットワークにも出ません(同梱の JSON だけを読みます)。

ツール何を返すか
search_cases事業者名・商品名・条項・公表日・処分種別で絞り込み
get_caseid で1件
list_recent公表日の新しい順
stats年度別・処分種別・条項別の件数

データを直接使う

ファイル
data/cases.json全件(配列)
data/cases.jsonl1行1件
data/cases.csv表形式
data/unparsed.jsonレコードにならなかった発表と、その理由
data/meta.json件数・取得範囲・出典

1レコードの形

json
{  "id": "047140",  "url": "https://www.caa.go.jp/notice/entry/047140/",  "published_date": "2026-08-06",  "company": "「SNOW」と称するアプリケーションの利用サービスの提供事業者2社",  "order_type": "措置命令",  "provisions": [    "第5条第3号(ステルスマーケティング告示)",    "第7条第1項"  ],  "product": {    "name": "SNOW",    "kind": "アプリケーションの利用サービスの提供事業者2社に対し"  },  "lead_text": "消費者庁は、本日、「SNOW」と称するアプリケーションの利用サービスの提供事業者2社に対し、両社が供給する「SNOW」と称するアプリケーションの利用サービスに係る表示について、それぞれ、景品表示法に違反する行為(同法第5条第3号(ステルスマーケティング告示)に該当)が認められたことから、同法第7条第1項の規定に基づき、措置命令を行いました。",  "authority": "消費者庁"}

title と lead_text は公表ページの記載そのままです。

内訳

処分件数
措置命令98
課徴金納付命令53

主な条項(1件で複数に該当することがあります):

  • 第7条第1項 … 101件
  • 第5条第1号(優良誤認) … 63件
  • 第8条第1項 … 53件
  • 第5条第2号(有利誤認) … 25件
  • 第5条第3号(ステルスマーケティング告示) … 6件
  • 第5条第3号(おとり広告) … 2件

どう作っているか

モデルを使っていません。判断もしていません。 索引ページと個別ページから、読める規則で決定論的に抽出しています(src/ingest/extract.mjs)。

  • 事業者名は表題の「〈事業者〉に対する」という構成から
  • 処分種別は表題中の「措置命令」「課徴金納付命令」の記載から
  • 条項は本文中の記載を出現順に、重複を除いて

抽出できなかった項目は null にしてあり、推測で埋めていません。 レコードとして成立しなかった発表(確約計画の認定、注意喚起など)は data/unparsed.json に理由つきで残しています —— 注意喚起で名前が出た会社は、何かを命じられたわけではありません。 処分と並べて置けば、その会社を誤って表すことになります。

更新するには:

bash
npm run build          # 2020年度以降を取り込むnpm test               # 保存したページに対して逐語一致を検証

取得は1リクエスト/秒、連絡先を含む User-Agent で行います。

公式 MCP Registry から入れる

MCP Registry に io.github.eoylab/keihyo-cases として登録してあります。 対応クライアントはこの名前で導入できます。

手で入れる場合は、リリースの .mcpb を使ってください (データが同梱されているので、実行時に通信しません)。

json
{  "mcpServers": {    "keihyo-cases": {      "command": "node",      "args": ["/path/to/keihyo-cases/src/mcp/server.mjs"]    }  }}

商用利用・Hosted API・日次更新

元データは消費者庁の公共データ利用規約(PDL1.0)準拠、 コードは MIT です。現状のデータセットと MCP サーバーは、そのまま商用利用できます。 許可を買う必要はありません。この無料部分を後から有料に切り替えることもしません。

そのうえで、こちらが費用を負担する部分(自前でホストしないエンドポイント、 日次更新と webhook、稼働保証、過去分の遡り、導入支援)に需要があるか知りたい。

まだ一つも作っていません。 要るものだけ作りたいので、価格を書いた Issue を置いています。

内容目安投票
1Hosted API月 ¥4,000#1
2日次更新 / webhook月 ¥3,000#2
3商用ライセンス / SLA月 ¥15,000#3
4bulk access / 過去分単発 ¥30,000#4
5導入支援時間 ¥15,000#5

使いたいものに 👍 を付けてください。条件があればコメントでどうぞ。 一覧に無いものが今週必要なら Issue を立ててください — 仕組みが無いだけで、データはもうあります。

詳細: https://eoylab.github.io/keihyo-cases/commercial.html

出典とライセンス

出典: 消費者庁ウェブサイト(各レコードの url が一次情報)

元データは公共データ利用規約(第1.0版)に準拠します。 編集・加工の主体は keihyo-cases です。 詳細は DATA-LICENSE.md。

コードは MIT。

既知の限界

  • PDF の本文は含みません。 公表ページの PDF リンクはスクリプトで挿入されており、 配信される HTML に無いため pdf_url は多くが null です。推測で URL を作っていません
  • 2020年度以前の索引が空です。 URL の構造が違う可能性があり、未確認
  • 課徴金の金額は含みません。 発表本文ではなく PDF 側にあるため

Source: README.md at commit c06f8b3

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

2
  1. v0.1.3LatestNov 6, 2026
  2. v0.1.2Sep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts