
Vue Harvest
io.github.virgilvox由 GitHub 账号 virgilvox 发布v0.0.3更新于 Oct 24, 2026
Extract reusable component libraries and design tokens from Vue applications
概览
分析 Vue 项目,找出可复用组件与设计令牌,并让助手借助工具处理难以抽取的组件。
- 可以做什么
- 对指定 Vue 项目路径运行完整分析流程,并按层级或置信度筛选列出组件
- 查看单个组件的 props、事件、插槽、依赖与耦合问题
- 将组件抽取为独立包,支持重写后再抽取
- 深入分析耦合情况,生成改造前后代码建议,或为依赖 store 的组件生成组合式封装
- 批量分诊待复核组件,并输出项目级耦合报告
- 抽取设计令牌(颜色、字体、间距、圆角、阴影)并按类型返回
- 适用场景
- 适合从现有 Vue 应用中提炼组件库或设计系统,也适合组件处于 30-70% 置信度区间、需要判断如何与 store、路由或 i18n 解耦后再抽取的场景。
- 运行要求
- 以本地 stdio 进程在桌面端运行,通过 npm 包 vue-harvest-mcp 安装(需要 Node.js)。它会读取本机的 Vue 项目目录,包括 .vue 文件以及用于路径别名的 tsconfig.json。未声明需要账号、API 密钥或环境变量。
安装
在 SourceWeft 中
- 打开 控制台中的 Vue Harvest,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
vue-harvest
Point it at a Vue project. It finds every component, figures out which ones are reusable, and extracts them. It also pulls out your design tokens (colors, spacing, typography) and gives you a visual report.
The hard cases that need judgment (store-coupled components, ambiguous dependencies) get handled by an MCP server that feeds structured analysis to an LLM.
What it does
Component extraction. Parses every .vue file in a project using @vue/compiler-sfc. For each component it extracts the full interface (props, emits, slots), maps out the dependency graph, detects coupling issues, and scores a confidence level for safe extraction. Components above the threshold get auto-extracted into standalone bundles with rewritten imports and a manifest of peer dependencies.
Design token extraction. Scans all CSS (scoped styles, standalone stylesheets) and pulls out colors, font families, font sizes, font weights, spacing values, border radii, and shadows. Outputs a CSS custom properties file, a JSON dump, and a visual HTML explorer showing swatches and scales.
MCP server. Twelve tools that give an LLM the structured data it needs to reason about the harder cases: components in the 30-70% confidence range that could be extracted with some refactoring. The LLM can deep-analyze coupling, generate decoupling suggestions with before/after code, create composable wrappers for store-bound components, and do full rewrite-and-extract in one shot.
Install
For the MCP server:
CLI
vue-harvest analyze [path]
Full analysis pipeline. Discovers .vue files, parses interfaces, builds the dependency graph, classifies every component, auto-extracts the safe ones, and generates a registry + catalog.
Output goes to .vue-harvest/ by default:
vue-harvest list [path]
Lists all components sorted by extraction confidence.
vue-harvest inspect <name>
Full breakdown of a single component: props, events, slots, dependencies, coupling issues, style analysis.
vue-harvest extract <name>
Extracts a specific component and all its local dependencies into a standalone bundle.
vue-harvest tokens [path]
Extracts design system tokens from the project.
Outputs:
tokens.csswith CSS custom propertiestokens.jsonwith the full token datasetdesign-system.htmlwith a visual explorer (color swatches, font scales, spacing visualization)
vue-harvest init
Creates a harvest.config.json with detected project settings.
Configuration
Optional. Place a harvest.config.json in the project root:
Path aliases are auto-detected from tsconfig.json. If your project has @ mapped to ./src, vue-harvest picks that up.
Component classification
Every component gets classified into a reusability tier based on its interface, dependencies, and coupling:
Components at or above the extraction threshold (default 70%) are auto-extracted. The 30-70% band is where the MCP server comes in.
Coupling issues
The analyzer detects these coupling patterns:
MCP server
Setup with Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
Setup with Claude Code
Available tools
Resources
The server exposes these as MCP resources after analysis:
harvest://registry: full registry JSONharvest://graph: dependency graphharvest://summary: analysis summaryharvest://component/{name}: individual component analysisharvest://design-system: extracted design tokens
Prompts
analyze-new-project: guided first analysisextraction-sprint: batch refactor and extract sessionrefactor-component: single component deep refactorextract-design-system: design token extraction and analysis
Example conversations
"Analyze my Vue project at /Users/me/projects/my-app"
"Show me all the components that need review"
"Deep analyze the UserProfileCard component and suggest how to decouple it from the auth store"
"Do an extraction sprint, go through all reviewable components and extract what you can"
"Extract the design system tokens and recommend a naming convention"
Programmatic API
vue-harvest exports its analysis engine for use in other tools:
Architecture
The split between CLI and MCP is deliberate. The CLI handles everything deterministic: parsing, graph building, classification, extraction. The MCP handles the 20% that needs reasoning: decoupling suggestions, refactoring code generation, ambiguity resolution.
Development
Watch mode for the CLI:
Run a specific test file:
How it works internally
- Discovery. Globs for
.vuefiles, readstsconfig.jsonfor path aliases. - SFC parsing.
@vue/compiler-sfcsplits each file into template, script, and style blocks. - Interface extraction. Regex-based extraction of
defineProps,defineEmits,<slot>tags. Handles generic type syntax,withDefaults, and object syntax with nested options. - Dependency analysis.
es-module-lexerparses imports. Each import gets classified by kind (internal component, composable, store, util, external package, etc). - Coupling detection. Pattern matching on the script and template AST for store access, hardcoded APIs, router usage, i18n, inject, env vars, unscoped CSS.
- Classification. Confidence scoring starts at 1.0 and gets penalized for coupling issues, store access, and page-path patterns. Boosted for props/slots interfaces and UI-path patterns.
- Graph building. Resolves import paths, builds adjacency lists, runs Tarjan's strongly connected components algorithm for cycle detection, computes transitive dependency closures.
- Extraction. For components above threshold: collects the component plus all its local deps (composables, utils, types, styles), rewrites import paths to be relative within the extracted bundle, generates a manifest listing peer dependencies and required globals.
- Token extraction. PostCSS value parser identifies colors (hex, rgb, hsl), font properties, spacing values, radii, and shadows from CSS declarations. Deduplicates, normalizes hex values, and groups by type.
License
MIT
来源:README.md,提交 47c29cf
工具
0版本历史
1- v0.0.3最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分