mcpField
G
GenClass

GenClass

ローカル
genclass.dev開発ツール7今日更新

GenClass について

GenClassは、ローカルで動作するWebアプリの競合状態を調べる、コーディングエージェント向けMCPサーバーです。リクエストとレスポンスの挙動を記録し、順序を変えて探索・再生することで修正を検証します。

主な機能

  1. 01クリック、リクエスト、レスポンス、エラーを記録
  2. 02古い書き込みと重複送信を検出
  3. 03レスポンス順序を変えた挙動を探索
  4. 04問題を再生して修正を検証
  5. 05Playwright回帰テストを生成
  6. 06エンドポイントの遅延とエラー率を確認

活用シーン

  1. 01古いレスポンスが検索結果を上書きする問題を調査
  2. 02ハンドラー変更の前後で競合状態を再現
  3. 03記録した問題から回帰テストを作成
  4. 04異なるレスポンス順序でエンドポイントの挙動を比較

MCP 対応

GenClassはコーディングエージェント向けMCPサーバーとして動作し、問題の確認、レスポンス順序の探索、バグの再生、テスト生成のツールを提供します。`@genclass/runtime`のagent linkを通じて開発ページに接続します。

設定

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

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

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

パッケージ
npm@genclass/mcp0.2.1

ツール

9

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

このツールにパラメーターはありません。

詳細

@genclass/mcp

コーディングエージェントが競合状態を確認し、再現して、修正を証明できます。

Claude Code やその他のコーディングエージェント向けの MCP サーバーです。お使いのマシンで実行中のアプリのページに接続し (@genclass/runtime のエージェントリンクを介して)、エージェントに次の情報を提供します。

  • 何が、どの順番で起きたか。 すべてのクリック、リクエスト、レスポンス、レスポンスが返された順序、各レスポンスがアプリの状態に書き込んだ内容、そしてそれにつながったクリックやリクエストとともに、捕捉されなかったエラーを確認できます。
  • 例外が発生しないバグ。 新しいデータを古いレスポンスで上書きしたケース(典型的な古い検索結果や編集内容の消失)、2 回のクリックで同じ注文が 2 回送信されたケース、デバイス上のモデル独自の検出結果を確認できます。
  • ユーザーが見つける前に検出される競合状態。 genclass_explore は手順を再実行し、ネットワークの応答順序を変え(必要であれば遅くもして)、レスポンスが順番どおりに返った実行と異なる結果を報告します。
  • 証明。 genclass_replay はバグを引き起こした正確な順序を再現し、修正前には再現され、修正後には再現されないことを確認します。また、genclass_explain はバグがある間は失敗する Playwright テストを作成します。

すべての処理はお使いのマシン上で行われます。依存関係はありません。サーバーは無料です。この一連の処理を任せたい開発者向けに、GenClass は Enterprise でサービスとして提供しています。MCP サーバー、コレクター、ダッシュボードは、GenClass がホストするか、お客様のネットワーク内でホストできます(genclass.dev/enterprise)。

インストール

クライアントを選んでください。各ブロックではこのリリースを指定しているため、クライアントは正確にこのバージョンを起動します。 npx -y @genclass/[email protected] config <client> を実行すると同じ設定行が表示され、genclass_setup は実行先のクライアントに対応するブロックを表示します。

Claude Code

プラグインとしてインストールします(サーバー、各プロンプトに新しい検出結果を追加するプロンプトフック、Claude に使用タイミングを伝えるスキルが含まれます)。

/plugin marketplace add genclass-dev/GenClass-lib
/plugin install genclass@genclass

または、サーバー単体でインストールします(--scope project はプロジェクトの全員向けに .mcp.json を書き込み、--scope user はすべてのプロジェクト向けに書き込みます)。

claude mcp add --scope project genclass -- npx -y @genclass/[email protected]
# or: npx -y @genclass/[email protected] init --hook   (.mcp.json, plus the prompt hook in .claude/settings.json)
Claude Desktop

「Settings」、「Developer」、「Edit Config」の順に選択します(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json)。

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
Cursor

Cursor に genclass MCP サーバーを追加 または cursor://anysphere.cursor-deeplink/mcp/install?name=genclass&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkBnZW5jbGFzcy9tY3BAMC4yLjAiXX0%3D

または、プロジェクト内の .cursor/mcp.json に設定します(すべてのプロジェクト向けには ~/.cursor/mcp.json を使用します)。

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
VS Code

VS Code にインストール または、ターミナルから実行します。

code --add-mcp '{"name":"genclass","command":"npx","args":["-y","@genclass/[email protected]"]}'

または、ワークスペースのルートにある .mcp.json に設定します(移植可能な形式です。.vscode/mcp.json では同じエントリを servers の下に記述します)。

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
Codex CLI
codex mcp add genclass -- npx -y @genclass/[email protected]

または、~/.codex/config.toml(信頼済みプロジェクトでは .codex/config.toml)に設定します。初回起動時にパッケージをダウンロードするため、デフォルトの 10 秒より長いタイムアウトを設定してください。

[mcp_servers.genclass]
command = "npx"
args = ["-y", "@genclass/[email protected]"]
startup_timeout_sec = 30
Gemini CLI
gemini mcp add genclass npx -- -y @genclass/[email protected]   # -s user: for all projects

または、プロジェクト内の .gemini/settings.json に設定します(すべてのプロジェクト向けには ~/.gemini/settings.json を使用します)。

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
Windsurf(Devin Desktop)

~/.codeium/windsurf/mcp_config.json(Windsurf)、~/.config/devin/mcp_config.json(Devin Desktop の Cascade エージェント。Windows では %APPDATA%\devin\mcp_config.json)に設定します。

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}

Devin CLI および Devin Desktop の Devin Local エージェントの場合:

devin mcp add -s user genclass -- npx -y @genclass/[email protected]
Cline
cline mcp add genclass --yes -- npx -y @genclass/[email protected]

または、「MCP Servers」、「Configure」、「Configure MCP Servers」の順に選択します(~/.cline/data/settings/cline_mcp_settings.json)。

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
Goose

goose://extension?cmd=npx&arg=-y&arg=%40genclass%2Fmcp%400.2.0&id=genclass&name=genclass&description=Find%20race%20conditions%20by%20reordering%20responses%2C%20replay%20one%2C%20prove%20the%20fix(開いてインストール)、または goose configure(Add Extension、Command-line Extension、コマンド npx -y @genclass/[email protected])、または ~/.config/goose/config.yaml:

extensions:
  genclass:
    type: stdio
    name: genclass
    enabled: true
    cmd: npx
    args: ["-y", "@genclass/[email protected]"]
    env_keys: []
    envs: {}
    timeout: 300
Zed

~/.config/zed/settings.json(プロジェクト内では .zed/settings.json)、または Settings、AI、MCP Servers、Add Server:

{
  "context_servers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
JetBrains IDEs

AI Assistant:Settings、Tools、AI Assistant、Model Context Protocol (MCP)、Add の順に選択し、この JSON を入力します。Junie:プロジェクト内の .junie/mcp/mcp.json(すべてのプロジェクトに適用する場合は ~/.junie/mcp/mcp.json)に、同じ JSON を指定します:

{
  "mcpServers": {
    "genclass": {
      "command": "npx",
      "args": [
        "-y",
        "@genclass/[email protected]"
      ]
    }
  }
}
OpenCode

プロジェクト内の opencode.json(すべてのプロジェクトに適用する場合は ~/.config/opencode/opencode.json)、または opencode mcp add:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "genclass": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@genclass/[email protected]"
      ],
      "enabled": true
    }
  }
}

その他の MCP クライアントの場合:stdio サーバー、コマンド npx、引数 -y @genclass/[email protected]。環境変数は不要です。

次に、アプリの開発ビルドを一度接続します。エージェントリンクには最新のランタイム系列、@genclass/runtime 0.3.0-beta.1 以降が必要です:npm install @genclass/runtime@beta(単に npm install @genclass/runtime を実行すると、エージェントエントリのない古い 0.2.x、npm の latest がインストールされます):

import { GenClass } from "@genclass/runtime";
import { connectAgent } from "@genclass/runtime/agent";

const rt = GenClass.init();
if (import.meta.env.DEV) connectAgent(rt); // Next.js: process.env.NODE_ENV === "development"

開発サーバーのページを読み込み、エージェントに genclass_status を問い合わせます。エージェントには genclass_setup を問い合わせることもできます。これは package.json を読み取り、使用しているフレームワークの設定行を表示します。

エージェントがこれを使って行うこと

you:    the search results are sometimes for an older query
agent:  genclass_findings → f1 [stale-write] /search: the response to GET /api/search "?q=reac"
        overwrote "search.results" after a newer GET /api/search had already written it
        genclass_explain f1 → steps, delivery order, a replay, a regression test
        genclass_replay arm f1 → (loads the page, types) → result: REPRODUCED
        (fixes the handler to keep only the latest answer, adds the test)
        genclass_replay arm f1 → result: not reproduced
        genclass_explore start {slow_ms: 600} → 8 runs → report: no race

実際のページをヘッドレス Chromium でテストしたところ(このパッケージのエンドツーエンドチェック)、開発者の高速なバックエンドでは一度も表示されなかった競合を、応答順序を入れ替えた6回の実行のうち5回で検出しました。生成されたテストは不具合のあるページでは失敗し、修正済みのページでは成功しました。また、修正済みのページを explore で調べても何も報告されませんでした。詳細はdocs/runtime/AGENT.mdをご覧ください。

ツール

ツール
genclass_status接続中のページ、検出結果の件数、explore と replay の状態
genclass_findings優先順位付けされ、重複が排除された検出結果:競合、古い書き込み、エラー、重複リクエスト、モデル検出、ビジュアルチェック
genclass_explain検出結果を1件、因果関係の順に説明。記録された手順、リプレイ、Playwright 回帰テストを表示
genclass_explorestart / report / stop:応答順序に依存する処理を検出
genclass_replayarm / result:検出結果を正確に再現
genclass_analyticsエンドポイントごとのレイテンシ、エラー率、リクエスト数、学習済みの関係とフロー。本番の数値は GenClass ダッシュボードから取得
genclass_setup使用しているフレームワークに追加する行と、実行中のクライアントの設定行
genclass_scan{url, phone?, hosted?}:ヘッドレス Chromium で23項目の測定済みビジュアルチェックを使って、任意のページ(開発サーバー、または所有していないサイト)を監査します。スコア、各問題の要素・セレクター・推奨 CSS 修正、および JSON レポートを出力します。npx @genclass/runtime@beta scan --json --local(またはプロジェクト独自のランタイム)を実行します。Playwright の Chromium(npx playwright install chromium)が必要です。または、genclass.dev のページチェックには hosted: true を指定します(公開ページのみ)
genclass_clear記録された実行結果と検出結果を消去

問い合わせる前に新しい検出結果を通知

  • Channels(Claude Code のリサーチプレビュー):claude --dangerously-load-development-channels server:genclass を使って Claude Code を起動すると、新しい検出結果が発生時にセッションへ届きます(notifications/claude/channel)。
  • Prompt hook(Claude Code プラグインの一部):npx -y @genclass/[email protected] init --hook を実行すると、.claude/settings.json に UserPromptSubmit フックが追加されます。以降の各プロンプトには、前回から変化した検出結果が含まれます。

環境

変数デフォルト
GENCLASS_AGENT_PORT47357ブリッジのポート(その後、ページで connectAgent(rt, { url }) が必要です)
GENCLASS_STATE_DIR.genclass/agentセッション間で調査結果を保持する場所です。none にするとメモリ内に保持します
GENCLASS_DASHBOARDお使いのダッシュボードの非公開リンクです。genclass_analytics の production 用です(sample は公開サンプルを読み込みます)
GENCLASS_REPORTGENCLASS_DASHBOARD が設定されている場合は on、またはダッシュボードのリンクかシークレットです。このサーバーのループログをダッシュボードの Closed-loop development ビューにミラーリングします(各調査結果、証拠が読み取られた各回、実行が開始された各リプレイとその判定、作成された各回帰テスト、各調査レポート、各クリア)。これにより、すべての問題の経過(発見、再現、修正の証明、クローズ、または再調査)を件数とともに表示し、ログを一覧表示します。ID、種類、ページパス、判定、件数、時刻のみを送信し、ページのテキストは送りません。設定しない限り無効です(AGENT.md セクション 4.5)
GENCLASS_AGENT_ORIGINSこのマシンのオリジンに加えて許可する、正確なページオリジンです。例:http://192.168.1.20:5173(その後、ページで connectAgent(rt, { anyHost: true }) が必要です)
GENCLASS_TOKEN_DIR~/.genclassフックやその他のセッション用の API トークン(モード 0600)をブリッジが保存する場所です

セキュリティ

ブリッジは 127.0.0.1 のみでリッスンし、Host ヘッダーを確認します。ページが通信できるのは、お使いのマシン(localhost、127.0.0.1、*.localhost)または GENCLASS_AGENT_ORIGINS に指定したオリジン(*.test または LAN 上の開発用ホスト)からのみです。訪問した公開ウェブサイト、ルーターページ、キャプティブポータルが調査結果を仕込むことはできず、ページが追加できるのは自身の実行分だけです。 エージェント API はブラウザーからのアクセスを拒否し、トークンが必要なのはお使いのユーザーだけです。ページが送信するものはすべて検証され、上限が適用され、不可視文字が除去されてから、指示ではなく引用データとしてエージェントに表示されます。プライバシーに記載された例外を除き、情報がお使いのマシンから外部に送信されることはありません。AGENT.md のセクション 6 を参照してください。

プライバシー

サーバーは何も収集せず、GenClass を含む第三者に何も送信しません。調査結果はお使いのマシン上の .genclass/agent/(サーバーの作業ディレクトリ内。そこでサーバーを起動するクライアントの場合はプロジェクト内。Claude Desktop など、そこで起動しないクライアントの場合は GENCLASS_STATE_DIR を設定してください)に保存されます。このディレクトリはサーバーによって gitignore されます。また、ブリッジのメモリにも保持され、ブリッジのトークンは ~/.genclass に保存されます。マシン外に送信される唯一のリクエストは genclass_analytics {source: "production"} です。GENCLASS_DASHBOARD に非公開リンクを設定すると、お使いの GenClass ダッシュボードを読み込みます。genclass_scan はエージェントが指定したページ(つまり、そのページ自身のトラフィック)をローカルブラウザーで読み込みます。hosted: true の場合に限り、URL が genclass.dev のページチェックに送信されます。また、プロジェクトに scan を含む @genclass/runtime がない場合は、npx が npm からダウンロードします。GENCLASS_REPORT を設定すると(デフォルトでは無効)、サーバーはループログも小さなバッチ単位でそのダッシュボードにミラーリングします。送信されるのは各調査結果の ID、種類、ページパス、証拠が読み取られた時刻、実行が開始された各リプレイとその判定、回帰テストが作成された時刻、各調査レポート(比較したページ読み込み数、検出した競合)、各クリアです。これにより、ダッシュボードの Closed-loop development ビューですべての問題の経過(発見、再現、修正の証明、クローズ、または再調査)を表示し、エージェントが行ったことを一覧表示します。タイトル、証拠の行、スナップショット、ページのテキストは一切送信されず、送信内容が判断に使われることもありません。アプリ内のランタイムには、別途公開されている診断情報があります(PRIVACY.md)。これは GenClass.init({ telemetry: false }) で無効にできます。エージェントのリンクは診断情報に含まれません。

ライセンス

Apache-2.0

コメント

MCP は初めてですか?

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

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