pracht dev-mcp について
pracht dev-mcp は pracht CLI に含まれる MCP サーバーで、stdio で動作し、pracht アプリを開発するコーディングエージェント向けです。アプリグラフの検査、検証、計画、レポート、 scaffold 生成、同梱ドキュメントを、ネイティブなツールとして MCP クライアントに提供します。
主な機能
- 01stdio で動作する MCP サーバー
- 02アプリグラフからルート、API、機能を検査
- 03verify、plan、report のツール
- 04scaffold 生成用の generate コマンド
- 05同梱ドキュメントの一覧、取得、検索
活用シーン
- 01ルート変更前にコーディングエージェントでアプリ構成を確認
- 02アプリグラフの差分から PR 用レポートを作成
- 03インストール済みバージョンに対応したドキュメントをエージェントから参照
MCP 対応
本プロジェクトは、inspect、doctor、verify、plan、report、generate およびドキュメント関連のツールを stdio 経由で MCP クライアントに公開する MCP サーバーです。クライアントの登録方法とツールの一覧は docs/MCP.md に記載されています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
@pracht/cli
pracht アプリの開発、ビルド、検証、ひな形作成を行うコマンドラインツールです。
インストール
npm install @pracht/cli
コマンド
pracht dev
SSR と HMR を使用して、ローカル開発サーバーを起動します。
pracht dev
pracht dev --port 4000
pracht dev --cache-dir /tmp/pracht-vite-cache
--cache-dir は、Vite の node_modules/.vite キャッシュを上書きします。同じプロジェクトのチェックアウトに対して複数の開発サーバーを同時に実行する場合は、それぞれ別のディレクトリを指定してください。
pracht build
クライアント/サーバーの出力と SSG/ISG のプリレンダリングを含む、本番用ビルドを作成します。
pracht build
pracht build --analyze # per-route client JS report (gzip + raw)
pracht build --json # same report as JSON (agent-friendly)
pracht build --no-budget-fail # report exceeded budgets without failing
--analyze は、ルートごと(パターン+レンダリングモード)に読み込まれる推移的なクライアントチャンクを、圧縮前および gzip 圧縮後のサイズとともに表示します。また、合計行と、分割表示された共有エントリーチャンクも表示します。出力は NO_COLOR に従います。
pracht プラグインの設定で budgets(例:budgets: { "*": "120kb", "/dashboard": "200kb" })が宣言されている場合、すべてのビルドでルートごとの gzip 圧縮後のクライアント JavaScript の上限を評価し、dist/server/budget-report.json に書き込みます。--no-budget-fail を指定しない限り、上限を超えるとゼロ以外の終了コードで終了します。docs/PERFORMANCE.md を参照してください。
Node.js をターゲットにする場合は、ビルド済みサーバーを次のように実行します。
node dist/server/server.js
pracht preview
本番用ビルドをローカルで配信します。最初に pracht build を実行し(--skip-build でスキップ可能)、設定済みのアダプター向けに出力を配信します。
- Node:
dist/server/server.jsを--port(または$PORT、デフォルトは 3000)で実行します。 - Cloudflare:ビルド済みワーカーに対して
wrangler devを実行します。node_modules内または PATH 上にある wrangler と、wrangler の設定ファイルが必要です。 - Vercel:本番環境を忠実に再現するローカルランタイムはありません。その代わり、
vercel build/vercel devを案内します。
pracht preview
pracht preview --port 4000
pracht preview --skip-build
pracht verify
ビルドやテストの全工程を実行せずに、フレームワークを考慮した高速な検証を行います。--changed を指定するとマニフェストで管理されている変更済みファイルに絞り込み、--json を指定すると機械可読形式で出力します。dist/server/budget-report.json が存在する場合(budgets が設定されていると pracht build が書き込みます)、直近のビルドにおけるクライアント JavaScript の予算結果もチェックとして表示されます。
アプリで defineApp({ constraints }) が宣言されている場合、または .pracht/app-graph.json スナップショットがコミットされている場合、検証では実際のアプリグラフも解決し、すべての制約を適用します。また、スナップショットが古い場合は失敗します(pracht plan --write で修正できます)。
pracht verify
pracht verify --changed
pracht verify --json
WebMCP ページツールを公開するルートには、ブラウザーを使用するサブコマンドを使ってください。
pracht verify webmcp --url http://localhost:3000
pracht verify webmcp --start "pracht preview" --json
インストール済みの Chrome 150 以降を WebMCP テスト有効の状態で起動し、ネイティブのルートスコープ付きツールレジストリと解決済みアプリグラフを比較して、ナビゲーション後のクリーンアップを検証します。フレームワークが所有する pracht_* 開発ツールは、アプリグラフとの整合性チェックから除外されます。Pracht は固定バージョンが指定されていないブラウザーをダウンロードしません。CI では --browser /path/to/chrome を指定してください。呼び出し/キャンセルの証明もレポートに含める場合は、--scenario に明示的な安全な WebMCP eval ファイルを指定します。
pracht eval
HTTP(デフォルト)、リモート MCP("transport": "mcp")、またはネイティブ WebMCP("transport": "webmcp" と "webmcpRoute")で、スクリプト化された機能シナリオを実行します。WebMCP のステップでは cancelAfterMs を設定して、ホストによるキャンセルがディスパッチ経路に伝わることを証明できます。
pracht eval --start "pracht preview"
pracht eval evals/notes-webmcp.eval.json --browser /path/to/chrome --json
pracht plan
ベースとなる git ref との差分を、アプリグラフの意味に基づいて表示します。ベース ref でコミットされた .pracht/app-graph.json スナップショット(ルートグラフのロックファイル)を読み込み、実際のグラフを解決して、追加、削除、変更されたルート、API エンドポイント、制約を表示します。レビュー担当者向けの、変更の意図を示す変更履歴です。直近のビルドで予算レポートが書き込まれている場合は、ルートごとの gzip 圧縮後のサイズも注記されます。
pracht plan # diff against origin/main
pracht plan --base main
pracht plan --markdown # fenced diff for PR comments
pracht plan --json # full structured payload
pracht plan --write # refresh .pracht/app-graph.json (commit it)
pracht report
機械的に得られる情報、つまり pracht plan の差分、pracht verify の結果、直近のビルドにおけるクライアント JavaScript の予算テーブルから、PR にそのまま使える Markdown レポートを作成します。PR の説明文の事実部分として使用してください。
pracht report
pracht report --base main --out pr-report.md
pracht llms
コーディングエージェント向けの pracht 作成ガイド(プロジェクト構成、
規約、verify → plan → report のループ)を出力します。--write を指定すると、
アプリのルートに llms.txt として保存され、エージェントが自動的に読み込みます。
pracht llms
pracht llms --write
pracht docs
このパッケージに同梱されている pracht のドキュメントを読み込みます。インストール済みの
バージョンに一致し、オフラインでも利用できます。トピックを指定しない場合はページの一覧を
表示し、トピックを指定するとそのページを Markdown 形式で出力します(slug#section を
指定すると、1 つのセクションを出力します)。--search を指定すると、セクションを検索します。
ファイルは node_modules/@pracht/cli/docs/ にもあります。
pracht docs
pracht docs routing
pracht docs --search "loader revalidate"
pracht generate route
新しいルートモジュールを作成します。マニフェストアプリでは、src/routes.ts も更新します。
アプリに Playwright のセットアップ(playwright.config.* または e2e/
ディレクトリ)がある場合は、e2e/<route-id>.spec.ts にスモークテストも生成します。
--no-test を指定するとスキップし、--test を指定すると強制的に生成します。生成される
テストでは @playwright/test をインポートします。この依存関係がない場合、コマンドは
インストール方法(例:pnpm add -D @playwright/test)を表示します。
pracht generate route --path /dashboard --render ssr --shell app --middleware auth
pracht generate route --path /blog/:slug --render ssg --no-test
pracht generate shell
シェルモジュールを作成し、アプリのマニフェストに登録します。
pracht generate shell --name app
pracht generate middleware
ミドルウェアモジュールを作成し、アプリのマニフェストに登録します。
pracht generate middleware --name auth
pracht generate api
src/api/ に API ルートを作成します。
pracht generate api --path /health --methods GET,POST
pracht inspect
解決済みのアプリグラフを検査します。エージェントやツールで使用する場合は、--json を指定します。
pracht inspect --json
pracht inspect routes --json
pracht inspect api --json
pracht inspect capabilities --json
pracht inspect agents --json
pracht inspect build --json
pracht inspect agents は、設定済みのエージェント機能を要約します。Web Bot Auth
ポリシーとキー、破壊的操作の確認モード、リモート MCP エンドポイント、
llms.txt が生成されるかどうか、各トランスポートで公開されている機能を確認できます。
llms.txt の状態は、ビルド時または本番環境専用のオプションを含む、解決済みの本番
サーバービルド設定に基づきます。古いバージョンの @pracht/vite-plugin がこの状態を
公開できない場合、JSON では null、テキストでは unknown と表示し、メタデータの欠落を
無効として扱うことはありません。JSON レポートには mcpEndpoint、mcpDestructive、
mcpRuntimeStatus、mcpUnavailableReasons も含まれます。また、検査でツールに
到達できることを確認できない場合、テキストでは宣言に mcp(unserved) または
mcp(unverified) と表示します。
pracht typegen
解決済みのルートグラフから src/pracht.d.ts と src/pracht-routes.ts を生成し、
型付きの <Link>、ルートオブジェクトを使う useNavigate()、href() ヘルパーと、
apiFetch() 用の型付き API ルート登録を提供します。生成時に API モジュールは実行されません。
生成ファイルが古い場合に CI で失敗させるには、--check を指定します。初回の生成後は、
pracht dev が既定の出力を最新の状態に保ちます。初回の生成前は、dev バナーに
セットアップ方法を 1 行で表示します。
pracht typegen
pracht typegen --check
pracht doctor
プロジェクト全体で、ローカルアプリの構成を検証します。機械可読な出力を得るには、
--json を指定します。
pracht doctor
pracht doctor --json
pracht dev-mcp
stdio 上で Model Context Protocol サーバーを起動します。inspect、doctor、verify、plan、
report、generate、作成ガイド、同梱ドキュメント(get_docs、list_docs、search_docs)を
コーディングエージェント向けのネイティブツールとして公開します。クライアントの登録方法と
ツールのリファレンスについては、docs/MCP.md
を参照してください。
pracht dev-mcp
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。