Skip to main content
Glama
AIAgentStudy

korea-shopping-mcp

by AIAgentStudy

korea-shopping-mcp

Claude Code 안에서 자연어로 한국 이커머스(네이버 쇼핑) 상품을 검색·가격비교·트렌드 조회·로컬 저장하게 해주는 MCP 서버입니다. 네이버 쇼핑 검색 API와 DataLab 쇼핑인사이트 API만 사용하는 검색 전용 서버로, 안전하고 빠릅니다(장바구니/결제·크롤링은 하지 않습니다).

제공 도구

도구

설명

search_products

키워드로 상품 검색. 정렬(연관도/최신/최저가/최고가), 가격대 필터, 중고·렌탈·해외직구 제외, 네이버페이 필터.

compare_products

검색어 2~5개를 한 번에 비교(검색어별 최저가·가격대·대표 쇼핑몰).

shopping_trends

DataLab 쇼핑인사이트로 카테고리별 상대 트렌드 추이(0~100). ⚠️ 실시간 인기검색어 순위가 아님.

save_results

직전(또는 지정) 검색/비교/트렌드 결과를 마크다운/JSON 파일로 저장(위시리스트).

Related MCP server: mcp-server-naver-search

1. 네이버 API 키 발급 (필수)

각 사용자가 본인 키를 발급받아 사용합니다.

  1. 네이버 개발자센터에 로그인합니다.

  2. Application → 애플리케이션 등록에서 새 앱을 만듭니다.

  3. 사용 API에 다음 두 가지를 모두 추가합니다:

    • 검색 (쇼핑 검색용)

    • 데이터랩(쇼핑인사이트) (트렌드용)

  4. 등록 후 발급되는 Client IDClient Secret을 복사합니다.

호출 한도: 검색 25,000회/일, 데이터랩 1,000회/일 (Client ID 기준).

2. 설치 (Claude Code)

발급받은 키를 --env로 주입해 등록합니다. 키는 본인 PC의 환경변수에만 저장되며 외부로 전송되지 않습니다.

claude mcp add --scope user \
  --env NAVER_CLIENT_ID=발급받은ID \
  --env NAVER_CLIENT_SECRET=발급받은SECRET \
  korea-shopping-mcp -- npx -y korea-shopping-mcp

등록 확인:

claude mcp list
# korea-shopping-mcp  ✓ Connected  이면 정상

3. 환경변수

변수

필수

설명

NAVER_CLIENT_ID

네이버 앱 Client ID

NAVER_CLIENT_SECRET

네이버 앱 Client Secret

SHOPPING_MCP_OUTPUT_DIR

저장 파일 위치. 기본값: ~/.korea-shopping-mcp/reports

4. 사용 예시 (자연어 프롬프트)

  • "샤오미 보조배터리 최저가 5개 찾아줘"

  • "로지텍 MX 마스터와 애플 매직마우스 가격 비교해줘"

  • "10만원대 기계식 키보드만 보여줘" (가격대 필터)

  • "최근 3개월 디지털/가전과 식품 카테고리 트렌드 보여줘"

  • "방금 결과를 마크다운 파일로 저장해줘"

한계 (범위 밖)

  • 장바구니 담기·결제 등 구매 행동은 하지 않습니다(검색·비교 전용).

  • 쿠팡·G마켓·11번가 등 네이버 외 플랫폼은 공식 API 제약으로 미지원.

  • 트렌드는 상대 추이일 뿐, "실시간 인기검색어 순위"가 아닙니다.

개발

npm install
npm test          # 단위 테스트 (vitest)
npm run build     # dist/ 생성

로컬에서 빌드 산출물로 직접 등록해 개발할 때:

claude mcp add --scope user \
  --env NAVER_CLIENT_ID=... --env NAVER_CLIENT_SECRET=... \
  korea-shopping-mcp -- node "<프로젝트 경로>/dist/index.js"

stdio 서버이므로 코드에서 console.log 사용 금지(스트림 오염). 로깅은 console.error만.

라이선스

MIT

Available Tools

4 tools
compare_products상품 가격 비교A
Read-only

여러 후보 검색어(2~5개)를 한 번에 검색해 검색어별 최저가·가격대·대표 쇼핑몰을 비교 표로 보여줍니다. 'A vs B' 같은 구조적 비교에 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo정렬: 기본 asc(최저가순)asc
queriesYes비교할 검색어 2~5개
perQueryNo검색어당 가져올 상품 수 (기본 5)

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint=true and openWorldHint=true, indicating a safe read operation. The description adds that the output is a comparison table including price range and representative mall, giving useful behavioral context without contradicting annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences, front-loaded with the action and outcome. The first sentence explains the functionality and the second gives a clear usage example. No wasteful repetition of schema details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the tool's purpose, usage, and output structure (comparison table with specific elements). Annotations cover safety, and schema covers parameters. It lacks only nuances like pagination or edge cases, but for a read-only comparison tool, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with each parameter (queries, sort, perQuery) having its own description. The tool description does not add extra parameter semantics beyond what the schema already provides, which is the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool searches multiple candidate queries (2-5) and displays a comparison table of lowest price, price range, and representative shopping mall. This distinctively separates it from sibling tools like search_products (single search) or shopping_trends, satisfying 'specific verb+resource+scope'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It clearly instructs to use for structured comparisons like 'A vs B', providing concrete usage context. It does not explicitly name alternatives or exclusions, but the comparison use case is sufficiently clear and differentiates from siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_results결과 로컬 저장A

직전(또는 resultId로 지정한) 검색/비교/트렌드 결과를 마크다운 또는 JSON 파일로 로컬에 저장합니다. 위시리스트/기록 용도로 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo저장 형식 (기본 markdown)markdown
filenameNo파일명(확장자 생략 가능). 생략 시 자동 생성
resultIdNo저장할 결과 id(예: search-1). 생략 시 가장 최근 결과를 저장

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description adds behavioral context beyond annotations by explaining the result selection logic (most recent or specified by resultId) and the file saving action. However, it does not disclose potential side effects such as overwriting existing files, behavior when no result exists, or return values. Annotations only provide readOnlyHint=false, which is already implied by 'saves', so the description adds limited new behavioral detail.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, with the first sentence front-loading the core function and the second providing the intended use case. Every word is purposeful, with no redundant or vague phrasing, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the tool's purpose, result selection logic, output formats, and use case, which is sufficient for an agent to understand how to invoke it. It lacks details about error handling, return values, or overwriting behavior, but given the simple nature of the tool and the comprehensive schema descriptions, the description is adequately complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with descriptions for all three parameters, including format, filename, and resultId. The tool description mentions '직전(또는 resultId로 지정한)' which aligns with the resultId schema description, but does not add any additional parameter semantics beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('저장합니다' - saves) and resource (search/comparison/trend results) to a local file, with explicit formats (markdown or JSON). This clearly distinguishes it from sibling tools like search_products, compare_products, and shopping_trends, which generate results rather than save them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says '위시리스트/기록 용도로 사용하세요' (use for wishlist/record purposes), giving a clear context for when to use the tool. It does not explicitly mention when not to use it or name alternatives, but the intended use case is specific and helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_products네이버 쇼핑 상품 검색A
Read-only

네이버 쇼핑 공식 API로 한국 이커머스 상품을 검색합니다. 상품명·최저가·쇼핑몰·카테고리·링크를 마크다운 표로 반환합니다. 가격 비교와 초기 탐색 단계에서 사용하세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo정렬: sim 연관도, date 최신순, asc 최저가순, dsc 최고가순sim
limitNo반환 개수 (1~100, 기본 10)
queryYes상품 검색 키워드 (예: '로지텍 무선 마우스')
startNo페이지네이션 시작 위치 (1~1000)
excludeNo제외할 상품 유형: used 중고 / rental 렌탈 / overseas 해외직구
maxPriceNo최고 가격 필터(원). 서버측 적용
minPriceNo최저 가격 필터(원). 서버측 적용
naverPayOnlyNo네이버페이 연동 상품만

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and scope. The description adds behavioral detail by specifying the exact output format (markdown table with listed fields) and official API nature, which is useful beyond the annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and resource, and no filler. Every word adds value, explaining what it does, what it returns, and when to use it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 8 parameters and no output schema, the description covers the return format and usage context well. It does not discuss pagination or filter combination, but the schema covers parameter details, and the description is sufficiently complete for a search tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with all parameters (query, sort, limit, start, exclude, maxPrice, minPrice, naverPayOnly) having descriptive Korean labels in the schema. The description does not add parameter-level meaning, but the schema already provides it, so the baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb '검색합니다' (search) identifies the action, and the description lists return fields (상품명·최저가·쇼핑몰·카테고리·링크) as a markdown table. It clearly differs from siblings like compare_products and shopping_trends by focusing on general search and initial exploration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states '가격 비교와 초기 탐색 단계에서 사용하세요' (use for price comparison and initial exploration), giving clear context for when to use. It does not mention when not to use or name alternatives, but the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.1.0
    • First observedcompare_products
    • First observedsave_results
    • First observedsearch_products
    • First observedshopping_trends

TDQS

A4.2/5.0
Disambiguation4/5

The tools are mostly distinct: search_products performs a single detailed search, compare_products compares multiple search terms, shopping_trends provides trend data, and save_results persists results. However, compare_products and search_products both return product listings and could be confused for simple queries, though the descriptions clarify the intended use.

Naming Consistency4/5

Three tools follow a clear verb_noun pattern (compare_products, search_products, save_results), but shopping_trends deviates as a noun phrase instead of a verb-based name. This is a minor inconsistency in an otherwise predictable naming scheme.

Tool Count5/5

With only 4 tools, the server is well-scoped for its purpose. Each tool serves a distinct function in the shopping workflow—search, compare, trend analysis, and saving—and no tool feels redundant or missing from the core set.

Completeness4/5

The tool set covers the primary workflows: searching, comparing, and analyzing trends, plus persisting results. A minor gap is the lack of a way to retrieve or list previously saved results through the MCP, but this can be worked around by reading local files or using resultId references.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Provides access to Naver Search APIs, allowing AI agents to search across multiple categories (blogs, news, books, images, shopping items, etc.) with structured responses optimized for LLM consumption.
    13
    4
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables searching and retrieving product information from Coupang (Korean e-commerce) via affiliate API, including product search, details, category bestsellers, and affiliate link generation.
    3
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to search and compare Korean PC parts prices from Danawa and Compuzone, build assembly estimates with automatic compatibility checks, and track price history.
    11
    14
    10
    MIT

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/AIAgentStudy/mcp_study'

If you have feedback or need assistance with the MCP directory API, please join our Discord server