Skip to main content
Glama

IP-MCP

License: MIT Python 3.12+ MCP CI GitHub release

English · 日本語

Fragen Sie japanische Patente in natürlicher Sprache von Claude ab. IP-MCP kapselt die offizielle „Patent Information Retrieval API" des japanischen Patentamts als MCP-Server, sodass Claude Desktop, Claude Code und iPhone Claude Patentnummern auflösen, den Registrierungsstatus prüfen, Zitate abrufen und Fünf-Ämter-Familien durchlaufen können — 12 offizielle API-Tools plus 1 bewusst isoliertes Stichwortsuch-Tool.


Was Sie Claude in 30 Sekunden fragen können

Sie: „Sagen Sie mir den Registrierungsstatus und den Stand der Technik von JP-2010-228687."

Claude (unter der Haube):

  1. jpo_convert_patent_number → Anmeldenummer 2009080841

  2. jpo_get_patent_registration → Registrierung 5094774, Hitachi Ltd., läuft ab am 2029-03-30, aktiv

  3. jpo_get_patent_citations → 20 Referenzen zum Stand der Technik

Antwort: „Train Control Ground Equipment and System" (Hitachi Ltd.) wurde am 2012-09-28 als JP5094774 registriert, derzeit in Kraft, fällig am 2029-03-30. 20 Zitate zum Stand der Technik aus Recherchebericht und Zurückweisungsgründen, alle Patentliteratur (keine NPL)…

Die Stichwortsuche ist in ein separates Tool aufgeteilt (external_search_patents_by_keyword, Google Patents XHR). Das LLM kann niemals versehentlich von der offiziellen API auf die inoffizielle Quelle zurückfallen — jede Antwort trägt ein explizites source-Feld.


Related MCP server: Patent Intelligence MCP

Vergleich

J-PlatPat (manuelle Web-UI)

Handgebaute Flask-Wrapper

IP-MCP

Direkt auf Google Patents zugreifen

Datenquelle

Offiziell (JPO)

Offiziell (JPO)

Offiziell (JPO) + extern (optional)

Inoffiziell

Nummer umwandeln / Fortschritt / Registrierung / Zitate

✓ (von Hand)

Stichwortsuche

△ (isoliertes externes Tool)

Direkt von einem LLM aufrufbar

❌ (REST + Parsing nötig)

✅ natives MCP

△ (HTML/JSON-Parsing nötig)

Offiziell vs. inoffiziell unterscheidbar

einzelne Quelle

✅ obligatorisches source-Feld

Automatischer Fallback

❌ verboten (das LLM entscheidet)

Authentifizierung

Sitzung

env

env oder OAuth 2.1 (DCR + PKCE)

keine

Bereitstellung

DIY

Docker Compose

Warum eine separate Tool-Kategorie für die Stichwortsuche?

Die offizielle JPO-API ist nur für Nummern-Lookups gedacht — jeder Endpunkt nimmt eine Anmelde-/Veröffentlichungs-/Registrierungsnummer, einen Anmeldercode oder einen exakt übereinstimmenden Anmeldernamen entgegen. Stichwort-/IPC-/F-Term-/Datumsbereich-/Teilnamenssuche existiert in der Spezifikation nicht. Deshalb:

  • tools_official/ — Namen beginnen mit jpo_*, Antwort ist {"source": "jpo_official", …}

  • tools_external/ — Namen beginnen mit external_*, Antwort ist {"source": "google_patents_unofficial", …}

  • Ein Grenztest verbietet jeden import von tools_external/ in tools_official/. Kein stiller Fallback — das LLM entscheidet, ob es die inoffizielle Quelle konsultiert.


Architektur

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

Kernentwurfsregeln:

  • tools_official/ (offizielles JPO) und tools_external/ (inoffizielles Google Patents) sind vollständig getrennt auf Code-Ebene, Aufrufstelle und Logger-Ebene. Ein Grenztest blockiert jeden import von tools_external/ in tools_official/.

  • Wiederholungen sind nur innerhalb derselben Datenquelle erlaubt (401 → Token-Refresh; 303 → exponentielles Backoff). Automatischer Quellen-übergreifender Fallback bei Fehlern ist verboten — das LLM entscheidet.

  • Jede Antwort trägt {"source": "jpo_official"} oder {"source": "google_patents_unofficial"}.


Schnellstart

Lokale Entwicklung

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

LAN-Bereitstellung (ohne Authentifizierung)

Erstellen Sie docker-compose.override.yml, um an Ihre LAN-Schnittstelle zu binden (das Repository enthält eine docker-compose.override.yml.example):

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

Claude Desktop / Code-Konfiguration:

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

Codex CLIs direkter HTTP-MCP (codex mcp add --url) erwartet Streamable HTTP, daher registrieren Sie den /mcp-Pfad, wenn Sie ihn direkt von Codex aus verwenden:

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-Clients registrieren /sse. Um Codex direktem HTTP und SSE-Clients vom selben öffentlichen Server zu bedienen, starten Sie mit MCP_TRANSPORT=both, um sowohl /mcp als auch /sse unter derselben OAuth-Konfiguration bereitzustellen. Für einen einzelnen Client funktioniert auch MCP_TRANSPORT=sse (Standard) oder MCP_TRANSPORT=streamable-http.

iPhone Claude / claude.ai (öffentlich, OAuth 2.1)

Für die öffentliche Bereitstellung ist die empfohlene Einrichtung Cloudflare Tunnel + Caddy (CF Origin Cert) — cloudflared wählt von Ihrem Heimnetzwerk aus zum CF-Edge, sodass kein Router-Port-Forwarding erforderlich ist und Hairpin-NAT kein Problem darstellt. Ein traditioneller Reverse-Proxy mit Let's Encrypt + direktem 443 funktioniert ebenfalls. Setzen Sie in jedem Fall MCP_OAUTH_MASTER_PASSWORD + MCP_OAUTH_ISSUER_URL, um OAuth 2.1 (DCR + PKCE + Master-Passwort-Zustimmung) zu aktivieren. Ausgestellte Client-Tokens werden in SQLite gespeichert und überleben Container-Neustarts.

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

Siehe PLAN.md §9-§10 und OPERATIONS.md für vollständige Bereitstellungs- und Betriebsdetails (derzeit auf Japanisch).


Tool-Liste

Name

Zweck

jpo_convert_patent_number

Zwischen Anmelde-/Veröffentlichungs-/Registrierungsnummern umwandeln

jpo_get_patent_progress

Prüfungsfortschritt (voll / einfach umschaltbar)

jpo_get_patent_registration

Registrierungsinformationen & Rechtsstatus

jpo_get_patent_citations

Zitierte Dokumente zum Stand der Technik

jpo_get_divisional_apps

Teilanmeldungen

jpo_get_priority_apps

Prioritätsbasierte Anmeldungen

jpo_lookup_applicant

Anmeldercode ⇄ Name (nur exakte Übereinstimmung)

jpo_get_patent_documents

Amtshandlungen / Zurückweisungsgründe / Änderungen (verarbeitet Inline-ZIP + signierte URLs)

jpo_get_jpp_url

Kanonische J-PlatPat-URL

jpo_get_opd_family

Fünf-Ämter-Patentfamilie (JPO / USPTO / EPO / CNIPA / KIPO)

jpo_get_opd_doc_list

OPD-Dokumentliste

jpo_fetch_full_record

Hochrangiger zusammengesetzter Aufruf, der auf mehrere offizielle Endpunkte verteilt (bleibt vollständig innerhalb der offiziellen API)

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

Name

Zweck

external_search_patents_by_keyword

Freitext-/Anmelder-/IPC-/Datumsbereichssuche japanischer Patente (Google Patents XHR, Referenznutzung)

Antwort: {"ok": true, "source": "google_patents_unofficial", "data": {…}}

Isoliert, weil die offizielle API keine Stichwortsuche bietet (nur Nummern-Lookup). Bei Fehlern gibt sie {"ok": false, "kind": "search_unavailable"} zurück und fällt niemals auf ein offizielles Tool zurück.


Ratenbegrenzungen (Betrieb)

Die offizielle JPO-API überträgt die Verantwortung für die Selbstbegrenzung dem Betreiber:

  • Pro-Minuten-Rate: /api/patent/* ist 10 Anfragen/min, /opdapi/* ist 5 Anfragen/min (OPD wird separat in einem eigenen Bucket gezählt).

  • Tageskontingent: 30–800/Tag pro Endpunkt (nationale API-Kontingente wurden im März 2026 verdoppelt). Der maßgebliche Live-Zähler ist result.remainAccessCount, der in jeder Antwort zurückgegeben wird.

  • jpo_fetch_full_record verteilt auf 4 offizielle Endpunkte parallel, sodass ein Aufruf 1 Einheit von jedem von 4 separaten Tageskontingenten verbraucht (nicht 4 vom selben Kontingent). Der Engpass ist das jeweils niedrigste Kontingent.

Für die Tool-zu-Endpunkt-Zuordnung und betriebliche Schwellenwerte siehe OPERATIONS.md §JPO API レート制約とクォータ (Japanisch).


Dokumentation

  • 📐 PLAN.md — Designplan (Architektur, vollständige Tool-Liste, Phasenplan) [JP]

  • 🤖 CLAUDE.md — Claude Code-Anleitung (unverhandelbare Designregeln, JPO-API-Stolperfallen) [JP]

  • 🔧 OPERATIONS.md — Betriebsrunbook (Zugriffsprotokoll-Zusammenfassung, Master-Passwort-Rotation, Fehlerbehebung) [JP]


Platzhalter

Beispiel

So einstellen

YOUR_SERVER_IP

192.0.2.10

LAN-IP Ihres Bereitstellungshosts

<SSH_USER>

youruser

SSH-Benutzername auf dem Host

your-host.example.com

Ihre eigene Domain

Öffentlicher Hostname hinter Cloudflare / Ihrem Reverse-Proxy

Die Portbindung in docker-compose.yml ist standardmäßig 127.0.0.1:8765 (nur gleiche Maschine). Um sie im LAN verfügbar zu machen, erstellen Sie eine separate docker-compose.override.yml (bereits gitignored), um sie zu überschreiben.

Lizenz

MIT — siehe LICENSE.

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