An AI-ready search and fetch tool for Google Patents, designed for both humans and AI agents. It extracts structured data including title, abstract, filing date, assignee, description paragraphs, claims, and images.
- Search patents by free-text query, assignee, country, and date.
- Fetch patent details by patent number (e.g., "US10000000").
- Formatted JSON output including
description_paragraphsandclaims. - Pagination support via
--limitoption. - Date filtering with
--beforeand--after. - Country filtering with
--country(e.g., JP, US, CN). - Language/locale support with
--language(e.g., ja, en). - Raw HTML output with
--rawflag for debugging. - Headless mode by default; use
--headto show the browser. - Model Context Protocol (MCP) support to integrate with AI agents.
- Robust formatting: Uses structured JSON for easy machine consumption.
Linux & macOS:
curl -fsSL https://raw.githubusercontent.com/sonesuke/google-patent-cli/main/install.sh | bashNote: On Linux, this installs to
~/.local/binwithout requiringsudo. Make sure~/.local/binis in yourPATH.
Windows (PowerShell):
irm https://raw.githubusercontent.com/sonesuke/google-patent-cli/main/install.ps1 | iexIf you have Rust installed, you can build from source:
cargo install --path .google-patent-cli supports the Model Context Protocol, allowing AI agents (like Claude Desktop) to search and fetch patents directly.
| Tool Name | Description | Parameters |
|---|---|---|
search_patents |
Search Google Patents matching a query, assignee, and date filters. | query, assignee, limit, before, after, country, language |
fetch_patent |
Fetch details (metadata, description, claims) of a specific patent. | patent_id (required, e.g., "US9152718B2"), language, raw |
To start the MCP server over stdio:
google-patent-cli mcpAdd this to your claude_desktop_config.json:
{
"mcpServers": {
"google-patent-cli": {
"command": "/path/to/google-patent-cli",
"args": ["mcp"]
}
}
}| Command | Description | Example |
|---|---|---|
search |
Search for patents matching a query/assignee. | google-patent-cli search --query "machine learning" --limit 10 |
fetch |
Fetch a single patent's metadata and data. | google-patent-cli fetch US9152718B2 |
config |
Manage configuration settings. | google-patent-cli config --set-browser "/path/to/chrome" |
mcp |
Start the MCP server over stdio. | google-patent-cli mcp |
Search for patents matching a query.
google-patent-cli search --query "machine learning" --limit 10google-patent-cli search --query "AI" --assignee "Google"# Patents filed after 2024-01-01 in Japan
google-patent-cli search --query "camera" --after "2024-01-01" --country JP
# Patents filed between 2023-01-01 and 2023-12-31
google-patent-cli search --query "blockchain" --after "2023-01-01" --before "2023-12-31"Fetch a single patent's metadata, description, and claims.
google-patent-cli fetch US9152718B2Fetch or search using a specific language locale.
google-patent-cli fetch US9152718B2 --language jaPrints the full HTML source instead of structured JSON.
google-patent-cli fetch US9152718B2 --raw > patent.htmlUseful for debugging.
google-patent-cli search --query "AI" --headThis tool relies on a compatible Chrome/Chromium installation for scraping.
You can manage the configuration via CLI:
# Show current configuration and config file path
google-patent-cli config
# Set custom browser path
google-patent-cli config --set-browser "/path/to/chrome"The configuration file is located at:
- Linux/macOS:
~/.config/google-patent-cli/config.toml - Windows:
%APPDATA%\google-patent-cli\config.toml
You can manually edit the TOML file to configure additional Chrome arguments:
# Path to Chrome/Chromium executable
browser_path = "/usr/bin/google-chrome"
# Additional Chrome arguments (useful for Docker/CI environments)
chrome_args = [
"--no-sandbox",
"--disable-setuid-sandbox"
]When running in Docker containers or devcontainers, Chrome requires additional flags to work properly. You can configure these flags via chrome_args in your config file:
chrome_args = [
"--no-sandbox",
"--disable-setuid-sandbox",
"--disable-gpu"
]Alternatively, set the CI=true environment variable to automatically add these flags.
MIT