pracht dev-mcp

io.github.JoviDeCroock由 GitHub 账号 JoviDeCroock 发布v1.17.0更新于 Oct 26, 2026

Inspect, verify, diff, and scaffold a pracht app's routes, API, and capabilities from its app graph.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

本地 stdio MCP 服务器,为编码助手提供 pracht 应用工具:检查应用图、验证、计划差异、报告、脚手架和内置文档。

可以做什么
检查解析后的应用图,包括路由、API 端点、能力、代理和构建状态,并可为工具输出 JSON。运行验证和 doctor 检查,并将应用图与基准 git 引用做差异对比,得到意图级变更日志。根据计划差异、验证结果和客户端 JS 预算表生成可直接用于 PR 的报告。生成新路由、shell、中间件和 API 路由,并更新应用清单。读取内置编写指南和随包文档,支持离线列出、获取和搜索。
适用场景
在开发 pracht 应用时使用,让助手了解路由、API 和能力,检查项目接线,在提交 PR 前审阅应用图变更,或直接在编辑器中生成新模块。
运行要求
作为本地进程通过 stdio 运行,从 npm 包 @pracht/cli 安装,需要 Node.js 和 npm。它作用于 pracht 项目检出目录。未声明认证、环境变量或请求头。
安装前请注意
脚手架命令会创建文件并更新应用清单,计划命令可能刷新已提交的应用图快照,因此应审阅这些改动。验证和评估可能启动已安装的 Chrome 进行 WebMCP 检查。

安装

在 SourceWeft 中

  1. 打开 控制台中的 pracht dev-mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

@pracht/cli

Command-line tool for developing, building, validating, and scaffolding pracht apps.

Install

bash
npm install @pracht/cli

Commands

pracht dev

Start the local development server with SSR and HMR.

bash
pracht devpracht dev --port 4000pracht dev --cache-dir /tmp/pracht-vite-cache

--cache-dir overrides Vite's node_modules/.vite cache. Give concurrent dev servers separate directories when they run against the same project checkout.

pracht build

Create a production build with client/server output and SSG/ISG prerendering.

bash
pracht buildpracht 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 prints, per route (pattern + render mode), the transitive client chunks it loads with raw and gzip sizes, a total row, and the shared entry chunks broken out. Output respects NO_COLOR.

When the pracht plugin config declares budgets (e.g. budgets: { "*": "120kb", "/dashboard": "200kb" }), every build evaluates the per-route gzip client-JS ceilings, writes dist/server/budget-report.json, and exits non-zero on exceeded budgets unless --no-budget-fail is passed. See docs/PERFORMANCE.md.

For Node.js targets, run the built server with:

bash
node dist/server/server.js

pracht preview

Serve the production build locally. Runs pracht build first (skip with --skip-build), then serves the output for the configured adapter:

  • Node: runs dist/server/server.js on --port (or $PORT, default 3000).
  • Cloudflare: delegates to wrangler dev against the built worker; requires wrangler in node_modules or on your PATH plus a wrangler config.
  • Vercel: there is no faithful local production runtime — the command points you at vercel build / vercel dev instead.
bash
pracht previewpracht preview --port 4000pracht preview --skip-build

pracht verify

Run fast framework-aware verification checks without paying for a full build or test loop. Use --changed to focus on changed manifest-managed files and --json for machine-readable output. When dist/server/budget-report.json exists (written by pracht build when budgets are configured), the last build's client JS budget results are surfaced as checks.

When the app declares defineApp({ constraints }) or commits a .pracht/app-graph.json snapshot, verification also resolves the live app graph, enforces every constraint, and fails if the snapshot is stale (fix with pracht plan --write).

bash
pracht verifypracht verify --changedpracht verify --json

Use the browser-backed subcommand for routes that expose WebMCP page tools:

bash
pracht verify webmcp --url http://localhost:3000pracht verify webmcp --start "pracht preview" --json

It launches an installed Chrome 150+ build with WebMCP testing enabled, compares the native route-scoped tool registry with the resolved app graph, and verifies navigation cleanup. Framework-owned pracht_* development tools are excluded from app-graph parity. Pracht never downloads an unpinned browser; pass --browser /path/to/chrome in CI. --scenario accepts explicit safe WebMCP eval files when invocation/cancellation proof should join the report.

pracht eval

Run scripted capability scenarios over HTTP (default), remote MCP ("transport": "mcp"), or native WebMCP ("transport": "webmcp" plus "webmcpRoute"). A WebMCP step can set cancelAfterMs to prove host cancellation reaches the dispatch path.

bash
pracht eval --start "pracht preview"pracht eval evals/notes-webmcp.eval.json --browser /path/to/chrome --json

pracht plan

Semantic app-graph diff against a base git ref. Reads the .pracht/app-graph.json snapshot committed at the base ref (a route-graph lockfile), resolves the live graph, and prints the routes, API endpoints, and constraints that were added, removed, or changed — an intent-level changelog for reviewers. Per-route gzip sizes are annotated when the last build wrote a budget report.

bash
pracht plan                       # diff against origin/mainpracht plan --base mainpracht plan --markdown            # fenced diff for PR commentspracht plan --json                # full structured payloadpracht plan --write               # refresh .pracht/app-graph.json (commit it)

pracht report

Assemble a PR-ready markdown report from machine truth: the pracht plan diff, pracht verify results, and the last build's client JS budget table. Use it as the factual half of a PR description.

bash
pracht reportpracht report --base main --out pr-report.md

pracht llms

Print the embedded pracht authoring guide for coding agents (project layout, conventions, the verify → plan → report loop). --write saves it as llms.txt in the app root so agents pick it up automatically.

bash
pracht llmspracht llms --write

pracht docs

Read the pracht docs that ship inside this package, so they match the installed version and work offline. With no topic it lists the pages; a topic prints one as Markdown (slug#section prints one section); --search finds sections. The files are also in node_modules/@pracht/cli/docs/.

bash
pracht docspracht docs routingpracht docs --search "loader revalidate"

pracht generate route

Create a new route module. In manifest apps this also updates src/routes.ts. When the app has a Playwright setup (playwright.config.* or an e2e/ directory), a smoke test is emitted at e2e/<route-id>.spec.ts as well — --no-test skips it, --test forces it. Generated tests import @playwright/test; when that dependency is absent, the command prints an install follow-up (for example, pnpm add -D @playwright/test).

bash
pracht generate route --path /dashboard --render ssr --shell app --middleware authpracht generate route --path /blog/:slug --render ssg --no-test

pracht generate shell

Create a shell module and register it in the app manifest.

bash
pracht generate shell --name app

pracht generate middleware

Create a middleware module and register it in the app manifest.

bash
pracht generate middleware --name auth

pracht generate api

Create an API route under src/api/.

bash
pracht generate api --path /health --methods GET,POST

pracht inspect

Inspect the resolved app graph. Use --json for agent/tool consumption.

bash
pracht inspect --jsonpracht inspect routes --jsonpracht inspect api --jsonpracht inspect capabilities --jsonpracht inspect agents --jsonpracht inspect build --json

pracht inspect agents summarizes the configured agent surface: Web Bot Auth policy and keys, the destructive-confirmation mode, the remote MCP endpoint, whether llms.txt is generated, and which capabilities are exposed on which transports. The llms.txt state comes from the resolved production server-build configuration, including build- or production-only options. If an older installed @pracht/vite-plugin cannot expose that state, JSON reports null and text reports unknown rather than treating missing metadata as disabled. The JSON report also includes mcpEndpoint, mcpDestructive, mcpRuntimeStatus, and mcpUnavailableReasons; text marks declarations mcp(unserved) or mcp(unverified) when inspection cannot confirm that the tool is reachable.

pracht typegen

Generate src/pracht.d.ts and src/pracht-routes.ts from the resolved route graph for typed <Link>, route-object useNavigate(), and href() helpers, plus typed API route registrations for apiFetch(). API modules are not executed during generation. Use --check in CI to fail when generated files are stale. After the first generation, pracht dev keeps the default outputs current; before it, the dev banner prints a one-line setup tip.

bash
pracht typegenpracht typegen --check

pracht doctor

Validate the local app wiring across the whole project. Use --json for machine-readable output.

bash
pracht doctorpracht doctor --json

pracht dev-mcp

Start a Model Context Protocol server on stdio that exposes inspect, doctor, verify, plan, report, generate, the authoring guide, and the bundled docs (get_docs, list_docs, search_docs) as native tools for coding agents. See docs/MCP.md for client registration and the tool reference.

bash
pracht dev-mcp

来源:packages/cli/README.md,提交 6f1ea74

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

3
  1. v1.17.0最新Oct 26, 2026
  2. v1.16.1Oct 13, 2026
  3. v1.16.0Oct 12, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分