mcpField
P
Patent by Ouroboros Apps

Patent by Ouroboros Apps

远程服务
ouroborosapps.com法律与政务02 周前更新

关于 Patent by Ouroboros Apps

Patent by Ouroboros Apps 是面向发明者、工程师、创业者及专利从业者的远程 MCP 服务,用于检索美国专利记录。它查询 USPTO 数据并提供记录详情和引证信息;结果不构成法律意见。

主要功能

  1. 01按关键词、权利要求、CPC、申请人、发明人或日期搜索美国专利
  2. 02读取摘要、权利要求、状态、专利族和引证
  3. 03查找引用某专利及被其引用的文献
  4. 04根据创意描述搜索现有技术

适用场景

  1. 01检查创意是否出现在公开的美国专利记录中
  2. 02查看专利的权利要求、状态和引证历史
  3. 03为发明构想查找相关 USPTO 记录

MCP 相关

通过 Streamable HTTP 向 MCP 客户端提供四种专利检索工具,并支持 OAuth 登录。托管服务检索 USPTO Open Data Portal 中的美国专利记录。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://patent-mcp.vercel.app/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

4
参数类型必填说明
cpcstring否CPC 符号,例如 H04L 或 C07H19/207。
limitinteger否最大结果数,1 至 25。
claimsstring否权利要求文本。USPTO 会在整个案卷中匹配这些词语。
dateTostring否授权或公开日期截止,格式为 YYYY-MM-DD。
assigneestring否申请人或受让人名称。
dateFromstring否授权或公开日期起始,格式为 YYYY-MM-DD。
inventorstring否发明人姓名。
keywordsstring否用于在申请文本、标题或摘要中查找的词语。

详细介绍

Ouroboros 专利

Ouroboros 专利是一个远程 MCP 服务,面向发明者、初创公司创始人、专利代理师和律师,以及需要检查某个创意是否已出现在公开专利记录中的工程师。

它会在 USPTO Open Data Portal 上搜索美国专利记录。Google Patents 仅用作链接。工具结果中的每个专利号都直接复制自 USPTO 的响应。如果 USPTO 未返回号码,服务不会自行补上。

这不是法律建议。 它不能替代注册专利律师或代理师。搜索结果不构成关于可专利性、侵权、有效性或实施自由的意见。

托管服务

连接

托管 MCP 地址为 https://patent-mcp.vercel.app/mcp。自托管副本使用其自身的来源地址并加上 /mcp。本地地址为 http://127.0.0.1:8787/mcp。

助手打开 OAuth 时请登录。客户端 ID 和密钥留空。服务支持 OAuth 2.1 动态客户端注册和 PKCE(S256)。请勿将密码或办公室 API 密钥粘贴到助手中。

Cursor,配置文件位于 ~/.cursor/mcp.json 或项目中的 .cursor/mcp.json:

{
  "mcpServers": {
    "patent": {
      "url": "https://patent-mcp.vercel.app/mcp"
    }
  }
}

Claude Code:

claude mcp add --transport http patent https://patent-mcp.vercel.app/mcp

对于 ChatGPT、Claude、Gemini、Grok 及任何其他 Streamable HTTP 客户端:添加相同的 URL,选择 OAuth,并将客户端 ID 和密钥留空。完整步骤请参阅 /connect。

新账户包含 14 天的搜索权限。试用期结束后,可通过 Stripe Checkout 继续使用 Pro。金额由 Stripe 显示,不会在此代码仓库中列出。

server.json 是 MCP Registry 清单(io.github.LAHutchins91/patent)。其 remotes[0].url 是托管服务地址 https://patent-mcp.vercel.app/mcp,图标为 https://patent-mcp.vercel.app/logo.jpg。自托管副本应将两者都指向其自身的来源地址。

工具

  • search_patents — 按关键词、权利要求文本、CPC 分类、受让人、发明人和日期搜索
  • get_patent — 获取一条记录的摘要、权利要求、状态、专利族和引用
  • find_patent_citations — 查找引用某项专利的文档,以及该专利引用的文档
  • search_prior_art — 输入创意描述,获取最接近的 USPTO 记录及其 Google Patents 链接

引用覆盖范围包括 USPTO 授权文件和 USPTO 审查意见中的引用。PatentsView 引用图谱目前已暂停:PatentsView 于 2026 年 3 月 20 日迁移至 Open Data Portal 时,USPTO 暂停了 PatentsView PatentSearch API。

本地运行

npm install
cp .env.example .env
npm run dev

服务监听端口 8787。GET /health 会返回 JSON。只有在 STRIPE_SECRET_KEY、STRIPE_PRICE_MONTHLY 和 STRIPE_PRICE_YEARLY 均已设置时,billingConfigured 才为 true。

npm test
npm run typecheck

测试会调用 USPTO 公共主机。需要密钥的办公室响应数据会通过模拟提供。如果环境中设置了 USPTO_API_KEY,实时测试将使用该密钥,而不是预期未经身份验证的响应。

环境

Lawrence 需要提供:

变量用途
APP_BASE_URL用作 OAuth 发行方和 Stripe 返回 URL 的公共来源
AUTH_SECRET用于签署浏览器会话。生产环境中必需
USPTO_API_KEYUSPTO Open Data Portal 密钥,通过 X-API-KEY 发送。这是托管服务使用的密钥。
EPO_CONSUMER_KEY在托管服务上留空。未使用的客户端只有在同时设置了密钥时才会读取它。
EPO_CONSUMER_SECRET在托管服务上留空。搜索范围仍限于 USPTO 的美国专利。
STRIPE_SECRET_KEY现有 Stripe 密钥
STRIPE_PRICE_MONTHLY现有月付价格 ID
STRIPE_PRICE_YEARLY现有年付价格 ID
STRIPE_WEBHOOK_SECRETStripe webhook 签名密钥
STORAGE_BACKENDmemory(默认)、file、http 或 blob
STORAGE_PATH后端为 file 时使用的 JSON 文件
STORAGE_URL后端为 http 时用于一个 JSON 文档的 GET/PUT URL
STORAGE_TOKEN该 URL 可选的 bearer 令牌
BLOB_READ_WRITE_TOKENVercel Blob 读写令牌。关联存储时由 Vercel 注入。STORAGE_BACKEND=blob 时必需
STORAGE_BLOB_PATH账户文档的 Blob 路径名。默认值为 patent/accounts.json

不要在此应用中创建 Stripe 产品或价格。不要提交密钥。

USPTO 密钥
  1. 创建 USPTO.gov 账户。
  2. 验证并关联 ID.me。此关联只能进行一次。
  3. 打开 Open Data Portal 入门指南 并申请 API 密钥。
  4. 设置 USPTO_API_KEY。

旧版 PatentsView API 密钥无法用于 Open Data Portal。

账户和存储

专利工具是在 USPTO Open Data Portal 上对美国专利执行的无状态搜索。试用和订阅状态、OAuth 客户端及令牌都存储在 AccountStore 背后的一个 JSON 文档中。

  • memory 将该文档保存在进程中。这是默认设置,也是本地测试使用的设置。进程重启或启动第二个无服务器实例后,数据不会保留。
  • file 写入 STORAGE_PATH(默认值为 ./data/patent-store.json)。适用于 Docker 或长期运行的 Node 进程。
  • http 在 STORAGE_URL 指向的位置对同一文档执行 GET 和 PUT。将它指向你已有的存储。本服务不会创建数据库。
  • blob 将同一文档存储在 Vercel Blob 的 STORAGE_BLOB_PATH 中(默认值为 patent/accounts.json)。在 Vercel 上设置 STORAGE_BACKEND=blob。Blob 客户端使用 BLOB_READ_WRITE_TOKEN;连接 Blob 存储时,该令牌由 Vercel 注入。读取时会绕过 CDN 缓存。写入时会发送 ifMatch,并在另一实例先更新文档时重试。

OAuth 客户端、授权码、访问令牌和刷新令牌都是该文档中的字段。用户在同意页面批准授权时,页面会连同授权请求一起提交;授权信息不会保存在进程内存中。每次写入时都会移除过期的授权码和刷新令牌。

部署

Vercel:Express 应用是 api/index.ts 的默认导出。vercel.json 会将所有路径发送到该函数,并将 logo.jpg 打包到其中,因此 /logo.jpg 由应用提供,而 /package.json 等仓库文件不是静态资源。设置上述环境变量,包括 STORAGE_BACKEND=blob。将 Stripe webhook 指向 https://<your-host>/billing/webhook。

Docker:

docker build -t patent-mcp .
docker run --env-file .env -p 8787:8787 patent-mcp

已验证内容

本地通过 Streamable HTTP 验证了:tools/list 和四个工具各自的功能、使用 PKCE 的 OAuth 注册、试用到期、Stripe 结账请求格式,以及 webhook 签名验证。测试中未进行实际 Stripe 扣款。

托管环境:服务已部署在 https://patent-mcp.vercel.app。无需令牌即可调用 tools/list;未签名的工具调用会返回带有 WWW-Authenticate 标头的 401;/.well-known/oauth-protected-resource 返回 200;/health 报告 USPTO 密钥已配置。


Patent by Ouroboros。了解更多 Ouroboros 信息:https://ouroborosapps.com

评论

支持 Markdown

第一次接触 MCP?

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

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