返回市场
谷歌专利MCP

谷歌专利MCP

作者:KunihiroS18 星标更新:2025-08-25

项目介绍

MseeP.ai 安全评估徽章

Google Patents MCP 服务器 (google-patents-mcp)

smithery 徽章 npm 版本

该项目提供了一个模型上下文协议(MCP)服务器,允许通过SerpApi Google Patents API搜索Google专利信息。

通过 Smithery 安装

要通过Smithery自动安装 Google Patents MCP 服务器到 Claude Desktop:

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

更新日志

v0.2.0 (2025-04-17)

  • 修复: 实现了 resources/listprompts/list MCP 方法的空处理程序。
  • 修复: 在服务器初始化时声明了 prompts 能力。
  • 维护: 更新了依赖项。

这些更改旨在提高与如 Claude Desktop 等 MCP 客户端的兼容性,尽管尚未直接在 Claude Desktop 上进行测试。

功能

  • 提供一个 MCP 工具 search_patents 来搜索 Google 专利。
  • 使用 SerpApi 作为后端。
  • 可以使用 npx 直接运行,无需本地安装。

先决条件

  • Node.js: 推荐版本 18 或更高。
  • npm: 需要运行 npx 命令。
  • SerpApi API 密钥: 您需要从 SerpApi 获取有效的 API 密钥来使用 Google 专利 API。

快速开始(使用 npx)

最简单的方法是使用 npx 运行此服务器。此命令会下载(如果需要)并直接运行服务器。

npx @kunihiros/google-patents-mcp

注意: 如果实际发布的包名不同,请替换 @kunihiros/google-patents-mcp

服务器启动后,将监听标准输入/输出上的 MCP 请求。

配置

服务器需要您的 SerpApi API 密钥。您可以按以下方式之一提供它:

  1. 环境变量(推荐用于 MCP 主机): 在运行服务器时设置 SERPAPI_API_KEY 环境变量。MCP 主机配置通常允许为服务器设置环境变量。

    示例 MCP 主机配置片段(config.json 或类似文件):

    {
      "mcpServers": {
        "google-patents-mcp": {
          "command": "npx",
          "args": [
            "-y", // 如果未本地安装包,则跳过确认
            "@kunihiros/google-patents-mcp" // 使用正确的包名
          ],
          "env": {
            "SERPAPI_API_KEY": "YOUR_ACTUAL_SERPAPI_KEY"
            // 可选: 设置日志级别
            // "LOG_LEVEL": "debug"
          }
        }
      }
    }
    
  2. .env 文件: 在您运行 npx 命令的目录中创建一个 .env 文件(用于本地测试或不使用 MCP 主机),或者在您的主目录中(~/.google-patents-mcp.env),内容如下:

    SERPAPI_API_KEY=YOUR_ACTUAL_SERPAPI_KEY
    # 可选: 设置日志级别(例如,debug, info, warn, error)
    # LOG_LEVEL=debug
    

    注意: 虽然使用 .env 文件方便本地测试,但在生产或与 MCP 主机集成时,直接通过主机配置设置环境变量是推荐且更安全的方法。主要预期用途是通过 npx 执行,其中环境变量通常由调用进程或 MCP 主机管理。

服务器按以下顺序查找 .env 文件: * ./.env(相对于 npx 的运行位置) * ~/.google-patents-mcp.env(在您的主目录中)

提供的 MCP 工具

search_patents

通过 SerpApi 搜索 Google 专利。

输入模式:

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "搜索查询(必需)。虽然在 SerpApi 文档中可选,但实际上需要非空查询。使用分号 (;) 分隔多个术语。支持高级语法,如 '(Coffee) OR (Tea);(A47J)'。详情见 '关于 Google 专利'。"
    },
    "page": {
      "type": "integer",
      "description": "分页的页面编号(默认:1)。",
      "default": 1
    },
    "num": {
      "type": "integer",
      "description": "每页结果数量(默认:1_0)。**重要:必须大于等于 10(最多 100)。**",
      "default": 10,
      "minimum": 10,
      "maximum": 100
    },
    "sort": {
      "type": "string",
      "enum": ["relevance", "new", "old"],
      "description": "排序方法。'relevance'(默认),'new'(按申请/公布日期最新),'old'(按申请/公布日期最旧)。",
      "default": "relevance"
    },
    "before": {
      "type": "string",
      "description": "最大日期过滤器(例如,'publication:20231231', 'filing:20220101')。格式:类型:YYYYMMDD,其中类型是 'priority', 'filing' 或 'publication'。"
    },
    "after": {
      "type": "string",
      "description": "最小日期过滤器(例如,'publication:20230101', 'filing:20220601')。格式:类型:YYYYMMDD,其中类型是 'priority', 'filing' 或 'publication'。"
    },
    "inventor": {
      "type": "string",
      "description": "按发明人名称过滤。多个名称之间用逗号 (,) 分隔。"
    },
    "assignee": {
      "type": "string",
      "description": "按受让人名称过滤。多个名称之间用逗号 (,) 分隔。"
    },
    "country": {
      "type": "string",
      "description": "按国家代码过滤(例如,'US', 'WO,JP')。多个代码之间用逗号 (,) 分隔。"
    },
    "language": {
      "type": "string",
      "description": "按语言过滤(例如,'ENGLISH', 'JAPANESE,GERMAN')。多个语言之间用逗号 (,) 分隔。支持的语言包括:ENGLISH, GERMAN, CHINESE, FRENCH, SPANISH, ARABIC, JAPANESE, KOREAN, PORTUGUESE, RUSSIAN, ITALIAN, DUTCH, SWEDISH, FINNISH, NORWEGIAN, DANISH。"
    },
    "status": {
      "type": "string",
      "enum": ["GRANT", "APPLICATION"],
      "description": "按专利状态过滤:'GRANT' 或 'APPLICATION'。"
    },
    "type": {
      "type": "string",
      "enum": ["PATENT", "DESIGN"],
      "description": "按专利类型过滤:'PATENT' 或 'DESIGN'。"
    },
    "scholar": {
      "type": "boolean",
      "description": "包含 Google Scholar 结果(默认: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": "有机发光二极管",
      "num": 10,
      "language": "ENGLISH",
      "status": "GRANT",
      "after": "publication:20230101"
    }
  }
}

开发

  1. 克隆仓库(如果需要开发):
    # git clone <repository-url>
    # cd google-patents-mcp
    
  2. 安装依赖项:
    npm install
    
  3. 创建 .env 文件: 复制 .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 文件)