Skip to main content
Glama

IP-MCP

License: MIT Python 3.12+ MCP CI GitHub release

English · 日本語

用自然语言从 Claude 查询日本专利。 IP-MCP 将 Japan Patent Office 的官方 “Patent Information Retrieval API” 封装为 MCP 服务器,因此 Claude Desktop、Claude Code 和 iPhone Claude 可以解析专利号、查看注册状态、获取引用文献,并遍历五局同族——12 个官方 API 工具,外加 1 个刻意隔离的关键词搜索工具。


30 秒内你可以让 Claude 做什么

:“请告诉我 JP-2010-228687 的注册状态和现有技术。”

Claude(幕后)

  1. jpo_convert_patent_number → 申请号 2009080841

  2. jpo_get_patent_registration → 注册号 5094774,Hitachi Ltd.,2029-03-30 到期,有效

  3. jpo_get_patent_citations → 20 篇现有技术引用

回复:“列车控制地面设备与系统”(Hitachi Ltd.)于 2012-09-28 注册为 JP5094774,目前有效,到期日为 2029-03-30。检索报告和驳回理由中有 20 篇现有技术引用,全部为专利文献(无 NPL)……

关键词搜索被拆分为一个独立工具external_search_patents_by_keyword,Google Patents XHR)。LLM 永远不会意外地从官方 API 回退到非官方来源——每个响应都带有明确的 source 字段。


Related MCP server: Patent Intelligence MCP

对比

J-PlatPat(手动 Web UI)

手写 Flask 封装

IP-MCP

直接访问 Google Patents

数据来源

官方(JPO)

官方(JPO)

官方(JPO)+ 外部(可选)

非官方

号码转换 / 审查进度 / 注册 / 引用

✓(手动)

关键词搜索

△(隔离的外部工具)

可直接由 LLM 调用

❌(需要 REST + 解析)

✅ 原生 MCP

△(需要 HTML/JSON 解析)

官方与非官方区分

单一来源

✅ 强制 source 字段

自动回退

❌ 禁止(由 LLM 决定)

认证

会话

环境变量

环境变量或 OAuth 2.1(DCR + PKCE)

部署

自行搭建

Docker Compose

为什么关键词搜索要单独分类?

官方 JPO API 仅支持号码查询——每个端点接受申请号 / 公开号 / 注册号、申请人代码或完全匹配的申请人名称。关键词 / IPC / F-term / 日期范围 / 部分名称搜索在规范中并不存在。因此:

  • tools_official/ — 名称以 jpo_* 开头,响应为 {"source": "jpo_official", …}

  • tools_external/ — 名称以 external_* 开头,响应为 {"source": "google_patents_unofficial", …}

  • 边界测试禁止从 tools_external/tools_official/ 的任何 import没有静默回退——是否查阅非官方来源由 LLM 决定。


架构

flowchart LR
    User["Claude Desktop /<br/>Claude Code /<br/>iPhone Claude"]
    CF["Cloudflare<br/>(Edge TLS + Tunnel)"]
    Caddy["Caddy<br/>(CF Origin Cert)"]

    User -->|"HTTPS + OAuth"| CF
    CF -->|"outbound from home<br/>via cloudflared"| Caddy
    Caddy -->|"http+SSE"| MCP

    subgraph Docker["Docker container (Python 3.12 + FastMCP)"]
      MCP["MCP server<br/>:8765"]
      Official["tools_official/<br/>(jpo_* 12 tools)"]
      External["tools_external/<br/>(external_* 1 tool)"]
      OAuth["OAuth 2.1<br/>SQLite-backed"]
      MCP --> Official
      MCP --> External
      MCP -.->|"persisted"| OAuth
    end

    Official -->|"OAuth2 password grant"| JPO[("JPO Patent API")]
    External -->|"3s spacing + 503 backoff"| GP[("Google Patents XHR")]

    classDef boundary stroke-dasharray: 5 5
    class External,GP boundary

核心设计规则:

  • tools_official/(官方 JPO)和 tools_external/(非官方 Google Patents)在代码层级、调用点和 logger 层面完全隔离。边界测试会阻止从 tools_external/tools_official/ 的任何 import

  • 重试只允许在同一个数据源内(401 → 刷新令牌;303 → 指数退避)。失败时禁止自动跨源回退——由 LLM 决定。

  • 每个响应都带有 {"source": "jpo_official"}{"source": "google_patents_unofficial"}


快速开始

本地开发

cp .env.example .env          # Fill in JPO_USERNAME / JPO_PASSWORD
chmod 600 .env
docker compose up -d --build

局域网部署(无认证)

创建 docker-compose.override.yml 以绑定到你的局域网接口(仓库附带 docker-compose.override.yml.example):

services:
  ip-mcp:
    ports:
      - "YOUR_SERVER_IP:8765:8765"   # your LAN IP

Claude Desktop / Code 配置:

{
  "mcpServers": {
    "ip-mcp": {
      "transport": { "type": "sse", "url": "http://YOUR_SERVER_IP:8765/sse" }
    }
  }
}

Codex CLI 的直接 HTTP MCP(codex mcp add --url)需要 Streamable HTTP,因此从 Codex 直接使用时请注册 /mcp 路径:

CODEX_HOME=/path/to/codex-home codex mcp add ip-mcp --url https://your-host.example.com/mcp
CODEX_HOME=/path/to/codex-home codex mcp login ip-mcp

SSE 客户端注册 /sse。要在同一台公共服务器上同时服务 Codex 直接 HTTP 和 SSE 客户端,请使用 MCP_TRANSPORT=both 启动,以在同一 OAuth 配置下同时暴露 /mcp/sse。对于单个客户端,MCP_TRANSPORT=sse(默认)或 MCP_TRANSPORT=streamable-http 同样适用。

iPhone Claude / claude.ai(公网,OAuth 2.1)

对于公网暴露,推荐方案是 Cloudflare Tunnel + Caddy(CF Origin Cert)——cloudflared 从你的家庭网络主动拨出到 CF 边缘,因此无需路由器端口转发,hairpin NAT 也不是问题。使用 Let's Encrypt + 直连 443 的传统反向代理同样可行。无论哪种方式,设置 MCP_OAUTH_MASTER_PASSWORD + MCP_OAUTH_ISSUER_URL 即可启用 OAuth 2.1(DCR + PKCE + 主密码同意)。已签发的客户端令牌持久化到 SQLite,并在容器重启后保留。

MCP_OAUTH_MASTER_PASSWORD=<24+ chars random>
MCP_OAUTH_ISSUER_URL=https://your-host.example.com
# optional: MCP_OAUTH_DB_PATH=/app/data/oauth.db

完整的部署与运维细节请参阅 PLAN.md §9-§10OPERATIONS.md(目前为日文)。


工具列表

名称

用途

jpo_convert_patent_number

在申请号 / 公开号 / 注册号之间转换

jpo_get_patent_progress

审查进度(完整 / 简单切换)

jpo_get_patent_registration

注册信息与权利状态

jpo_get_patent_citations

引用的现有技术文献

jpo_get_divisional_apps

分案申请

jpo_get_priority_apps

优先权基础申请

jpo_lookup_applicant

申请人代码 ⇄ 名称(仅完全匹配

jpo_get_patent_documents

审查意见通知书 / 驳回理由 / 补正书(处理内联 ZIP + 签名 URL)

jpo_get_jpp_url

J-PlatPat 规范 URL

jpo_get_opd_family

五局专利同族(JPO / USPTO / EPO / CNIPA / KIPO)

jpo_get_opd_doc_list

OPD 文献列表

jpo_fetch_full_record

高层复合工具,扇出到多个官方端点(完全停留在官方 API 内)

响应:{"ok": true, "source": "jpo_official", "data": {…}, "remaining_today": "…"}

名称

用途

external_search_patents_by_keyword

日本专利的自由文本 / 受让人 / IPC / 日期范围搜索(Google Patents XHR,仅供参考)

响应:{"ok": true, "source": "google_patents_unofficial", "data": {…}}

之所以隔离,是因为官方 API 不提供关键词搜索(仅号码查询)。失败时返回 {"ok": false, "kind": "search_unavailable"},并且绝不会回退到官方工具


速率限制(运维)

官方 JPO API 将自我限流责任委托给运维人员:

  • 每分钟速率/api/patent/*10 次/分钟/opdapi/*5 次/分钟(OPD 在独立的桶中单独计数)。

  • 每日配额:每个端点 30–800 次/天(国家 API 配额已于 2026 年 3 月翻倍)。权威的实时计数器是 result.remainAccessCount,随每个响应返回。

  • jpo_fetch_full_record 并行扇出到 4 个官方端点,因此一次调用会从 4 个独立的每日配额中各消耗 1 个单位(而不是从同一配额中消耗 4 个)。瓶颈是最低的那个配额。

工具到端点的映射和运维阈值,请参阅 OPERATIONS.md §JPO API レート制約とクォータ(日文)。


文档

  • 📐 PLAN.md — 设计计划(架构、完整工具列表、分阶段计划)[JP]

  • 🤖 CLAUDE.md — Claude Code 指南(不可妥协的设计规则、JPO API 注意事项)[JP]

  • 🔧 OPERATIONS.md — 运维手册(访问日志摘要、主密码轮换、故障排查)[JP]


占位符

示例

设置方法

`Y

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
0dRelease cycle
2Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables natural language search of Japan's National Diet Library bibliographic database via Claude Desktop, allowing users to find books and academic materials using intuitive Japanese queries.
    6
  • A
    license
    B
    quality
    D
    maintenance
    Enables Claude Desktop to interact with freee accounting API for expense registration, transaction management, and receipt image processing.
    15
    1
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Appeared in Searches

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kitepon/IP-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server