mcpField
G
Google Patents Mcp

Google Patents Mcp

Local
npmjs.comLegal & Government41Updated 61w ago

About Google Patents Mcp

Google Patents MCP Server is an MCP server that searches Google Patents through the SerpApi Google Patents API. It suits users who want patent lookups inside an AI assistant and can run directly with npx.

Key features

  1. 01Provides a search_patents tool
  2. 02Uses SerpApi as the search backend
  3. 03Runs with npx without local installation
  4. 04Reads API key from environment or .env file
  5. 05Configurable log level via LOG_LEVEL

Use cases

  1. 01Searching patent literature from an AI assistant
  2. 02Filtering patent results with advanced query syntax

MCP support

This project is an MCP server that exposes a search_patents tool to MCP clients and returns SerpApi search results as JSON.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"google-patents": {
"command": "npx",
"args": [
"-y",
"@kunihiros/google-patents-mcp"
],
"env": {
"SERPAPI_API_KEY": "<SERPAPI_API_KEY>"
}
}
}
}
Run commandnpx -y @kunihiros/google-patents-mcp
Environment variables to set
SERPAPI_API_KEYSecret

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@kunihiros/google-patents-mcp

Tools

1

Saved tool list · updated 3w ago

ParameterTypeRequiredDescription
afterstringNoMinimum date filter (e.g., 'publication:20230101', 'filing:20220601'). Format: type:YYYYMMDD where type is 'priority', 'filing', or 'publication'.
assigneestringNoFilter by assignee names. Separate multiple names with a comma (,).
beforestringNoMaximum date filter (e.g., 'publication:20231231', 'filing:20220101'). Format: type:YYYYMMDD where type is 'priority', 'filing', or 'publication'.
countrystringNoFilter by country codes (e.g., 'US', 'WO,JP'). Separate multiple codes with a comma (,).
inventorstringNoFilter by inventor names. Separate multiple names with a comma (,).
languagestringNoFilter 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.
numintegerNoNumber of results per page (default: 10). **IMPORTANT: Must be 10 or greater (up to 100).**
pageintegerNoPage number for pagination (default: 1).
qstringYesSearch 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.
scholarbooleanNoInclude Google Scholar results (default: false).
sortenumNoSorting method. 'relevance' (default), 'new' (newest by filing/publication date), 'old' (oldest by filing/publication date).relevance | new | old
statusenumNoFilter by patent status: 'GRANT' or 'APPLICATION'.GRANT | APPLICATION
typeenumNoFilter by patent type: 'PATENT' or 'DESIGN'.PATENT | DESIGN

Details

From the project README

MseeP.ai Security Assessment Badge

Google Patents MCP Server (google-patents-mcp)

smithery badge npm version

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/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 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:

  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):

    {
      "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"
          }
        }
      }
    }
    
  2. .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:

    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:

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

  1. Clone the repository (if needed for development):
    # git clone <repository-url>
    # cd google-patents-mcp
    
  2. Install dependencies:
    npm install
    
  3. Create .env file: Copy .env.example to .env and add your SERPAPI_API_KEY.
  4. Build:
    npm run build
    
  5. Run locally:
    npm start
    
    Or for development with auto-rebuild:
    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)

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.