google patents (serpapi).com
google patents (serpapi).com logo

Google Patents (SerpAPI)

Search Google Patents using the SerpAPI.

Created byApr 23, 2025

Google Patents MCP Server (`google-patents-mcp`)

[![npm version](https://badge.fury.io/js/%40kunihiros%2Fgoogle-patents-mcp.svg)](https://badge.fury.io/js/%40kunihiros%2Fgoogle-patents-mcp)
This project provides a Model Context Protocol (MCP) server that allows searching Google Patents information via the [SerpApi Google Patents API](https://serpapi.com/google-patents-api).

Changelog

v0.2.0 (2025-04-17)

  • **Fix:** Implemented empty handlers for `resources/list` and `prompts/list` MCP methods.
  • **Fix:** Declared `prompts` capability 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_patents` to search Google Patents.
  • Uses SerpApi as the backend.
  • Can be run directly using `npx` without local installation.

Prerequisites

  • **Node.js:** Version 18 or higher is recommended.
  • **npm:** Required to run the `npx` command.
  • **SerpApi API Key:** You need a valid API key from [SerpApi](https://serpapi.com/) 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.
**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:
  1. **Environment Variable (Recommended for MCP Hosts):** Set the `SERPAPI_API_KEY` environment variable when running the server. MCP Host configurations often allow setting environment variables for servers. Example MCP Host configuration snippet (`config.json` or similar): ```json { "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" } } } } ```
  1. **.env File:** Create a `.env` file in the directory where you run the `npx` command (for local testing or if not using an MCP Host), or in your home directory (`~/.google-patents-mcp.env`), with the following content: ```dotenv SERPAPI_API_KEY=YOUR_ACTUAL_SERPAPI_KEY # Optional: Set log level (e.g., debug, info, warn, error) # LOG_LEVEL=debug ``` **Note:** While using a `.env` file 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 via `npx`, 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:**
**Output:**
Returns a JSON object containing the search results from SerpApi. The structure follows the SerpApi response format.
**Example Usage (MCP Request):**

Development

  1. **Clone the repository (if needed for development):** ```bash # git clone <repository-url> # cd google-patents-mcp ```
  1. **Install dependencies:** ```bash npm install ```
  1. **Create `.env` file:** Copy `.env.example` to `.env` and add your `SERPAPI_API_KEY`.
  1. **Build:** ```bash npm run build ```
  1. **Run locally:** ```bash npm start ``` Or for development with auto-rebuild: ```bash npm run dev ```

Logging

  • Logs are output to standard error.
  • Log level can be controlled via the `LOG_LEVEL` environment variable (`error`, `warn`, `info`, `http`, `verbose`, `debug`, `silly`). Defaults to `info`.
  • 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)