ec-storefront

JPYC (JPY stablecoin) EC platform MCP: product search, x402 gasless checkout, order status.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
80%
Integridad del esquema
91%
Calidad de los nombres
96%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Hallazgos (4)

  • LOWTool 'list_shops' description lacks action verben list_shops
  • LOWTool 'get_shop' description lacks action verben get_shop
  • LOWTool 'get_product' description lacks action verben get_product
  • LOWTool 'get_order_status' description lacks action verben get_order_status

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~3,165Tokens (definiciones de herramientas)
~1.5 KBTamaño de respuesta típico
Impacto significativo en la atención (2.47% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "ec-storefront": {
      "url": "https://ec.jpyc-service.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://ec.jpyc-service.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (9)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢list_shops

JPYC EC Platform に出店している公開ショップの一覧を返す。減農薬の農産物・地酒・伝統工芸品など、生産者から直接買えるショップが中心。各ショップの name / slug / 説明 / 対応チェーン / 商品点数を含む。商品を探す起点として最初に呼ぶとよい。

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_shop(shop_slug)

1 つのショップ(生産者・職人)の詳細を slug で取得する。ショップのストーリーや説明、対応ブロックチェーン、x402 決済が有効かどうかを返す。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "shop_slug": {
      "type": "string",
      "minLength": 1,
      "description": "ショップの slug(URL 識別子)"
    }
  },
  "required": [
    "shop_slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢list_products_in_shop(shop_slug)

1 つのショップの公開中の商品をすべて返す。価格(JPYC 建て)・在庫・バリエーション・配送要否・対応チェーンを含む。list_shops でショップを見つけたあと、その品揃えを見るのに使う。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "shop_slug": {
      "type": "string",
      "minLength": 1,
      "description": "ショップの slug"
    }
  },
  "required": [
    "shop_slug"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_product(product_id)

1 つの商品の詳細を product_id で取得する。価格(JPYC 建て)・在庫・SKU・バリエーション・配送要否・対応チェーンを返す。購入の前に必ず呼んで、requires_shipping(配送先が必要か)と has_variants(オプション選択が必要か)を確認すること。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "product_id": {
      "type": "string",
      "minLength": 1,
      "description": "商品 ID"
    }
  },
  "required": [
    "product_id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢search_products(text, category, tag, shop_slug, min_price, ...)

JPYC EC Platform 上の公開商品を横断検索する。減農薬米・地酒・伝統工芸品など、生産者から直接 JPYC で購入できる商品が対象。text は自然言語のキーワード(例: 『丹波 米』)で、商品名と説明に部分一致する。category / tag(産地・認証種別など)、価格帯(min_price / max_price、JPYC)、shop_slug で絞り込める。売上順で最大 50 件返す。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "description": "自然言語のキーワード(商品名・説明に部分一致)"
    },
    "category": {
      "type": "string",
      "description": "商品カテゴリーの完全一致"
    },
    "tag": {
      "type": "string",
      "description": "商品タグ(産地・認証種別など)の完全一致"
    },
    "shop_slug": {
      "type": "string",
      "description": "特定ショップに絞り込む"
    },
    "min_price": {
      "type": "number",
      "minimum": 0,
      "description": "最低価格(JPYC)"
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "最高価格(JPYC)"
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "最大件数(1-50、既定 20)"
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡quote_checkout(shop_id, items, customer_email, preferred_chain_id, payer_address, ...)

カートの内容で x402 チェックアウトの 1 回目を実行する。在庫を仮押さえし(有効期限は返り値 expires_at_unix_ms)、小計・割引・送料・合計(JPYC)と reservation_id、および PAYMENT-REQUIRED チャレンジ(base64url、x402 accepts 配列)を返す。accepts の決済方式: 『eip3009』(既定。通常購入の EOA ウォレットはこちらを選び、EIP-712 TransferWithAuthorization に署名する) と『erc20-transfer』(ecrecover 非対応のスマートコントラクトウォレット専用。payer_address を渡した予約にだけ提示される。extra.payerAuthorization.message を personal_sign して authorize_transfer を呼び、その成功後に表示額ぴったりの通常 ERC-20 transfer を実行し、txHash 任意/payerAddress 必須で submit_payment に渡す)。0円デモは demo_signature_version=1 と payer_address を渡すと demo-signature を提示する。送金せず personal_sign だけで完了する。全 item は同一ショップである必要がある。配送が必要な商品があれば shipping を、贈答なら gift_recipient を必ず渡すこと。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "shop_id": {
      "type": "string",
      "format": "uuid",
      "description": "ショップ ID(全 item 共通)"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "product_id": {
            "type": "string",
            "format": "uuid"
          },
          "quantity": {
            "type": "integer",
            "minimum": 1
          },
          "variant_selections": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          }
        },
        "required": [
          "product_id",
          "quantity"
        ],
        "additionalProperties": false
      },
      "minItems": 1,
      "description": "購入する商品"
    },
    "customer_email": {
      "type": "string",
      "format": "email",
      "description": "注文確認メールの送信先(必須)"
    },
    "preferred_chain_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "希望チェーン(任意。商品の対応チェーンから選ばれる)"
    },
    "payer_address": {
      "type": "string",
      "pattern": "^0x[0-9a-fA-F]{40}$",
      "description": "支払いに使うウォレットアドレス(任意・推奨)。指定すると settle 時に支払い元と照合され、別ウォレットからの支払いは拒否される。スマートコントラクトウォレットで erc20-transfer 方式を使う場合は必須(指定が無いと accepts に erc20-transfer が提示されない)"
    },
    "demo_signature_version": {
      "type": "string",
      "const": "1",
      "description": "0円デモのpersonal_signに対応する場合のみ指定"
    },
    "shipping": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "zip": {
          "type": "string",
          "minLength": 1
        },
        "prefecture": {
          "type": "string",
          "minLength": 1
        },
        "address1": {
          "type": "string",
          "minLength": 1
        },
        "address2": {
          "type": "string"
        },
        "tel": {
          "type": "string",
          "minLength": 1
        }
      },
      "required": [
        "name",
        "zip",
        "prefecture",
        "address1",
        "tel"
      ],
      "additionalProperties": false,
      "description": "配送先(配送が必要な商品がある場合は必須)"
    },
    "is_gift": {
      "type": "boolean",
      "description": "贈答かどうか"
    },
    "gift_recipient": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string",
          "minLength": 1
        },
        "tel": {
          "type": "string",
          "minLength": 1
        },
        "zip": {
          "type": "string",
          "minLength": 1
        },
        "prefecture": {
          "type": "string",
          "minLength": 1
        },
        "address1": {
          "type": "string",
          "minLength": 1
        },
        "address2": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "tel",
        "zip",
        "prefecture",
        "address1"
      ],
      "additionalProperties": false,
      "description": "贈り先(is_gift が true なら必須)"
    },
    "customer_note": {
      "type": "string",
      "maxLength": 2000,
      "description": "注文メモ"
    },
    "coupon_code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]*$",
      "description": "ショップから受け取ったクーポンコード(任意。NFT割引との併用不可)"
    },
    "idempotency_key": {
      "type": "string",
      "minLength": 16,
      "maxLength": 64,
      "pattern": "^[A-Za-z0-9_-]+$",
      "description": "同じ見積もりの再試行で必ず再利用する一意キー。クーポン利用時は必須(UUID推奨)。異なる購入内容に同じキーを使わないこと"
    }
  },
  "required": [
    "shop_id",
    "items",
    "customer_email"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪authorize_transfer(reservation_id, signature)

erc20-transfer 方式だけで、JPYC を送金する前に必ず呼ぶ。quote_checkout の選択した accept にある extra.payerAuthorization.message をウォレットで personal_sign し、その署名と reservation_id を渡す。サーバは EOA / ERC-1271 / ERC-6492 を検証して予約へ固定する。このツール自体は送金も approve も行わない。成功を確認してから accepted.amount ぴったりを transfer すること。eip3009 方式では呼ばない。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "reservation_id": {
      "type": "string",
      "pattern": "^res_[0-9a-f]{32}$",
      "description": "quote_checkout が返した reservation_id"
    },
    "signature": {
      "type": "string",
      "minLength": 4,
      "maxLength": 65538,
      "pattern": "^0x(?:[0-9a-fA-F]{2})+$",
      "description": "payerAuthorization.message の personal_sign 署名"
    }
  },
  "required": [
    "reservation_id",
    "signature"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡submit_payment(reservation_id, payment_signature)

quote_checkout で得た reservation_id と、エージェントが用意した x402 PaymentPayload(base64url)を渡して決済を確定する。demo-signatureならextra.payerAuthorization.messageをpersonal_signし、{payerAddress,demoSignature}を渡す。送金やauthorize_transferは呼ばない。quote_checkout の accepts から選んだ方式に応じて payload の中身が変わる: 『eip3009』なら { signature, authorization } (EIP-712 TransferWithAuthorization の署名)、『erc20-transfer』なら { payerAddress, txHash? } (ウォレットが実行した通常の ERC-20 transferの送金元アドレス。txHash は分かれば渡す任意ヒント — 無くてもサーバがon-chain のログを検索して照合する)。erc20-transfer は送金前に必ず authorize_transfer を成功させる。eip3009 はサーバが facilitator 経由で on-chain settle し、erc20-transfer はユーザーが既に送金したものをサーバが検証するだけ。いずれも確定した注文(order_number / tx_hash)を返す。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "reservation_id": {
      "type": "string",
      "minLength": 1,
      "description": "quote_checkout が返した reservation_id"
    },
    "payment_signature": {
      "type": "string",
      "minLength": 1,
      "description": "署名済み x402 PaymentPayload(base64url JSON)"
    }
  },
  "required": [
    "reservation_id",
    "payment_signature"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_order_status(customer_address)

ウォレットアドレスの注文履歴を新しい順で返す。x402 で購入した注文は即時に order_status=3(決済完了)となり tx_hash を持つ。

Esquema de entrada

{
  "type": "object",
  "properties": {
    "customer_address": {
      "type": "string",
      "pattern": "^0x[a-fA-F0-9]{40}$",
      "description": "顧客のウォレットアドレス(0x...)"
    }
  },
  "required": [
    "customer_address"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada9 herramientas
verificadoversión no registrada9 herramientas