IP-MCP
IP-MCP
English · 日本語
Claudeから自然言語で日本の特許を検索できます。 IP-MCPは、特許庁公式の「特許情報取得API」をMCPサーバーとしてラップし、Claude Desktop、Claude Code、iPhone版Claudeから特許番号の解決、登録状況の確認、引用文献の取得、五大庁ファミリーの参照が可能です。公式APIツール12個に加え、意図的に分離されたキーワード検索ツール1個を提供します。
30秒でClaudeに聞けること
あなた: 「JP-2010-228687の登録状況と先行技術を教えて。」
Claude(内部の処理):
jpo_convert_patent_number→ 出願番号2009080841
jpo_get_patent_registration→ 登録番号5094774、株式会社日立製作所、2029-03-30満了、存続中
jpo_get_patent_citations→ 先行技術文献20件回答: 「列車制御地上装置およびシステム」(株式会社日立製作所)は2012-09-28にJP5094774として登録され、現在有効、2029-03-30に満了予定です。調査報告書および拒絶理由から先行技術引用20件、すべて特許文献(非特許文献なし)…
キーワード検索は別ツール(external_search_patents_by_keyword、Google Patents XHR)に分離されています。LLMが公式APIから非公式ソースへ誤ってフォールバックすることは絶対にありません。すべてのレスポンスには明示的なsourceフィールドが付与されます。
Related MCP server: MCP-ndl-search
比較
J-PlatPat(手動Web UI) | 自作Flaskラッパー | IP-MCP | Google Patents直接利用 | |
データソース | 公式(JPO) | 公式(JPO) | 公式(JPO)+外部(任意) | 非公式 |
番号変換/進行/登録/引用 | ✓(手動) | ✓ | ✓ | ❌ |
キーワード検索 | ✓ | ✓ | △(分離された外部ツール) | ✓ |
LLMから直接呼び出し可能 | ❌ | ❌(REST+パース処理が必要) | ✅ ネイティブMCP | △(HTML/JSONパースが必要) |
公式と非公式の区別 | — | 単一ソース | ✅ 必須の | — |
自動フォールバック | — | — | ❌ 禁止(LLMが判断) | — |
認証 | セッション | env | envまたはOAuth 2.1(DCR+PKCE) | なし |
デプロイ | — | DIY | Docker Compose | — |
キーワード検索を別ツールカテゴリにする理由
公式JPO APIは番号検索のみです。すべてのエンドポイントは出願/公開/登録番号、出願人コード、または完全一致の出願人名を受け取ります。キーワード/IPC/Fターム/日付範囲/部分一致検索は仕様に存在しません。そこで:
tools_official/— ツール名はjpo_*で始まり、レスポンスは{"source": "jpo_official", …}tools_external/— ツール名はexternal_*で始まり、レスポンスは{"source": "google_patents_unofficial", …}境界テストにより、
tools_external/からtools_official/へのimportは禁止されています。サイレントフォールバックなし — 非公式ソースを参照するかどうかはLLMが判断します。
アーキテクチャ
flowchart LR
User["Claude Desktop /<br/>Claude Code /<br/>iPhone Claude"]
CF["Cloudflare<br/>(Edge TLS + Tunnel)"]
Caddy["Caddy<br/>(CF Origin Cert)"]
User -->|"HTTPS + OAuth"| CF
CF -->|"outbound from home<br/>via cloudflared"| Caddy
Caddy -->|"http+SSE"| MCP
subgraph Docker["Docker container (Python 3.12 + FastMCP)"]
MCP["MCP server<br/>:8765"]
Official["tools_official/<br/>(jpo_* 12 tools)"]
External["tools_external/<br/>(external_* 1 tool)"]
OAuth["OAuth 2.1<br/>SQLite-backed"]
MCP --> Official
MCP --> External
MCP -.->|"persisted"| OAuth
end
Official -->|"OAuth2 password grant"| JPO[("JPO Patent API")]
External -->|"3s spacing + 503 backoff"| GP[("Google Patents XHR")]
classDef boundary stroke-dasharray: 5 5
class External,GP boundary中核となる設計ルール:
tools_official/(公式JPO)とtools_external/(非公式Google Patents)は、コード階層、呼び出し箇所、ロガーレベルで完全に分離されています。境界テストにより、tools_external/からtools_official/へのimportはブロックされます。リトライは同じデータソース内でのみ許可されます(401→トークン更新、303→指数バックオフ)。失敗時のソース間の自動フォールバックは禁止されています — LLMが判断します。
すべてのレスポンスには
{"source": "jpo_official"}または{"source": "google_patents_unofficial"}が付与されます。
クイックスタート
ローカル開発
cp .env.example .env # Fill in JPO_USERNAME / JPO_PASSWORD
chmod 600 .env
docker compose up -d --buildLANデプロイ(認証なし)
docker-compose.override.ymlを作成してLANインターフェースにバインドします(リポジトリにはdocker-compose.override.yml.exampleが同梱されています):
services:
ip-mcp:
ports:
- "YOUR_SERVER_IP:8765:8765" # your LAN IPClaude Desktop / Codeの設定:
{
"mcpServers": {
"ip-mcp": {
"transport": { "type": "sse", "url": "http://YOUR_SERVER_IP:8765/sse" }
}
}
}Codex CLIの直接HTTP MCP(codex mcp add --url)はStreamable HTTPを期待するため、Codexから直接使用する場合は/mcpパスを登録します:
CODEX_HOME=/path/to/codex-home codex mcp add ip-mcp --url https://your-host.example.com/mcp
CODEX_HOME=/path/to/codex-home codex mcp login ip-mcpSSEクライアントは/sseを登録します。Codex直接HTTPとSSEクライアントの両方を同じ公開サーバーで提供するには、MCP_TRANSPORT=bothで起動して、同じOAuth設定の下で/mcpと/sseの両方を公開します。単一クライアントの場合は、MCP_TRANSPORT=sse(デフォルト)またはMCP_TRANSPORT=streamable-httpでも動作します。
iPhone版Claude / claude.ai(公開、OAuth 2.1)
公開公開にはCloudflare Tunnel+Caddy(CF Origin Cert)の構成が推奨されます — cloudflaredが自宅ネットワークからCFエッジへ発信接続するため、ルーターのポートフォワーディングは不要で、ヘアピンNATの問題もありません。Let's Encrypt+直接443を使用した従来のリバースプロキシでも動作します。いずれの場合も、MCP_OAUTH_MASTER_PASSWORD+MCP_OAUTH_ISSUER_URLを設定してOAuth 2.1(DCR+PKCE+マスターパスワード同意)を有効にします。発行されたクライアントトークンはSQLiteに永続化され、コンテナ再起動後も保持されます。
MCP_OAUTH_MASTER_PASSWORD=<24+ chars random>
MCP_OAUTH_ISSUER_URL=https://your-host.example.com
# optional: MCP_OAUTH_DB_PATH=/app/data/oauth.db完全なデプロイ+運用の詳細はPLAN.md §9-§10およびOPERATIONS.mdを参照してください(現在は日本語のみ)。
ツール一覧
名前 | 目的 |
| 出願/公開/登録番号の相互変換 |
| 審査進行状況(詳細/簡易切替) |
| 登録情報と権利状況 |
| 引用された先行技術文献 |
| 分割出願 |
| 優先権主張出願 |
| 出願人コード⇄名称(完全一致のみ) |
| 拒絶理由通知/意見書/補正書(インラインZIP+署名付きURL対応) |
| J-PlatPat正規URL |
| 五大庁特許ファミリー(JPO/USPTO/EPO/CNIPA/KIPO) |
| OPD文書一覧 |
| 複数の公式エンドポイントに展開する高レベル複合ツール(公式API内に完全に留まる) |
レスポンス: {"ok": true, "source": "jpo_official", "data": {…}, "remaining_today": "…"}
名前 | 目的 |
| 日本語特許のフリーテキスト/権利者/IPC/日付範囲検索(Google Patents XHR、参考用) |
レスポンス: {"ok": true, "source": "google_patents_unofficial", "data": {…}}
公式APIにはキーワード検索がない(番号検索のみ)ため分離されています。失敗時は{"ok": false, "kind": "search_unavailable"}を返し、公式ツールへのフォールバックは絶対にしません。
レート制限(運用)
公式JPO APIは自己スロットリングの責任を運用者に委ねています:
分単位レート:
/api/patent/*は10 req/min、/opdapi/*は5 req/min(OPDは独自のバケットで別途カウント)。日次クォータ: エンドポイントごとに30〜800/日(2026年3月に国別APIクォータが2倍に増加)。権威あるライブカウンターは
result.remainAccessCountで、すべてのレスポンスで返されます。jpo_fetch_full_recordは4つの公式エンドポイントに並列展開するため、1回の呼び出しで4つの別々の日次クォータからそれぞれ1単位を消費します(同じクォータから4単位ではありません)。ボトルネックは最も低いクォータです。
ツールとエンドポイントの対応および運用上のしきい値については、OPERATIONS.md §JPO API レート制約とクォータ(日本語)を参照してください。
ドキュメント
📐 PLAN.md — 設計計画(アーキテクチャ、全ツール一覧、段階的計画)[JP]
🤖 CLAUDE.md — Claude Codeガイド(譲れない設計ルール、JPO APIの落とし穴)[JP]
🔧 OPERATIONS.md — 運用ランブック(アクセスログ集計、マスターパスワードのローテーション、トラブルシューティング)[JP]
プレースホルダー | 例 | 設定方法 |
|
| デプロイホストのLAN IP |
|
| ホスト上のSSHユーザー名 |
| ご自身のドメイン | Cloudflare/リバースプロキシの背後にある公開ホスト名 |
docker-compose.ymlのポートバインドはデフォルトで127.0.0.1:8765(同一マシンのみ)です。LANで公開するには、別のdocker-compose.override.yml(すでにgitignore済み)を作成して上書きします。
ライセンス
MIT — LICENSEを参照してください。
This server cannot be deployed
Maintenance
Related MCP Connectors
Patent search, USPTO data, patent landscape & pgvector prior-art search for agents.
EPO/USPTO search, citations, OCR, plus PATSTAT Portfolio Analytics, guarded SQL and Graph Analytics.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
AI-optimized patent data marketplace providing structured JSON datasets.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceEnables AI agents to perform patent search, portfolio analysis, technology trend tracking, and semantic prior-art search using USPTO data.MIT
- FlicenseNot gradedqualityDmaintenanceEnables natural language search of Japan's National Diet Library bibliographic database via Claude Desktop, allowing users to find books and academic materials using intuitive Japanese queries.6-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to search and retrieve patent data from EPO OPS and Google Patents via natural language, supporting patent search, details, claims, and family information with OAuth authentication.MIT
- AlicenseNot gradedqualityBmaintenanceEnables conversational patent data analysis through a set of tools for trend analysis, clustering, word cloud generation, and more. Allows natural language queries to explore patent datasets with structured results and visualizations.1AGPL 3.0