google-patents-mcp)该项目提供了一个模型上下文协议(MCP)服务器,允许通过SerpApi Google Patents API搜索Google专利信息。
要通过Smithery自动安装 Google Patents MCP 服务器到 Claude Desktop:
npx -y @smithery/cli install @KunihiroS/google-patents-mcp --client claude
resources/list 和 prompts/list MCP 方法的空处理程序。prompts 能力。这些更改旨在提高与如 Claude Desktop 等 MCP 客户端的兼容性,尽管尚未直接在 Claude Desktop 上进行测试。
search_patents 来搜索 Google 专利。npx 直接运行,无需本地安装。npx 命令。最简单的方法是使用 npx 运行此服务器。此命令会下载(如果需要)并直接运行服务器。
npx @kunihiros/google-patents-mcp
注意: 如果实际发布的包名不同,请替换 @kunihiros/google-patents-mcp。
服务器启动后,将监听标准输入/输出上的 MCP 请求。
服务器需要您的 SerpApi API 密钥。您可以按以下方式之一提供它:
环境变量(推荐用于 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"
}
}
}
}
.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(在您的主目录中)
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"
}
}
}
# git clone <repository-url>
# cd google-patents-mcp
npm install
.env.example 到 .env 并添加您的 SERPAPI_API_KEY。npm run build
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 文件)