Design Registration Research
Nexscope Utility Patent Image Search
Perform visual similarity search for utility model patents using an image URL, with filtering by country, legal status, date ranges, and assignee. Supports utility model patents only (type U) with shape-only or shape+pattern+color matching models. For design patents, use ecommerce.zhihuiya-patent-image-search instead.
nexscope_zhihuiya_utility_patent_image_searchhttps://api.nexscope.ai/mcptools/callAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication fails, ask the user to open API Access and copy a valid key.
Call this MCP tool
Initialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "zhihuiya-utility-patent-image-search-1",
"method": "tools/call",
"params": {
"name": "nexscope_zhihuiya_utility_patent_image_search",
"arguments": {
"country": "US",
"isHttps": 0,
"limit": 10,
"model": 4,
"offset": 0,
"patentType": "U",
"preFilter": 1,
"stemming": 0,
"url": "https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg"
}
}
}MCP 2025-11-25 ยท Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
url | string | required | Image URL (maximum 1,000 characters) Example: https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg |
patentType | string | required | Patent type: U for a utility model patent. Default: U Example: U |
model | integer | required | Image-search model. Design patents: 1 (smart association, recommended) or 2 (search this image). Utility model patents: 3 (match shape) or 4 (match shape, pattern, and color; recommended) Example: 4 |
country | string | optional | Patent authority codes for countries, organizations, or regions, separated by commas, for example CN,US,JP. Omit to search all patent authorities Example: {} |
loc | string | optional | LOC classifications (Locarno classification numbers). Join multiple classifications with AND, OR, or NOT Example: {} |
legalStatus | string | optional | Comma-separated patent legal-status codes. Values: 1 (published), 2 (substantive examination), 3 (granted), 8 (duplicate-grant avoidance), 11 (withdrawn), 12 (withdrawn-unspecified), 17 (deemed withdrawn), 18 (voluntarily withdrawn), 13 (rejected), 14 (fully revoked), 15 (expired), 16 (annual fee unpaid), 21 (rights restored), 22 (rights terminated), 23 (partially invalid), 24 (application terminated), 30 (abandoned), 19 (deemed abandoned), 20 (voluntarily abandoned), 25 (abandoned-unspecified), 222 (PCT did not enter designated state within designation period), 223 (PCT entered designated state within designation period), 224 (PCT entered designated state after designation period), and 225 (PCT did not enter designated state after designation period) Example: {} |
simpleLegalStatus | string | optional | Comma-separated simplified patent legal-status codes. Values: 0 (inactive), 1 (active), 2 (pending), 220 (PCT designation period expired), 221 (within PCT designation period), and 999 (unconfirmed) Example: {} |
assignees | string | optional | Applicant or patent owner (maximum 1,000 characters) Example: {} |
applyStartTime | string | optional | Patent application start date in yyyyMMdd format Example: {} |
applyEndTime | string | optional | Patent application end date in yyyyMMdd format Example: {} |
publicStartTime | string | optional | Patent publication start date in yyyyMMdd format Example: {} |
publicEndTime | string | optional | Patent publication end date in yyyyMMdd format Example: {} |
limit | integer | optional | Number of patents to return, from 1 to 100. Default: 10 Example: 10 |
offset | integer | optional | Result offset, from 0 to 1,000. Default: 0 Example: 0 |
field | string | optional | Result sort field: SCORE (relevance), APD (application date), PBD (publication date), or ISD (grant date). Default: SCORE Example: {} |
order | string | optional | Available when field is APD, PBD, or ISD: desc (descending) or asc (ascending). Default: desc Example: {} |
lang | string | optional | Preferred title language: original (original patent title), cn (Chinese-translated title), or en (English-translated title). Default: original Example: {} |
preFilter | integer | optional | Whether to enable country/LOC pre-filtering: 1 for enabled and 0 for disabled. Default: 1 Example: 1 |
stemming | integer | optional | Whether to enable stemming: 1 for enabled and 0 for disabled. Default: 0 Example: 0 |
mainField | string | optional | Primary patent fields, including title, abstract, claims, specification, publication number, application number, applicant, inventor, and IPC/UPC/LOC classifications (maximum 1,000 characters) Example: {} |
includeMachineTranslation | boolean | optional | Include machine-translated data in the search Example: false |
scoreExpansion | boolean | optional | Score expansion Example: false |
isHttps | integer | optional | Whether to return images over HTTPS: 1 for HTTPS and 0 for HTTP. Default: 0 Example: 0 |
returnImgId | boolean | optional | Whether to return img_id. Default: false Example: false |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
code | integer | required | 0 means accepted or successful; nonzero is a platform error. |
cost | string | required | Elapsed milliseconds, never credits; -1 outside web requests. |
data | any | required | Data value used by this API operation. |
msg | string | null | required | Msg value used by this API operation. |
time | string | required | Server local time: yyyy-MM-dd HH:mm:ss. |
traceId | string | null | required | Trace id value used by this API operation. |
ts | string | required | Epoch milliseconds. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.allRecordsCount | integer | optional | Total number of matching records in the database Example: 1 |
data.columns | array | optional | Column definitions used for rendering Example: [] |
data.costTime | integer | optional | Execution time reported by the upstream provider. Example: null |
data.costToken | integer | optional | Tokens consumed Example: 1 |
data.data | array | optional | Matching patent records Example: [] |
data.data[] | object | required | Matching patent records |
data.data[].apdt | integer | optional | Application date (timestamp) Example: 1 |
data.data[].apno | string | optional | Application number Example: null |
data.data[].authority | string | optional | Patent authority (country code) Example: null |
data.data[].currentAssignee | string | optional | Current assignee Example: null |
data.data[].imgId | string | optional | Patent drawing img_id, returned only when returnImgId is true Example: example-id |
data.data[].inventor | string | optional | Inventor Example: null |
data.data[].loc | array | optional | LOC classification (Locarno classification number) Example: [] |
data.data[].locMatch | integer | optional | Whether a high-weight LOC class matched: 1 for matched and 0 for not matched. Available only when model=1 and field=SCORE Example: 1 |
data.data[].originalAssignee | string | optional | Original assignee Example: null |
data.data[].patentId | string | optional | Similar patent ID Example: example-id |
data.data[].patentPn | string | optional | Similar patent number Example: null |
data.data[].pbdt | integer | optional | Publication date (timestamp) Example: 1 |
data.data[].score | number | optional | Similarity score; higher values indicate greater similarity. Available only when field is SCORE Example: 1 |
data.data[].title | string | optional | Patent title Example: null |
data.data[].url | string | optional | URL of the similar patent drawing Example: https://example.com/image.jpg |
data.dataSnapshotMonth | string | optional | Data snapshot month returned by the upstream provider. Example: null |
data.page | integer | optional | Current page 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.pageSize | integer | optional | Page size returned by the upstream provider. Example: null |
data.sourceTool | string | optional | Provider-specific source tool name. Example: null |
data.sourceType | string | optional | Provider-specific source platform type. Example: null |
data.title | string | optional | Provider-specific response title. Example: null |
data.total | integer | optional | Number of records returned in this response Example: 1 |
data.totalPage | integer | optional | Total page count returned by the upstream provider. Example: null |
data.type | string | optional | Rendering style Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Examples
Example arguments
{
"country": "US",
"isHttps": 0,
"limit": 10,
"model": 4,
"offset": 0,
"patentType": "U",
"preFilter": 1,
"stemming": 0,
"url": "https://m.media-amazon.com/images/I/719mRAn2VrL._AC_SL1500_.jpg"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {
"allRecordsCount": 1,
"columns": [],
"costToken": 1,
"data": [
{
"apdt": 1,
"imgId": "example-id",
"loc": [],
"locMatch": 1,
"patentId": "example-id",
"pbdt": 1,
"score": 1,
"url": "https://example.com/image.jpg"
}
],
"total": 1
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}