Google Patents MCP Server

by KunihiroS
Verified

Integrations

  • Supports configuration via .env files, allowing users to securely provide API keys and configure logging levels without exposing sensitive information.

  • Provides a tool for searching Google Patents information, allowing users to query patent data with various filters like dates, inventors, assignees, countries, and languages via the SerpApi Google Patents API.

  • Offers optional inclusion of Google Scholar results when searching for patents, allowing users to retrieve academic research related to patent searches.

Servidor MCP de patentes de Google ( google-patents-mcp )

Este proyecto proporciona un servidor de Protocolo de Contexto de Modelo (MCP) que permite buscar información de patentes de Google a través de la API de patentes de Google SerpApi .

Características

  • Proporciona una herramienta MCP search_patents para buscar patentes de Google.
  • Utiliza SerpApi como backend.
  • Se puede ejecutar directamente usando npx sin instalación local.

Prerrequisitos

  • Node.js: se recomienda la versión 18 o superior.
  • npm: necesario para ejecutar el comando npx .
  • Clave API de SerpApi: necesita una clave API válida de SerpApi para utilizar la API de patentes de Google.

Inicio rápido (usando npx)

La forma más sencilla de ejecutar este servidor es usar npx . Este comando descarga (si es necesario) y ejecuta el servidor directamente.

npx @kunihiros/google-patents-mcp

Nota: reemplace @kunihiros/google-patents-mcp con el nombre del paquete publicado real si es diferente.

El servidor se iniciará y escuchará las solicitudes MCP en la entrada/salida estándar.

Configuración

El servidor requiere tu clave API de SerpApi. Puedes proporcionarla de una de las siguientes maneras:

  1. Variable de entorno (recomendada para hosts MCP): Configure la variable de entorno SERPAPI_API_KEY al ejecutar el servidor. Las configuraciones de host MCP suelen permitir configurar variables de entorno para los servidores.Ejemplo de fragmento de configuración del host MCP ( config.json o 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. Archivo .env: crea un archivo .env en el directorio donde ejecuta el comando npx (para pruebas locales o si no usa un host MCP), o en tu directorio de inicio ( ~/.google-patents-mcp.env ), con el siguiente contenido:
    SERPAPI_API_KEY=YOUR_ACTUAL_SERPAPI_KEY # Optional: Set log level (e.g., debug, info, warn, error) # LOG_LEVEL=debug
    Nota: Si bien usar un archivo .env es conveniente para pruebas locales, para producción o integración con hosts MCP, configurar la variable de entorno directamente a través de la configuración del host es el enfoque recomendado y más seguro. El principal caso de uso previsto es la ejecución mediante npx , donde las variables de entorno suelen ser administradas por el proceso de llamada o el host MCP.

El servidor busca archivos .env en el siguiente orden: * ./.env (relativo a dónde se ejecuta npx ) * ~/.google-patents-mcp.env (en su directorio de inicio)

Herramienta MCP proporcionada

search_patents

Busca patentes de Google a través de SerpApi.

Esquema de entrada:

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

Producción:

Devuelve un objeto JSON que contiene los resultados de búsqueda de SerpApi. La estructura sigue el formato de respuesta de SerpApi.

Ejemplo de uso (solicitud MCP):

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

Desarrollo

  1. Clonar el repositorio (si es necesario para el desarrollo):
    # git clone <repository-url> # cd google-patents-mcp
  2. Instalar dependencias:
    npm install
  3. Cree un archivo .env : copie .env.example a .env y agregue su SERPAPI_API_KEY .
  4. Construir:
    npm run build
  5. Ejecutar localmente:
    npm start
    O para desarrollo con reconstrucción automática:
    npm run dev

Explotación florestal

  • Los registros se envían al error estándar.
  • El nivel de registro se puede controlar mediante la variable de entorno LOG_LEVEL ( error , warn , info , http , verbose , debug , silly ). El valor predeterminado es info .
  • Se intenta crear un archivo de registro en la raíz del proyecto ( google-patents-server.log ), el directorio de inicio del usuario ( ~/.google-patents-server.log ) o /tmp/google-patents-server.log .

Licencia

Licencia MIT (Ver archivo LICENCIA)

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor de protocolo de contexto de modelo que permite buscar información de patentes de Google a través de la API de patentes de Google SerpApi, lo que permite a los usuarios consultar datos de patentes con varios filtros y opciones de clasificación.

  1. Features
    1. Prerequisites
      1. Quick Start (Using npx)
        1. Configuration
          1. Provided MCP Tool
            1. search_patents
          2. Development
            1. Logging
              1. License
                ID: 9la1udawol