Patent & IP Risk
Ruiguan Detection Patent Design MCP Tool
Detect design patent infringement risks by comparing a product image against a global design patent database across 25+ jurisdictions.
MCP tool name
nexscope_ruiguan_detection_patent_designLegacy MCP endpoint
/api/skill-api/v1/mcpJSON-RPC method
tools/callAuthentication
Send the user API key as a bearer token on every MCP JSON-RPC request.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication is missing or invalid, ask the user to open API Access and copy a valid key before calling this tool.
Call this MCP tool
Use tools/call with the MCP tool name below. The arguments object should match the table on this page.
{
"jsonrpc": "2.0",
"id": "ruiguan-detection-patent-design-1",
"method": "tools/call",
"params": {
"name": "nexscope_ruiguan_detection_patent_design",
"arguments": {
"imageUrl": "https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg",
"productTitle": "Magnetic phone case",
"patentStatus": "1,0",
"queryMode": "physical",
"productDescription": "A protective smartphone case with a magnetic ring stand and shockproof corners.",
"topNumber": 10,
"regions": "US",
"enableRadar": false
}
}
}Legacy endpoint
POST /api/skill-api/v1/mcpCanonical detail URL
https://www.nexscope.ai/mcp-map/ruiguan-detection-patent-designArguments
| Name | Type | Required | Meaning |
|---|---|---|---|
imageUrl | string | required | Product image URL used for comparison with the patent database (maximum 1,000 characters) Example: https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg |
queryMode | string | required | Search mode: physical for product-photo search, line for line-drawing search, or hybrid for combined search. Maximum 1,000 characters Example: physical |
topNumber | integer | required | Number of patents to return (maximum 100) Example: 10 |
regions | string | optional | Country or region codes where the product is sold, separated by commas, for example US,EU,CN. Maximum 1,000 characters Available options
Example: US |
productTitle | string | optional | Product title used to provide additional search context (maximum 1,000 characters) Example: Magnetic phone case |
productDescription | string | optional | Product description used to provide additional search context (maximum 1,000 characters) Example: A protective smartphone case with a magnetic ring stand and shockproof corners. |
patentStatus | string | optional | Patent-validity filter: 1 for active patents, 0 for inactive patents, or 1,0 for all patents. Maximum 1,000 characters Example: 1,0 |
enableRadar | boolean | optional | Whether to enable AI radar analysis for potential infringement Example: false |
topLoc | string | optional | Top-level LOC classes to search, for example 06,07. Pattern: ^(0[1-9]\ Example: {} |
sourceLanguage | string | optional | Source-language code used to translate content into English, for example zh-CN. Leave empty when the text is already English. Maximum 1,000 characters Example: {} |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
data | any | required | Data value used by this API operation. |
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
msg | string | null | required | Msg value used by this API operation. |
ts | string | required | Epoch milliseconds. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
traceId | string | null | required | Trace id value used by this API operation. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.total | integer | optional | Total number of patent records returned Example: 1 |
data.data | array | optional | Patent records; see the patent fields below Example: [] |
data.columns | array | optional | Column definitions used for rendering Example: [] |
data.costToken | integer | optional | Tokens consumed Example: 1 |
data.type | string | optional | Rendering style Example: null |
data.data[].applicationNumber | string | optional | Patent application number Example: null |
data.data[].publicationNumber | string | optional | Patent publication number Example: null |
data.data[].patentProd | string | optional | Patent title in English Example: null |
data.data[].patentProdCn | string | optional | Patent title in Chinese Example: null |
data.data[].similarity | string | optional | Similarity between the patent and product image (0-1) Example: null |
data.data[].patentImageUrl | string | optional | URL of the patent drawing most similar to the product image Example: https://example.com/image.jpg |
data.data[].images | array | optional | Patent image URLs Example: [] |
data.data[].abstracts | string | optional | Patent abstract Example: null |
data.data[].specification | string | optional | Patent specification Example: null |
data.data[].inventors | array | optional | Inventors Example: [] |
data.data[].applicants | array | optional | Applicants Example: [] |
data.data[].applicantAddresses | array | optional | Applicant addresses Example: [] |
data.data[].troCase | boolean | optional | Whether the patent has a history of TRO enforcement Example: false |
data.data[].troHolder | boolean | optional | Whether the patent belongs to a TRO rights holder Example: false |
data.data[].radarResult | object | optional | AI radar analysis result Example: {} |
data.radarResult.same | boolean | optional | Whether infringement is suspected Example: false |
data.radarResult.exp | string | optional | Radar decision explanation Example: null |
data.data[].patentLoc | string | optional | LOC classifications for the patent, separated by commas Example: null |
data.data[].locOneInfo | string | optional | Top-level LOC details Example: null |
data.data[].locTwoInfo | string | optional | Second-level LOC details Example: null |
data.data[].patentValidity | string | optional | Patent validity Example: null |
data.data[].applicationDate | string | optional | Patent application date Example: 2026-01-01 |
data.data[].publicationDate | string | optional | Patent publication date Example: 2026-01-01 |
data.data[].grantDate | string | optional | Patent grant date Example: 2026-01-01 |
data.data[].estimatedDueDate | string | optional | Estimated expiration date Example: 2026-01-01 |
data.data[].registrationOfficeCode | string | optional | Patent registration office Example: null |
data.data[].patentFamily | array | optional | Patent family Example: [] |
data.data[].globalPatentId | string | optional | Global patent ID Example: example-id |
data.data[].globalImageId | string | optional | Patent image ID Example: example-id |
data.data[].isSketchText | string | optional | Whether the image is a line drawing Example: null |
data.title | string | optional | Provider-specific response title. Example: null |
data.sourceType | string | optional | Provider-specific source platform type. Example: null |
data.sourceTool | string | optional | Provider-specific source tool name. Example: null |
data.costTime | integer | optional | Execution time reported by the upstream provider. Example: null |
data.page | integer | optional | Current page returned by the upstream provider. Example: null |
data.pageSize | integer | optional | Page size returned by the upstream provider. Example: null |
data.pageItemCount | integer | optional | Item count on the current page returned by the upstream provider. Example: null |
data.totalPage | integer | optional | Total page count returned by the upstream provider. Example: null |
data.dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Examples
Example arguments
{
"imageUrl": "https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg",
"productTitle": "Magnetic phone case",
"patentStatus": "1,0",
"queryMode": "physical",
"productDescription": "A protective smartphone case with a magnetic ring stand and shockproof corners.",
"topNumber": 10,
"regions": "US",
"enableRadar": false
}Example structuredContent
{
"data": {
"total": 1,
"data": [
{
"patentImageUrl": "https://example.com/image.jpg",
"images": [],
"inventors": [],
"applicants": [],
"applicantAddresses": [],
"troCase": false,
"troHolder": false,
"radarResult": {},
"applicationDate": "2026-01-01",
"publicationDate": "2026-01-01",
"grantDate": "2026-01-01",
"estimatedDueDate": "2026-01-01",
"patentFamily": [],
"globalPatentId": "example-id",
"globalImageId": "example-id"
}
],
"columns": [],
"costToken": 1,
"radarResult": {
"same": false
}
},
"code": 0,
"msg": null,
"ts": "0",
"time": "2026-01-01 00:00:00",
"cost": "-1",
"traceId": null
}