patent-checker について
patent-checkerは、MCPサーバーとAgent Skillを組み合わせ、ソフトウェアチームがプロジェクトに関連し得る公開特許を調査し、日付入りの報告書を作成できるようにします。過去の調査と変化を継続的に記録しますが、侵害の判定は行いません。
主な機能
- 01公開特許と関連情報の検索
- 02請求項と法的状態の取得
- 03取得済み特許文書のキャッシュ
- 04候補特許とプロジェクト機能の照合
- 05調査履歴と変化の記録
- 06日付入り手順報告書の作成
活用シーン
- 01開発中に関連特許を調査
- 02リリース前に候補特許を確認
- 03監視中の特許の状態変化を再確認
MCP 対応
MCP サーバーは、特許検索、書誌情報、請求項、法的状態、特許ファミリー、オフライン補助ツールをクライアントに提供します。Agent Skillがコーディングエージェントによるコードベース分析と報告書作成を進め、ソースコード、プロジェクト説明、台帳はローカルに保たれます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx patent-checkerPATENT_CHECKER_OPERATOR_CONSENTVersion of the operator notice you accepted; run `patent-checker serve --show-operator-notice`PATENT_CHECKER_OPS_KEYシークレットEPO OPS credentials; leave unset for degraded modePATENT_CHECKER_OPS_SECRETシークレットEPO OPS credentials; leave unset for degraded modePATENT_CHECKER_SERVER_TOKEN_FILEシークレットFile holding the bearer token clients must presentPATENT_CHECKER_OPS_KEY_FILEシークレットEPO OPS credentials; leave unset for degraded modePATENT_CHECKER_OPS_SECRET_FILEシークレットEPO OPS credentials; leave unset for degraded modeローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Patent Checker
日本語版: README_ja.md
Patent Checker は、自分のソフトウェアプロジェクトに関連する可能性のある公開特許を調査し、見つけた内容を日付入りの手順書形式のレポートとして記録するのに役立ちます。同じプロジェクトに対して、アイデアの段階、開発中、リリース前、各アップデート前など、何度でも実行できるように設計されています。次回以降の実行では、新たに公開されたものだけを検索し、監視中の特許を再確認して、前回からの変更点を知らせます。次の2つの要素で構成されています。
- 公開特許データ(EPO Open Patent Services および Google Patents)を決定的に取得する MCP サーバー。検索、書誌情報、請求項、法的状態、特許ファミリーに加え、オフライン用ヘルパーも提供します。
- AI コーディングエージェント(Claude Code、Codex CLI、Cursor、Gemini CLI、GitHub Copilot CLI、OpenCode、OpenHands、Hermes Agent)による判断作業を進める エージェントスキル。コードベースを読み取り、機能を特許関連の用語に置き換え、候補をスクリーニングしてレポートを作成します。
Patent Checker は、特許侵害の有無を判断するものではありません。レポートに記載されるのは所見、対象範囲に関する説明、未解決の質問であり、結論ではありません。
ステータス:安定版リリース(v1.4)。
重要なお知らせ
インストールする前に、以下をお読みください。このツールでは一度だけ内容への同意を求め、その同意を記録します。
- ここで得た情報が、あなたに不利に使われる可能性があります。 レポートには、特定の日付に特定の特許を認識していたことが記録されます。米国をはじめとする一部の法域では、特許を認識していた事実が故意侵害の主張や損害賠償額の増額を裏付ける可能性があります。どのように対応したかを日付入りで記録することが、有利に働く場合もあります。Patent Checker では記録の保存先や、バージョン管理の対象とするかどうかを選択できます。慎重に判断してください。
- 検索結果は網羅的ではありません。 すべての特許を網羅する検索はありません。対象範囲は国、言語、公開段階、データソースによって異なり、最近の出願は完全に欠落している可能性があります。レポートに文書が含まれていないことは、関連特許が存在しない証拠には決してなりません。
- これは検索支援ツールであり、助言ではありません。 Patent Checker は、資格を持つ弁理士や特許代理人に代わるものではありません。また、作成者は、その出力に基づいて行われた、または行われなかった判断について、一切の責任を負いません。プロジェクトに関する最終判断と、それに対する対応は、あなた自身の責任です。
お知らせは2種類あります。上記3項目からなるユーザー向けのお知らせは、探索を実行する人にスキルが表示するほか、インストーラーも最初に提示します。同意はローカルに記録され、実行のたびに確認されます。運用者向けのお知らせはサーバーを起動する人を対象とし、データソースの利用規約、認証情報、サーバーが保存する内容について説明します。サーバーは、このお知らせへの同意が確認されるまで起動を拒否します。
仕組み
your agent ──(Skill: judgment)──► patent-checker MCP server ──► EPO OPS
│ │ deterministic fetch, Google Patents
│ reads your code, writes │ normalization, cache
▼ the report ▼
.patent-checker/reports/… shared document cache
- Skill がコードベースを読み込み、特許として主張できる技術的特徴を列挙します。標準規格、ライブラリ、プラットフォームに標準で含まれる一般的な技術は検索対象から除外し、その旨をレポートに記載します。残りの特徴を特許用語に置き換え、検索クエリを作成します。
- MCP サーバーが EPO OPS に対してクエリを実行し、候補となる文書を取得します(請求項は Google Patents から、書誌情報と法的ステータスは OPS から取得します)。また、すべての文書をキャッシュし、同じ文書を二度取得しないようにします。
- Skill が段階的に候補を審査し、請求項の構成要素を機能に対応付け、レポートを作成します。レポートには、検索内容、見つかったもの、各候補とコードとの関連性、そして対象外となった内容が記載されます。
- Skill は、プロジェクト内の調査内容を台帳として保持します(機能、クエリ、審査済みの特許ファミリー、監視対象の特許、およびそのステータスのスナップショット)。次回の実行時には、この台帳から処理を開始します。サーバーが保存済みのスナップショットと現在の記録を比較し、新しいレポートの冒頭に、特許用語を使わない概要と、その後に変更点を記載します。
サーバーが受け取るのは、検索式、公開番号、特許ファミリー識別子、日付、および以前に返されたステータスのスナップショットなど、公開されている特許データのみです。ソースコード、プロジェクトの説明、台帳がマシンの外部に送信されることはありません。分析はエージェント内で行われます。
前提条件
- Agent Skills と MCP に対応した AI コーディングエージェント:Claude Code、 OpenAI Codex CLI、Cursor、Gemini CLI、GitHub Copilot CLI、OpenCode、 OpenHands、または Hermes Agent。
- uv:コマンドラインツールとインストーラーに必要です。マシンに Python 3.12 以降がない場合、uv が自動的に取得します。以下のベアラートークンを生成する際にも Python を使うと簡単です。
- Docker Compose v2 を備えた Docker:サーバーをコンテナーで実行する場合に必要です(推奨)。Docker がない場合、サーバーは通常のプロセスとして実行されます。
- EPO Open Patent Services アカウント(推奨)。https://developers.epo.org/ で登録し、アプリを作成してコンシューマーキーとシークレットを取得してください。早めに申請してください。承認は手動で行われ、通常は約1営業日かかります。 アカウントがなくてもサーバーは縮退モードで実行されます。
ベアラートークン
サーバーは HTTP でリッスンするため、MCP クライアントはリクエストごとにベアラートークンを提示する必要があります。これは、サーバーと自分のエージェントだけが知っている秘密の文字列です。これにより、マシン上の他のプログラムや、ポートを公開した場合はネットワーク上の他のプログラムが、サーバーや EPO OPS の割り当て量を使用できないようにします。アカウントやサインアップは不要です。トークンを一度自分で作成し、同じ値をサーバーとインストーラーに渡します。
トークンを生成します(ランダムな32バイトなら何でも使用できます)。
python3 -c "import secrets; print(secrets.token_urlsafe(32))" # macOS, Linux
python -c "import secrets; print(secrets.token_urlsafe(32))" # Windows
保存先:
- Docker Compose:
compose.yamlと同じ場所にあるsecrets/server_token.txtファイルに保存します。 - Docker を使わない場合:
.envのPATENT_CHECKER_SERVER_TOKEN=…に保存します(または、PATENT_CHECKER_SERVER_TOKEN_FILEで指定したファイルに保存します)。 - エージェント:
patent-checker installの実行時にトークンを入力するか(または--token-fileから読み込ませると)、各エージェントの MCP 設定に書き込まれます。
トークンがない場合、HTTP サーバーは起動しません。例外は patent-checker serve --transport stdio です。この場合、エージェントが自分自身の権限で動作する子プロセスとしてサーバーを起動するため、トークンは不要です。これは単一のローカルクライアント向けの特殊なケースであり、デフォルトではありません。トークンはパスワードと同様に扱ってください。トークンを保持するファイルを非公開にし、新しい値を書き込んで patent-checker install を再実行することで、トークンをローテーションしてください。
EPO OPS アカウントがない場合(縮退モード)
OPS の認証情報を設定せず(secrets/ops_key.txt と
ops_secret.txt が空、または .env に PATENT_CHECKER_OPS_KEY がない場合)、サーバーは
縮退モードで起動し、起動時と server_status でその旨を通知します。
- 引き続き利用可能:エージェントが公開番号をすでに把握している場合の、Google Patents からの文書の請求項の取得、公開番号の 正規化、オフラインヘルパー(重複排除、一括検証)。
- 利用不可:特許検索、書誌レコード、法的ステータス、特許ファミリー。スキルは縮退手順に切り替わり、 エージェントが独自のウェブ検索で候補となる公開番号を見つけます。そのため網羅性は低下し、レポートにもその旨が記載されます。
縮退モードは、まず試してみるためのものです。本格的に調査するには、OPS アカウントを取得し、認証情報を設定してサーバーを再起動してください。
サーバーのインストール
どちらの方法でも、運用者向け通知を確認し、ベアラートークンを設定する必要があります。
オプション A:Docker Compose(推奨)
mkdir patent-checker-server && cd patent-checker-server
curl -fsSLO https://raw.githubusercontent.com/xhighhongo41/patent-checker/main/compose.yaml
mkdir secrets
# 1. EPO OPS credentials (or leave both files empty for degraded mode)
printf '%s' 'YOUR_OPS_CONSUMER_KEY' > secrets/ops_key.txt
printf '%s' 'YOUR_OPS_CONSUMER_SECRET' > secrets/ops_secret.txt
# 2. The bearer token (see above)
python3 -c "import secrets; print(secrets.token_urlsafe(32))" > secrets/server_token.txt
chmod 600 secrets/*.txt
# 3. Read the operator notice (add --lang ja for Japanese), then acknowledge it
docker compose run --rm patent-checker serve --show-operator-notice
echo 'PATENT_CHECKER_OPERATOR_CONSENT=1.0' >> .env
# 4. Start
docker compose up -d
curl -fsS http://127.0.0.1:8642/health
Windows では、printf の代わりに PowerShell で 3 つのファイルを作成してください
(Set-Content はバイトオーダーマークを書き込み、それがトークンの一部になってしまうため、.NET を直接使用してください)。
New-Item -ItemType Directory -Force secrets | Out-Null
New-Item -ItemType File -Force secrets\ops_key.txt, secrets\ops_secret.txt | Out-Null # empty: degraded mode
$token = python -c "import secrets; print(secrets.token_urlsafe(32))"
[IO.File]::WriteAllText("$PWD\secrets\server_token.txt", $token)
イメージは ghcr.io/xhighhongo41/patent-checker と
docker.io/xhighhongo41/patent-checker で、タグ X.Y.Z、X.Y、latest を付けて公開されています。コンテナは内部で 0.0.0.0 にバインドしますが、Compose がポートを公開するのは お使いのマシンのループバックインターフェースのみ(127.0.0.1:8642)です。サーバーが受け付ける Host ヘッダーは、HTTP レイヤーで常に許可されるループバック名の localhost、127.0.0.1、::1 と、PATENT_CHECKER_SERVER_ALLOWED_HOSTS で追加した名前のみです。それ以外は受け付けません。
取得した文書、検索結果、リクエストログは、名前付きボリューム patent-checker-data に保存されます。コンテナは非特権ユーザーとして読み取り専用ファイルシステム上で実行され、Linux のすべてのケイパビリティが削除されています。Docker エンジンがこれらの設定のいずれかを拒否する場合は、compose.yaml の # Hardening 以下にある 4 行を削除しても、サーバーの動作は変わりません。
シークレットファイルは起動時に一度だけ読み込まれます。OPS ファイルが空の場合、「未設定」と見なされます(縮退モード)。Linux 上で UID 1000 以外のアカウントを使って Docker Engine を実行する場合は、
secrets/README.md のファイル所有者に関する注意を参照してください。
複数のマシン(tailnet、VPN、LAN)で 1 台のサーバーを共有する方法については、 docs/deploy-lan.md を参照してください。Tailscale Serve、同じコンテナの前段に置く TLS 終端プロキシ、プライベートネットワーク上の平文 HTTP と、それぞれの方法で利用者自身が対応する必要がある事項について説明しています。
オプション B:Docker を使わない場合
uv tool install patent-checker
mkdir patent-checker-server && cd patent-checker-server
curl -fsSLO https://raw.githubusercontent.com/xhighhongo41/patent-checker/main/.env.example
cp .env.example .env
次に .env を編集します。
- EPO OPS キーとシークレットを
PATENT_CHECKER_OPS_KEYとPATENT_CHECKER_OPS_SECRETに設定します(縮退モードにする場合は空のままにします)。 - ベアラートークンを生成し(上記参照)、
PATENT_CHECKER_SERVER_TOKENに設定します。 patent-checker serve --show-operator-noticeで運用者向け通知を読み(日本語の場合は--lang jaを追加)、PATENT_CHECKER_OPERATOR_CONSENT=1.0を設定します。
最小構成の .env は次のとおりです。
PATENT_CHECKER_OPS_KEY=YOUR_OPS_CONSUMER_KEY
PATENT_CHECKER_OPS_SECRET=YOUR_OPS_CONSUMER_SECRET
PATENT_CHECKER_SERVER_TOKEN=the-token-you-generated
PATENT_CHECKER_OPERATOR_CONSENT=1.0
patent-checker serve でサーバーを起動します。Streamable HTTP を
http://127.0.0.1:8642/mcp で提供します。.env ファイルは起動元のディレクトリから親ディレクトリをたどって検索されますが、ホームディレクトリとファイルシステムのルートまでは検索しません。環境にすでに設定されている変数が優先されます。データはユーザーごとのデータディレクトリに保存されます(Linux と macOS では ~/.local/share/patent-checker、Windows では %LOCALAPPDATA%\patent-checker)。ポートがすでに使用中の場合、メッセージを表示してサーバーは停止します。--port で別のポートを指定し、その URL をエージェントに登録してください。
--transport stdio はネットワークポートもトークンも使わずにサーバーを実行します。利用できるのはローカルのクライアント 1 つのみです。この場合、サーバーはユーザーの権限で実行されるため、HTTP がデフォルトになっています。エージェントへの登録方法については、docs/mcp-clients.md を参照してください。
スキルをインストールしてエージェントを接続する
ブートストラップスクリプトはコマンドラインツールをインストールします。patent-checker installが残りの作業を行い、ユーザー向け通知を表示し、エージェントが読み込む場所にスキルをコピーして、MCP サーバーを登録します。
curl -LsSf https://raw.githubusercontent.com/xhighhongo41/patent-checker/main/install.sh | sh
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/xhighhongo41/patent-checker/main/install.ps1 | iex"
どちらのスクリプトもuvとツールをインストールしてから、patent-checker installを実行します。上記のようにshにパイプで渡した場合、シェルスクリプトの標準入力はパイプになるため、質問は代わりにターミナルに表示されます。ターミナルがまったくない場合(たとえばCIジョブ)のみ処理を停止し、次に実行するpatent-checker installコマンドを表示します。
先にスクリプトを確認したい場合は、| shの代わりに| moreを使って取得してください。あるいはスクリプトを使わず、次の2つの手順を実行してください。
uv tool install patent-checker
patent-checker install
patent-checker installは次の処理を行います。
- ユーザー向け通知を表示し、同意を求めます(同意は日付と通知のバージョンとともに
~/.config/patent-checker/consent.jsonに記録されます。通知が変更された場合にのみ、再度確認を求めます)。 - ベアラートークンの入力を求めます(または
--token-fileから読み込みます)。 - スキルを
~/.agents/skills/patent-checker/(Codex CLI、OpenCode、Cursor、Gemini CLI、Copilot CLIが読み込みます)と、個別のスキル用ディレクトリが必要なエージェントの専用ディレクトリ(~/.claude/skills/、~/.openhands/skills/、~/.hermes/skills/)にコピーします。 - サーバーを(
--urlを指定しない場合はhttp://127.0.0.1:8642/mcpに)各検出済みエージェントへ登録します。エージェント独自のmcp addコマンドがある場合はそれを使い(Claude Code、Gemini CLI、Copilot CLI、--token-envを指定したCodex CLI)、それ以外の場合はエージェントのJSONまたはTOML設定を編集します(Cursor、OpenCode、Codex CLI)。設定を変更しないエージェント(Hermes Agent、およびCLIがインストールされていない場合のOpenHands)については、貼り付けるスニペットを表示します。 - エージェントごとに実行した内容を表で表示します。いずれかの手順が失敗した場合、終了コードはゼロ以外になります。スニペットが表示されても、失敗ではありません。
| エージェント | 登録方法 | 設定ファイル |
|---|---|---|
| Claude Code | claude mcp add | ユーザー設定(--scope project指定時は.mcp.json) |
| Gemini CLI | gemini mcp add | ~/.gemini/settings.json |
| GitHub Copilot CLI | copilot mcp add | ~/.copilot/mcp-config.json |
| Cursor | ファイルを直接編集 | ~/.cursor/mcp.json |
| OpenCode | ファイルを直接編集 | ~/.config/opencode/opencode.json |
| Codex CLI | codex mcp add/追記 | ~/.codex/config.toml |
| OpenHands | openhands mcp add(CLIがない場合はスニペットを貼り付け) | OpenHands CLIが管理 |
| Hermes Agent | スニペットを貼り付け | ~/.hermes/config.yaml |
OpenCodeのファイルは、XDG_CONFIG_HOMEが設定されている場合はその値に従います。Gemini CLI、Copilot CLI、OpenHandsのコマンドは、それぞれのドキュメントに記載されたとおりに使用しますが、実際のツールでの動作確認はしていません。コマンドが失敗した場合、インストーラーはファイルの編集またはスニペットの表示に切り替え、その旨を通知します。
便利なオプション:--list-agents(インストール先の一覧を表示)、--dry-run(書き込み以外の処理をすべて実行)、--agent claude-code --agent cursor(自動検出の代わりにエージェントを指定。サポート対象のすべてのエージェントを指定する場合は--agent all)、--scope project(ホームディレクトリではなく現在のプロジェクトにインストール)、--lang ja(日本語の通知)、--agree(通知への同意を求めずに同意する。確認用のターミナルがない場合は必須)、--no-skill/--no-mcp、--json(スクリプト向けにレポートを1つのJSONドキュメントとして表示。この場合、通知と質問は標準エラーに出力されます)。
インストーラーは安全に再実行できます。スキルのコピーを更新し、サーバーのエントリーをその場で更新します。また、初回実行時に作成した元の設定ファイルのバックアップ(.bak)を上書きすることはありません。ただしCodex CLIのみ例外で、既存のエントリーはそのまま残ります。変更する場合は~/.codex/config.tomlを編集してください。
ベアラートークンを公開せずに渡す
インストーラーはトークンをコマンドライン引数として受け取らないため、 シェルの履歴には残りません。次のいずれかを指定してください。
patent-checker install --token-file /path/to/secrets/server_token.txt
# or
export PATENT_CHECKER_SERVER_TOKEN="$(cat /path/to/secrets/server_token.txt)"
patent-checker install
# or just run it: the installer prompts for the token without echoing it
デフォルトでは、トークンの値は各エージェント専用の設定ファイルに書き込まれ、
そのファイルは自分だけが読み取れるように設定されます(Windows では、ファイルに
通常のアクセス許可が適用されます)。--token-env を指定すると、インストーラーに
値を渡す必要はありません。各エージェントが展開する形式で、
PATENT_CHECKER_SERVER_TOKEN 環境変数への 参照 が書き込まれるため、
エージェントを起動する前にその変数をエクスポートします。Copilot CLI と
OpenHands ではそのような参照が文書化されていないため、--token-env を指定すると、
代わりにそれらのエージェント向けのスニペットが表示されます。エージェント独自の
CLI を使って登録する場合、呼び出しの実行中はトークンがそのプロセスの引数に
含まれます。
--scope project を指定すると、トークンを格納する設定ファイルが
プロジェクトディレクトリ内に書き込まれます。インストーラーが、コミットしないよう
注意を促します。
インストーラーが表示する登録コマンドとスニペットにトークンが含まれることは
ありません。${PATENT_CHECKER_SERVER_TOKEN} またはプレースホルダーが使われます。
サーバーが 401 を返す場合
401 は、エージェントが送信したトークンがサーバーの起動時に使われたものと
異なることを意味します。2 つのトークンを確認してください。サーバー側のトークンは
secrets/server_token.txt または .env にあり、エージェント側のトークンは
上記の表にある設定ファイルにあります(Claude Code では
claude mcp get patent-checker で確認できます)。<token> のような
プレースホルダーをそのまま登録していないか確認してください。サーバーが
起動していない場合は 401 ではなく、接続拒否 エラーが発生するため、
両者は簡単に見分けられます。
手動での登録
各エージェント、GitHub Copilot コーディングエージェント、stdio 形式に対応する 正確なコマンドまたはファイルについては、 docs/mcp-clients.md を参照してください。
電話のみで利用するエージェントとクラウドエージェント
Skill をリポジトリに .agents/skills/patent-checker/ としてコミットし
(patent-checker install --scope project --no-mcp を実行してから、ディレクトリを
git に追加します)、クラウドエージェントが HTTPS 経由でアクセスできる場所で
サーバーを実行します(docs/deploy-lan.md)。同意記録は
ユーザーごとに保存されます。ホームディレクトリがリセットされるクラウドエージェントは、
次回の実行時に同意を再記録します。プロジェクトと一緒に保持する場合は、
patent-checker consent record --project を使用してください。
使用方法
エージェントに、作業中のプロジェクトに関連する先行特許の調査を依頼します。
patent-checker スキルを使って、このプロジェクトに関連する先行特許を調査してください。
Skill はまず同意記録を確認し、.patent-checker/ を .gitignore に追加するかどうかを
(プロジェクトごとに 1 回)尋ねてから、上記の手順を進め、
レポートを .patent-checker/reports/report-<target>-<YYYYMMDD-HHMM>.md に
書き込みます。レポートが上書きされることはありません。同じプロジェクトで後から
実行すると、新しい日付付きファイルが作成されます。<target> は調査対象の名前です。
あなたとエージェントが別の名前に合意しない限り、リポジトリ名が使われます。
各対象には、.patent-checker/ledger/<target>/ に専用の台帳が作成されます。
セッション全体を通じてサーバーを起動しておいてください。
規模とコスト。 中規模のプロジェクトを 1 回調査するには、コードの読み取り、 1 回以上の検索ラウンド、数十件の候補文書の段階的なスクリーニングが含まれます。 エージェントの通信量はおよそ 100 万トークンになると見込まれます(開発時に 中規模のプロジェクトで Claude Code を使って測定した値です)。その大部分は スクリーニングによるものです。エージェントが委任に対応している場合、Skill は 最初のスクリーニング段階をより小型のモデルに任せます。1 回の実行ですべてを 網羅できるわけではありません。繰り返し実行したり、異なる検索語彙を使ったり、 専門家による検索を行ったりすることで、1 回の実行では見つからなかったものが それぞれ見つかります。
再実行する
プロジェクトに進展があったとき、またはレポートに記載された次回確認日が来たときは、いつでも再度依頼してください。
patent-checker スキルを使って、このプロジェクトについて以前に行った調査をフォローアップしてください。
スキルは .patent-checker/ledger/<target>/ にある台帳を見つけ、次のいずれかの実行を提案します。
- フォローアップ実行では、調査したコミット以降にコードで何が変わったかを読み取り、以前の検索クエリはそれ以降に公開された特許についてのみ実行します(新機能には新しいクエリを使用します)。これまでに確認したことのないファミリーのみをスクリーニングし、監視対象の特許をすべて再確認します。また、機能、その請求項、または以前の読み取りに変更があった場合に限り、文書を再読します。レポートには、すべての現在の状況が記載されます。まず、特許用語を使わずにプロジェクトのどの部分がどの特許に近づいたか、またレポートでそれらをどのように扱っているかを示す短い 「特許用語を使わない概要」 があり、続いて 「前回の調査以降の変更」 が記載されます。プロジェクトの変更、新しい文書、法的状況と請求項の変更、変化した所見とその理由、確認した結果変更がなかった文書が含まれます。
- 監視実行では、監視対象の特許のみを再確認し、短い
update-<target>-<YYYYMMDD-HHMM>.mdを作成します。調査にかかるコストのごく一部で済み、検索は行っていないことを明確に記載します。
ダウンロードが重複することはありません。請求項はキャッシュに永久に保存され、法的状況は1週間後に、ファミリーは1か月後に更新されます。また、すべての結果に取得日時が記載されるため、レポートには事実が「いつ時点」のものかを明記できます。開発中に中規模プロジェクトを初めて調査してから3週間後に測定したところ、保存された17個のクエリは全期間を対象とした場合の712件ではなく、新たに公開された期間について11件のヒットを返しました。そのうち8件はすでにスクリーニング済みのファミリーに属しており、監視対象の特許25件はすべて、上流へのリクエストを約50回行って再確認されました。同じ日に監視実行を行った場合、リクエストは不要でした。以前のバージョンでプロジェクトを調査していた場合、スキルはまず最新のレポートを台帳にインポートするよう提案します。
MCP サーバーを使わない場合
サーバーに接続できない場合、スキルはお使いのマシンで patent-checker コマンドラインツールを使って処理を続けます。このツールでは同じ操作を実行できます(下記のコマンドリファレンスを参照)。何かをインストールする前に確認を求めます。マシンを準備する場合、またはコマンドを自分で実行する場合:
uv tool install patent-checker
patent-checker credentials set # asks for the EPO OPS key and secret without echoing them
patent-checker status # what is configured, and where from; no network
credentials set は、ユーザーのキーとシークレットを ~/.config/patent-checker/credentials.env(自分だけが読み取り可能)に保存するため、どのプロジェクトからでもツールがそれらを見つけられます。環境変数やプロジェクトの .env にある値はこのファイルより優先されます。patent-checker credentials status でどの値が使われているかを確認でき、credentials clear でファイルを削除できます。OPS の認証情報がない場合、スキルは機能を制限したモードを提案します。uv tool upgrade patent-checker と uv tool uninstall patent-checker でツールを更新および削除できます。
設定
サーバー(patent-checker serve)と、記載がある場合は CLI が読み取る環境変数です。同じ一覧にコメントを付けたものは .env.example を参照してください。CLI の --host および --port オプションは、PATENT_CHECKER_SERVER_HOST および PATENT_CHECKER_SERVER_PORT より優先されます。
| 変数 | デフォルト | 意味 |
|---|---|---|
PATENT_CHECKER_OPS_KEY, PATENT_CHECKER_OPS_SECRET | 未設定 | EPO OPS のコンシューマーキーとシークレットです。値を直接指定するか、_FILE バリアント(PATENT_CHECKER_OPS_KEY_FILE、…)を使って値を格納したファイルのパスを指定します。両方を同時に指定することはできません。空のファイルは「未設定」として扱われます(縮退モード)。4 つの変数がいずれも設定されていない場合は、ユーザーごとの認証情報ファイルが読み込まれます。 |
PATENT_CHECKER_CREDENTIALS_FILE | ~/.config/patent-checker/credentials.env | patent-checker credentials set によって書き込まれる、ユーザーごとの認証情報ファイルです。このファイルから取得されるのは 4 つの OPS 変数のみです。他のユーザーも読み取れるファイルを使用する場合は、警告が表示されます。 |
PATENT_CHECKER_OPERATOR_CONSENT | 未設定(必須) | 同意したオペレーター向け通知のバージョン(1.0)です。設定されていない場合、サーバーは起動を拒否します。 |
PATENT_CHECKER_SERVER_TOKEN(_FILE) | 未設定(http では必須) | クライアントが提示する必要のあるベアラートークンです。 |
PATENT_CHECKER_SERVER_HOST, PATENT_CHECKER_SERVER_PORT | 127.0.0.1, 8642 | バインドアドレスです。ループバックアドレス以外にバインドするには、PATENT_CHECKER_SERVER_ALLOWED_HOSTS も必要です。暗号化はネットワークまたはプロキシに委ねられます(docs/deploy-lan.md)。 |
PATENT_CHECKER_SERVER_ALLOWED_HOSTS | 未設定 | クライアントが Host ヘッダーで使用するホスト名をカンマ区切りで指定します。ホスト名のみ指定できます。ワイルドカードは使用できません。IPv6 アドレスは角括弧なしで記述します。 |
PATENT_CHECKER_SERVER_RPS, PATENT_CHECKER_SERVER_BURST | 5, 10 | 受信 MCP リクエストの制限です(エージェントのループ暴走を防止します。上流へのリクエスト間隔制御は別途行われます)。 |
PATENT_CHECKER_DATA_DIR | ユーザーごとのデータディレクトリ(サーバー)、./.patent-checker(CLI) | 検索キャッシュ、リクエストログ、および設定されている場合は共有ドキュメントキャッシュ(<dir>/cache)です。サーバーは実行ユーザーのデータとともにデータを保持し、CLI は実行元プロジェクトとともにデータを保持します。コンテナーイメージでは /data に設定されています。 |
PATENT_CHECKER_CACHE_DIR | <per-user data dir>/cache | 共有ドキュメントキャッシュ(書誌情報、クレーム、法的ステータス、ファミリー、Google Patents のページ)です。CLI とサーバーの両方で、プロジェクト間で再利用されます。 |
PATENT_CHECKER_CACHE_TTL | biblio=90d,claims=0,legal=7d,family=30d,gp=0,search=1d,searchbib=1d | 種類ごとの有効期限の上書き値です。<n>d、<n>h、または 期限切れにならないことを意味する 0(「キャッシュしない」ではありません)を指定します。CLI でも読み込まれます。 |
PATENT_CHECKER_PACING_DIR | <per-user data dir>/pacing | 共有上流リクエスト間隔制御状態(直近のリクエスト時刻、クールダウン、スロットリングブロック)のディレクトリです。同じユーザーのすべての patent-checker プロセスで共有されます。コンテナーイメージでは /data/pacing に設定されています。CLI でも読み込まれます。 |
PATENT_CHECKER_LOG_LEVEL | info | debug、info、warning、error のいずれかです。サーバーログはすべて標準エラーに出力されます。 |
独自のものではない 3 つの変数も認識されます。Linux と macOS では、
ユーザーごとのデータディレクトリは XDG_DATA_HOME に従います
(未設定の場合は $XDG_DATA_HOME/patent-checker、または
~/.local/share/patent-checker)。ユーザーごとの同意記録は XDG_CONFIG_HOME に従います
(未設定の場合は $XDG_CONFIG_HOME/patent-checker/consent.json、または
~/.config/patent-checker/consent.json)。Windows では、ユーザーごとのデータ
ディレクトリは %LOCALAPPDATA%\patent-checker です(設定されていない場合は
~\AppData\Local\patent-checker)。patent-checker install --lang のデフォルト値は
LC_ALL または LANG から取得されます。
.env はすべての patent-checker コマンドによって、コマンドの実行
ディレクトリ、またはその親ディレクトリから読み込まれます。ホームディレクトリや
ファイルシステムのルートから読み込まれることはありません。OPS 認証情報は、まず環境変数、
次にその .env、最後にユーザーごとの認証情報ファイルから検索されます。Compose では、認証情報は secrets/ 内のファイルから取得され、
compose.yaml と同じディレクトリにある .env は PATENT_CHECKER_OPERATOR_CONSENT
(および任意で PATENT_CHECKER_IMAGE、PATENT_CHECKER_PORT、
PATENT_CHECKER_SERVER_ALLOWED_HOSTS、PATENT_CHECKER_LOG_LEVEL)を指定します。他の変数は
compose.yaml の environment: に追加できます。
コンテナと CLI 間でドキュメントキャッシュを共有する(上級者向け)
お使いのマシン上の CLI とコンテナ内のサーバーは、それぞれ別の
ドキュメントキャッシュを保持します。共有するには、両方で同じディレクトリを
指定します。environment: の下に PATENT_CHECKER_CACHE_DIR: /cache を追加し、
volumes: の下でキャッシュディレクトリをバインドマウントします。たとえば、
~/.local/share/patent-checker/cache:/cache のように指定します。コンテナは
UID 1000 で書き込みを行います。これがお使いのユーザーと異なる場合、マウントした
ディレクトリに書き込み権限が必要です。コンテナ内では
patent-checker clean --shared を実行しないでください。コンテナのデータを消去するには、
そのボリュームを削除します(docker compose down -v)。
キャッシュとクリーンアップ
取得した特許文書は共有ドキュメントキャッシュに一度だけ保存され、種類ごとに
有効期限が設定されます。検索結果とリクエストログは、実行した場所に保存されます
(サーバーのデータディレクトリ、またはプロジェクトから CLI を使用した場合は
プロジェクトの .patent-checker/)。
patent-checker cache statusは、キャッシュされている内容と保存場所、および期限切れまたは 破損した項目の量を表示します。patent-checker cache clear [--kind KIND] [--older-than DAYS] [--pub …] [--expired] [--broken]は削除対象を一覧表示します。削除するには--yesを追加します。KINDはbiblio、claims、legal、family、gp、search、searchbibのいずれかです。patent-checker cleanはプロジェクトの痕跡(検索キャッシュ、リクエストログ、 古いレイアウトの残存ファイル)を一覧表示し、--yesを指定すると削除します。レポート、 エージェントの調査メモ、台帳、同意記録は、--include-artifactsまたは--include-consentを追加しない限り保持されます。--sharedを指定すると、 クリーンアップの対象に共有ドキュメントキャッシュとサーバーのデータ ディレクトリも含まれます。patent-checker ledger statusはプロジェクトの台帳(実行履歴、 監視対象の特許、期限が到来したチェック)を要約し、patent-checker ledger checkはすべての対象の台帳が台帳形式に準拠しているかを検証します。--target <name>を指定すると、どちらのコマンドも対象を1つに限定します。どちらも読み取り専用です。台帳は エージェントが書き込み、レポートとともに保存されます。Git で追跡するかどうかも レポートと同じ設定に従います。レポートと同様に、把握していた内容を日付付きで 記録したものです。- 種別コードを付けない公開番号(
EP1234567)は「現時点で有効なもの」を意味するため、 その番号で取得した請求項は、恒久的に保持されるのではなく、ファミリーと同様に期限切れになります。 種別コードを付けた場合(EP1234567B1)、期限切れになりません。 - Compose では、
docker compose down -vを実行するとサーバーのボリューム、 キャッシュ、およびすべてのデータが削除されます。
--yes を指定しない限り、何も削除されません。
コマンドリファレンス
エージェントが MCP ツールを通じて行う操作は、すべてシェルからも実行できます。ツールごとに 1 つのコマンドを使います。
| MCP ツール | CLI コマンド | 用途 |
|---|---|---|
server_status | patent-checker status | バージョン、OPS が設定されているかどうか(設定元を含む)、データの保存場所、同意とリクエスト間隔を確認します。CLI 形式ではネットワークを使用しません |
ops_search | patent-checker search "<cql>" | 公開データを CQL で検索します |
ops_search_biblio | patent-checker search-biblio "<cql>" | 同じ検索を行い、各検索結果の書誌レコードも取得します |
search_plan_check | patent-checker plan-check "<q1>" "<q2>" … | 検索前に複数のクエリのヒット件数を確認します |
get_biblio | patent-checker biblio <pub> | 1 件の公開公報の書誌レコードを取得します |
get_claims | patent-checker claims <pub> | 1 件の公開公報の請求項テキストを取得します |
get_legal | patent-checker legal <pub> | INPADOC の法的ステータスイベントを取得します |
get_family | patent-checker family <pub> | 単純特許ファミリーを取得します |
watch_check | patent-checker watch <pub> … | 保存済みスナップショットと照合し、監視対象の公開公報を再確認します |
normalize_pubnum | patent-checker normalize <text> | DOCDB 表記の公開番号に変換します(オフライン) |
dedup_families | patent-checker dedup <hits.json> | 検索結果を特許ファミリー単位にまとめます(オフライン) |
verify_batch | patent-checker verify --input <pubs.json> --output <records.json> | 委任されたバッチの漏れを確認します(オフライン) |
usage_report | patent-checker usage | ローカルのリクエストログの概要を表示します |
| — | patent-checker ledger status / ledger check(どちらも [--target <name>] を指定可能) | プロジェクトの台帳を読み取るか、台帳形式に照らして検証します |
| — | patent-checker cache status / cache clear | キャッシュの内容を確認し、その一部を削除します |
| — | patent-checker clean | このプロジェクトの痕跡を削除します |
| — | patent-checker consent status / consent show / consent record | ユーザーへの通知と同意記録を確認します |
| — | patent-checker install [--json] | Skill を配置し、サーバーをエージェントに登録します |
| — | patent-checker uninstall [--json] | Skill とサーバー登録を削除します |
| — | patent-checker credentials set / credentials status / credentials clear | ユーザーごとの OPS 認証情報ファイルを管理します |
| — | patent-checker serve | MCP サーバーを起動します |
データ取得コマンド(search、search-biblio、plan-check、biblio、
claims、legal、family、watch)は、キャッシュを迂回する --refresh を
受け付けます。MCP に対応するツールがないコマンドは、意図的にそのように
設計されています。サーバーがプロジェクトのファイルを読み取ったり削除したりすることはなく、
認証情報を扱うこともありません。
セキュリティモデル
- サーバーはデフォルトでループバックインターフェイスにバインドされ、すべてのリクエストでベアラートークンを要求します。トークンは一定時間で比較されます。Host ヘッダーと Origin ヘッダーは、設定した名前と照合して検証されます(ワイルドカードは使用できません)。これにより、DNS リバインディング攻撃でループバックサーバーにアクセスされるのを防ぎます。ループバック自体から配信されたページはこのチェックではブロックされず、トークンによってアクセスを防ぎます。
- サーバーとコマンドラインツールのどちらからも、
ops.epo.orgとpatents.google.comにのみ接続し、データは自身のデータディレクトリ以下にのみ書き込みます。コード実行ツールはありません。 - 受信するのは公開特許データのみです。検索式、公開番号、ファミリー識別子、日付、以前に返したステータスのスナップショットが含まれます。サイズの大きすぎるリクエストは拒否します。コード、ドキュメント、台帳は、お使いのマシン上でエージェントが扱います。認証済みクライアントには、サーバーがデータを保存している場所(
server_status)が表示されます。それ以外のホスト情報は公開されません。 - 受信リクエストにはレート制限を適用します。また、上流へのリクエストは間隔を空けて一度に1件ずつ処理し、キャッシュします。これにより、暴走したエージェントがデータソースに過剰なリクエストを送るのを防ぎます。
GET /healthはコンテナのヘルスチェック用に認証なしで利用でき、ステータス、バージョン、トランスポートのみを返します。- 認証情報は、環境変数、プロジェクトの
.env、_FILE変数で指定されたファイル、またはユーザーごとの認証情報ファイルから読み込まれます。ログに記録されたり、statusやcredentials statusで表示されたりすることはなく、起動バナーやエラーメッセージにも含まれません。ユーザーごとのファイルは、本人のみが読み取り可能な権限で書き込まれ、他のユーザーも読み取り可能な場合は警告が表示されます。 - コンテナは、すべてのケイパビリティを削除した読み取り専用ファイルシステム上で、非特権ユーザーとして実行されます。書き込み可能なのは
/dataのみです。 --transport stdioには認証機能がありません。サーバーがユーザーの権限で実行されることを理解したうえで、単一のローカルクライアントにのみ使用してください。- 他のマシンにサービスを提供することもできますが、その責任はご自身にあります。トランスポートはプレーン HTTP であり、サーバーは TLS を提供しません。トークンを保護するのはネットワーク(tailnet、VPN)または前段に置く TLS 終端プロキシのみです。可能な環境ではプロキシの使用を推奨します(docs/deploy-lan.md)。
PATENT_CHECKER_SERVER_ALLOWED_HOSTSを設定し、ネットワークと OPS の利用枠の間を隔てる唯一のものとしてトークンを扱ってください。 - Skill は、特許テキストを含め、サーバーが返すものすべてを、従うべき指示ではなく分析対象のデータとして扱います。
- リリースは、バージョンタグから CI によってビルドおよび公開されます。依存関係とコンテナイメージは、変更のたびに既知の脆弱性がないかスキャンされます。セキュリティ上の問題を報告するには、SECURITY.md を参照してください。
データソースとフェアユース
- EPO Open Patent Services は、週ごとのフェアユース上限を含め、登録済みアプリケーションに適用される条件に従って使用されます。サーバーはリクエストの間隔を空け、OPS のスロットリングヘッダーに従いますが、同じ認証情報を共有する他のクライアントの数は把握できません。法的ステータス情報は OPS から取得され、レポートでの正式な値として扱われます。リクエストの間隔調整は、ユーザーごとのすべての patent-checker プロセスで小さな状態ファイル(
PATENT_CHECKER_PACING_DIR)を通じて共有されるため、シェルからpatent-checkerコマンドを続けて実行しても、サーバーと同じ間隔が保たれます。また、あるプロセスが検知したクールダウンや間隔の延長は、次のプロセスにも適用されます。OPS がサービスを完全に拒否した場合(HTTP 403、スロットリングヘッダーがblack)、そのサービスは15分間ブロックされたものとして扱われます。ブロック中にサービスを呼び出すと、ブロック時間を延長することなく、再試行時刻を示すexternal_api_errorが直ちに返されます。また、patent-checker usageではブロックされたサービスがpacingの下に表示されます。複数のクエリを1回のplan-check呼び出しにまとめると、引き続きリクエストを節約できます。 - Google Patents は、ブラウザーで人が閲覧するのと同程度の頻度と量で、文書ページを1ページずつ取得し、各ページをキャッシュして再取得を防ぎます。検索エンドポイントは意図的に使用していません。Google の
robots.txtでパスが許可されていることは、利用規約で一括収集が許可されていることを意味しないためです。 - 特許文書の著作権は出願人に帰属します。レポートでは、出典を明記したうえで、取り上げる請求項の部分のみを引用し、全文を再配布することはありません。キャッシュはお使いのマシン上に保存され、レポートには含まれません。
注意事項
- 米国の公開番号には DOCDB 表記が2種類あります。 EPO の DOCDB データでは、同じ米国の出願公開番号が、10桁表記(
US2007016547A1)または11桁表記(US20260024003A1)で保存されています。どちらの表記になるかは文書ごとに異なり、同じ年に両方の表記が見られます(2026年10月時点)。Google Patents では、すべての年で11桁表記が使われています。ツールはどちらの表記も正規化し、ある表記で OPS から404が返された場合は、もう一方の表記で1回だけ再試行します。また、番号部分に文字を含む番号も受け付けます。OPS では日本、インド、台湾、ハンガリー、ブラジルの一部の公開番号がそのように表記されます(JP.H0218652.AまたはJPH0218652A)。番号を手入力する場合は、どちらの形式も使えます。 - 法的ステータスの取得結果にイベントがまったく含まれない文書は、その旨が注記付きで報告されます(
events: [])。これは「見つからない」場合とは異なります。 - 通知内容が変更されると、Skill は再度同意を求めるか、サーバーが新たな確認を求めます。それまでは、同じことを二度尋ねることはありません。
更新
Docker Compose:docker compose pull && docker compose up -d。
Docker を使わない場合:実行中のサーバーを停止してから、
uv tool upgrade patent-checker
patent-checker serve
お使いのマシン上のツールと Skill:uv tool upgrade patent-checker && patent-checker install。インストーラーを再実行すると、各エージェントの設定にある Skill のコピーとサーバーエントリーが更新されます。サーバーと Skill は同じバージョンに保ってください。どちらも同じコマンドで更新されます。また、新しいリリースの Skill は、古いサーバーにはないツールを呼び出す場合があります。
アンインストール
- エージェント:
patent-checker uninstallはサーバーの登録と、patent-checker installによってコピーされたスキルを削除します(プロジェクト内でその方法でインストールした場合は--scope projectを追加してください。--dry-runを指定すると、実行内容を確認できます)。JSON 設定ファイルを編集し、可能な場合はエージェント独自のmcp removeコマンドを実行します。また、スキルのディレクトリにこのスキルだけが含まれている場合に限り、そのディレクトリを削除します。残るものは一覧表示されます。codexコマンドが利用できない場合の Codex CLI のテーブル[mcp_servers.patent-checker]、OpenHands と Hermes Agent のエントリー、および元の設定ファイルの.bakバックアップです。 - サーバー:
docker compose down -v(コンテナ、キャッシュなどすべてを削除)またはuv tool uninstall patent-checker(キャッシュも削除する場合は、ユーザーデータディレクトリ~/.local/share/patent-checkerまたは%LOCALAPPDATA%\patent-checkerも削除してください)。 - 記録:プロジェクト内で
patent-checker clean --yes --include-artifacts --include-consentを実行すると、レポート、メモ、同意記録が削除されます(ツールをアンインストールする前に実行してください)。~/.config/patent-checker/consent.jsonにはユーザーごとの同意記録が保存され、patent-checker credentials clearを実行するとユーザーごとの認証情報ファイルが削除されます。
変更履歴
- v1.4.1 (2026-10):EPO OPSでは、同じ米国の特許公開前公報が、文書ごとに10桁または11桁のDOCDB表記で保存されています。一方の表記で404が返された場合、公開情報の各エンドポイント(書誌、請求項、法的情報、ファミリー)がもう一方の表記で1回再試行するようになったため、表記の違いだけが原因で取得に失敗することはなくなりました。
- v1.4 (2026-09):レポート冒頭の要約の見出しが**「特許用語を使わない要約」**になりました。検索前に、Skillは一般的な技術、つまり標準規格、広く使われているライブラリ、ランタイムやプラットフォームに標準で含まれるもの、教科書的な手法、ツールチェーンの内部機能、設定にあたる特徴を検索対象から除外し、それぞれに分類と理由を付けて、特徴一覧の直後にレポートへ記載します。判断に迷う特徴は除外せず残します。台帳では、こうした特徴をステータス
excludedで記録するため、後続の実行で再審査されることはありません。また、ledger checkでは理由の入力が求められます。 - v1.3 (2026-09):レポートは**「特許用語を使わない要約」**から始まるようになりました。これは、プロジェクトのどの部分がどの特許に近かったか、そしてレポートでそれらをどのように扱うかを、独自の判断を加えず、特許用語を使わずに述べる要約です。コマンドラインツールが単独で動作するようになりました。
patent-checker credentials setでユーザー用のOPSキーとシークレットを保存でき、patent-checker statusでネットワークに接続せずに設定を確認できます。また、サーバーに接続できない場合、SkillはCLIに切り替えます。新たにpatent-checker uninstall、install --json、OpenHands CLIを通じた登録、XDG_CONFIG_HOMEに基づくOpenCodeの設定が追加されました。シェルのブートストラップは、パイプ経由で実行された場合、質問をターミナルに表示します。ネットワークガイドには、Caddyの例に加えて、Tailscale Serveとプライベートネットワーク上の平文HTTPが記載されました。TLSが推奨されますが、その設定は運用者に委ねられています。 - v1.2 (2026-09):プロセスをまたいでも維持されるリクエスト間隔制御を追加しました。OPSサービスごとの最小間隔、クールダウン、短縮された間隔は、ファイルロックで保護されたユーザーごとの小さな状態ファイルに保存されます。そのため、連続して実行するCLIコマンドもサーバーの呼び出しと同じ間隔が空きます。サービスのOPSから拒否された場合(HTTP 403、スロットリング状態
black)、ローカルで15分間ブロックされ、その間の呼び出しは再試行時刻を即座に返して失敗します(PATENT_CHECKER_PACING_DIR、patent-checker usageで状態を確認できます)。番号部分に文字を含む公開番号(JP.H0218652.A、IN.985DE2013.A、TW.I707812.B)を解析して元の表記に戻せるようになったため、OPSがそのような番号で一覧表示する文書を取得して監視できるようになりました。CLIの引数エラーと、上流からの読み取り不能なデータを区別するようになりました。ledger statusにはledger checkが確認するすべての対象が表示されます。cache statusには、種別コードのない番号で保存された項目と有効期限が表示されます。リクエストログのタイムスタンプにUTCオフセットが付くようになりました。ドキュメントもコードに合わせて更新されました(パイプ経由でのブートストラップの動作、/health、許可されるHostヘッダー、サーバーが受信する情報を列挙した運用者向け通知、コマンドリファレンス)。 - v1.1 (2026-09):繰り返し実行に対応しました。プロジェクトごとの台帳が、ある実行での調査内容を次回に引き継ぎます。後続の実行では、新たに公開された特許だけを検索し、新しいファミリーだけを審査します。新しい
watch_checkツールでは、監視対象の特許の法的ステータスとファミリーを前回の実行結果と比較します。レポートは「前回の調査からの変更」から始まり、ステータスのみを確認した場合の短い監視更新も出力できます。すべての結果に取得日時(fetched_at)が記録され、請求項の結果には実際に読み取った公開文書(pub_docdb)が表示されます。種別コードなしで要求された請求項がキャッシュに残り続けることはなくなりました。dedup_familiesは既知のファミリーを示し、usage_reportは開始時刻を受け取ります。新しいコマンドとしてpatent-checker watchとpatent-checker ledger status|checkが追加されました。コンテナーイメージのビルド時に、ディストリビューションのセキュリティ更新が適用されます。 - v1.0 (2026-09):安定版リリース。定時間のベアラートークン照合、ホームディレクトリまたはファイルシステムのルートから
.envを読み込まない動作、リクエストサイズ制限、強化されたコンテナー(読み取り専用、ケイパビリティなし)、Caddyを使ったLAN/TLSの例、インストーラーの改善(--token-envにトークン値が不要、所有者のみがアクセスできる設定ファイル、バックアップの上書き防止、失敗時のゼロ以外の終了コード、Codex CLIへの登録)、キャッシュとパーサーの修正(並行書き込み、CPC記号、空の法的ステータス、非UTF-8ページ)、上流への呼び出しで401/429/503の場合に1回再試行し、無関係なツールをブロックしない動作、すべてのコマンドでの.env読み込み、トレースバックの代わりに平易なエラーメッセージを表示する動作、Python 3.12以降への対応と3.13でのテスト、CIでのセキュリティスキャン、MCP Registryへの掲載、ドキュメントの再編を実施しました。 - v0.5 (2026-09-06):初の公開リリース。Dockerイメージ(GHCR、Docker Hub)、ファイルベースのシークレットを使ったComposeデプロイ、8種類のエージェントに対応する
patent-checker install、ブートストラップスクリプト、PyPIパッケージ、/health、ログレベルの設定。 - v0.4 (2026-09-05):種別ごとの有効期限と自己修復機能を備えたユーザー共通の文書キャッシュ、
cache status/cache clear/clean、2026年の米国番号変更に対応した公開番号の正規化。 - v0.3 (2026-09-04):MCP サーバー(FastMCP 4、Streamable HTTP、ベアラートークン、Host/Origin検証、送信先許可リスト、レート制限)、運用者向け通知、初のファイルキャッシュ。
- v0.1–v0.2 (2026-08):開発版。コアライブラリ、CLI、同意ゲートとレポートテンプレートを備えたAgent Skill。
ライセンス
Apache-2.0。詳細はLICENSEをご覧ください。
ご質問やバグの報告:GitHub Issues。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。