mcpField
C
cws

cws

ローカル
github.com/mikusnuz開発ツール42 週間前に更新

cws について

cwsは、Chrome Web Storeの拡張機能を公開する担当者向けのMCPサーバーです。アップロードや公開、審査状況、段階的な配信に加え、一部の下書き情報をAPI v2とダッシュボード操作で管理します。

主な機能

  1. 01拡張機能の ZIP アップロード
  2. 02申請の公開と取り消し
  3. 03審査状況とバージョンの確認
  4. 04段階的な配信率の管理
  5. 05下書き情報の読み取りと保存

活用シーン

  1. 01ビルド済み拡張機能のアップロード
  2. 02拡張機能の審査申請
  3. 03審査状況と配信状況の監視
  4. 04下書きの説明やカテゴリの変更

MCP 対応

MCP クライアントに Chrome Web Store の拡張機能管理ツールを提供します。API v2とダッシュボード操作を使い、対応する掲載情報を扱います。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mikusnuz-cws": {
"command": "npx",
"args": [
"-y",
"cws-mcp"
],
"env": {
"CWS_CLIENT_ID": "<CWS_CLIENT_ID>",
"CWS_CLIENT_SECRET": "<CWS_CLIENT_SECRET>",
"CWS_REFRESH_TOKEN": "<CWS_REFRESH_TOKEN>"
}
}
}
}
起動コマンドnpx -y cws-mcp
設定が必要な環境変数
CWS_CLIENT_IDシークレットGoogle OAuth2 Client ID for Chrome Web Store API
CWS_CLIENT_SECRETシークレットGoogle OAuth2 Client Secret
CWS_REFRESH_TOKENシークレットOAuth2 Refresh Token

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

パッケージ
npmcws-mcp2.0.2

ツール

9

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
itemIdstringいいえ拡張機能のアイテム ID(デフォルトは CWS_ITEM_ID 環境変数)
zipPathstringはいアップロードする ZIP ファイルの絶対パス
publisherIdstringいいえ公開者 ID(デフォルトは CWS_PUBLISHER_ID 環境変数、または 'me')

詳細

cws-mcp

npm version

한국어

MCP Badge

Chrome ウェブストアの拡張機能を管理するための MCP サーバーです。Claude Code や任意の MCP クライアントから直接、Chrome 拡張機能をアップロード、公開、管理できます。

使用する場面

次のような場合にこの MCP を使用します。

  • 「Chrome 拡張機能の新しいバージョンをアップロードする」 — ZIP をビルドし、upload ツールを使ってドラフトとしてアップロードします
  • 「拡張機能を Chrome ウェブストアで公開する」 — publish を使って審査に提出し、公開します
  • 「拡張機能の審査状況を確認する」 — status を使って審査状況、バージョン、デプロイ率を確認します
  • 「拡張機能の説明やカテゴリを更新する」 — update-metadata を使ってドラフトの掲載情報を保存し、確認します
  • 「保留中の提出をキャンセルする」 — cancel を使って審査中の提出を取り下げます
  • 「拡張機能の段階的ロールアウトを設定する」 — 段階的ロールアウトを指定して publish を実行し、その後 deploy-percentage で割合を引き上げます

ツール

ツール説明
uploadZIP ファイルを Chrome ウェブストアにアップロードします(既存アイテムのドラフトを更新)
publish公開タイプ、ロールアウト率、審査のスキップ、blockOnWarnings を指定して提出/公開します
status審査状況、デプロイ率、バージョンを含む現在のステータスを取得します
cancel保留中の提出をキャンセルします
deploy-percentage段階的ロールアウト率を設定します(0~100。現在の目標値を超える必要があります)
getstatus のエイリアスです。v2 の公開ステータスを取得し、掲載テキストは取得しません
get-metadata-uiダッシュボードから現在のドラフトの説明、カテゴリ、ホームページ URL、サポート URL を読み取ります
update-metadataダッシュボードで、対応するこれら4つのドラフト項目を保存し、再読み込み後に確認します
update-metadata-uiupdate-metadata のエイリアスです

API の対応範囲

IN_PROGRESS を返すアップロードは保留中です。公開する前に、lastAsyncUploadState が SUCCEEDED になるまで status をポーリングしてください。FAILED はツールエラーです。公開がブロックされた場合、対応が必要な警告を含む error.details が保持されます。

この MCP サーバーは、Chrome ウェブストア API v2 のすべてのエンドポイントに対応しています。

v2 エンドポイントMCP ツール
media.uploadupload
publishers.items.publishpublish
publishers.items.fetchStatusstatus
publishers.items.cancelSubmissioncancel
publishers.items.setPublishedDeployPercentagedeploy-percentage

すべての API リクエストで v2 を使用します。公開 API には掲載テキストを読み書きするエンドポイントがありません。ダッシュボードツールは Playwright と、サインイン済みの別の Chrome プロファイルを使用します。掲載項目を保存しても審査には提出されません。項目の不足、カテゴリの不一致、保存の未確認は、成功として扱わずエラーを返します。

セットアップ

Playwright のランタイム要件に合わせ、Node.js 20 以降が必要です。

1. OAuth2 認証情報を作成する
  1. Google Cloud Console にアクセスします
  2. プロジェクトを作成します(または既存のプロジェクトを選択します)
  3. Chrome Web Store API を有効にします
  4. OAuth2 認証情報を作成します(アプリケーションの種類は Desktop app)
  5. Client ID と Client Secret を控えます
2. リフレッシュトークンを取得する

ローカルのループバック リダイレクト URI、PKCE、スコープ https://www.googleapis.com/auth/chromewebstore を使用して、Google のデスクトップアプリ向け OAuth フローに従ってください。オフラインアクセスをリクエストします(access_type=offline。新しいリフレッシュトークンが必要な場合は prompt=consent を使用します)。同じリダイレクト URI を使って認証コードを交換し、リフレッシュトークンは MCP クライアントのシークレット/環境設定に保管してください。以前のコピー&ペースト方式の OOB リダイレクトは、Google ではサポートされなくなりました。

3. MCP を設定する

Claude Code の MCP 設定(~/.claude/settings.local.json)に追加します。

{
  "mcpServers": {
    "cws-mcp": {
      "command": "node",
      "args": ["/path/to/cws-mcp/dist/index.js"],
      "env": {
        "CWS_CLIENT_ID": "xxxxx.apps.googleusercontent.com",
        "CWS_CLIENT_SECRET": "GOCSPX-xxxxx",
        "CWS_REFRESH_TOKEN": "1//xxxxx",
        "CWS_PUBLISHER_ID": "me",
        "CWS_ITEM_ID": "your-extension-id"
      }
    }
  }
}

または、npm でグローバルにインストールします。

{
  "mcpServers": {
    "cws-mcp": {
      "command": "npx",
      "args": ["-y", "cws-mcp"],
      "env": { ... }
    }
  }
}

環境変数

変数必須説明
CWS_CLIENT_IDはいGoogle OAuth2 クライアント ID
CWS_CLIENT_SECRETはいGoogle OAuth2 クライアントシークレット
CWS_REFRESH_TOKENはいOAuth2 リフレッシュトークン
CWS_PUBLISHER_IDいいえパブリッシャー ID(デフォルト:me)
CWS_ITEM_IDいいえデフォルトの拡張機能アイテム ID
CWS_DASHBOARD_PROFILE_DIRいいえUI 自動化用のブラウザープロファイルのパス(デフォルト:~/.cws-mcp-profile)

使用例

拡張機能のステータスを確認する
Use the cws-mcp status tool
アップロードして公開する
1. Use cws-mcp upload with zipPath="/path/to/extension.zip"
2. Use cws-mcp publish
承認後まで公開を保留する
Use cws-mcp publish with:
- publishType="STAGED_PUBLISH"
skip-review を指定して公開する
Use cws-mcp publish with skipReview=true

STAGED_PUBLISH は、承認済みの提出物を後で公開するために保留します。ロールアウト率ではありません。対象となる拡張機能を段階的にロールアウトするには、別途 deployPercentage を使用してください。

検証の警告がある場合に公開を停止する
Use cws-mcp publish with blockOnWarnings=true

デフォルトは API と同じ false です。公開が成功した場合でも、返された warningInfo.warnings を確認してください。

審査に提出せずに掲載情報のフィールドを読み取る、または保存する
Use cws-mcp get-metadata-ui with headless=false
Use cws-mcp update-metadata with:
- description="..."
- category="Developer Tools"
- homepageUrl="https://example.com"
- supportUrl="https://example.com/support"

注意:

  • category は、現在のダッシュボードの言語で表示される選択肢のラベルと完全に一致する必要があります。英語と韓国語のフィールドラベルに対応しています。
  • これらのツールが読み取り・保存するのは現在のダッシュボードの下書きであり、公開済みの掲載情報や任意のロケールではありません。先にダッシュボードで目的のローカライズを選択してください。フィールドを特定できない場合は、安全のため処理に失敗します。
  • タイトル、概要、デフォルトのロケールを manifest.json/ローカライズされたメッセージで変更し、再ビルドして ZIP を upload してください。アイコンとスクリーンショットは、ダッシュボードで直接操作してください。
  • ログインが必要な場合は、最初に headless=false で実行してください。
  • ブラウザープロファイルのパスはデフォルトで ~/.cws-mcp-profile です(CWS_DASHBOARD_PROFILE_DIR で上書きできます)。
  • Google Chrome がインストールされている必要があります。ダッシュボード UI の変更に伴い、セレクターの更新が必要になることがあります。検証できない保存操作はエラーになります。失敗の原因が特定できない場合は、再試行する前にダッシュボードを確認してください。
段階的なロールアウト
1. Use cws-mcp publish with deployPercentage=10
2. Monitor approval/publication with status
3. Use cws-mcp deploy-percentage with percentage=50
4. Use cws-mcp deploy-percentage with percentage=100

注意:deploy-percentage は、過去 7 日間のアクティブユーザー数が 10,000 人以上の拡張機能でのみ利用できます。新しいパーセンテージは、必ず現在の目標値より高くする必要があります。

1.x から 2.0 への移行

Google は 2026 年 10 月 15 日に API v1 を終了します。バージョン 2.0 では API v1 を呼び出しません。

  • get は v2 のステータスを返すようになりました。以前の projection 引数は拒否されます。下書きの掲載情報テキストには get-metadata-ui を使用してください。公開済みの掲載情報テキストは v2 では公開されません。
  • update-metadata は update-metadata-ui と同じダッシュボードのワークフローを使用するようになったため、API トークンだけでなく、Chrome へのログインが必要です。
  • metadata、title、summary、defaultLocale の直接指定は、案内メッセージとともに拒否されます。サポートされていない入力が黙って無視されることはありません。
  • storeIconPath は、アップロード方法として受け付けられなくなりました。以前の汎用ファイル入力方式では、どのアセットが変更されたかを検証できなかったため、代わりに Developer Dashboard でアイコンをアップロードしてください。

ライセンス

MIT

コメント

MCP は初めてですか?

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

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