mcpField
M
mcp-react-toolkit

mcp-react-toolkit

ローカル
github.com/Nishant-Chaudhary5338開発ツール34 週間前に更新

mcp-react-toolkit について

mcp-react-toolkit は、React と TypeScript の開発を自動化する MCP サーバー群とコマンドラインツールです。分析、コード生成、テスト、移行に対応し、一部のツールはインタラクティブな HTML ダッシュボードも生成します。

主な機能

  1. 01コンポーネントの雛形作成とレビュー
  2. 02TypeScript とアクセシビリティの検査
  3. 03テスト生成と失敗分析
  4. 04CRUD 機能の生成パイプライン
  5. 05CRA から Vite への移行ツール
  6. 06インタラクティブな HTML レポート

活用シーン

  1. 01React アプリのアクセシビリティとコード品質を監査
  2. 02API サンプルから型付き CRUD 機能を生成
  3. 03Create React App プロジェクトを Vite に移行

MCP 対応

各ツールは独立した MCP サーバーとして stdio 経由で実行でき、Claude Desktop、Cursor、Cline などのクライアントに設定できます。コマンドラインスクリプトとしても利用できます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"nishant-chaudhary5338-mcp-react-toolkit": {
"command": "npx",
"args": [
"-y",
"mcp-react-toolkit"
]
}
}
}
起動コマンドnpx -y mcp-react-toolkit

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

パッケージ
npmmcp-react-toolkit1.0.1

ツール

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

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

詳細

mcp-toolkit

React + TypeScript 開発を自動化する MCP サーバーです。Claude Desktop、Cline、Cursor と、通常の CLI スクリプトとしても使用できます。プロトコルは 1 つ、重複はありません。

npm CI License: MIT MCP SDK

9 カテゴリにわたる 59 個のツールを提供します。コンポーネントのスキャフォールディング、コード品質チェック、CRUD 機能一式の生成、CRA から Vite への移行など、さまざまな用途に対応しています。各ツールは個別の MCP サーバーとして提供され、それぞれ独立してビルドおよびテストされています。


これが必要な理由 — トークンの計算

エージェント型ワークフローの構築を始めたとき、誰も教えてくれないことがあります。コストがかかるのはモデルではなく、ループそのものです。合成ツールを使わずに動作するエージェントは、何をするにも遠回りです。ファイルを読み、考え、ファイルを書き、作業を確認するために読み直し、これを繰り返します。そして、そのやり取りのたびに、それまでの会話全体が入力トークンとして再送されます。実際の複数ファイルのタスクで20ステップも進むころには、再送されるコンテキストだけで1回の呼び出しあたり50Kトークンを超えることもあります。これはすぐに膨らみますし、どのモデルを使っているかが問題というわけでもありません。

ただ鵜呑みにしたわけではありません。実際の数値を示す情報源がいくつかあります。LeanOpsの測定結果によると、エージェントのループで使われるトークン数は、5ステップで単発の直接呼び出しの約3.2倍、50ステップで約30倍、一般的なビルドとデバッグのセッションが深く進むと100倍を超えます。再送されるコンテキストがコストの約62%を占めるためです。Vantageの調査でも同様の結果が示されています。実際のエージェント型セッションでは入力と出力の比率が約25:1(直接呼び出しでは約1:1)で、50ターンのセッションでは入力トークン数が100万に達することも珍しくありません。また、同じチームで同等の作業を行う場合、エージェントを使わない利用では、インタラクションあたりのコストが約200分の1になります。エージェント型トークン経済学に関する最近のarXiv論文では、エージェント型タスクのトークン数は単発のタスクの約1000倍に達し、まったく同じタスクでも実行ごとに最大30倍のばらつきがあるとされています。つまり、高コストなだけでなく、予測も困難です。

このツールキットの合成ツールは、まさにこの問題を解消するために作られています。workflow-runnerのschema_to_featureとcra-to-viteは、エージェントの既存のループにツール呼び出しを1回追加するのではありません。通常なら読み取り、書き込み、検証を7〜8回に分けて行う処理を、インプロセスの単一呼び出しに置き換え、ジェネレーターや移行パイプライン全体を実行して完成した結果を返します。これは、上記の調査が10〜100倍の節約につながると示す「50ターンのループを1回の呼び出しにまとめる」という形です。変更しないループにツールを1つ追加するだけ(得られるのは20〜40%程度)とはまったく異なります。

理論を鵜呑みにしないよう、実際に計測したベンチマークも実行しました。ax-benchmarkで6つのタスクを対象に、claude -pをヘッドレスで実行し、3つの条件(エージェント単独、ループにMCPツール呼び出しを1回追加したエージェント、エージェントを介さずツールを直接呼び出す場合)を比較しました。以下は、あえて保守的な基準です。ここでは、上記で説明したパイプライン全体の短縮ではなく、変更しないループにツール呼び出しを1回追加するケースのみをテストしています。

エージェント単独エージェント+MCPツール1回ツールを直接呼び出し
分析タスク(レビュー、a11y、レガシーコード)ベースラインコスト約41%削減約100%無料、約15倍高速(対象範囲内の場合)
全6タスクの混合結果ベースラインコスト約19%削減—
新規コード(コンポーネント、テスト)ベースラインコストはほぼ同等新規作業には該当しない

あらかじめ率直に伝えておきたい点が2つあります。公平な指標は実行時間ではなくコストです。エージェント単独の条件では、シェルへのアクセスなしでヘッドレス実行し、自由度の高いタスクで必要以上に探索したため、実際のコストには影響しないまま実行時間が膨らみました。また、小規模で新規性の高い単一ファイルの作業では、ツールの構造化出力にかかるオーバーヘッドが節約分を相殺することがあります。本当に効果が出るのは、反復的で機械的な複数ファイルの作業です。こうした作業は、上記のマルチターンループによるコストが最も大きくなる領域でもあります。


インストール

npmでmcp-react-toolkitとして公開されています。クローンやビルドは不要です。

npx mcp-react-toolkit --list            # list all 59 tools
npx mcp-react-toolkit legacy-analyzer   # run one as an MCP server (stdio)

Claude Desktop/Cursor/Clineに追加します。

// claude_desktop_config.json
{
  "mcpServers": {
    "legacy-analyzer": { "command": "npx", "args": ["-y", "mcp-react-toolkit", "legacy-analyzer"] }
  }
}

npx mcp-react-toolkit --listに表示される任意のツール名に置き換えてください。クライアントを再起動すると、ツールが表示されます。


インタラクティブダッシュボード

ほとんどの MCP ツールは生の JSON を返します。これらのツールは JSON に加えて、インタラクティブな HTML ダッシュボードも返します。ヘルススコア、並べ替え可能な問題のトリアージ、ライト/ダーク切り替え、ツールキット内の別のツールを呼び出すワンクリック修正アクションを利用できます。サーバーも外部リクエストも不要な、自己完結型のアーティファクトです。

実行場所得られるもの
Claude Desktop(MCP Apps)会話内にインラインで表示されます(サンドボックス化された iframe)
Claude Code · Cursor · CLIJSON に加えて、同じダッシュボードへのクリック可能な file:// リンク
任意のブラウザー同じ HTML を単独で表示

分析ツール(legacy-analyzer、component-reviewer、dep-auditor など)には監査ビューが表示されます。評価、カテゴリカード、フィルター可能な問題テーブルを確認できます。ジェネレーター(component-factory、code-modernizer など)には結果ビューが表示されます。作成/変更されたファイル、差分、フォローアップを確認できます。内部の @mcp-showcase/ui-kit パッケージを使用しており、依存関係はなく、レポートあたり約 30 KB です。


ツール

コンポーネント開発
ツール機能
component-factory41 種類の shadcn/ui テンプレートから React コンポーネントをスキャフォールドします。テストと Storybook も含まれます
component-reviewerTypeScript エラー、a11y の問題、テストカバレッジを監査し、A+ から F で評価します
component-fixer壊れたインポート、不足している依存関係、インラインスタイルのリファクタリングを自動修正します
component-improverバリアント、網羅的なストーリー、エッジケースのテストを追加してコンポーネントを拡張します
storybook-generatorStorybook のストーリーを自動生成します。Default、バリアント、サイズ、コールバック、play 関数に対応します
コード品質とモダナイゼーション
ツール機能
typescript-enforcerany 型、安全でないキャスト、不足している修飾子をスキャンします。7 つのルールで 0~10 のスコアを付けます
accessibility-checkerWCAG 2.1 監査を行います。代替テキスト、ラベルの関連付け、ARIA ロール、キーボードナビゲーションを確認します
a11y-autofixer安全な a11y 修正(img の alt、空の rel、htmlFor、tabIndex)を適用します
quality-pipeline5 段階の監査(テスト · 型 · パフォーマンス · a11y · デザイントークン)を行い、A~F で評価します
review-gate生成/変更されたコードに対する静的な A~F 品質ゲートです
enforce-design-tokensハードコードされた色/間隔/角丸/影を検出し、トークンを提案して、A~F で評価します
render-analyzer不要な再レンダー、不足している memo、インラインオブジェクト/関数を検出します
performance-auditメモリリーク、サイズの大きいインポート、最適化されていない画像、深いネストを検出します
bundle-budget-guardパターンごとの予算に基づいて gzip 圧縮後のアセットサイズをチェックし、リグレッションがあれば CI を失敗させます
code-modernizerAST ベースで JS/JSX を TypeScript に変換し、PropTypes をインターフェースに変換します
react-compiler-migratorReact 19 Compiler 向けに、冗長な useMemo/useCallback/memo を検出します
codemod-runner汎用の正規表現 codemod エンジンと名前付き組み込み機能を提供します。デフォルトではドライランです
refactor-executorリファクタリング計画を安全に実行します。移動/名前変更/分割、インポートの更新、ロールバックに対応します
redux-state-analyzerRedux のアンチパターン(セレクター、ミューテーション、RTK Query への移行ヒント)を監査します
api-contract-differ2 つの API スナップショットを比較し、破壊的変更と追加変更を分類します。破壊的変更を防ぐ CI ゲートとして使えます
i18n-extractorJSX 内のハードコードされた文字列をスキャンし、i18n キーとメッセージカタログを生成します
generate-testsTS/React ソースファイルを分析し、Vitest のテストスイートを生成します
test-gap-analyzer未実装の関数、カバーされていない分岐、不足しているエッジケースを検出します
test-data-factoryFieldSchema から、テスト/ストーリー用の型付きフィクスチャーファクトリーを生成します
fix-failing-testsテストスイートを実行し、失敗を根本原因別に分類して、対象を絞った修正を生成します
legacy-analyzerあらゆる React/Next.js/Remix アプリを対象とした 22 ツールによるヘルス監査です。0~100 でスコアを付け、移行のヒントを提示します
モノレポとインフラストラクチャ
ツール機能
dep-auditor未使用の依存関係、重複するバージョン、循環インポート、バンドルへの影響を分析します
monorepo-managerワークスペースの一覧表示、依存関係グラフ、ヘルスチェック、共有依存関係の検索
lighthouse-runner静的 HTML の監査 — メタタグ、アクセシビリティ、OG/Twitter カード、canonical、JSON-LD
json-viewerインタラクティブな HTML JSON ビューアー — 折りたたみ、検索、ダーク/ライト表示
CRUD ファクトリー

1 つの JSON API サンプル(または OpenAPI スキーマ)から、型付けされた完全な CRUD 機能を生成します。すべてのジェネレーターは共有の FieldSchema コントラクトを基盤としているため、各パーツを組み合わせられます。

ツール機能
infer-fieldsJSON サンプル/OpenAPI → 型付きの FieldSchema(型、FK 関係、テーブル/フォームのデフォルト設定)
zod-schema-generatorFieldSchema → Zod スキーマと推論された TS 型
api-client-generatorFieldSchema → RTK Query スライス または TanStack Query フック(キャッシュタグ付き)
form-generatorFieldSchema → React Hook Form + Zod フォーム(作成/編集)
table-generatorFieldSchema → TanStack Table(並べ替え/フィルター/ページネーション)
detail-generatorFieldSchema → 型付き詳細ビュー + 削除アクション
crud-composer各パーツをルートに接続 — React Router 7 または Next App Router
form-wizard-generatorFieldSchema → ステップごとの検証に対応した複数ステップの RHF+Zod ウィザード
msw-mock-generatorFieldSchema → MSW ハンドラー + シードデータ。モック API を使って機能を実行できます
workflow-runnerreview-gate による承認を経て、一連の処理をエンドツーエンドで実行します — ファイル + ジャーナル + A–F 評価
e2e-generatorFieldSchema → Playwright CRUD フロースペック(作成→編集→削除 + アクセシビリティ)
playwright-scaffolderPlaywright のテスト環境をスキャフォールド — 設定、フィクスチャ、ベース POM、認証設定
visual-regression-setupルート/ストーリー向けの Playwright toHaveScreenshot スペック — CSS の差異を検出
CRA → Vite

Create React App プロジェクトを Vite に移行します:分析 → 計画 → スキャフォールド → 移行 → 検証。

ツール機能
cra-to-viteオーケストレーター — 以下の 6 つのツールを順番に実行し、1 回の呼び出しで評価レポートを生成します
craconfig-analyzerCRA 設定の詳細な調査(react-scripts、環境変数、プロキシ、jest、browserslist、SVG)
dependency-remapperCRA の依存関係 → Vite の移行計画(削除/追加するバージョン + 対応付けできない依存関係)
env-var-migratorソースコードと .env ファイル内の REACT_APP_* → import.meta.env.VITE_*
jest-to-vitest-migratorjest.* → vi.*、適切なインポートを追加し、手動確認が必要なケースを示します
vite-project-scaffoldervite.config.ts、main.tsx、厳格な tsconfig、Vitest の設定ブロックを生成します
webpack-config-translatorwebpack/CRACO → Vite のベストエフォートな変換 + 手動確認リスト
ボイラープレート
ツール機能
barrel-generatorフォルダーから再エクスポートする index.ts バレルを生成 — エクスポート一覧のずれを防ぎます
type-from-jsonJSON サンプル → プレーンな TS インターフェース(ネストされたオブジェクトは個別のインターフェースになります)
zustand-store-generator状態の形状 → 型付き Zustand ストア(セッター、リセット、永続化/devtools)
svg-to-component生の SVG → 型付き React コンポーネント(SVGProps、currentColor)— SVGR 相当
env-config-generatorZod で検証する型付き環境変数モジュール(Vite/Next)— 変数の不足や不正を即座に検出します
states-scaffolder読み込み/空/エラー状態のコンポーネント + データビュー用の切り替えラッパー
メタ
ツール機能
mcp-tool-factoryこのパッケージ内の新しい MCP ツールをスキャフォールド、接続、検証します
mcp-tool-improviser7 つの観点から MCP ツールを分析・改善 — 差分の提案、適用、ロールバック
docs-generatorREADME(MCP ツールから)または API リファレンス(TS モジュール + JSDoc から)を生成します

自動化ワークフロー

よくあるタスクでは、ツールを連携させて実行できます:

ワークフロー連携
コードのモダナイゼーションlegacy-analyzer → code-modernizer → typescript-enforcer → generate-tests
コンポーネント品質パイプラインcomponent-factory → component-reviewer → accessibility-checker → storybook-generator
レンダリングパフォーマンス監査render-analyzer → performance-audit → quality-pipeline
アプリのヘルスチェックlegacy-analyzer → component-reviewer → generate-tests
依存関係の健全性dep-auditor [unused → duplicates → bundle-impact] → monorepo-manager
CRUD 機能の一括作成workflow-runner(CRUD Factory の連携全体を1回の呼び出しで実行)
CRA から Vite への移行cra-to-vite(CRA→Vite の連携全体を1回の呼び出しで実行)

MCP の仕組み

Claude Desktop / Cline / Cursor
        │  JSON-RPC over stdio
        ▼
   MCP Server (e.g. typescript-enforcer)
        │
        ▼
   Tool handlers (your code)

各サーバーは tools/shared/ の McpServerBase を拡張します。トランスポート、ルーティング、エラー形式の処理を担います。新しいツールの追加に必要なのは約50行です:

import { McpServerBase } from '@mcp-showcase/shared';

class MyTool extends McpServerBase {
  constructor() {
    super({ name: 'my-tool', version: '1.0.0' });
  }

  protected registerTools(): void {
    this.addTool('do_thing', 'Does a thing', {
      type: 'object',
      properties: { path: { type: 'string', description: 'Target path' } },
      required: ['path'],
    }, async (args) => {
      const { path } = args as { path: string };
      return this.success({ result: `Processed ${path}` });
    });
  }
}

new MyTool().run();

ソースから実行する(コントリビューター向け)

普段使いには npm をおすすめします(インストールを参照)。ツールの開発やショーケース UI の実行には、リポジトリをクローンしてください:

git clone https://github.com/Nishant-Chaudhary5338/mcp-toolkit.git
cd mcp-toolkit
npm install
npm run build
npm test          # run the full suite across all tools
npm run dev       # server on :3002, client on :5173

インストールと同じ方法で、Claude Desktop にローカルビルドを指定します。その際、npx -y mcp-react-toolkit <name> を node /path/to/mcp-toolkit/tools/<name>/build/index.js に置き換えてください。

CLI と CI での使用

各ツールの build/index.js には #!/usr/bin/env node のシバンが含まれています。JSON-RPC メッセージを標準入力からパイプで渡してください:

# Health score + migration hints for a full app
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"analyze-legacy-app","arguments":{"path":"/path/to/app"}}}' \
  | node tools/legacy-analyzer/build/index.js

# Review a component — grade A+ to F
echo '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"review","arguments":{"path":"src/components/Button.tsx"}}}' \
  | node tools/component-reviewer/build/index.js

# List a tool's available commands
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | node tools/legacy-analyzer/build/index.js

テスト

各ツールには、MCP トランスポートを介さずにコアロジックを直接検証する、同じディレクトリに配置された Vitest テストスイートがあります。

npm test                              # all tools
npm run test -w tools/legacy-analyzer # single tool

CI は、Node 20 および 22 に対して、プッシュと PR のたびに実行されます。


関連パッケージ

code-graph-indexer — あらゆる TS/React/Next.js リポジトリを、クエリ可能なコードグラフ(ファイル、コンポーネント、関数、それらの間のエッジ)にインデックス化し、構造に関する質問(これを呼び出している箇所、影響範囲、デッドコード、セマンティック検索)に回答します。同じファミリーの別パッケージです。

npx code-graph-indexer ui --root .

コントリビューション

新しいツールのひな形作成、テストの記述、PR の作成方法については、CONTRIBUTING.md をご覧ください。

技術スタック

TypeScript strict · Node.js · MCP SDK 1.12 · Vitest · React 19 · Vite · Tailwind CSS · Express

開発者

Nishant Chaudhary — シニアフロントエンドエンジニア · [email protected]

こちらもご覧ください:dashcraft · react-present · ai-builder

MIT ライセンス

コメント

MCP は初めてですか?

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

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