Sample Shop MCP server
Sample shop MCP server: paginated search, idempotent orders, guarded cancellation. Four languages.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"sample-shop-mcp": {
"command": "npx",
"args": [
"@apitoagents/sample-shop-mcp"
]
}
}
}実行可能なパッケージ
1.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"
}コミュニティ
エビデンス