mcpField
C
corlabs

corlabs

ローカル
github.com/kushshah12開発ツール02 日前に更新

corlabs について

CORは、コーディングエージェント向けのMCPサーバーです。ブラウザーでページ要素を特定し、テストコード用の順位付け・評価済みロケーターを生成します。ロケーターの由来を検査し、一致しなくなった場合の修復案も提示します。

主な機能

  1. 01ページを開いてコントロールを確認
  2. 02順位付け・評価済みロケーターの生成
  3. 03プロジェクト内ロケーターの検査
  4. 04ロケーターの評価と修復
  5. 05記録内の機密データのマスキング

活用シーン

  1. 01ブラウザーテスト用ロケーターの作成
  2. 02テスト用ロケーターがCOR由来か確認
  3. 03ページ変更後のロケーター修復

MCP 対応

MCPクライアントに、ブラウザー操作、要素検査、ロケーター生成、検証、評価、修復のツールを提供します。npxで起動するstdioサーバーです。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"dev-corlabs": {
"command": "npx",
"args": [
"-y",
"@corlabsdev/mcp"
]
}
}
}
起動コマンドnpx -y @corlabsdev/mcp

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

パッケージ
npm@corlabsdev/mcp0.1.7

ツール

11

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

パラメーター型必須説明
urlstringはい開くページ。
storageStatestringいいえPlaywright の storage-state JSON ファイル({cookies, origins})へのパス。例:`npx playwright codegen --save-storage` で作成したファイル。

詳細

@corlabsdev/mcp

コーディングエージェントがページを開いて要素を選択し、使用しているテストフレームワーク向けに、評価ランク付きのロケーターを取得できる MCP サーバーです。

詳しくは corlabs.dev をご覧ください。

インストール

Node 18 以降と Google Chrome が必要です(Microsoft Edge または Playwright の Chromium も使用できます)。グローバルには何もインストールされません。エージェントは npx でサーバーを実行します。

クライアントに COR を追加します。どのクライアントでも、同じコマンド npx -y @corlabsdev/mcp を実行します。

Claude Code

claude mcp add cor -- npx -y @corlabsdev/mcp

チームで共有するには、代わりにプロジェクトのルートにある .mcp.json に追加します。

{ "mcpServers": { "cor": { "command": "npx", "args": ["-y", "@corlabsdev/mcp"] } } }

GitHub Copilot (VS Code) — .vscode/mcp.json を作成します(またはコマンドパレットから MCP: Add Server を実行します)。

{ "servers": { "cor": { "type": "stdio", "command": "npx", "args": ["-y", "@corlabsdev/mcp"] } } }

次に Copilot Chat を開き、Agent モードに切り替えて、ツール一覧で cor を有効にします。

Codex(CLI および IDE 拡張機能)

codex mcp add cor -- npx -y @corlabsdev/mcp

または、以下を ~/.codex/config.toml に追加します。

[mcp_servers.cor]
command = "npx"
args = ["-y", "@corlabsdev/mcp"]

Cursor — .cursor/mcp.json、Claude Desktop — claude_desktop_config.json:

{ "mcpServers": { "cor": { "command": "npx", "args": ["-y", "@corlabsdev/mcp"] } } }

その他の MCP クライアントでは、コマンドを npx、引数を -y @corlabsdev/mcp とする stdio サーバーを登録します。

クライアントを再起動する(またはウィンドウを再読み込みする)と、エージェントにページを開くよう依頼できます。例:「COR を使って https://example.com/login を開き、サインインフォームのロケーターを書いてください。」

ブラウザーが見つからない場合、サーバーがその旨を通知します。Chrome をインストールするか、npx playwright-core install chromium を実行してください。

オプション(args に追加するか、claude mcp add の -- の後に指定します):

フラグ効果
--headlessウィンドウを表示せずにブラウザーを実行します(デフォルト:表示)
--idle-minutes <n>n 分間アイドル状態が続くとブラウザーを閉じます
--no-recordsプロジェクトにエントリーレコードを書き込みません(下記参照)

ツール

ツール内容
cor_openページを開き、コントロールを参照 ID 付きで一覧表示します
cor_snapshot大きなページの単一領域内にあるテキスト、コントロール、エントリーを表示します
cor_inspect指定した要素の、評価ランク付きロケーターをコードに配置するエントリーとして返します
cor_click、cor_fill、cor_pressページを操作し、変更内容を報告します
cor_checkCOR 由来ではないロケーターがファイルにあれば失敗します
cor_grade自分で書いたロケーターを評価します
cor_heal一致しなくなったロケーターの修正案を提示します
cor_closeブラウザーを閉じます

ワークフロー

  1. cor_open でページを開き、テストで操作するすべての要素に対して、1 回の呼び出しで cor_inspect を実行します。
  2. // COR cor:… コメントを含め、各エントリーをそのまま、指定されたファイルに配置します。
  3. テストの前に cor_check を実行します。ロケーターが原因でテストが失敗した場合は、cor_grade で評価し、壊れていれば cor_heal を実行します。

更新

npx -y @corlabsdev/mcp は、起動するたびに最新バージョンを実行します。バージョンを固定するには、npx -y @corlabsdev/[email protected] を使用します。

セットアップ:唯一のブラウザーツールとしての COR

テスト作成には、Playwright MCP と併用せず、代わりに COR MCP を設定してください。COR はブラウザーを操作して(開く、クリック、入力、キーの押下)、ロケーターファイルに配置するエントリーとしてロケーターを返し、それらをチェックし(cor_check)、修復します(cor_heal)。2 つ目のブラウザーサーバーを接続すると、エージェントはスナップショットを使って独自のセレクターを作成するようになり、それらは cor_check で失敗します。

設定は省略可能です。COR はリポジトリからテストフレームワークと規約を推定します。上書きするには、プロジェクトのルートに cor.config.js を追加します。framework にはテストフレームワークを指定し、残りの項目は locators の下に記述します。すべてのフィールドは省略可能です。cor_open は推定内容と上書きされた内容を報告します。

module.exports = {
  framework: 'playwright',          // 'playwright' | 'cypress' | 'webdriverio'
  locators: {
    order: 'framework',             // 'framework' (default: each framework's published guidance, after uniqueness) or 'testid-first'
    testIdAttribute: 'data-test',   // what getByTestId reads (default: playwright.config's testIdAttribute, else data-testid)
    store: 'page-object-class',     // 'page-object-class' | 'constants' | 'json' | 'yaml'
    storeDir: 'tests/pages',
  },
}

エントリーレコード:プロジェクト内に書き込まれる内容

ロケーターを推奨する cor_inspect はすべて、エントリーも提供します。ロケーターファイルに記述するコード、記述先のファイルとメンバー、そして短い ID を含むコメント // COR cor:7f3a2c · …(YAML マップの場合は # COR cor:…)です。このコメントは残してください。cor_check はこの ID を使って、COR のロケーターと手動で記述されたロケーターを区別します。また、後続の修復処理では、この ID を使ってロケーターが指していた要素を特定します。COR がファイルを編集することはありません。エージェントがエントリーを配置します。

保存先: プロジェクトのルート(テストフレームワークの package.json がある場所)にある .cor/records/<id>.json です。要素ごとに小さなファイルが 1 つ作成されます。同じ要素を再度検査すると、同じ ID が再利用され、ファイルが更新されます。コメントを保持できない JSON ロケーターマップの場合、COR は .cor/ids.json("file#key": "id")も保存します。ロケーターマップにキーを追加することはありません。

コミットしてください。 これらのレコードがあれば、チームメイトのマシンや CI のチェックアウト環境で修復を実行できます。ID はコードに含まれ、レコードはリポジトリとともに管理されます。1 台のマシンだけに保存したい場合は、.gitignore に .cor/records/ を追加してください。

各レコードに保存される内容: ページ(マスク済みのオリジンとパス)、タグパスで示した要素の位置、エントリーのメンバー名、要素のフィンガープリント(タグ、存在する場合は aria-label、aria-labelledby、name、placeholder、type、role、title、alt、href、for、要素自身のテキストの先頭 80 文字、最初の 5 つのクラス名)、およびその要素に対して順位付けされた最大 12 個のロケーターです。ロケーターは貼り付けるコードではなく、データとして保存されます({ "kind": "testId", "value": "[data-test=\"…\"]" })。COR がレコードの内容をエージェントに表示することはありません。

保存されない内容: フィールドに入力された内容(入力値)、Cookie、ローカルストレージ、または cor_open に渡すストレージ状態ファイル内の情報です。

マスキング: 認証済みページでは、上記のフィールドにアカウントデータが含まれる可能性があります。そのため、書き込み前に次のようにマスキングされます。

テキスト、属性、クラス、またはロケーターで見つかったもの保存される内容
メールアドレス[email]
6 桁以上の数字の並び(注文番号、電話番号、カード番号。空白とハイフンを含む場合があります)[number]
英字と数字が混在する 24 文字以上の長い文字列(トークン、セッション ID)[token]
href のクエリー文字列またはフラグメント削除

短い数字や通常の単語は保持されます。修復にはそれらが必要になるためです(「ステップ 2」、「数量 12」、「今すぐ支払う」など)。値はハッシュ化ではなくマスキングされます。修復時には保存された値とライブページをプレーンテキストで比較するため、ハッシュ化された値では再び一致させることができません。

無効にする方法: --no-records を指定してサーバーを起動するか、COR_RECORDS=off を設定します(以前の --no-fingerprints / COR_FINGERPRINTS=off も引き続き動作します)。レコードは書き込まれませんが、エントリーには引き続き ID が含まれ、cor_check は ID の有無だけを確認します。以前のバージョンで使用されていた ~/.cor/fingerprints/ ストアは、今後読み書きされません。削除しても問題ありません。

テレメトリー:匿名の使用状況メトリクス

COR のインストール方法や使用状況の把握に役立てるため、サーバーは匿名の使用状況メトリクスを送信します。イベントは 2 種類です。

  • mcp_installed:インストールごとに初回起動時に 1 回送信します。パッケージのバージョン、Node のバージョン、OS のプラットフォームが含まれます。
  • mcp_tool_called:ツールの呼び出しごとに送信します。ツール名、所要時間(ミリ秒)、結果(ok、tool_error、exception、timeout)、パッケージのバージョンが含まれます。

インストールごとにランダムな匿名 ID が割り当てられ、~/.cor/install-id に保存されます。初回起動時には、そのことを示す 1 行が stderr に出力されます。

送信されない内容: ページの URL やオリジン、要素のテキスト、ロケーター、ファイルパス、入力値、Cookie、ストレージ、レコードの内容、エラーメッセージ、メールアドレスです。各フィールドはコード内(src/telemetry.js)にすべて記載されており、それ以外の情報が追加されることはありません。

無効にする方法: COR_TELEMETRY=off を設定します(または、すべての外部へのデータ送信を停止する COR_OFFLINE=true を設定します)。何も送信されず、ID ファイルも書き込まれません。

コメント

MCP は初めてですか?

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

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