mcpField
C
costco

costco

ローカル
github.com/thehesiod金融データ727 週間前に更新

costco について

costco は Costco の倉庫購入レシートやオンライン注文にアクセスする MCP サーバーで、商品検索と複数アカウントにも対応します。ブラウザーセッションから取得した OAuth2 リフレッシュトークンで、非公開の内部 GraphQL API を呼び出します。

主な機能

  1. 01期間を指定した倉庫レシート一覧
  2. 02レシートの商品明細の取得
  3. 03期間を指定したオンライン注文一覧
  4. 04結果をキャッシュする商品検索
  5. 05複数アカウントのトークン管理

活用シーン

  1. 01期間内の倉庫レシートを確認する
  2. 02レシートの商品、数量、価格を調べる
  3. 03Costco.com の注文状況と合計額を確認する
  4. 04個人用と家族用のアカウントを別々に照会する

MCP 対応

Costco のレシート、オンライン注文、商品検索、認証状態を操作するツールを Claude などの MCP クライアントに提供します。ブラウザーセッションから取得した OAuth2 リフレッシュトークンで Costco の内部 API を呼び出します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"thehesiod-costco": {
"command": "uvx",
"args": [
"costco-mcp-server"
]
}
}
}
起動コマンドuvx costco-mcp-server

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypicostco-mcp-server0.1.2

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Costco MCP サーバー

MCP Registry PyPI

Claude から Costco の倉庫レシートやオンライン注文にアクセスできる MCP(Model Context Protocol) サーバーです。ブラウザーセッションから抽出した OAuth2 リフレッシュトークンを使い、Costco の内部 GraphQL API に直接接続します。スクレイピングも、実行時のヘッドレスブラウザーも必要ありません。アカウントごとにトークンを保存するマルチアカウント対応です(例:personal、spouse)。

MCP Registry では io.github.thehesiod/costco として公開されています。

免責事項

このプロジェクトは Costco Wholesale Corporation とは無関係であり、同社の承認や後援を受けていません。「Costco」および関連するすべての名称、ロゴ、商標は、それぞれの所有者に帰属します。

このサーバーは、Costco の未公開の内部 API(公開されておらず、安定性が保証されていないため、予告なく変更またはブロックされる可能性があるエンドポイント)と通信します。これらの API の使用は Costco の利用規約に違反する可能性があります。利用規約を確認し、ご自身の利用が許容されるかどうかを判断する責任は利用者にあります。

ご自身の責任でご利用ください。 著者および貢献者は、アカウントの一時停止または停止、データの損失または破損、レシートや注文情報の誤り、購入の失敗、金額の不一致、API のレート制限への抵触、IP アドレスのブロック、その他直接的または間接的な損害を含む(ただし、これらに限定されない)本ソフトウェアの使用によるいかなる結果についても責任を負いません。保証は一切ありません。保証免責に関する完全な条項については LICENSE をご覧ください。

Costco が公式 API を公開した場合、このプロジェクトは非推奨とし、公式 API を優先してください。

機能

倉庫
  • list_warehouse_receipts — 指定した期間の店舗レシート(バーコード、倉庫、合計金額)
  • get_receipt_detail — バーコードでレシートの全明細を取得(商品、数量、価格、クーポン、部門コード)
  • get_all_receipt_details — 指定した期間のすべてのレシートの詳細を一括取得
オンライン注文
  • list_online_orders — 指定した期間の Costco.com の注文(注文番号、ステータス、商品、合計金額)
商品
  • lookup_products — 商品番号から商品名と部門を特定します。ローカルの SQLite キャッシュ(~/.costco-mcp/products.db)を使用するため、繰り返しの検索は無料です。
認証
  • check_auth_status — トークンの有効期間を報告し、設定済みのアカウントを一覧表示します
  • save_refresh_token — アカウントのリフレッシュトークンを登録または更新します

セットアップ

Claude Code にインストールする
claude mcp add --transport stdio costco -- \
    uvx --from "costco-mcp-server @ git+https://github.com/thehesiod/costco-mcp" costco-mcp-server

PyPI に公開された後は、上記の設定が次のように簡略化されます。

claude mcp add --transport stdio costco -- uvx costco-mcp-server
認証

Costco は公開 OAuth アプリを提供していないため、ブラウザーの Azure AD B2C セッションストレージからリフレッシュトークンを抽出します。リフレッシュトークンの有効期間は約 90 日です。API 呼び出しごとにベアラートークンが自動的に発行されます。

半自動フロー(推奨)。 専用の Chrome プロファイルと chrome-devtools-mcp を使用し、Claude がトークンを抽出して登録します。初回のセットアップ後は、「ブラウザーを起動して、Claude に更新を依頼する」だけで再認証できます。

  1. 認証用ブラウザーを起動します(クロスプラットフォーム対応のコンソールスクリプト)。

    uvx --from "costco-mcp-server @ git+https://github.com/thehesiod/costco-mcp" costco-auth-browser
    

    Chrome はポート 9223 で起動し、永続的なプロファイルを ~/.costco-mcp/chrome-profile/ に保存します。

  2. そのポートを指定して、chrome-devtools-mcp インスタンスを登録します(初回のみ)。

    claude mcp add costco-browser -- npx -y chrome-devtools-mcp --browserUrl http://127.0.0.1:9223
    
  3. 起動したブラウザーウィンドウで costco.com にログインします(初回のみ。プロファイルは保持されます)。

  4. Claude に更新を 依頼します。

    Costco のリフレッシュトークンを抽出して、アカウント「personal」に保存してください。

    Claude は chrome-devtools-mcp 経由で localStorage から msal.*.refreshtoken エントリーを読み取り、save_refresh_token を呼び出します。

手動での代替方法。 2 つ目の MCP の設定を避けたい場合は、costco.com にログインし、DevTools → Application → Local Storage → https://www.costco.com を開いて、refreshtoken を含むキーを見つけます。その JSON 値から secret フィールドをコピーし、次のようにします。

uvx --from "costco-mcp-server @ git+https://github.com/thehesiod/costco-mcp" \
    costco-mcp-server --save-token personal <REFRESH_TOKEN>

複数アカウント

すべてのツールで、オプションの account 引数(例:"personal"、"spouse")を指定できます。省略した場合は、デフォルトのアカウント(最初に登録したアカウント、または最後に設定したアカウント)が使用されます。アカウントデータは ~/.costco-mcp/accounts/<name>/ の下に名前ごとに分離して保存されます。

仕組み

サーバーは httpx[http2] を使用して、Costco の内部 GraphQL エンドポイントに直接アクセスします。

  • ecom-api.costco.com/ebusiness/order/v1/orders/graphql — 倉庫のレシートとオンライン注文
  • ecom-api.costco.com/ebusiness/product/v1/products/graphql — 商品情報の検索

認証には Azure AD B2C(signin.costco.com)を使用します。auth.py に組み込まれている公開クライアント ID(テナント、ポリシー、MSAL/WCS クライアント ID)は、Costco 自身のブラウザーバンドルに含まれているものであり、シークレットではありません。このサーバーで認証情報(ユーザー名/パスワード)を扱うことはありません。

アーキテクチャの詳細と開発メモについては、CLAUDE.md を参照してください。

プラットフォームに関する注意事項

macOS、Linux、Windows に完全対応しています。シェルスクリプトは使用せず、すべてのエントリーポイントは Python コンソールスクリプトです。

半自動の認証フローには、標準的な場所にインストールされた Chrome または Chromium が必要です。costco-auth-browser は次の場所を検索します。

  • macOS:/Applications/Google Chrome.app/...
  • Windows:%ProgramFiles%、%ProgramFiles(x86)%、%LocalAppData% の Google\Chrome\Application\chrome.exe
  • Linux/フォールバック:PATH 上の google-chrome、google-chrome-stable、chromium、chromium-browser

COSTCO_AUTH_PORT でデバッガーポートを変更できます。

セキュリティに関する注意事項

  • リフレッシュトークンは ~/.costco-mcp/ に平文で保存されます。OS レベルのホームディレクトリ権限に依存します。
  • このサーバーで認証情報を扱うことはありません。認証はすべて、ブラウザー上の Costco ログインフローで行われます。
  • auth.py の Azure AD B2C クライアント ID は、Costco のブラウザーバンドルに含まれている公開 SPA 識別子であり、シークレットではありません。

ライセンス

MIT — LICENSE を参照してください。

mcp-name: io.github.thehesiod/costco

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。