Skip to main content
Glama
KunihiroS

Google Patents MCP Server

Сервер Google Patents MCP ( google-patents-mcp )

значок кузнеца npm-версия

Этот проект предоставляет сервер Model Context Protocol (MCP), который позволяет осуществлять поиск информации о патентах Google через API SerpApi Google Patents .

Установка через Smithery

Чтобы автоматически установить Google Patents MCP Server для Claude Desktop через Smithery :

npx -y @smithery/cli install @KunihiroS/google-patents-mcp --client claude

Журнал изменений

v0.2.0 (2025-04-17)

  • Исправление: Реализованы пустые обработчики для методов MCP resources/list и prompts/list .

  • Исправление: Объявлена возможность prompts при инициализации сервера.

  • Задача: Обновление зависимостей.

Эти изменения направлены на улучшение совместимости с клиентами MCP, такими как Claude Desktop, которым могут потребоваться эти стандартные конечные точки, хотя прямое тестирование с Claude Desktop еще не проводилось.

Related MCP server: MCP Server for Google Search

Функции

  • Предоставляет инструмент MCP search_patents для поиска в Google Patents.

  • Использует SerpApi в качестве бэкэнда.

  • Можно запустить напрямую с помощью npx без локальной установки.

Предпосылки

  • Node.js: рекомендуется версия 18 или выше.

  • npm: Требуется для запуска команды npx .

  • Ключ API SerpApi: для использования API Google Patents вам понадобится действительный ключ API от SerpApi .

Быстрый старт (с использованием npx)

Самый простой способ запустить этот сервер — использовать npx . Эта команда загружает (при необходимости) и запускает сервер напрямую.

npx @kunihiros/google-patents-mcp

Примечание: замените @kunihiros/google-patents-mcp фактическим опубликованным именем пакета, если оно отличается.

Сервер запустится и будет прослушивать запросы MCP на стандартном вводе/выводе.

Конфигурация

Сервер требует ваш ключ API SerpApi. Вы можете предоставить его одним из следующих способов:

  1. Переменная среды (рекомендуется для хостов MCP): Установите переменную среды SERPAPI_API_KEY при запуске сервера. Конфигурации хоста MCP часто позволяют устанавливать переменные среды для серверов.

    Пример фрагмента конфигурации хоста MCP ( config.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"
          }
        }
      }
    }
  2. Файл .env: создайте файл .env в каталоге, где вы запускаете команду npx (для локального тестирования или если не используется хост MCP), или в вашем домашнем каталоге ( ~/.google-patents-mcp.env ), со следующим содержимым:

    SERPAPI_API_KEY=YOUR_ACTUAL_SERPAPI_KEY
    # Optional: Set log level (e.g., debug, info, warn, error)
    # LOG_LEVEL=debug

    Примечание: Хотя использование файла .env удобно для локального тестирования, для производства или интеграции с хостами MCP, установка переменной среды напрямую через конфигурацию хоста является рекомендуемым и более безопасным подходом. Основной предполагаемый вариант использования — выполнение через npx , где переменные среды обычно управляются вызывающим процессом или хостом MCP.

Сервер ищет файлы .env в следующем порядке: * ./.env (относительно того места, где запущен npx ) * ~/.google-patents-mcp.env (в вашем домашнем каталоге)

Предоставленный инструмент MCP

search_patents

Поиск в Google Patents через SerpApi.

Схема ввода:

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

Выход:

Возвращает объект JSON, содержащий результаты поиска из SerpApi. Структура соответствует формату ответа SerpApi.

Пример использования (запрос 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"
    }
  }
}

Разработка

  1. Клонируйте репозиторий (если это необходимо для разработки):

    # git clone <repository-url>
    # cd google-patents-mcp
  2. Установите зависимости:

    npm install
  3. Создайте файл скопируйте .env.example в .env и добавьте свой SERPAPI_API_KEY .

  4. Строить:

    npm run build
  5. Запустить локально:

    npm start

    Или для разработки с автоматической пересборкой:

    npm run dev

Ведение журнала

  • Журналы выводятся в стандартный поток ошибок.

  • Уровень журнала можно контролировать с помощью переменной среды LOG_LEVEL ( error , warn , info , http , verbose , debug , silly ). По умолчанию — info .

  • Предпринята попытка создать файл журнала в корне проекта ( google-patents-server.log ), домашнем каталоге пользователя ( ~/.google-patents-server.log ) или /tmp/google-patents-server.log .

Лицензия

Лицензия MIT (см. файл LICENSE)

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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/KunihiroS/google-patents-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server