USPTO Patent MCP Server について
USPTO Patent MCP Serverは、MCPクライアントからUSPTOの特許・商標APIを利用するためのサーバーです。特許調査や審査経過の確認、商標検索・ステータス照会に対応し、stdioでのローカル実行とHTTPでの共有運用ができます。
主な機能
- 01特許・出願の全文検索
- 02特許文書、請求項、PDF取得
- 03審査経過とオフィスアクション
- 04PTAB手続きと請願決定
- 05商標検索、状態、譲渡記録
- 06特許ファミリーと引用データ
活用シーン
- 01特許請求項と審査記録の調査
- 02拒絶理由と引用文献の確認
- 03クリアランス調査のための商標検索
- 04商標の状態と所有権移転の追跡
MCP 対応
MCPツールを通じてUSPTOの特許・商標データを公開します。stdioで動作するほか、HTTPサービスとしてMCPクライアントに接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
USPTO 特許・商標 MCP サーバー
Patent Public Search API、Open Data Portal(ODP)API、PTAB API v3、TSDR 商標ステータス API、USPTO 商標検索など、複数の API を通じて米国特許商標庁(USPTO)の特許および商標データにアクセスするための MCP サーバー(Python SDK 2.x、MCPServer)です。このサーバーを使うと、Claude Desktop で USPTO API からデータを取得したり、PTAB の手続きや決定を検索したり、審査経過を調査したり、商標クリアランス検索を実行したり、商標のステータスを追跡したりできます。

MCP サーバーの概要については、Model Context Protocol の紹介をご覧ください。
素晴らしい Patent Client プロジェクトの作者である Parker Hancock に感謝します。Public Search API を通じてデータを取得するために必要な一連のリクエストとレスポンスを理解するための道を切り開いてくださいました。
機能
このサーバーは、6 つの稼働中の USPTO データソースにわたる 42 個のツールを提供します(USPTO が停止した API 向けの追加 23 個は、ENABLE_LEGACY_TOOLS の背後にあるコード内に残っています)。
- 特許検索 - PPUBS を介して、登録特許および公開出願を全文検索します
- 全文書類 - 特許番号で特許の本文を取得するか、コンテキストを節約するためにクレーム、要約、またはフロントページのみを取得します
- PDF ダウンロード - 特許を PDF ファイルとしてダウンロードします(Claude Desktop は現在クライアントとしてこれをサポートしていません)
- 審査経過 - 取引情報、種類(オフィスアクション、応答、特許査定通知)で絞り込んだファイルラッパー文書一覧、および ODP を介してプレーンテキストまたは PDF で取得する文書
- オフィスアクション検索 - 審査官の文言、拒絶条文、技術分野、日付で、1990 万件のオフィスアクション(2007 年以降)を検索し、文書コードおよび条文ごとの件数を表示します
- クレーム単位の拒絶と引用 - 各オフィスアクションで拒絶、異議、または許可されたクレームとその根拠条文を確認できます(2012 年以降の Alice/Mayo/Myriad/Bilski フラグを含む)。また、各アクションで引用された文献を確認でき、逆引き検索で、審査官が特定の特許を引用したすべての出願を見つけられます
- 審判請求に関する決定 - 特許に関する審判請求(権利回復、再開、優先審査、監督審査)について、本文、種類、結果、担当庁で 110 万件の決定を検索します
- 特許ファミリーデータ - 継続出願情報、外国優先権、および関連出願
- バルクデータセット - PatentsView の名寄せ済みデータを含む USPTO のバルクデータ製品を検索し、アクセスします
- 後方引用 - ある特許を引用する後続の特許を見つけます
- 商標検索 - 米国連邦商標を、標章のテキスト、権利者、商品/サービス、区分で全文検索します(クリアランス/ノックアウト検索)
- 商標のステータスと文書 - TSDR を介して、信頼性の高い最新のステータス、審査書類、標章画像を取得します
- 商標譲渡 - 1955 年から現在までの登録済み所有権移転記録(API キー不要)
Claude Desktop と Claude Code ではローカルで stdio 経由で実行できるほか、共有可能なステートレスサービスとして HTTP 経由でも実行できます。詳しくはHTTP 経由のリモートホスティングをご覧ください。
利用できない API に関する注意: PatentsView API(search.patentsview.org)は 2026 年 3 月 20 日に停止され、データは ODP のバルクデータセットに移行されました。Office Action API と Enriched Citation API(developer.uspto.gov)は 2026 年初頭に廃止されましたが、オフィスアクション検索、拒絶、引用はその後 ODP で再び利用可能になっています(
odp_search_office_actions、get_office_action_rejections、get_office_action_citations)。Patent Litigation API は USPTO Open Data Portal では提供されていません。訴訟データは一括ダウンロードで入手できます。影響を受ける 23 個のツールはコード内に残っていますが、スキーマがセッションごとに各クライアントで約 6k トークンを消費し、失敗することしかできないため、デフォルトでは登録されません。ENABLE_LEGACY_TOOLS=trueを設定すると登録され、各ツールは稼働中のツールを案内する回避策を返します。
API ソース
| ソース | 説明 | 認証が必要 | ステータス |
|---|---|---|---|
| ppubs.uspto.gov | 全文書類、PDF ダウンロード、高度な検索(日次更新) | いいえ | 利用可能 |
| api.uspto.gov (ODP) | メタデータ、継続情報、取引、譲渡、審査履歴 | はい(ODP API キー) | 利用可能 |
| PTAB Trial API | IPR/PGR/CBM 手続き、決定、審判 | はい(ODP API キー) | 利用可能(ODP v3.0) |
| tsdrapi.uspto.gov (TSDR) | 商標のステータス、審査書類、商標画像 | はい(TSDR API キー — ODP とは別) | 利用可能 |
| tmsearch.uspto.gov | 全文商標検索(TESS の後継システムの内部 API) | いいえ | 利用可能(非公式) |
| assignmentcenter.uspto.gov | 商標の所有権移転記録(1955年〜現在) | いいえ | 利用可能 |
| Patent Litigation API | 74,000件以上の地方裁判所の特許訴訟 | 該当なし | ODP では提供されていません(issue #16) |
| PatentsView API | 曖昧さを解消した発明者/譲受人データ、高度な検索 | 該当なし | 2026年3月に終了 |
| ODP Office Action Search | 2007年以降のオフィスアクション:テキスト検索、法令、技術分野(返されるテキストは500文字まで) | はい(ODP API キー) | 利用可能(2026-10) |
| ODP Petition Decisions | 1991年以降の特許申立てに関する決定 | はい(ODP API キー) | 利用可能(2026-10) |
| ODP Office Action Rejections & Citations | 請求項単位の拒絶(2012年以降)および各オフィスアクションで引用された文献 | はい(ODP API キー) | 利用可能(2026-10) |
| Office Action APIs (developer.uspto.gov) | オフィスアクションのテキストと検索 | 該当なし | 2026年初頭に廃止 |
前提条件
- Python 3.10-3.13(3.12 を推奨)。サーバーは MCP Python SDK 2.x(
mcp>=2,<3)上に構築されています。 - Claude Desktop(統合に必要)。その他のモデルと MCP クライアントではテストされていません。
- Python のバージョンと依存関係を管理するための UV
Python 開発者で、まだ uv に慣れていない方には、きっと気に入っていただけるでしょう。pyenv のような Python バージョンマネージャーを別途用意したり、venv と pip で仮想環境を作成、有効化、保守したりするよりも、高速で簡単です。
uv をまだインストールしていない場合:
curl -LsSf https://astral.sh/uv/install.sh | sh
インストール
PyPI から(リポジトリのクローンは不要)
uvx は、公開済みのパッケージを必要に応じてダウンロードして実行します。claude_desktop_config.json で Claude Desktop の接続先に指定し、環境変数に API キーを渡します。
{
"mcpServers": {
"patents": {
"command": "uvx",
"args": ["patent-mcp-server"],
"env": {
"USPTO_API_KEY": "your_odp_key",
"TSDR_API_KEY": "your_tsdr_key"
}
}
}
}
または、Claude Code では次のようにします。
claude mcp add patents -e USPTO_API_KEY=your_odp_key -e TSDR_API_KEY=your_tsdr_key -- uvx patent-mcp-server
キーは省略可能です(API キーの設定を参照)。PPUBS の特許ツール、商標検索、譲渡検索は、いずれもキーなしで動作します。作業ディレクトリにある .env ファイルが読み込まれます。uvx の場合、作業ディレクトリはクライアントがサーバーを起動した場所になるため、上記のように env を介してキーを渡してください。
ソースから
-
このリポジトリをクローンします。
git clone https://github.com/riemannzeta/patent_mcp_server cd patent_mcp_server -
uv で依存関係をインストールします。
uv sync -
インストールを確認します。
uv run patent-mcp-server次のように出力されます。
INFO Starting USPTO Patent MCP server with stdio transport
API キーの設定
USPTO ODP API キー(ほとんどのツールで必要)
api.uspto.gov のツール(ODP、PTAB)を使用するには、Open Data Portal の API キーが必要です。キーがない場合、これらのエンドポイントは 403 Forbidden を返します。Patent Litigation API は ODP で提供されておらず、API キーも不要です。
-
data.uspto.gov で USPTO.gov アカウントを作成します(ID.me による本人確認が必要です)。
-
サインインしたら、サイトのナビゲーションにある 「My ODP」 を開いて API キーを取得します。
-
詳細な手順については、利用開始ガイドを参照してください。
-
data.uspto.gov の顧客プロフィールを入力します(役職、組織、利用目的)。プロフィールが未入力のキーは ODP によって無効化されます。キーが機能しなくなり、401/403 が返される場合は、通常これが原因です。
-
patent_mcp_server ディレクトリに
.envファイルを作成します。USPTO_API_KEY=your_actual_key_here注:PPUBS の特許ツール、商標検索(
tm_*検索ツール)、商標譲渡検索は、いずれも API キーなしで動作します。
TSDR API キー(商標のステータス/書類ツール)
TSDR ツール(tsdr_*)には、USPTO-API-KEY ヘッダーで送信するTSDR 専用の API キーが必要です。ODP キーは TSDR では機能しません。ゲートウェイの認証チェックは通過しますが、その後、すべてのリクエストが BACKEND RESPONSE STATUS: 404 で失敗します。
- 無料の MyUSPTO アカウントでUSPTO API Key Managerにサインインします
- TSDR API 製品を選択し、「Request API key」をクリックします(キーはメールで送信され、アカウントに保存されます)
.envに追加します:TSDR_API_KEY=your_tsdr_key_here
TSDR のレート制限(ピーク時間帯は米国東部時間の午前 5 時~午後 10 時):一般的なリクエストは毎分 60 件、PDF 書類の一括取得は毎分 4 件です(オフピーク時は 120 件/12 件)。一括取得をダウンロードする前に、tsdr_list_trademark_documents を使用してください(メタデータのみを取得し、PDF のようなレート制限はありません)。
商標検索と AWS WAF(キー不要)
tm_search_trademarks/tm_get_trademark は、tmsearch.uspto.gov の背後にある内部 API を使用しており、AWS WAF の保護下にあります。現在は通常のリクエストに応答しますが、USPTO が WAF の制限を強化し、検索が 403/202 エラーで失敗するようになった場合は、tmsearch.uspto.gov のブラウザーセッションから aws-waf-token Cookie をコピーします(有効期間は約 4 日間)。そして、次のように設定します:
TMSEARCH_WAF_TOKEN=your_cookie_value_here
設定
サーバーは .env ファイル内の環境変数を使用して設定できます。すべての設定は省略可能で、適切なデフォルト値が設定されています:
# API Keys
USPTO_API_KEY=your_key_here # ODP/PTAB tools
TSDR_API_KEY=your_tsdr_key_here # TSDR trademark tools (separate key — see above)
TMSEARCH_WAF_TOKEN=... # Optional - only if trademark search hits the WAF
# Tool registration
ENABLE_LEGACY_TOOLS=false # Also register the 23 tools for shut-down APIs (they return API_UNAVAILABLE)
# Logging
LOG_LEVEL=INFO # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
# MCP Transport (see "Remote hosting over HTTP" below)
MCP_TRANSPORT=stdio # stdio (default) or streamable-http
MCP_HOST=127.0.0.1 # Bind address when serving over HTTP
MCP_PORT=8000 # Port when serving over HTTP
MCP_PATH=/mcp # URL path of the MCP endpoint
MCP_STATELESS=true # Keep no per-client state between HTTP requests
MCP_JSON_RESPONSE=false # Reply with plain JSON instead of an SSE stream
# HTTP Settings
REQUEST_TIMEOUT=30.0 # Request timeout in seconds
MAX_RETRIES=3 # Maximum number of retry attempts
RETRY_MIN_WAIT=2 # Minimum wait time between retries (seconds)
RETRY_MAX_WAIT=10 # Maximum wait time between retries (seconds)
# Session Management
SESSION_EXPIRY_MINUTES=30 # How long to cache ppubs sessions
ENABLE_CACHING=true # Enable/disable session caching
# API Endpoints (usually don't need to change)
PPUBS_BASE_URL=https://ppubs.uspto.gov
API_BASE_URL=https://api.uspto.gov # ODP API endpoint (NOT data.uspto.gov)
TSDR_BASE_URL=https://tsdrapi.uspto.gov/ts/cd
TMSEARCH_BASE_URL=https://tmsearch.uspto.gov
TM_ASSIGNMENT_BASE_URL=https://assignmentcenter.uspto.gov
CPC_SCHEME_BASE_URL=https://www.uspto.gov/web/patents/classification/cpc/html
Claude Desktop の設定
この MCP サーバーを Claude Desktop と統合するには:
-
Claude Desktop の設定ファイル(
claude_desktop_config.json)を更新します:{ "mcpServers": { "patents": { "command": "uv", "args": [ "--directory", "/Users/username/patent_mcp_server", "run", "patent-mcp-server" ] } } }Mac では、Claude Desktop アプリを開き、設定(Claude メニューから開くか、キーボードで Command + ' を押します)を開いて、サイドバーの「Developer」をクリックし、「Edit Config」を選択すると、
claude_desktop_config.jsonを確認できます。 -
/Users/username/patent_mcp_serverを、patent_mcp_server ディレクトリの実際のパスに置き換えます。
Claude Desktop と統合すると、必要に応じてサーバーが自動的に起動するため、別途実行する必要はありません。
Claude Code の設定
特定のプロジェクトでこの MCP サーバーを Claude Code と統合するには、プロジェクトのルートから次を実行します:
claude mcp add-json patents '{"command": "uv", "args": ["--directory", "/path/to/patent_mcp_server", "run", "patent-mcp-server"]}'
Claude Code をすでに実行している場合は、/exit で終了して再起動する必要があります。その後、/mcp を実行して設定を確認します。
HTTP 経由でのリモートホスティング
サーバーはデフォルトで stdio を使用します。上記の Claude Desktop および Claude Code の設定では、この方式で起動します。代わりに MCP エンドポイントを HTTP 経由で提供することもできるため、各ユーザーが それぞれの API キーを使って個別のコピーを実行するのではなく、 1 つのデプロイでチーム全体をサポートできます:
patent-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000
エンドポイントは http://<host>:8000/mcp になります。この URL を
MCP クライアントに指定します。Claude Code の場合:
claude mcp add --transport http patents http://your-host:8000/mcp
このエンドポイントには独自の認証機能がなく、USPTO および
TSDR の API キーが保持されています。 アクセスできるユーザーは誰でも、
USPTO のレート制限を消費できます。127.0.0.1(デフォルト)にバインドし、
認証機能を備えたリバースプロキシを前段に置くか、別の方法で
ネットワークアクセスを制限してください。ループバック以外にバインドされている場合、
サーバーは起動時に警告をログに記録します。
デフォルトではリクエストはステートレスです。サーバーはリクエスト間で クライアントごとの状態を保持しないため、セッションアフィニティなしで 複数のレプリカを使ったロードバランサーの背後で実行できます。 各ワーカーはそれぞれ独自の USPTO Public Search セッションを保持し、 必要に応じて確立し、有効期限が切れると更新します。
| フラグ | デフォルト | 用途 |
|---|---|---|
--transport | stdio | stdio または streamable-http |
--host | 127.0.0.1 | HTTP のバインドアドレス |
--port | 8000 | HTTP のポート |
--path | /mcp | MCP エンドポイントの URL パス |
--stateful / --no-stateful | オフ | クライアントごとのセッション状態を保持します。スケールするにはセッションアフィニティが必要です |
--json-response / --no-json-response | オフ | SSE ストリームの代わりにプレーンな JSON で応答します |
各フラグには対応する環境変数があります(上記の「設定」を参照)。 両方が設定されている場合は、コマンドラインの設定が優先されます。
利用可能なツール
ユーティリティツール
| ツール | 説明 |
|---|---|
check_api_status | すべての USPTO API のステータスを確認します |
get_cpc_info | 階層と下位項目を含む、あらゆる深さ(セクションからサブグループまで)の CPC タイトルを取得します。グループは USPTO の分類表ページからリアルタイムで取得します |
get_status_code | USPTO のステータスコードの意味を調べます |
get_trademark_class_info | ニース分類/国際商標分類のクラス(1~45)を調べます |
get_trademark_status_code | USPTO の商標ステータスコードの意味を調べます |
Patent Public Search(ppubs.uspto.gov)
| ツール | 説明 |
|---|---|
ppubs_search_patents | 登録特許を検索します(全文検索、毎日更新) |
ppubs_search_applications | 公開済みの特許出願を検索します |
ppubs_get_full_document | GUID で文書を取得します。sections で書誌情報、要約、請求項、説明を指定します |
ppubs_get_patent_by_number | 番号で特許のテキストを取得します("US 10,000,000 B2"、"D845123"、"RE49123" のいずれも使用できます)。同じ sections オプションを指定できます |
ppubs_get_citing_patents | 被引用特許:対象特許を引用する、後に登録された特許を取得します |
ppubs_download_patent_pdf | 特許を PDF 形式でダウンロードします |
Open Data Portal(api.uspto.gov)
| ツール | 説明 |
|---|---|
odp_get_application | 出願の基本データを取得します |
odp_search_applications | フィルターを指定して出願を検索します |
odp_get_application_metadata | 包括的なメタデータを取得します |
odp_get_continuity | 特許ファミリー/継続出願のデータを取得します |
odp_get_assignment | 所有権/譲渡の記録を取得します |
odp_get_adjustment | 特許期間の調整データを取得します |
odp_get_attorney | 記録上の弁護士/代理人を取得します |
odp_get_foreign_priority | 外国優先権の主張を取得します |
odp_get_transactions | 審査手続きの取引履歴を取得します |
odp_get_documents | ファイルラッパー文書を一覧表示します。文書コード(CTNF、CTFR、NOA、REM、CLM、892…)と方向で絞り込めます |
odp_download_document | ファイルラッパー文書をプレーンテキスト(format="text":オフィスアクション、意見書、補正マークアップ付きの請求項)または PDF として読み込みます |
odp_search_office_actions | テキスト、文書コード、拒絶条文、技術分野、日付で出願全体からオフィスアクションを検索します。プレビューは 500 文字で切り詰められるため、該当文書は odp_download_document(format="text") で読み込んでください |
get_office_action_rejections | 各オフィスアクションで拒絶、異議、または許可された請求項を、条文(101/102/103/112/DP)別に取得します。Alice/Mayo/Myriad/Bilski のフラグも含み、出願、特許、日付、技術分野、判例で絞り込めます |
get_office_action_citations | 各オフィスアクションで引用された文献を、102/103 の区分とともに取得します。cited_reference を指定すると、審査官が特定の特許または公開公報を引用したすべての出願を検索します |
odp_search_petition_decisions | テキスト、申立ての種類、結果、決定機関、日付で申立ての決定を検索し、結果の件数を表示します |
odp_search_datasets | 一括データ製品を検索します |
odp_get_dataset | データセット製品の詳細を取得します |
PTAB Trial API(api.uspto.gov ODP v3.0)
| ツール | 説明 |
|---|---|
ptab_search_proceedings | 特許番号、当事者、ステータスで IPR/PGR/CBM 手続きを検索します |
ptab_get_proceeding | 番号を指定して特定の手続きの詳細を取得します |
ptab_get_documents | 手続きで提出された文書を一覧表示します |
ptab_search_decisions | PTAB の決定を検索します |
ptab_get_decision | 審判番号を指定して特定の決定を取得します |
ptab_search_appeals | 当事者系審判以外の審判を検索します |
ptab_get_appeal | 特定の審判の詳細を取得します |
TSDR - 商標ステータスと文書取得(tsdrapi.uspto.gov)
| ツール | 説明 |
|---|---|
tsdr_get_trademark_status | シリアル番号または登録番号で、信頼できる最新のステータスを取得します |
tsdr_list_trademark_documents | 審査関連文書のメタデータを一覧表示します(レート制限なし、ダウンロードなし) |
tsdr_download_trademark_documents | 審査関連文書一式を PDF としてダウンロードします(レート制限:4 回/分) |
tsdr_get_trademark_image | 商標の画像(図形)を base64 で取得します |
商標検索と譲渡
| ツール | 説明 |
|---|---|
tm_search_trademarks | 商標の文字列、所有者、商品・サービス、区分、存続・消滅ステータスで全文検索します |
tm_get_trademark | シリアル番号で商標の検索インデックスレコードを取得します |
tm_search_assignments | 記録された所有権の移転を検索します(1955 年から現在まで、Assignment Center、キー不要) |
注:
tm_search_trademarksとtm_get_trademarkは、tmsearch.uspto.gov(TESS の後継)の背後にある、文書化されていない内部 API を使用します。これは PPUBS 特許検索 API と同じ状況です。USPTO は全文商標検索の公式 REST API を提供していません。リクエスト/レスポンスの仕様は 2026-06-10 に実際の環境で検証済みですが、USPTO が内部 API を変更した場合、予告なくこれらのツールが動作しなくなる可能性があります。TTAB の手続き(異議申立て/取消し)には REST API がありません。日次の TTAB XML は、odp_search_datasetsを通じて一括データセットとして利用できます。
レガシーツール(ENABLE_LEGACY_TOOLS=true の場合を除き非表示)
以下の 23 個のツールは、USPTO が停止した API 用です。コード内に残され、名前もそのまま維持されていますが、サーバーが登録するのは ENABLE_LEGACY_TOOLS=true の場合のみです。これらのスキーマは各クライアントのセッションごとに約 6k トークンを消費し、呼び出しのたびに API_UNAVAILABLE を返すためです。各レスポンスには、ニーズに対応する稼働中のツール名を示す workaround が含まれます。
特許訴訟 API(利用不可 — ODP では提供されていません。issue #16)
訴訟関連のツール 4 個はすべて API_UNAVAILABLE を返します。特許訴訟 API は ODP の Swagger カタログに掲載されていません。OCE 特許訴訟データセット(74,000 件以上の地方裁判所の訴訟)は、一括ダウンロードとして https://www.uspto.gov/ip-policy/economic-research/research-datasets/patent-litigation-docket-reports-data で配布されています。
| ツール | 回避策 |
|---|---|
search_litigation | OCE 特許訴訟の一括データセット |
get_litigation_case | OCE 特許訴訟の一括データセット |
get_patent_litigation | OCE 特許訴訟の一括データセットまたは ppubs_search_patents |
get_party_litigation | OCE 特許訴訟の一括データセット |
PatentsView API(利用不可 — 2026 年 3 月に停止)
PatentsView のツール 14 個はすべて、回避策の案内とともに API_UNAVAILABLE を返します。PatentsView のデータは、USPTO Open Data Portal の一括ダウンロード可能なデータセットに移行されました。特許検索には ppubs_search_patents を使用し、一括データセットの検索には odp_search_datasets を使用してください。
| ツール | 回避策 |
|---|---|
patentsview_search_patents | ppubs_search_patents |
patentsview_get_patent | ppubs_get_patent_by_number |
patentsview_search_assignees | "name".as. クエリで ppubs_search_patents |
patentsview_get_assignee | odp_search_datasets(一括データ) |
patentsview_search_inventors | "name".in. クエリで ppubs_search_patents |
patentsview_get_inventor | odp_search_datasets(一括データ) |
patentsview_get_claims | ppubs_get_full_document |
patentsview_get_description | ppubs_get_full_document |
patentsview_search_by_cpc | code.cpc. クエリで ppubs_search_patents |
patentsview_lookup_cpc | get_cpc_info |
patentsview_search_attorneys | odp_get_attorney(出願ごと) |
patentsview_get_attorney | odp_get_attorney(出願ごと) |
patentsview_search_by_ipc | IPC クエリで ppubs_search_patents |
patentsview_lookup_ipc | odp_search_datasets(一括データ) |
Office Action API(利用不可 — 2026年初頭に廃止)
この2つのOffice ActionツールはAPI_UNAVAILABLEを返します。代わりにodp_search_office_actionsを使用してください。get_office_action_citationsとget_office_action_rejectionsはODPで再び利用可能になりました(v1.8.0)。
| ツール | 回避策 |
|---|---|
get_office_action_text | odp_search_office_actions(app_num=...)を実行し、その後odp_download_documentを実行します |
search_office_actions | odp_search_office_actions |
Enriched Citation API(利用不可 — 2026年初頭に廃止)
3つすべてのEnriched CitationツールがAPI_UNAVAILABLEを返します。前方引用はppubs_get_citing_patentsから取得できます。特許が引用する文献は、特許のフロントページにあります(ppubs_get_patent_by_number(sections=["biblio"]))。
| ツール | 回避策 |
|---|---|
get_enriched_citations | ppubs_get_citing_patents(前方)およびppubs_get_patent_by_number(sections=["biblio"])(後方) |
search_citations | ppubs_get_citing_patents |
get_citation_metrics | ppubs_get_citing_patents — totalは前方引用の件数です |
リソースとプロンプト
このサーバーはMCP リソース(@メンションからアクセス可能)も提供します。
patents://cpc/{code}- 任意の深さのCPC分類情報(USPTOの分類体系ページにあるグループ)patents://status-codes- USPTOのステータスコード定義patents://sources- データソース情報patents://search-syntax- クエリ構文ガイド(特許および商標)trademarks://classes- ニース国際分類の商標区分(1~45)trademarks://status-codes- 商標ステータスコードの定義
また、MCP プロンプト(ワークフローテンプレート)も提供します。各プロンプトには任意の引数を指定できます。指定した内容は手順の前に「Subject」セクションに配置されるため、ワークフローでは内容を尋ねるのではなく、指定内容に基づいて開始します。
prior_art_search(invention、keywords、cpc_codes) - 包括的な先行技術調査ガイドpatent_validity_analysis(patent_number) - 特許有効性分析ワークフローcompetitor_portfolio_analysis(company、technology) - 競合他社のポートフォリオ分析ptab_proceeding_research(patent_number、proceeding_number、party) - PTAB手続きの調査ガイドfreedom_to_operate(product、cpc_codes) - FTO分析ワークフローpatent_landscape(technology、cpc_codes) - 技術ランドスケープのマッピングtrademark_clearance_search(mark、goods_services、classes) - 商標クリアランス/ノックアウト調査ガイドtrademark_portfolio_review(owner) - 商標ポートフォリオと期限の確認trademark_status_monitoring(serial_numbers、mark) - 商標のステータスと抵触のモニタリング
テスト
このプロジェクトには包括的なテストスイートが含まれています。
# Run unit tests (default - skips integration tests)
uv run pytest
# Run with verbose output
uv run pytest -v
# Run integration tests (requires network access)
uv run pytest -m integration
# Run all tests including integration
uv run pytest -m ""
# Run with coverage report
uv run pytest --cov=patent_mcp_server
統合テストでは、各ツールの出力を確認用にtest/test_results/に保存します。このディレクトリはgitで無視されます。ファイルは実行のたびに書き換えられ、読み戻されることはありません。テストが依存する記録済みレスポンスはtest/fixtures/に配置してください。
ユニットテストスイートは、mainへのプッシュごと、およびプルリクエストごとに、Python 3.10~3.13でCIでも実行されます(.github/workflows/tests.yml)。統合テストはCIでは選択対象から除外されるため、APIキーは不要です。
開発
開発用依存関係をインストールするには:
uv sync --dev
PyPIへの公開
リリースはPublish to PyPI GitHub Actionsワークフロー(.github/workflows/publish.yml)を通じて行います。このワークフローはPyPIの信頼された公開を使用してアップロードするため、APIトークンをどこにも保存する必要はありません。バージョンの更新(pyproject.tomlおよびconfig.pyのUSER_AGENT)をmainにマージした後、Actionsタブからワークフローを実行します。すでにPyPIにあるバージョンは拒否され、テストの実行、ビルド、公開に続いて、vX.Y.ZタグとGitHubリリースが作成されます。
ローカルでビルドするには:
rm -rf dist/ && uv run python -m build
コントリビューション
Issue や PR を歓迎します。コントリビューションガイドについてはCONTRIBUTING.mdを、AI エージェント向けのガイダンスについてはAGENTS.mdをご覧ください。Issue を作成する際は、バグ報告または機能リクエストのテンプレートをご利用ください。これらのテンプレートでは、ツール呼び出し、組み立てたリクエスト URL/本文、生の API レスポンスを入力するため、通常は1回のやり取りで修正を取り込むのに十分な情報がそろいます。
バージョン履歴
v1.8.1(現行)
- リリースを GitHub Actions から公開:新しい Publish to PyPI ワークフローでは PyPI のトラステッド・パブリッシングを通じてアップロードするため、API トークンをどこにも保存する必要がありません。また、リリースごとにタグを付け、GitHub リリースを作成します。このバージョンで初めて公開されました
- ドキュメント:レガシーツールの数をすべての箇所で23に修正しました(v1.8.0で2つのオフィスアクション・データセットツールが公開された後、一部の箇所では25と記載されていました)
v1.8.0
get_office_action_rejectionsとget_office_action_citationsが復活し、廃止された developer.uspto.gov のパスではなく、ODP の請求項レベルのデータセット(/api/v1/patent/oa/oa_{rejections,citations}/v2/records)を使用します。拒絶データはオフィスアクションごとにまとめられており、適用される法令(101、102、103、112、ダブルパテント)、Alice、Mayo、Myriad、Bilski の各フラグ、拒絶、異議、または許可の対象となった請求項が含まれます。出願番号または特許番号、郵送日、期間、法令、判例法、文書コード、技術分野別審査単位で絞り込めます。たとえば、case_law="alice", art_unit="3689"を指定すると、ある技術分野別審査単位の Alice に関する拒絶を検索できます。引用データには、各アクションで引用された参考文献と、それが適用された条項が一覧表示されます。cited_referenceを指定すると、逆方向に検索できます- どちらのツールも各アクションの
document_idを返し、odp_download_document(format="text")で読み取ることができます - 対象範囲:2012年以降の拒絶(9,300万件)。郵送日から約1週間遅れます
- ツール数:デフォルトで42個を登録(
ENABLE_LEGACY_TOOLSを有効にすると65個) - 2026-10-15 に本番環境で動作確認済み
v1.7.0
- ファイルラッパー文書の全文:
odp_download_documentにformat="text"を指定すると、USPTO が PDF とともに公開している XML から文書本文をプレーンテキストで返します。これにより、オフィスアクション(通常は10,000~20,000文字)を base64 PDF として読む必要がなくなりました。オフィスアクション、許可通知、申立ての決定、および意見書(REM)、請求項(CLM)、IDS フォームなどの出願人提出文書に対応しています。補正後の請求項では、変更箇所を~~deleted~~と++inserted++で保持します。長い文書は段落の切れ目で分割され、24,000文字ごとのページとして返されます(text_offset/next_offset)。XML がない文書ではNO_TEXT_AVAILABLEが返され、デフォルト形式は引き続き PDF です - 標準ライブラリで解析します。エンティティを宣言する XML は拒否されます
- 2011年から2026年までの CTNF、CTFR、NOA、REM、CLM、IDS、PET.PCT、PETDEC、SPEC 文書で、2026-10-14 に本番環境で動作確認済み
v1.6.0
- 新しい
odp_search_office_actionsは、ODP の Office Action データセット(2007 年半ば以降に送達された 1,990 万件のアクション)を、全文、文書コード、拒絶条文(101/102/103/112/二重特許)、技術分野ユニット、日付、特許番号で検索します。各レスポンスには、該当する全件を対象にした文書コード別および条文別のファセット件数が含まれるため、limit=1でも件数を確認できます。API が返すのは各アクションの先頭 500 文字のみです。ヒットのdocument_idは file-wrapper の documentIdentifier なので、残りはodp_download_documentで取得できます - 新しい
odp_search_petition_decisionsは、110 万件の申立て決定(1991 年以降)を、テキスト、申立て種別コードまたは語句、結果、決定を下した庁、技術センター、日付、最終的な行政機関の措置フラグで検索し、結果、庁、種別のファセットも返します。抜粋内のクエリ一致箇所は「このように」マークされます。include_full_textを指定すると、各決定の OCR 全文が追加されます - レガシースタブの
get_office_action_textとsearch_office_actionsは、新しいツールを参照するようになりました。check_api_statusでは両方のデータセットが有効と表示されます - これらのエンドポイントからの 401/403 には、ODP の顧客プロフィール要件に関するヒントが含まれます
- ツール数:デフォルトで 40 個を登録(
ENABLE_LEGACY_TOOLSを有効にすると 65 個) - 2026-10-14 にライブ環境で検証済み
v1.5.0
- サブクラスより下位の CPC タイトル:
get_cpc_info(およびpatents://cpc/{code})はクラスレベルまでのバンドル済みテーブルを使用していたため、G06N 3/08は「Computing; Calculating; Counting」と返されていました。サブクラス、メイングループ、サブグループは、USPTO が公開する当該サブクラスの CPC スキームページ(www.uspto.gov/web/patents/classification/cpc/html/cpc-G06N.html、キー不要)から取得し、サブクラスごとに 1 日 1 回フェッチするようになりました。G06N 3/08→ 「Learning methods」となり、階層G06N › 3/00 › 3/02 › 3/08とその下位のサブグループも表示されます。他のツールが出力するすべての形式(G06N3/08、G06N 3/08、H04B7/0417 20130101)に対応します。スキームに存在しないコードの場合は、サブクラスのメイングループとともにNOT_FOUNDを返します。ページを取得できない場合は、静的なセクション名とクラス名をscheme_errorとともに返します - プロンプト引数:9 つすべてのワークフロープロンプトが任意の引数(特許番号、企業名、商標、CPC コードなど)を受け取るようになりました。指定した内容は手順の前に「Subject」セクションとして表示されます。引数を指定しない場合、プロンプトはこれまでと同じです
- 新しい
CPC_SCHEME_BASE_URL設定を追加。check_api_statusにcpc_schemeエントリーを追加 - 2026-09-26 にライブ環境で検証済み:G06N 3/08、G06N、A61K、H04B 7/0417、未知のサブクラスとグループ
v1.4.0
- 9 つの USPTO クライアントとロギングトランスポートで
httpx→httpx2:httpx2は同じ作者による後継で(現在は pydantic の組織の下で管理)、mcp 2 がすでに依存しているものです。httpx0.28.1(2024 年 12 月)とhttpcore1.0.9(2025 年 4 月)は更新が止まっています。このコードが使用する機能(AsyncClient、AsyncHTTPTransport、Cookies、build_request/send(stream=True)、例外クラス)の API はすべて同じなので、20 ファイルにわたる名称変更です。httpxとhttpcoreは依存関係ツリーから完全に削除されます。PPUBS のセッション処理、PDF 印刷ジョブ、TSDR XML ドキュメント一覧、tmsearch、Assignment Center v3、ODP ドキュメントのダウンロードリダイレクトを、2026-09-26 にそれぞれライブ環境で再検証しました(テストスイート全体、除外なし)
v1.3.0
- MCP Python SDK 2.x:サーバーは
mcp>=2,<3(名称が変更されたMCPServer、旧FastMCP)を基盤とするようになり、v1.2.1 で追加されたmcp<2の固定が解除されました。ツール名、引数、結果に変更はありません。--host/--port/--path/--stateful/--json-responseフラグとMCP_*変数の意味も変わりません。内部では、トランスポート設定がサーバーのコンストラクターからrun_streamable_http_async()に移り、プロトコルテストでは mcp 2 のインメモリClientを使用します。また、依存関係から[cli]エクストラが削除されました(2.x では空です) - 構造化出力を無効化:mcp 2 はデフォルトで、すべての辞書型の結果を JSON テキストと
structured_contentの両方として二重に送信します。出力スキーマは「任意のオブジェクト」で、ドキュメントと検索では通信量が 2.0 倍になることが確認されています。ツールはstructured_output=Falseを指定して登録されるため、以前と同様に結果は一度だけ送信されます click>=8.3.3を固定しました(PYSEC-2026-2132。リリース以前から存在する、uvicorn 経由の間接依存関係)。これにより、新しい依存関係ツリーでpip-auditがクリーンになりました- 2026-09-26 に検証済み:mcp 2.2.0 でのユニットテスト一式、ライブテスト一式(ユニットテストと統合テスト。選択解除なし)、ビルド済み wheel からのクリーンな
uvxインストール、mcp 2 付属のクライアントを使った stdio と streamable-http のスモークテスト
v1.2.1
- 新規インストール時の不具合を修正:
mcp[cli]>=1.27は mcp 2.x に解決されましたが、mcp 2.x ではmcp.server.fastmcpの名称がmcp.server.mcpserverに変更されたため、uvx patent-mcp-serverとpip install patent-mcp-serverはインポート時にクラッシュしていました(ModuleNotFoundError: No module named 'mcp.server.fastmcp')。mcp 2.0.0 は 2026-07-28 にリリースされていたため、v1.1.1 と v1.2.0 の両方が影響を受けていました。チェックイン済みのuv.lock(mcp 1.28.1)により、ローカル実行と CI では問題が隠れていました。依存関係はmcp[cli]>=1.27,<2に変更されました。mcp 2 API への移行は別作業です
v1.2.0
- 特許番号の解析を修正:
"US 9,876,543 B2"は 98765432 として読み取られていました(種別コードが番号に含まれていました)。また、"D845123"は 1907 年の実用特許である 845123 として読み取られていました。番号には D/RE/PP の接頭辞が保持され、区切り文字、先頭の「US」、種別コードが除去されるようになりました。また、結果を返さず呼び出しごとに約 3 秒かかっていた、不要なpatentNumber:"…"クエリも検索から削除しました ppubs_get_full_documentとppubs_get_patent_by_numberにsectionsを追加:biblio、abstract、claims、descriptionを選択できます。文書全体は約 24k トークンですが、["biblio", "claims"]なら約 6k です。すべての文書から空のフィールドと検索ハイライト用フィールドを削除します- 検索結果を縮小:各 PPUBS 検索結果には、引用文献リストが 2 つ含まれており、それぞれ 7 KB ありました。現在は 3 件の検索結果が 41k 文字ではなく 5k 文字になりました。
ppubs_search_*のデフォルト値はlimit=20です(切り詰め処理によって、より大きなレスポンスも結局 20 件に制限されていました) - 新しい
odp_download_documentは、ファイルラッパー文書(Office Action、応答、許可通知など)を PDF として取得し、ODP の署名付き 30 秒リダイレクトをたどります。4 MB を超える文書は拒否されます。odp_get_documentsには、document_codeとdirectionによるフィルター、ページング、ラッパー全体のコード別件数が追加されました - 新しい
ppubs_get_citing_patents:付与済み特許の.urpn.フィールドを通じて前方引用を取得します。totalは引用件数です - レガシーツールはデフォルトで非表示:停止した API 向けの 25 個のツールは、すべてのクライアントに送信されるスキーマテキストの 39%(約 6k トークン)を占めていました。登録するには
ENABLE_LEGACY_TOOLS=trueを設定してください。関数、名前、回避策のメッセージに変更はありません - すべてのツールに読み取り専用アノテーションを付与したため、これに対応するクライアントでは呼び出しごとの確認が不要です
- 競合企業ポートフォリオ、実施自由度、特許ランドスケープの各プロンプト、
patentsview_*の回避策メッセージ、この README では、8 月に動作しなくなったスラッシュ接頭辞検索構文(AN/、IN/、CPC/)が引き続き使われていました。すべて.as.、.in.、.cpc.、@pdを使うように修正しました test/test_patents.pyを削除:スクリプト形式の実環境チェック 2 件は、アサーションを行わずエラーを記録するだけだったため、常に成功していました。また、デフォルトのpytest実行(CI を含む)のたびに USPTO を呼び出し、json/とpdfs/を書き換えていました。デフォルトのテストスイートからネットワーク呼び出しがなくなりましたtm_search_assignmentsを修正:Assignment Center は検索 API を/ipas/search/api/v2/から/v3/に移行し、CloudFront は旧パスへの POST を 403 HTML ページで拒否するようになりました。リクエスト本文とレスポンスのエンベロープは同じで、パスのみが変更されました- ODP クライアントと PTAB クライアントで 429 を処理:レート制限された呼び出しは、429 を呼び出し元に返す代わりに待機し(Retry-After がなければ指数バックオフを使用)、
MAX_RETRIES回まで再試行するようになりました。api.uspto.gov はキーごとに制限されているため、ツールをまとめて呼び出すと制限に達していました - 統合テスト:
test/test_tools.pyとtest/test_tools_pytest.pyは重複していたため、pytest 版を短い名前で残し、スキップされていた PatentsView テスト 8 件を削除しました。また、patentNumber:"…"クエリとnumFoundのアサーション(どちらも実 API やツールのエンベロープに合わなくなっていました)を修正し、sections、接頭辞付き番号、ppubs_get_citing_patents、odp_get_documentsのフィルター、odp_download_documentの実環境テストを追加しました。uv run pytest -m ""でユニットテストと実環境テストを含む全テストを実行でき、成功します - 2026-09-26 に実環境で確認済み:D/RE 接頭辞付きの
.pn.、.urpn.、ODP の文書一覧とダウンロードのリダイレクト、Assignment Center v3 - ツール数:デフォルトで 38 個を登録(
ENABLE_LEGACY_TOOLS設定時は 63 個)
v1.1.1
ppubs_download_patent_pdfを修正:USPTO が PDF ダウンロードのエンドポイントを変更しました。以前の/api/internal/print/save/{pdfName}パスは 404 を返すようになったため、クライアントは現在利用可能な/api/print/save/{pdfName}エンドポイントを使用します(2026-08-05 に実際の検索、文書取得、PDF ダウンロードを行い、ライブ環境で検証済み)- PPUBS の検索構文に関する案内を修正:スラッシュ接頭辞のフィールド修飾子(
TTL/、IN/、AN/、CPC/)はライブ API では機能しなくなり、結果が 0 件でもエラーを返しません。また、TTL/"phrase"はサーバー 500 を返します。検索ツールの docstring、先行技術調査用プロンプト、patents://search-syntaxガイドでは、現在機能するドット接尾辞形式(.ti.、.ab.、.clm.、.spec.、.in.、.as.、.pn.、.cpc.、日付範囲の@pd/@ad)を案内するようになりました。それぞれライブ環境で検証済みです - どちらの不具合も v1.1.0 より前に生じた USPTO 側の仕様変更であることを、v1.0.0 当時のコードで同じライブテストを実行して確認しました
v1.1.0
- HTTP 経由のリモートホスティング:新しい
--transport streamable-httpモードでは、ネットワーク経由で MCP エンドポイントを提供します。これにより、ユーザーごとにローカルコピーを実行しなくても、1 つのデプロイでチーム全体を支援できます。既存の Claude Desktop および Claude Code の設定に変更がないよう、デフォルトは引き続きstdioです。新しいフラグ--host、--port、--path、--stateful、--json-responseが追加され、それぞれに対応するMCP_*環境変数もあります。セキュリティ上の注意点については「HTTP 経由のリモートホスティング」を参照してください。エンドポイントには API キーが保持されますが、呼び出し元の認証は行いません - デフォルトでステートレス:HTTP リクエストにはクライアントごとの状態が含まれないため、セッション固定なしで、複数のレプリカを持つロードバランサーの背後でサーバーを実行できます
- Public Search クライアントのセッション競合を修正(stdio のユーザーにも影響):同時に実行されたツール呼び出しが共有 Cookie jar をそれぞれリセットし、アクセストークンの差し替えを競合していたため、処理中のリクエストが差し替え途中のセッションで署名される場合がありました。セッションのセットアップを直列化し、別の呼び出しがすでにトークンを差し替えている場合は 403 後の更新をスキップするようにしました。また、トークンは共有クライアントのデフォルトヘッダーではなく、リクエストごとに渡されるようになりました
- シャットダウンを修正:9 つの HTTP クライアントの終了処理は、新しいイベントループを起動する
atexitフックでは実行されなくなりました。代わりに、クライアントを開いたイベントループで実行されます。意図的に FastMCP のライフスパンは使用していません。ステートレス HTTP モードではリクエストごとに実行されるため、最初のツール呼び出しの後にクライアントが終了してしまうためです - MCP SDK の最低バージョンを
>=1.27に引き上げました(以前は>=1.3.0で、ストリーミング可能な HTTP を含まない SDK がインストールされる可能性がありました) - MCP プロトコル層のテストを追加しました。これまでのテストスイートはツール関数を直接呼び出すだけで、スキーマ生成、リソース/プロンプトの登録、シリアライズを一度もテストしていませんでした。新たに 19 件のテストを追加しました(合計 378 件。359 件から増加)
v1.0.0
- 商標サポート:3 つの新しいクライアントで 9 個の商標ツールを追加しました。すべて 2026-06-10 に稼働中の USPTO サービスで検証済みです
- TSDR(
tsdr_get_trademark_status、tsdr_list_trademark_documents、tsdr_download_trademark_documents、tsdr_get_trademark_image)— 公式の商標ステータス/文書 API です。TSDR 専用のキーが必要です(ODP キーは使用できません)。エラーレスポンスでは誤ったキーの特徴を検出し、正しいキーの取得方法を案内します。4 MB を超える文書バンドルは、フィルターの使用方法を案内して拒否されます(完全なラッパーは 10 MB を超える場合があります) - 商標検索(
tm_search_trademarks、tm_get_trademark)— tmsearch.uspto.gov の背後にある内部 Elasticsearch API を使用して、標章のテキスト、所有者、商品/サービス、ニース分類で全文検索します(公式の REST API はありません)。実環境で検証済みです。TMSEARCH_WAF_TOKENに対応し、AWS WAF による拒否を処理します - 商標権の移転(
tm_search_assignments)— USPTO Assignment Center の公開 API(assignmentcenter.uspto.gov、キー不要)です。シリアル番号/登録番号、譲受人、譲渡人、リール/フレームで検索できます。2026 年 6 月 5 日に廃止された従来の assignment-api.uspto.gov XML API に代わるものです
- TSDR(
- 新しい参照ツールとリソース:
get_trademark_class_info、get_trademark_status_code、trademarks://classes、trademarks://status-codes(45 のニース分類すべて、一般的な商標ステータスコード) - 3 つの新しいワークフロープロンプト:
trademark_clearance_search、trademark_portfolio_review、trademark_status_monitoring ppubs_download_patent_pdfを修正しました(誤ったシグネチャでdownload_imageを呼び出し、TypeErrorが発生していました)- 特許ワークフロープロンプトを書き換え、稼働中のツールを参照するようにしました(従来のプロンプトは廃止済みの PatentsView/Office Action/引用ツールを参照していました)
- 新しい環境変数:
TSDR_API_KEY、TMSEARCH_WAF_TOKEN、TSDR_BASE_URL、TMSEARCH_BASE_URL、TM_ASSIGNMENT_BASE_URL - ツール数:61 個を登録済み(36 個が有効、25 個が利用不可)
v0.9.5
- USPTO ODP v3.0 で 7 個の PTAB ツールを再度有効化しました:
ptab_search_proceedings、ptab_get_proceeding、ptab_get_documents、ptab_search_decisions、ptab_get_decision、ptab_search_appeals、ptab_get_appeal(issue #23)。PTAB データは ODP の/api/v1/patent/trials/*と/api/v1/patent/appeals/*に移動しました(これらのパスは ODP Swagger UI に記載されていません)。スタンドアロン API の廃止(issue #16)は Patent Litigation API については正しいものでしたが、PTAB は消滅したのではなく移動していました。 - 有効なツール数:27 個(20 個から増加)、利用不可:25 個(32 個から減少)、登録済みの合計は 52 個のままです
v0.9.4
ppubs_search_patents/ppubs_search_applicationsのクエリセマンティクスを修正しました(issue #21):デフォルトの演算子をORからANDに変更したため、machine learningのような複数語のクエリでコーパス全体が一致し、date_publ descソート時に最新の特許付与データへのフォールバックに陥ることがなくなりました。- PPUBS クライアントのテンプレート変更バグを修正しました(
search_query.copy()→copy.deepcopy(...))。これにより、並列呼び出し間の競合リスクが解消されました。 - ODP 上で
odp_search_applicationsのフィルターが黙って無視される問題を修正しました(issue #21):GET のクエリ文字列パラメーターから、Lucene 形式のqを本文に含める POST に切り替えました。assignee_name、inventor_name、application_number、patent_number、出願日の範囲が検索時に適切に AND 結合されるようになりました。フィルターを指定せずに呼び出された場合、ツールは 1,280 万件のコーパス全体を出力するのではなく、MISSING_FILTERを返すようになりました。 ppubs_search_patents/ppubs_search_applications/odp_search_applicationsの docstring を更新し、修正後のセマンティクスと ODP での Lucene クエリサポートを記載しました。CONTRIBUTING.md、AGENTS.md、バグ報告と機能リクエスト用の issue テンプレート、および PR テンプレートを追加しました。
v0.9.0
- ODP で PTAB Trial API と Patent Litigation API が利用できない場合に対応しました(issue #16)
- 7 つの
ptab_*ツールすべてと 4 つの訴訟ツールが、PPUBS ツールと USPTO の一括データセットを案内する回避策を含めてAPI_UNAVAILABLEを返すようになりました - 利用可能なツール数:20(31 から減少)、利用不可:32(21 から増加)。登録済みの合計数は 52 のままです
- 新たに利用不可となった 11 個のツールすべてのユニットテストを追加し、共通のエラー構造のパラメーター化テストを拡張しました
- サービス終了を反映するため、
check_api_status、resources.pyのデータソース、クライアントのドキュメント文字列、README を更新しました
v0.8.0
- 廃止された PatentsView API(2026 年 3 月 20 日に停止)に対応しました
- 14 個の
patentsview_*ツールすべてが、回避策の案内を含めてAPI_UNAVAILABLEを返すようになりました - 利用できない PatentsView ツールを参照していた office_actions リソースの循環参照を修正しました
- API ソースの表、設定、ドキュメントを更新しました
v0.7.0
- 廃止された Office Action API と Enriched Citation API(developer.uspto.gov)に対応しました
- 影響を受ける 7 個のツールすべてが、回避策の案内を含めて
API_UNAVAILABLEを返すようになりました - 廃止されたツールのテスト用に
test/unit/test_unavailable_tools.pyを追加しました - コードを整理しました:不要なコードを削除し、ドキュメント文字列を改善しました
v0.6.2
- API キーの登録手順を更新しました:キーは data.uspto.gov の「My ODP」から取得するようになりました
- 正しい API エンドポイントは
api.uspto.govであり、Web ポータルのdata.uspto.govではないことを明確にしました - PTAB API v3 の ODP への移行と Office Action API の移行(2026 年初頭予定)について記載しました
v0.6.1
- PatentsView の弁護士検索ツール(
patentsview_search_attorneys、patentsview_get_attorney)を追加しました - PatentsView の IPC 分類ツール(
patentsview_lookup_ipc、patentsview_search_by_ipc)を追加しました search_publicationsメソッドのバグを修正しました(ページネーションのオプションが渡されていませんでした)
v0.6.0
- PyPI リリースの準備
v0.5.0
- USPTO 専用のデータソースに重点を置きました
- わかりやすさのため、ODP ツール名に
odp_プレフィックスを付けました - 関数シグネチャを改善しました(
qではなくqueryを使用)
v0.3.0
- 33 個の新しいツールを追加しました(PTAB、PatentsView、Office Actions、Citations、Litigation)
- PatentsView API のレート制限をサポートしました
- 包括的な非同期クライアントアーキテクチャを追加しました
v0.2.2
- 環境変数を使った設定の一元化
- エラー処理の標準化
- Pydantic による入力検証
- 指数バックオフによる再試行ロジック
- PPUBS のセッションキャッシュ
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。