使用说明
项目简介
patent_mcp_server 是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用(如 Claude Desktop)提供便捷的美国专利商标局 (USPTO) 数据访问能力。它通过 USPTO 开放数据门户 (ODP) API 获取专利申请数据,并以 MCP 协议标准化的方式提供给 LLM 客户端,扩展了 LLM 在专利信息检索和分析方面的应用场景。
主要功能点
- 专利数据检索: 支持关键词、申请号等多种条件检索 USPTO 专利申请数据。
- 详细数据获取: 可以获取专利申请的基本信息、元数据、事务历史、律师信息、优先权信息等详细数据。
- 批量数据下载: 支持根据检索条件批量下载专利数据,支持 JSON 和 CSV 格式。
- 状态代码查询: 提供 USPTO 状态代码的查询功能。
- 数据集检索: 支持 USPTO 批量数据集产品的检索。
安装步骤
-
克隆仓库:
git clone https://github.com/riemannzeta/patent_mcp_server cd patent_mcp_server -
安装依赖: 确保已安装 UV。然后运行:
uv sync -
配置 API 密钥:
- 访问 USPTO's Getting Started page 申请 USPTO ODP API 密钥。
- 在 'patent_mcp_server' 目录下创建 '.env' 文件,并添加以下内容,将 '<your_key_here>' 替换为您的 API 密钥:
PATENTS_MCP_SERVER_ODP_API_KEY=<your_key_here>
服务器配置
要将此 MCP 服务器与 MCP 客户端(例如 Claude Desktop)集成,您需要配置客户端的 MCP 服务器设置。以下是 Claude Desktop 的配置示例,请根据您的 MCP 客户端进行相应配置:
{ "mcpServers": { "patents": { # 服务器名称,可以自定义 "command": "uv", # 启动服务器的命令,这里使用 uv 运行 python 脚本 "args": [ # 命令参数 "--directory", # 指定工作目录 "/path/to/patent_mcp_server", # **请替换为实际的 'patent_mcp_server' 仓库路径** "run", # uv 的 run 命令 "patents.py" # 运行 patents.py 文件 ] } } }
注意:
- 请将 '/path/to/patent_mcp_server' 替换为您克隆 'patent_mcp_server' 仓库的实际本地路径。
- 'server name' (这里是 "patents") 可以自定义,在客户端中用于标识和调用此 MCP 服务器。
- 'command' 和 'args' 必须正确配置,以确保 MCP 客户端能够成功启动和连接到 MCP 服务器。
基本使用方法
配置完成后,MCP 客户端(如 Claude Desktop)将能够通过 MCP 协议与此服务器通信,并调用服务器提供的工具 (Tools) 来访问 USPTO 数据。
例如,在 Claude Desktop 中,您可以使用如下指令指示 Claude 调用 'get_app' 工具来获取专利申请数据:
@patents.get_app(app_num='your_application_number')
其中 'patents' 是您在客户端配置中设置的 'server name','get_app' 是服务器提供的工具函数名,'app_num' 是工具函数的参数。 具体的工具函数和参数请参考 'Available Functions' 章节或代码中的函数文档。
可用工具函数 (Tools):
- 'get_app(app_num)': 获取基本专利申请数据
- 'search_applications(...)': 搜索专利申请
- 'search_applications_post(...)': 使用 POST 请求搜索专利申请
- 'download_applications(...)': 下载专利申请数据
- 'download_applications_post(...)': 使用 POST 请求下载专利申请数据
- 'get_app_metadata(app_num)': 获取专利申请元数据
- 'get_app_adjustment(app_num)': 获取专利期限调整数据
- 'get_app_assignment(app_num)': 获取专利转让数据
- 'get_app_attorney(app_num)': 获取律师/代理人信息
- 'get_app_continuity(app_num)': 获取连续性数据
- 'get_app_foreign_priority(app_num)': 获取外国优先权声明
- 'get_app_transactions(app_num)': 获取事务历史
- 'get_app_documents(app_num)': 获取文档详情
- 'get_app_associated_documents(app_num)': 获取关联文档元数据
- 'get_status_codes(...)': 搜索状态代码
- 'get_status_codes_post(...)': 使用 POST 请求搜索状态代码
- 'search_datasets(...)': 搜索批量数据集产品
- 'get_dataset_product(product_id, ...)': 获取特定数据集产品
请参考代码中的函数文档了解每个工具函数的详细参数。
信息
分类
网页与API