mcpField
G
Google Patents Mcp

Google Patents Mcp

本地服务
npmjs.com法律与政务4161 周前更新

关于 Google Patents Mcp

Google Patents MCP Server 是一个 MCP 服务,通过 SerpApi 的 Google Patents API 检索专利信息。它面向需要在 AI 助手中查询专利的用户,可通过 npx 直接运行。

主要功能

  1. 01提供 search_patents 工具
  2. 02基于 SerpApi 后端检索
  3. 03支持 npx 免安装运行
  4. 04通过环境变量或 .env 文件配置 API 密钥
  5. 05支持 LOG_LEVEL 日志级别设置

适用场景

  1. 01在 AI 助手中检索专利文献
  2. 02按关键词或分类筛选专利结果

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露 search_patents 工具,返回 SerpApi 的 JSON 搜索结果。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"google-patents": {
"command": "npx",
"args": [
"-y",
"@kunihiros/google-patents-mcp"
],
"env": {
"SERPAPI_API_KEY": "<SERPAPI_API_KEY>"
}
}
}
}
启动命令npx -y @kunihiros/google-patents-mcp
需要配置的环境变量
SERPAPI_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@kunihiros/google-patents-mcp

工具

1

收录的工具列表 · 更新于 3 周前

参数类型必填说明
afterstring否最早日期筛选条件(例如 'publication:20230101'、'filing:20220601')。格式:type:YYYYMMDD,其中 type 为 'priority'、'filing' 或 'publication'。
assigneestring否按受让人名称筛选。多个名称用逗号 (,) 分隔。
beforestring否最晚日期筛选条件(例如 'publication:20231231'、'filing:20220101')。格式:type:YYYYMMDD,其中 type 为 'priority'、'filing' 或 'publication'。
countrystring否按国家代码筛选(例如 'US'、'WO,JP')。多个代码用逗号 (,) 分隔。
inventorstring否按发明人姓名筛选。多个姓名用逗号 (,) 分隔。
languagestring否按语言筛选(例如 'ENGLISH'、'JAPANESE,GERMAN')。多种语言用逗号 (,) 分隔。支持:ENGLISH、GERMAN、CHINESE、FRENCH、SPANISH、ARABIC、JAPANESE、KOREAN、PORTUGUESE、RUSSIAN、ITALIAN、DUTCH、SWEDISH、FINNISH、NORWEGIAN、DANISH。
numinteger否每页结果数(默认值:10)。**重要:必须大于或等于 10(最多 100)。**
pageinteger否分页页码(默认值:1)。
qstring是搜索查询(必填)。虽然 SerpApi 文档中标为可选,但实际上需要提供非空查询。使用分号 (;) 分隔多个词条。支持 '(Coffee) OR (Tea);(A47J)' 之类的高级语法。详情请参阅 'About Google Patents'。
scholarboolean否包含 Google Scholar 结果(默认值:false)。
sortenum否排序方式。'relevance'(默认)、'new'(按申请/公开日期从新到旧)、'old'(按申请/公开日期从旧到新)。relevance | new | old
statusenum否按专利状态筛选:'GRANT' 或 'APPLICATION'。GRANT | APPLICATION
typeenum否按专利类型筛选:'PATENT' 或 'DESIGN'。PATENT | DESIGN

详细介绍

MseeP.ai 安全评估徽章

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

smithery 徽章 npm 版本

本项目提供一个模型上下文协议(MCP)服务,可通过 SerpApi Google Patents API 搜索 Google Patents 信息。

通过 Smithery 安装

通过 Smithery 自动为 Claude Desktop 安装 Google Patents MCP Server:

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

更新日志

v0.2.0(2025-04-17)
  • **修复:**为 resources/list 和 prompts/list MCP 方法实现空处理器。
  • **修复:**在服务初始化中声明 prompts 能力。
  • **杂项:**更新依赖项。

这些更改旨在提升与 Claude Desktop 等 MCP 客户端的兼容性,因为它们可能需要这些标准端点,但尚未使用 Claude Desktop 进行直接测试。

功能

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

前置条件

  • **Node.js:**推荐使用 18 或更高版本。
  • **npm:**运行 npx 命令时需要。
  • **SerpApi API 密钥:**使用 Google Patents API 需要从 SerpApi 获取有效的 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 命令的目录中(用于本地测试或不使用 MCP 宿主时),或在你的主目录中(~/.google-patents-mcp.env),创建一个 .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 Patents。

输入架构:

{
  "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 文件: 将 .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 文件)

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。