Sample Shop MCP server

Sample shop MCP server: paginated search, idempotent orders, guarded cancellation. Four languages.

사용해야 할까요

품질 및 안전성

A
설명 품질
95%
스키마 완전성
98%
이름 품질
100%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~697토큰 (도구 정의)
~1.1 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 0.54%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`claude_desktop_config.json` 파일에 다음을 추가하세요:

{
  "mcpServers": {
    "sample-shop-mcp": {
      "command": "npx",
      "args": [
        "@apitoagents/sample-shop-mcp"
      ]
    }
  }
}

실행 가능한 패키지

npm@apitoagents/sample-shop-mcp1.0.1stdio

원격 엔드포인트

https://demo.apitoagents.com/mcpstreamable-http

할 수 있는 일

도구 목록

도구 (4)

🟢 읽기 전용🟡 쓰기🔴 삭제⚪ 알 수 없음
🟢search_products(query, category, limit, cursor)

Search the shop catalogue by phrase and optional category. Returns one page of up to `limit` products and a `nextCursor`; when nextCursor is not null, more results exist and you must say so rather than claiming the list is complete. Use get_product for full details of one item. This tool does not place orders.

입력 스키마

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Words to match against product names and descriptions.",
      "type": "string",
      "maxLength": 100
    },
    "category": {
      "description": "Restrict results to one category.",
      "type": "string",
      "enum": [
        "lighting",
        "furniture",
        "kitchen"
      ]
    },
    "limit": {
      "default": 5,
      "description": "Page size.",
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "cursor": {
      "description": "Opaque token from a previous page's nextCursor. Never invent one.",
      "type": "string"
    }
  },
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟢get_product(productId)

Return the full details of one product by its id (for example p-1001). Use search_products first if you only know a name.

입력 스키마

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "description": "The product id from search_products."
    }
  },
  "required": [
    "productId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🟡create_order(productId, quantity, idempotencyKey)

Place an order for one product. Generate one random idempotencyKey per user request and reuse the same key if you retry after an error or timeout; the shop returns the original order instead of creating a duplicate. Confirm product and quantity with the user before calling. Returns the order with its id, status and total.

입력 스키마

{
  "type": "object",
  "properties": {
    "productId": {
      "type": "string",
      "description": "Product id from search_products or get_product."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "Units to order, 1 to 10."
    },
    "idempotencyKey": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128,
      "description": "A unique key you generate for this order attempt and reuse on retry."
    }
  },
  "required": [
    "productId",
    "quantity",
    "idempotencyKey"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}
🔴cancel_order(orderId, confirm)

Cancel an order that has not shipped. This cannot be undone. Call it first with confirm=false to get the order details, show them to the user, and only after the user explicitly agrees call again with confirm=true.

입력 스키마

{
  "type": "object",
  "properties": {
    "orderId": {
      "type": "string",
      "description": "The order id, for example o-5001."
    },
    "confirm": {
      "default": false,
      "description": "Set true only after the user has explicitly confirmed the cancellation.",
      "type": "boolean"
    }
  },
  "required": [
    "orderId"
  ],
  "$schema": "https://json-schema.org/draft/2020-12/schema"
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 4개