这是一个 FastMCP 服务器,通过 Patent Public Search API、Open Data Portal (ODP) API 和 Google Patents Public Datasets(通过 BigQuery)访问美国专利商标局(USPTO)的专利和专利申请数据。使用此服务器,Claude Desktop 可以从 USPTO 的 API 中提取数据或通过 Google 的 BigQuery 搜索来自 17 多个国家的 9000 万以上的专利出版物:

要了解 MCP 服务器,请参阅 介绍 Model Context Protocol。
特别感谢 Parker Hancock,他是令人惊叹的 Patent Client 项目 的作者,他为理解通过 Public Search API 获取数据所需的请求和响应序列铺平了道路。
此服务器提供了以下工具:
此服务器与三个专利数据源交互:
如果你是 Python 开发者,但还不熟悉 UV,你会喜欢它。它比单独的 Python 版本管理器(如 pyenv)更快更简单,并且设置、激活和维护虚拟环境也更容易,使用 venv 和 pip。
如果还没有安装 UV,可以运行 curl -LsSf https://astral.sh/uv/install.sh | sh 来安装。
克隆此仓库:
git clone https://github.com/riemannzeta/patent_m
cd patent_mcp_server
使用 UV 安装依赖项:
uv sync
如果安装正确,则:
uv run patent-mcp-server
应该在控制台写入:
INFO 正在启动 USPTO 专利 MCP 服务器,使用 stdio 传输
在环境中安装 API 密钥并配置 Claude Desktop 后,专利 MCP 服务器就准备好了。
要使用 api.uspto.gov 工具,你需要获取 Open Data Portal (ODP) API 密钥:
USPTO_API_KEY=your_actual_key_here
你的密钥周围不需要引号。ppubs 工具可以在没有此 API 密钥的情况下运行,但对于 api.uspto.gov 工具来说,API 密钥是必需的。要使用 Google Patents Public Datasets,你需要设置 Google Cloud 凭证:
创建 Google Cloud 项目:
启用 BigQuery API:
创建服务账户凭证:
配置环境变量: 在你的 .env 文件中添加:
GOOGLE_CLOUD_PROJECT=your-project-id
GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/service-account-key.json
费用信息:Google BigQuery 提供每月 1TB 的免费查询。之后,每 TB 查询费用为 5 美元。专利查询通常很小且高效。详情请参阅 BigQuery 定价。
服务器可以通过 .env 文件中的环境变量进行配置。所有设置都是可选的,默认值合理:
# API 密钥
USPTO_API_KEY=your_key_here
# Google Cloud / BigQuery
GOOGLE_CLOUD_PROJECT=your-project-id
GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
BIGQUERY_DATASET=patents-public-data:patents
BIGQUERY_LOCATION=US
BIGQUERY_QUERY_TIMEOUT=60
BIGQUERY_MAX_RESULTS=1000
# 日志记录
LOG_LEVEL=INFO # 选项:DEBUG, INFO, WARNING, ERROR, CRITICAL
# HTTP 设置
REQUEST_TIMEOUT=30.0 # 请求超时时间(秒)
MAX_RETRIES=3 # 失败请求的最大重试次数
RETRY_MIN_WAIT=2 # 重试之间的最小等待时间(秒)
RETRY_MAX_WAIT=10 # 重试之间的最大等待时间(秒)
# 会话管理
SESSION_EXPIRY_MINUTES=30 # 缓存 ppubs 会话的时间长度
ENABLE_CACHING=true # 启用/禁用会话缓存
# API 端点(通常不需要更改)
PPUBS_BASE_URL=https://ppubs.uspto.gov
API_BASE_URL=https://api.uspto.gov
要将此 MCP 服务器与 Claude Desktop 集成:
更新你的 Claude Desktop 配置文件(claude_desktop_config.json):
{
"mcpServers": {
"patents": {
"command": "uv",
"args": [
"--directory",
"/Users/username/patent_mcp_server",
"run",
"patent-mcp-server"
]
}
}
}
你可以在 Mac 上通过打开 Claude Desktop 应用程序,打开设置(从 Claude 菜单或通过键盘上的 Command + '),点击侧边栏中的“开发者”,然后编辑配置来找到 claude_desktop_config.json。
如果专利_mcp_server 目录不是克隆的位置,请替换 /Users/username/patent_mcp_server 为实际路径。(如果你使用的是 Mac,这可能意味着只需将 username 替换为你自己的用户名。)
当与 Claude Desktop 集成时,服务器将在需要时自动启动,无需单独运行。服务器使用 stdio 传输与 Claude Desktop 或在同一主机上运行的其他 MCP 客户端通信。
服务器提供以下函数来与 USPTO 数据交互。请注意,Claude Desktop 客户端并不完全支持所有这些工具。例如,Claude Desktop 当前不允许下载 PDF。
ppubs_search_patents - 在 USPTO 公共搜索中搜索已授予的专利ppubs_search_applications - 在 USPTO 公共搜索中搜索已公布的专利申请ppubs_get_full_document - 通过 GUID 从 ppubs.uspto.gov 获取完整的专利文档详细信息ppubs_get_patent_by_number - 通过编号从 ppubs.uspto.gov 获取已授予专利的全文ppubs_download_patent_pdf - 从 ppubs.uspto.gov 下载已授予专利的 PDF(目前不被 Claude Desktop 支持)get_app(app_num) - 获取基本专利申请数据search_applications(...) - 使用查询参数搜索专利申请download_applications(...) - 使用查询参数下载专利申请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(...) - 搜索状态代码search_datasets(...) - 搜索批量数据集产品get_dataset_product(...) - 通过其标识符获取特定产品google_search_patents(query, country, limit) - 通过标题/摘要中的文本搜索 9000 万以上的出版物中的专利google_get_patent(publication_number) - 通过出版物编号获取完整的专利详细信息google_get_patent_claims(publication_number) - 获取专利的所有权利要求google_get_patent_description(publication_number) - 获取完整的专利描述/规范google_search_by_inventor(inventor_name, country, limit) - 通过发明人姓名查找专利google_search_by_assignee(assignee_name, country, limit) - 通过公司/受让人查找专利google_search_by_cpc(cpc_code, country, limit) - 通过 CPC 分类代码搜索专利支持的国家:US(美国)、EP(欧洲专利局)、WO(WIPO/PCT)、JP(日本)、CN(中国)、KR(韩国)、GB(英国)、DE(德国)、FR(法国)、CA(加拿大)、AU(澳大利亚)
注意:Google Patents 工具需要 Google Cloud 凭证(见上文的 Google Cloud 设置)。
有关详细参数信息,请参阅代码中的函数文档字符串。
此次发布包括对代码质量、可靠性和可维护性的重大改进:
ApiError 实用类在整个端点中标准化错误响应/test/ 目录包含验证 MCP 服务器功能的测试套件:
test_tools_pytest.py - 现代的 pytest 基础测试套件,适用于所有 MCP 工具(推荐)test_tools.py - 遗留测试运行器(仍然有效)test_patents.py - 用于调试的直接 HTTP 请求测试测试结果以 JSON 和 PDF 格式存储在 /test/test_results 子目录中。
# 使用 pytest 运行所有测试(推荐)
uv run pytest test/test_tools_pytest.py -v
# 运行排除慢速测试(如 PDF 下载)
uv run pytest test/test_tools_pytest.py -v -m "not slow"
# 运行带有覆盖率报告
uv run pytest test/test_tools_pytest.py --cov=patent_mcp_server
# 运行遗留测试套件
uv run test/test_tools.py
要安装开发依赖项:
uv sync --dev
MIT