使用说明
USPTO专利MCP服务器
A. FastMCP服务器 通过以下方式访问美国专利商标局(USPTO)的专利和专利申请数据 专利公开检索 API和 开放数据门户(ODP)API使用此服务器,Claude Desktop可以使用公共搜索API(专利中心的后端)或ODP API从USPTO提取数据:
有关MCP服务器的介绍,请参阅 介绍模型上下文协议.
特别感谢 帕克·汉考克《惊奇》的作者 专利客户项目,为 开拓道路 了解通过公共搜索API获取数据所需的请求和响应字符串。
特性
此服务器提供以下工具:
- 专利检索 -搜索专利和专利申请
- 全文文档 -获取专利的完整文本,包括权利要求、描述等。
- PDF下载 -下载PDF格式的专利。(但Claude Desktop目前不支持将其作为客户端。)
- 元数据 -访问专利文献信息、转让和诉讼数据
API来源
此服务器与两个USPTO源交互:
- ppubs.uspto.gov -用于全文文档访问、PDF下载和高级搜索
- api.uspto.gov -用于元数据、连续性信息、事务和分配
先决条件
- Python 3.10或更高版本
- Claude Desktop(用于集成)。其他型号和MCP客户端尚未经过测试。
- 对于专利公开搜索请求,不需要API密钥,但是 有费率限制。此API不适用于批量下载。
- 对于ODP API请求,USPTO ODP API密钥(见下文)。
- 紫外线 用于python版本和依赖关系管理。
如果你是一名python开发人员,但仍然不熟悉uv,那么你会得到一种享受。它比使用单独的python版本管理器(如pyenv)以及使用venv和pip设置、激活和维护虚拟环境更快、更容易。
如果你还没有安装紫外线, curl -LsSf https://astral.sh/uv/install.sh | sh 应该会成功。
安装
-
克隆此存储库:
git clone https://github.com/riemannzeta/patent_mcp_server cd patent_mcp_server -
使用uv安装依赖项:
uv sync如果安装正确,则:
uv run patent-mcp-server应该写:
INFO Starting USPTO Patent MCP server with stdio transport到控制台。在环境中安装了API密钥并配置了Claude Desktop后,专利MCP服务器就准备好了。
API密钥设置
要使用api.uspto.gov工具,您需要获得开放数据门户(ODP)api密钥:
-
访问 美国专利商标局的入门页面 如果您还没有API密钥,请按照说明请求该密钥。
-
创建一个
.env使用API密钥在patent_mcp_server目录中的文件:USPTO_API_KEY=your_actual_key_here你的钥匙周围不需要引号。ppubs工具将在没有此API密钥的情况下运行,但API.uspto.gov工具需要API密钥。
配置
服务器可以使用您的环境变量进行配置 .env 文件。所有设置都是可选的,具有合理的默认值:
# API Keys
USPTO_API_KEY=your_key_here
# Logging
LOG_LEVEL=INFO # Options: DEBUG, INFO, WARNING, ERROR, CRITICAL
# HTTP Settings
REQUEST_TIMEOUT=30.0 # Request timeout in seconds
MAX_RETRIES=3 # Maximum number of retry attempts for failed requests
RETRY_MIN_WAIT=2 # Minimum wait time between retries (seconds)
RETRY_MAX_WAIT=10 # Maximum wait time between retries (seconds)
# Session Management
SESSION_EXPIRY_MINUTES=30 # How long to cache ppubs sessions
ENABLE_CACHING=true # Enable/disable session caching
# API Endpoints (usually don't need to change)
PPUBS_BASE_URL=https://ppubs.uspto.gov
API_BASE_URL=https://api.uspto.gov
Claude桌面配置
要将此MCP服务器与Claude Desktop集成,请执行以下操作:
-
更新您的Claude Desktop配置文件(
claude_desktop_config.json):{ "mcpServers": { "patents": { "command": "uv", "args": [ "--directory", "/Users/username/patent_mcp_server", "run", "patent-mcp-server" ] } } }你可以找到
claude_desktop_config.json在mac上,打开Claude Desktop应用程序,打开设置(从Claude菜单或通过键盘上的Command+'),单击侧边栏中的“开发人员”,然后单击“编辑配置” -
替换
/Users/username/patent_mcp_server如果您的patent_mcp_server目录不是克隆它的位置,则使用该目录的实际路径。(如果你在mac上,这可能意味着简单地更换username使用您的用户名。)
当与Claude Desktop集成时,服务器将在需要时自动启动,不需要单独运行。服务器使用stdio传输与Claude Desktop或在同一主机上运行的其他MCP客户端进行通信。
可用功能
服务器提供以下功能与USPTO数据交互。请注意,Claude Desktop客户端并不完全支持所有这些工具。例如,Claude Desktop目前不允许下载PDF。
公共专利检索(ppubs.uspto.gov)
ppubs_search_patents-在USPTO公共搜索中搜索已授予的专利ppubs_search_applications-在USPTO公共搜索中搜索已发表的专利申请ppubs_get_full_document-从ppubs.uspto.gov获取GUID的完整专利文件详细信息ppubs_get_patent_by_number-从ppubs.uspto.gov按编号获取已授予专利的全文ppubs_download_patent_pdf-从ppubs.uspto.gov下载PDF格式的已授权专利(Claude Desktop目前不支持)
开放数据门户API(API.usto.gov)
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(...)-通过标识符获取特定产品
详细参数信息请参考代码中的函数docstring。
最近的改进(v0.2.2)
此版本对代码质量、可靠性和可维护性进行了重大改进:
架构和代码质量
- 集中式配置 -所有设置现在都通过具有合理默认值的环境变量进行管理
- 常量模块 -将魔术字符串提取到专用常量模块以保持一致性
- 错误处理 -使用以下方法跨所有端点进行标准化错误响应
ApiError工具类 - 重复代码删除 -提取常见专利检索逻辑,消除约80行重复代码
- 输入验证 -使用Pydantic自动验证和消毒专利/申请号
可靠性和性能
- 重试逻辑 -使用韧性的网络错误指数退避重试机制
- 会话缓存 -ppubs.uspto.gov会话缓存30分钟(可配置)以减少开销
- 资源管理 -使用上下文管理器和关闭处理程序正确清理HTTP客户端
- 类型提示 -整个代码库中的全面类型注释
开发者体验
- pytest框架 -具有异步支持的现代测试框架取代了自定义测试运行器
- Python 3.10+支持 -将要求从3.13降低到3.10,以实现更广泛的兼容性
- 更好的日志记录 -通过环境变量配置日志级别
- 开发工具 -将pytest、pytest-asyncio和pytest-cov添加到开发依赖项中
测试
这 /test/ 目录包含用于验证MCP服务器功能的测试套件:
test_tools_pytest.py-适用于所有MCP工具的基于pytest的现代测试套件(推荐)test_tools.py-传统测试运行器(仍在运行)test_patents.py-用于调试的直接HTTP请求测试
JSON和PDF格式的测试结果存储在 /test/test_results 子目录。
运行测试
# Run all tests with pytest (recommended)
uv run pytest test/test_tools_pytest.py -v
# Run excluding slow tests (like PDF downloads)
uv run pytest test/test_tools_pytest.py -v -m "not slow"
# Run with coverage report
uv run pytest test/test_tools_pytest.py --cov=patent_mcp_server
# Run legacy test suite
uv run test/test_tools.py
发展
要安装开发依赖项,请执行以下操作:
uv sync --dev
许可证
麻省理工学院