google-patent-cli

Google Patent CLI - AI-ready

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.

Features

Installation

Linux & macOS:

curl -fsSL https://raw.githubusercontent.com/sonesuke/google-patent-cli/main/install.sh | bash

Note: On Linux, this installs to ~/.local/bin without requiring sudo. Make sure ~/.local/bin is in your PATH.

Windows (PowerShell):

irm https://raw.githubusercontent.com/sonesuke/google-patent-cli/main/install.ps1 | iex

From Source (Cargo)

If you have Rust installed, you can build from source:

cargo install --path .

Model Context Protocol (MCP)

google-patent-cli supports the Model Context Protocol, allowing AI agents (like Claude Desktop) to search and fetch patents directly.

Available Tools

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

Usage

To start the MCP server over stdio:

google-patent-cli mcp

Configuration for Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "google-patent-cli": {
      "command": "/path/to/google-patent-cli",
      "args": ["mcp"]
    }
  }
}

CLI Usage

CLI Commands

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 by query

Search for patents matching a query.

google-patent-cli search --query "machine learning" --limit 10

Filter by assignee

google-patent-cli search --query "AI" --assignee "Google"

Filter by date and country

# 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 patent details

Fetch a single patent’s metadata, description, and claims.

google-patent-cli fetch US9152718B2

Language/locale support

Fetch or search using a specific language locale.

google-patent-cli fetch US9152718B2 --language ja

Output raw HTML (debug)

Prints the full HTML source instead of structured JSON.

google-patent-cli fetch US9152718B2 --raw > patent.html

Show the browser window

Useful for debugging.

google-patent-cli search --query "AI" --head

Configuration

This tool relies on a compatible Chrome/Chromium installation for scraping.

Manage Configuration

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"

Configuration File

The configuration file is located at:

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"
]

Docker/DevContainer Environment

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.

License

MIT