mcpField
N
Naver Commerce

Naver Commerce

Local
appmonster.co.krBusiness & Marketing0Updated 6d ago

About Naver Commerce

Naver Commerce is an MCP server for operating Naver Smart Store through the Naver Commerce API. It serves store operators and agents that need product, order, inquiry, and inventory workflows, including product creation and image uploads.

Key features

  1. 01List and inspect products
  2. 02Read orders and customer inquiries
  3. 03Update product stock
  4. 04Upload images and create products
  5. 05Approval hints for write tools

Use cases

  1. 01Check recent Smart Store orders
  2. 02Review customer inquiries
  3. 03Change inventory levels
  4. 04Prepare and create product listings

MCP support

Exposes Naver Commerce API operations as tools for MCP clients, including read and write actions. Write tools are marked destructive, and the server supports an external approval step.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"groove79-mcp-naver-commerce": {
"command": "npx",
"args": [
"-y",
"@appmonster/mcp-naver-commerce"
],
"env": {
"NAVER_COMMERCE_CLIENT_ID": "<NAVER_COMMERCE_CLIENT_ID>",
"NAVER_COMMERCE_CLIENT_SECRET": "<NAVER_COMMERCE_CLIENT_SECRET>",
"OKAGENT_API_KEY": "<OKAGENT_API_KEY>",
"KMCP_WRITE_MODE": "<KMCP_WRITE_MODE>"
}
}
}
}
Run commandnpx -y @appmonster/mcp-naver-commerce
Environment variables to set
NAVER_COMMERCE_CLIENT_IDApplication client id from apicenter.commerce.naver.com
NAVER_COMMERCE_CLIENT_SECRETSecretApplication client secret (used as bcrypt salt)
OKAGENT_API_KEYSecretOK Agent key (free at okagent.kr) — writes then wait for your OK on KakaoTalk. Unset: writes ask for confirmation in the chat first.
KMCP_WRITE_MODEapproval | confirm | direct (default: approval if OKAGENT_API_KEY is set, else confirm)

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@appmonster/mcp-naver-commerce0.3.0

Tools

7

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
pageintegerNoPage number, 1-based
sizeintegerNoItems per page (max 500)
productNamestringNoPartial product name match
originProductNosarrayNoSpecific origin product numbers
channelProductNosarrayNoSpecific channel product numbers
productStatusTypesarrayNoFilter by status. SALE = on sale, OUTOFSTOCK = sold out

Details

From the project README

@appmonster/mcp-naver-commerce

MCP server for the Naver Commerce API (Smart Store). Lets Claude, Cursor, ChatGPT and any MCP client list products, read orders, answer "any new orders?", and change stock — in Korean or English.

네이버 커머스 API(스마트스토어)용 MCP 서버. 에이전트가 상품·재고·주문·고객문의를 직접 다룹니다.

Install

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "naver-commerce": {
      "command": "npx",
      "args": ["-y", "@appmonster/mcp-naver-commerce"],
      "env": {
        "NAVER_COMMERCE_CLIENT_ID": "your-client-id",
        "NAVER_COMMERCE_CLIENT_SECRET": "your-client-secret"
      }
    }
  }
}

Cursor (.cursor/mcp.json) — same block under "mcpServers".

Claude Code:

claude mcp add naver-commerce -e NAVER_COMMERCE_CLIENT_ID=... -e NAVER_COMMERCE_CLIENT_SECRET=... -- npx -y @appmonster/mcp-naver-commerce

Get credentials at 커머스API센터 → 애플리케이션 등록. The secret is used as a bcrypt salt and never leaves your machine.

Tools

ToolAccessWhat it does
naver_list_productsreadList products with paging/filters (POST /v1/products/search)
naver_get_productreadChannel product detail incl. options and stock (GET /v2/products/channel-products/{no})
naver_update_stockwriteChange stock. No-option product: GET channel product → change stockQuantity → PUT /v2/products/channel-products/{no} whole (Naver has no stock-only API). Option product: PUT …/option-stock
naver_list_ordersreadOrders changed since a time, with details (last-changed-statuses → query)
naver_list_inquiriesreadCustomer 1:1 inquiries in a date range (GET /v1/pay-user/inquiries)
naver_upload_imageswriteUpload images (URL/base64) to Naver → hosted URLs for product creation (POST /v1/product-images/upload)
naver_create_productwriteCreate a product + smartstore channel product (POST /v2/products). Accepts the jp_listing_draft shape from the Japan bridge; statusType: SUSPENSION (or WAIT) to review before sale — Naver ignores the status on create and goes live, so the tool hides the channel product and follows up with a 판매중지 update, then returns the actual status

Write tools carry destructiveHint: true so clients can ask before running them. createServer({ approveWrite }) lets you plug in an external approval step.

Example prompts

  • "어제 이후 새로 결제된 주문 보여줘"
  • "'모자' 상품 재고를 0으로 바꿔줘" (asks first — it's a write)
  • "답변 안 한 고객문의 있어?"

Security

  • Credentials come only from env vars; nothing is stored or sent anywhere except api.commerce.naver.com.
  • Tokens are cached in memory and refreshed 60s before expiry.
  • Errors return Naver's code/message verbatim so the agent can explain what went wrong.

Develop

pnpm install && pnpm -F @appmonster/mcp-naver-commerce build && pnpm -F @appmonster/mcp-naver-commerce test

MIT © Appmonster

Verified live (2026-10-21)

Against a real Smart Store: naver_upload_images (PNG → shop-phinf URL), naver_create_product with statusType: SUSPENSION → read back status: SUSPENSION, displayStatus: SUSPENSION → deleted. Findings baked into the tool: WAIT is rejected on create (mapped to SUSPENSION); deliveryInfo.deliveryCompany (택배사 코드, default CJGLS) is required; the status sent on create is ignored (product appears as SALE), hence the follow-up update. Re-run the check any time: node scripts/create-probe.mjs (creates one 판매중지 product and deletes it).

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.