patent-mcp
This server provides patent information retrieval and analysis tools for AI agents. It includes:
search_patents: Search patents by keywords, assignee, inventor, date ranges, country, and status, with support for pagination, Boolean operators, and output in markdown or JSON.
find_similar_patents: Find patents similar to an existing patent (by publication number) or a free-text idea. Multiple strategies are available (auto, provider_similar, semantic, classification) with filters for date, country, and family exclusion.
get_patent: Retrieve detailed patent information (bibliographic data, abstract, claims, description, classifications, citations, family) by publication number, with section selection and output format options.
list_patent_providers: List available data sources (e.g., Google Patents, EPO OPS) and their capabilities.
Key features include a pluggable data source architecture with per-call provider switching, configurable via environment variables (default provider, language, timeouts), robust handling of HTML-based providers with automatic validation and fallback, and built-in rate limiting and retry mechanisms.
Provides patent search and retrieval from Google Patents, including keyword/assignee/inventor/date searches, similar patent discovery, and fetching patent summaries, claims, descriptions, classifications, citations, and family information.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@patent-mcpSearch for solid-state battery patents by Toyota from 2020 onward"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
patent-mcp
特許情報を取得して Agent にコンテキストとして渡すための、ローカル実行の MCP サーバー。
データソースはインターフェースの背後に隠してあるので、あとから
Google Patents → 特許庁 API → EPO OPS のように差し替え・追加ができる。
ツールも tools/ にファイルを置くだけで増える。
ツール
ツール | 用途 |
| キーワード・出願人・発明者・期間で特許を検索する |
| 既存特許や自由文(アイデア・請求項案)に似た特許を探す |
| 公開番号を指定して要約・請求項・明細書・分類・引用・ファミリーを取得する |
| 利用可能なデータソースと対応機能を確認する |
Related MCP server: patents-mcp
セットアップ
uv sync動作確認:
uv run patent-mcp --helpエディタ / エージェントへの登録
以下、リポジトリの絶対パスを /path/to/patent-mcp と表記する(pwd で確認できる)。
uv のフルパスは which uv で確認する(通常 ~/.local/bin/uv)。
Claude Code
claude mcp add patent -- uv --directory /path/to/patent-mcp run patent-mcpClaude Desktop
claude_desktop_config.json に追加:
{
"mcpServers": {
"patent": {
"command": "uv",
"args": ["--directory", "/path/to/patent-mcp", "run", "patent-mcp"],
"env": { "PATENT_MCP_LANG": "ja" }
}
}
}GitHub Copilot(VS Code)
VS Code の Copilot Chat(Agent モード)は MCP サーバーに対応している。
ワークスペース直下に .vscode/mcp.json を作る(チーム共有したくない場合は
.vscode/mcp.json を .gitignore に入れるか、ユーザー設定側の MCP 設定に書く)。
{
"servers": {
"patent": {
"type": "stdio",
"command": "uv",
"args": ["--directory", "/path/to/patent-mcp", "run", "patent-mcp"],
"env": { "PATENT_MCP_LANG": "ja" }
}
}
}有効化手順:
VS Code でこのリポジトリ(または
.vscode/mcp.jsonを置いたワークスペース)を開くコマンドパレットで
MCP: List Serversを実行し、patentが認識されているか確認(表示されない場合はMCP: Add Serverから同じ内容を登録する)Copilot Chat を Agent モードにする(チャット入力欄のモード切り替え)
ツール一覧(レンチ/ツールアイコン)に
search_patentsなどが並んでいることを確認して使う
ユーザー全体で使い回したい場合は、ワークスペースではなくコマンドパレットの
MCP: Open User Configuration から同じ内容をユーザー設定側に書いてもよい。
VS Code の MCP サポートは変更が速いので、上記でうまくいかない場合は
VS Code 側の最新ドキュメント(Copilot Chat の MCP servers)を確認すること。
設定(環境変数)
変数 | 既定値 | 説明 |
|
| 使用するデータソース |
|
| 本文の言語 |
|
| HTTP タイムアウト(秒) |
|
| 1回の検索で返す上限 |
|
| 1セクションの最大文字数 |
プロバイダ固有の設定は PATENT_MCP_<プロバイダ名>_<キー> で渡す。
例: PATENT_MCP_EPO_OPS_KEY=xxx → settings.options_for("epo_ops") == {"key": "xxx"}
google_patents プロバイダ固有:
変数 | 既定値 | 説明 |
|
| リクエスト間の最小間隔(秒) |
|
| 429/503 を受けたときの再試行回数 |
Google Patents は短時間に連続アクセスすると 503 を返す。
まとめて多数の特許を調べる用途では MIN_INTERVAL を 2〜3 秒に上げるとよい。
使用例(Agent 側の会話)
「全固体電池の界面抵抗低減について、2022年以降の日本の特許を10件調べて」
「JP2020123456A に似た特許を、優先日が2019年より前のものに限って探して」
「この請求項案に近い先行技術がないか調べて: 〈本文〉」
「US9634296B2 の請求項1と、引用されている文献を出して」
HTML構造の変更をどう検知するか
既定のプロバイダは Google Patents の HTML を読むので、Google が構造を変えると壊れる。 やっかいなのは例外を出さずに中身だけ欠ける壊れ方で、放っておくと Agent が 「請求項の無い特許」と誤解して結論を出す。3段構えで検知する。
1. 実行時の自動チェック(常に効く)
毎回の取得でパースの妥当性を自己点検し、怪しければ結果の冒頭に警告を出す。
どの特許にも必ずあるはずのもの(タイトル・要約・請求項・明細書)が空
セクションは存在するのに中身が抽出できない
ページが書いている請求項の件数と、抽出できた件数が食い違う
# JP2020123456A — 蓄電素子、蓄電素子の製造方法
> **取得できていない情報があります**
> - 請求項: ページには16項とあるのに2項しか抽出できていません。内容が欠けています。
>
> この結果だけで「存在しない」と判断せず、元ページを確認してください: ...引用やファミリーは本当に0件のことがあるので対象外。誤検知しない範囲に絞ってある。
2. ライブ契約テスト(触ったときに実行)
uv run python -m pytest -m network実ページに接続し、パーサが依存する11個のセレクタが今も存在するか確認する。
3. オフラインテスト(編集時の回帰防止)
HTML をわざと壊して、上記1の検知が働くことまでテストしている。
テスト
網羅は狙っていない。このプロジェクトのバグは実データで動かしたときにしか 見つからなかったので、テストは「一度やらかした罠の記録」と 「Google の HTML が変わったことの検知」に絞ってある。
uv run python -m pytest # オフライン20件
uv run python -m pytest -m network # ライブ契約テストファイル | 役割 |
| 実際に壊れたパースの再発防止(請求項の潰れ、二重エンコード等) |
| 「特開2020-123456」等の表記ゆれ吸収 |
| データソース差し替えの前提が壊れていないこと |
| 実ページに接続し、依存セレクタが今も存在するか確認 |
tests/fixtures/patent_page.html は実ページのダウンロードではなく、
構造だけを再現した手書きのファイル。実ページを置かないのは、
他社の著作物を取り込むことになるうえ、Google 自身のウィジェット用 API キーが
埋まっていてシークレットスキャナが誤検知するため。
手書きなので「パーサを編集して壊したか」は分かるが、
「そもそも Google の HTML を誤解していたか」は分からない。
そこは -m network のライブ契約テストが実物に当てて確認する。
セレクタを触ったときや、パース結果が変になったときに実行すること。
ライブ契約テストは既定でスキップされる(レート制限を避けるため)。 レート制限中も失敗ではなくスキップになるので、時間をおいて再実行する。
拡張する
データソースを足す
src/patent_mcp/providers/ にファイルを1つ作るだけ。
from . import register
from .base import Capability, PatentProvider, SearchQuery
from ..models import SearchResult
@register
class JpoProvider(PatentProvider):
name = "jpo"
description = "特許庁 特許情報取得API"
capabilities = frozenset({Capability.SEARCH, Capability.BIBLIOGRAPHIC})
requires_credentials = True
async def search(self, query: SearchQuery) -> SearchResult:
token = self.options["token"] # PATENT_MCP_JPO_TOKEN
...未実装のメソッドは基底クラスが NotSupportedError を投げ、ツールが
「このプロバイダは未対応」と Agent に伝える。登録リストの編集は不要
(providers/__init__.py がモジュールを自動検出する)。
PATENT_MCP_PROVIDER=jpo で既定を切り替えられるほか、
各ツールの provider 引数で呼び出しごとに切り替えられる。
ツールを足す
src/patent_mcp/tools/ にファイルを1つ作り、register を定義する。
def register(mcp, ctx):
@mcp.tool()
async def my_tool(...) -> str:
"""Agent 向けの説明。"""
provider = ctx.provider()
...注意
既定の google_patents プロバイダは Google Patents の公開ページを読む非公式実装で、
サイト構造の変更やレート制限の影響を受ける。業務で確実性が必要な場合は、
特許庁の特許情報取得API や EPO OPS のプロバイダを追加して切り替えること。
取得できるのは公開情報であり、権利範囲の解釈や侵害判断は専門家の確認が必要。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceMCP server for USPTO patent prior-art search, enabling keyword search, ranking, and date filtering via Claude, Cursor, or Windsurf.Last updated
- AlicenseAqualityAmaintenanceMCP server for patent search and prior art discovery powered by Google Patents public dataset on BigQuery. Supports searching patents, fetching full patent details with CPC codes and citations, and retrieving legal claims text.Last updated34MIT
- Alicense-qualityBmaintenanceAn MCP server that enables patent creation and analysis, including regulation search, prior art discovery, claim compliance checks, and patent diagram generation, all within Claude Code.Last updated161MIT
- Alicense-qualityAmaintenanceAn MCP server that gives AI agents access to global patent data, including 1.4 billion records and Chinese full-text, with zero-config mode for basic tools.Last updatedMIT
Related MCP Connectors
Local-first RAG engine with MCP server for AI agent integration.
Real-time Amazon, WIPO & PACER data for AI agents — 19 tools via the MCP protocol.
Patent search, USPTO data, patent landscape & pgvector prior-art search for agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/9g2s6g2cnh-arch/patent-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server