WooCommerce
WooCommerce Product Detail
Read public products from a specified WooCommerce store.
MCP tool name
nexscope_woocommerce_product_detailMCP endpoint
https://api.nexscope.ai/mcpJSON-RPC method
tools/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": "woocommerce-product-detail-1",
"method": "tools/call",
"params": {
"name": "nexscope_woocommerce_product_detail",
"arguments": {
"productId": "34",
"storeUrl": "https://example.com"
}
}
}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 |
|---|---|---|---|
storeUrl | string | required | Public HTTPS store root or WordPress installation path, without query or fragment. Example: https://example.com |
productId | string | required | Store-scoped positive product ID, at most 19 decimal digits. Example: 34 |
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 β requires storeUrl, fetchedAt, cacheHit, product
| Name | Type | Required | Description |
|---|---|---|---|
data | object | required | Data value used by this API operation. |
data.cacheHit | boolean | required | Whether the response was served from the anonymous 60-second cache. Example: false |
data.fetchedAt | string | required | Fetch time in epoch milliseconds, not the product modification time. Example: 1792972800000 |
data.product | object | required | Normalized public products. Example: {} |
data.product.description | any | optional | Plain text or public product identifier. |
data.product.id | any | optional | Plain text or public product identifier. |
data.product.images | array | required | Public image URLs; images are not fetched by this API. Example: [] |
data.product.images[] | object | required | Public image URLs; images are not fetched by this API. |
data.product.images[].alt | string | required | Plain text alternative label. Example: Shirt |
data.product.images[].url | string | required | Image URL. Example: https://example.com/image.jpg |
data.product.isInStock | any | optional | Store value, null when unavailable. |
data.product.isPasswordProtected | any | optional | Store value, null when unavailable. |
data.product.name | any | optional | Plain text or public product identifier. |
data.product.parentId | any | optional | Store value; null when unavailable. |
data.product.prices | object | required | Anonymous store pricing; decimal values are strings for exact precision. Example: {} |
data.product.prices.currency | string | required | Currency code. Example: USD |
data.product.prices.maxPrice | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.maxPriceMinor | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.minPrice | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.minPriceMinor | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.minorUnit | integer | required | Currency decimal precision. Example: 2 |
data.product.prices.price | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.priceMinor | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.regularPrice | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.regularPriceMinor | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.salePrice | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.prices.salePriceMinor | any | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
data.product.shortDescription | any | optional | Plain text or public product identifier. |
data.product.sku | any | optional | Plain text or public product identifier. |
data.product.stockQuantity | any | optional | Always null: public Store API does not expose exact inventory. |
data.product.type | any | optional | Store value; null when unavailable. |
data.product.url | any | optional | Plain text or public product identifier. |
data.product.variation | any | optional | Plain text or public product identifier. |
data.storeUrl | string | required | Normalized store identity. Example: https://example.com |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.description | string | optional | Plain text or public product identifier. Example: Cotton shirt. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.description | null | optional | Plain text or public product identifier. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.id | string | optional | Plain text or public product identifier. Example: 34 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.id | null | optional | Plain text or public product identifier. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.isInStock | boolean | optional | Store value, null when unavailable. Example: true |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.isInStock | null | optional | Store value, null when unavailable. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.isPasswordProtected | boolean | optional | Store value, null when unavailable. Example: false |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.isPasswordProtected | null | optional | Store value, null when unavailable. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.name | string | optional | Plain text or public product identifier. Example: Cotton Shirt |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.name | null | optional | Plain text or public product identifier. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.parentId | string | optional | Store value; null when unavailable. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.parentId | null | optional | Store value; null when unavailable. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.maxPrice | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.maxPrice | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.maxPriceMinor | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.maxPriceMinor | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.minPrice | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.minPrice | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.minPriceMinor | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.minPriceMinor | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.price | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: 11.05 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.price | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.priceMinor | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.priceMinor | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.regularPrice | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.regularPrice | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.regularPriceMinor | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.regularPriceMinor | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.salePrice | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.salePrice | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.salePriceMinor | string | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.prices.salePriceMinor | null | optional | Exact amount string; null when unavailable. Minor suffix denotes original smallest-unit amount. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.shortDescription | string | optional | Plain text or public product identifier. Example: Cotton shirt. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.shortDescription | null | optional | Plain text or public product identifier. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.sku | string | optional | Plain text or public product identifier. Example: SHIRT-34 |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.sku | null | optional | Plain text or public product identifier. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.stockQuantity | integer | optional | Always null: public Store API does not expose exact inventory. Example: null |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.stockQuantity | null | optional | Always null: public Store API does not expose exact inventory. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.type | string | optional | Store value; null when unavailable. Example: simple |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.type | null | optional | Store value; null when unavailable. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.url | string | optional | Plain text or public product identifier. Example: https://example.com/product/shirt |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.url | null | optional | Plain text or public product identifier. |
Any of option 1
| Name | Type | Required | Description |
|---|---|---|---|
data.product.variation | string | optional | Plain text or public product identifier. Example: |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data.product.variation | null | optional | Plain text or public product identifier. |
Any of option 2
| Name | Type | Required | Description |
|---|---|---|---|
data | null | required | Data value used by this API operation. |
Examples
Example arguments
{
"productId": "34",
"storeUrl": "https://example.com"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {
"cacheHit": false,
"fetchedAt": "1792972800000",
"product": {
"description": "Cotton shirt.",
"id": "34",
"images": [
{
"alt": "Shirt",
"url": "https://example.com/image.jpg"
}
],
"isInStock": true,
"isPasswordProtected": false,
"name": "Cotton Shirt",
"prices": {
"currency": "USD",
"minorUnit": 2,
"price": "11.05"
},
"shortDescription": "Cotton shirt.",
"sku": "SHIRT-34",
"type": "simple",
"url": "https://example.com/product/shirt",
"variation": ""
},
"storeUrl": "https://example.com"
},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}