
Google Patents (SerpAPI)
Search Google Patents database using the SerpAPI service. Returns patent information including titles, descriptions, inventors, and filing details.
Search Google Patents using the SerpAPI.
What it does
- Search Google Patents by keywords
- Retrieve patent titles and descriptions
- Access inventor information
- Get patent filing and publication dates
- Query patent classification data
Best for
About Google Patents (SerpAPI)
Google Patents (SerpAPI) is a community-built MCP server published by kunihiros that provides AI assistants with tools and capabilities via the Model Context Protocol. Search Google Patents with SerpAPI. Access the Google patent website to find patents and search trade marks quickly and It is categorized under search web.
How to install
You can install Google Patents (SerpAPI) in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
License
Google Patents (SerpAPI) is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
Google Patents MCP Server (google-patents-mcp)
This project provides a Model Context Protocol (MCP) server that allows searching Google Patents information via the SerpApi Google Patents API.
Installing via Smithery
To install Google Patents MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @KunihiroS/google-patents-mcp --client claude
Changelog
v0.2.0 (2025-04-17)
- Fix: Implemented empty handlers for
resources/listandprompts/listMCP methods. - Fix: Declared
promptscapability in server initialization. - Chore: Updated dependencies.
These changes aim to improve compatibility with MCP clients like Claude Desktop which may require these standard endpoints, though direct testing with Claude Desktop has not yet been performed.
Features
- Provides an MCP tool
search_patentsto search Google Patents. - Uses SerpApi as the backend.
- Can be run directly using
npxwithout local installation.
Prerequisites
- Node.js: Version 18 or higher is recommended.
- npm: Required to run the
npxcommand. - SerpApi API Key: You need a valid API key from SerpApi to use the Google Patents API.
Quick Start (Using npx)
The easiest way to run this server is using npx. This command downloads (if necessary) and runs the server directly.
npx @kunihiros/google-patents-mcp
Note: Replace @kunihiros/google-patents-mcp with the actual published package name if it differs.
The server will start and listen for MCP requests on standard input/output.
Configuration
The server requires your SerpApi API key. You can provide it in one of the following ways:
-
Environment Variable (Recommended for MCP Hosts): Set the
SERPAPI_API_KEYenvironment variable when running the server. MCP Host configurations often allow setting environment variables for servers.Example MCP Host configuration snippet (
config.jsonor similar):{ "mcpServers": { "google-patents-mcp": { "command": "npx", "args": [ "-y", // Skips confirmation if the package isn't installed locally "@kunihiros/google-patents-mcp" // Use the correct package name ], "env": { "SERPAPI_API_KEY": "YOUR_ACTUAL_SERPAPI_KEY" // Optional: Set log level // "LOG_LEVEL": "debug" } } } } -
.env File: Create a
.envfile in the directory where you run thenpxcommand (for local testing or if not using an MCP Host), or in your home directory (~/.google-patents-mcp.env), with the following content:SERPAPI_API_KEY=YOUR_ACTUAL_SERPAPI_KEY # Optional: Set log level (e.g., debug, info, warn, error) # LOG_LEVEL=debugNote: While using a
.envfile is convenient for local testing, for production or integration with MCP Hosts, setting the environment variable directly via the host configuration is the recommended and more secure approach. The primary intended use case is execution vianpx, where environment variables are typically managed by the calling process or MCP Host.
The server searches for .env files in the following order:
* ./.env (relative to where npx is run)
* ~/.google-patents-mcp.env (in your home directory)
Provided MCP Tool
search_patents
Searches Google Patents via SerpApi.
Input Schema:
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search query (required). Although optional in SerpApi docs, a non-empty query is practically needed. Use semicolon (;) to separate multiple terms. Advanced syntax like '(Coffee) OR (Tea);(A47J)' is supported. See 'About Google Patents' for details."
},
"page": {
"type": "integer",
"description": "Page number for pagination (default: 1).",
"default": 1
},
"num": {
"type": "integer",
"description": "Number of results per page (default: 10). **IMPORTANT: Must be 10 or greater (up to 100).**",
"default": 10,
"minimum": 10,
"maximum": 100
},
"sort": {
"type": "string",
"enum": ["relevance", "new", "old"],
"description": "Sorting method. 'relevance' (default), 'new' (newest by filing/publication date), 'old' (oldest by filing/publication date).",
"default": "relevance"
},
"before": {
"type": "string",
"description": "Maximum date filter (e.g., 'publication:20231231', 'filing:20220101'). Format: type:YYYYMMDD where type is 'priority', 'filing', or 'publication'."
},
"after": {
"type": "string",
"description": "Minimum date filter (e.g., 'publication:20230101', 'filing:20220601'). Format: type:YYYYMMDD where type is 'priority', 'filing', or 'publication'."
},
"inventor": {
"type": "string",
"description": "Filter by inventor names. Separate multiple names with a comma (,)."
},
"assignee": {
"type": "string",
"description": "Filter by assignee names. Separate multiple names with a comma (,)."
},
"country": {
"type": "string",
"description": "Filter by country codes (e.g., 'US', 'WO,JP'). Separate multiple codes with a comma (,)."
},
"language": {
"type": "string",
"description": "Filter by language (e.g., 'ENGLISH', 'JAPANESE,GERMAN'). Separate multiple languages with a comma (,). Supported: ENGLISH, GERMAN, CHINESE, FRENCH, SPANISH, ARABIC, JAPANESE, KOREAN, PORTUGUESE, RUSSIAN, ITALIAN, DUTCH, SWEDISH, FINNISH, NORWEGIAN, DANISH."
},
"status": {
"type": "string",
"enum": ["GRANT", "APPLICATION"],
"description": "Filter by patent status: 'GRANT' or 'APPLICATION'."
},
"type": {
"type": "string",
"enum": ["PATENT", "DESIGN"],
"description": "Filter by patent type: 'PATENT' or 'DESIGN'."
},
"scholar": {
"type": "boolean",
"description": "Include Google Scholar results (default: false).",
"default": false
}
},
"required": ["q"]
}
Output:
Returns a JSON object containing the search results from SerpApi. The structure follows the SerpApi response format.
Example Usage (MCP Request):
{
"mcp_version": "1.0",
"type": "CallToolRequest",
"id": "req-123",
"server_name": "google-patents-mcp",
"params": {
"name": "search_patents",
"arguments": {
"q": "organic light emitting diode",
"num": 10,
"language": "ENGLISH",
"status": "GRANT",
"after": "publication:20230101"
}
}
}
Development
- Clone the repository (if needed for development):
# git clone <repository-url> # cd google-patents-mcp - Install dependencies:
npm install - Create
.envfile: Copy.env.exampleto.envand add yourSERPAPI_API_KEY. - Build:
npm run build - Run locally:
Or for development with auto-rebuild:npm startnpm run dev
Logging
- Logs are output to standard error.
- Log level can be controlled via the
LOG_LEVELenvironment variable (error,warn,info,http,verbose,debug,silly). Defaults toinfo. - A log file is attempted to be created in the project root (
google-patents-server.log), user's home directory (~/.google-patents-server.log), or/tmp/google-patents-server.log.
License
MIT License (See LICENSE file)
Alternatives
Related Skills
Browse all skillsOfficial Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation
Searches Google and extracts full page content from every result via trafilatura. Returns clean readable text, not just snippets. Use when the user needs web search, research, current events, news, factual lookups, product comparisons, technical documentation, or any question requiring up-to-date information from the internet.
Search the web using Google Custom Search Engine (PSE). Use this when you need live information, documentation, or to research topics and the built-in web_search is unavailable.
Web scraping and search via Bright Data API. Requires BRIGHTDATA_API_KEY and BRIGHTDATA_UNLOCKER_ZONE. Use for scraping any webpage as markdown (bypassing bot detection/CAPTCHA) or searching Google with structured results.
Multi-engine web search with full parameter control. Supports Tavily, Exa, Serper, and SerpAPI with domain filtering, date ranges, deep search, news mode, and content extraction. Auto-selects the best engine based on query type and available API keys. 多引擎精细化搜索:支持域名过滤、日期范围、深度搜索、新闻模式、内容提取。 根据查询类型和可用 API Key 自动选择最优引擎。
Run SerpAPI searches via SerpAPI's MCP server using mcporter. Use when the user asks to search the web with SerpAPI/SerpAPI MCP, wants SerpAPI inside Clawdbot, or to use the /serp command.
