QQ 虚拟 MCP 服务器
MCP 磁共振 试跑者 与LLM-优化测试输出,日志捕获,逐行覆盖分析.
目录
LLM和测试的问题
- 噪音测试输出 - Raw Vitest的输出可以极其动词性地用无用的信息来吞噬信使/信使.
- 全测试套件运行 - LLMS有时会忘记限制测试运行的范围,导致完全测试套件运行被执行.
- 掩埋控制台日志 - 控制台日志可以隐藏在测试输出中,这使得LLMS调试测试失败效率低下.
- 原始覆盖文件 - 原始覆盖文件太大 AI无法分析.
- 监视模式 - 当vitest在监视模式下运行时 LLMs就会被卡住.
关键特征
- 智能测试结果 有适应性,结构化的输出来限制噪音.
- 控制台日志抓取 防止日志在测试输出中丢失.
- 覆盖范围分析 与逐行差距的见解.
- 多仓库支助 在单个会话中进行上下文切换.
- 警卫 防止完整的工程运行,监视模式,无效的vitest命令,以及上下文跳动.
QQ 快速启动QQ
Vitest MCP服务器可以与任何MCP相容的IDE或工具一起使用,并且与所有的Javascription或Typescript Vitest一起工作. 基本配置为:
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"]
}
}
}
⚠️ 说明:以上例子可能不对所有MCP客户有效. 检查您的客户端的具体设置指令 .
QQ 客户端特定设置
从下面的设置指南中选择您首选的 IDE 或工具 :
克劳德代码
配置方法
Claude Code支持多种配置方法:
方法1: CLI 向导(互动)
# Add server with interactive prompts
claude mcp add vitest -- npx -y @djankies/vitest-mcp
# Add to project scope (shareable with team)
claude mcp add --scope project vitest -- npx -y @djankies/vitest-mcp
方法 2: 直接配置文件
创建或编辑 .mcp.json 在您的工程根中 :
{
"mcpServers": {
"vitest": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"],
"env": {}
}
}
}
配置范围
- 当地 (默认):个人,项目特定 - 存储在用户设置中
- 项目: 团队共享 - 存储于
.mcp.json在项目根中 - 用户: 所有项目均可使用 -- -- 全球配置
设置步骤
- 导航到您的工程目录
- 选择 CLI 或基于文件的配置
- 对于 CLI: 运行
claude mcp add vitest npx -y @djankies/vitest-mcp - 对于文件: 创建
.mcp.json带有以上配置 - 校验
/mcp命令在 Claude 代码中查看连接状态
使用量
配置后, 在您的对话中自然使用 MCP 服务器 :
- 将工程根设置为此目录
- "运行认证组件测试"
- "给我看测试覆盖漏洞"
克劳德桌面
配置位置
- 马科斯数字 :
~/Library/Application Support/Claude/claude_desktop_config.json - 窗口数字 :
%APPDATA%\Claude\claude_desktop_config.json
示例配置
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"]
}
}
}
设置步骤
- 打开克洛德桌面
- 导航到 文件 — 设置 — 开发者
- 点击 编辑配置
- 在上面添加配置
- 保存并重新启动 Claude 桌面
- 在对话输入中查找 MCP 指示器( X)
VS 代码
配置方法
- 工作空间数字 :
.vscode/mcp.json在您的项目中 - 全球: 运行命令
MCP: Open User Configuration
示例配置
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"],
"type": "stdio"
}
}
}
设置步骤
- 用 GitHub 代号安装 VS 代码 1. 86+
- 打开命令调色板( O)
Cmd/Ctrl + Shift + P(中文(简体) ) - 运行
MCP: Add Server - 选择 工作空间设置 或者说 全球
- 添加配置并保存
- 通过副驾驶聊天访问 : 添加上下文 ~ MCP 资源
光标
配置位置
- 项目数字 :
.cursor/mcp.json在您的工程目录中 - 全球数字 :
~/.cursor/mcp.json所有工作空间
示例配置
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"]
}
}
}
设置步骤
- 在您首选位置创建配置文件
- 添加服务器配置
- 重新启动光标
- MCP 服务器将在 Cursor 的 AI 聊天中可用
- 使用自然语言进行测试 : “ 运行认证组件测试 ”
风起浪起
配置位置
类似于光标, 但使用 serverUrl 改为 url 远程服务器
示例配置
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"]
}
}
}
设置步骤
- 打开 Windsurf 设置( R)
Cmd/Ctrl + ,(中文(简体) ) - 导航到 叠加设置
- 添加 MCP 服务器配置
- 重新装入 MCP 服务器以激活
线( VS 代码扩展)
通过 Cline UI 配置
示例配置
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"]
}
}
}
设置步骤
- 安装 Cline 扩展的打开 VS 代码
- 单击侧边栏中的线条图标
- 点击 MCP 服务器 → 配置 MCP 服务器
- 添加 vitest- mcp 配置
- 保存并重新装入 VS 代码
- 通过 Cline 聊天界面访问
3 使用该词
配置后, 您可以使用自然语言与测试交互 :
- "运行这个部件的测试"
- 调试此测试文件
- "分析这个文件的覆盖范围"
或预留您的信息 vitest-mcp: 确保使用这些工具:
- "最高级的mcp:运行测试这个组件"
- "vitest-mcp:调试此测试文件"
- "vitest-mcp:分析这个文件的覆盖度"
所需经费
- 节点.js联合国
- 维特: 3.x, 4.x 或 5.x 在您的项目中安装 QQ(每个主项目在CI中对照真实项目进行测试)
- 覆盖范围数字 :
@vitest/coverage-v8或者说@vitest/coverage-istanbul,与"Vitest"(覆盖分析)相同的主要版本
npm install --save-dev vitest @vitest/coverage-v8
服务器总是运行 您的项目本身的维特 (从 node_modules,包括吊起的单雷波安装). 它从不下载Vitest,也不通过外壳运行命令.
QQ 工具
set_project_root
🚨 所需第一个 - 为所有操作设置项目根.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
path | 字符串 | 对 | 项目根路径 |
list_tests
在您的工程中列出测试文件 。 帮助LLMs在进行测试的同时避免滑回使用命令行工具.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
path | 字符串 | 没有 | 搜索测试文件的目录( 默认为工程根) |
run_tests
执行带有结构化输出的测试.
参数:
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
target | 字符串 | 对 | 要测试的文件或目录 |
format | 字符串 | 没有 | 输出格式:"摘要"或"详细"(基于结果的自动检测) |
showLogs | 布尔 | 没有 | 包含控制台输出 [stdout] 或者说 [stderr] 前缀 |
project | 字符串 | 没有 | 单体的虚拟项目名称 |
analyze_coverage
分析测试覆盖面,并找出差距.
| 参数 | 类型 | 需求 | 说明 |
|---|---|---|---|
target | 字符串 | 对 | 用于分析覆盖的源文件或目录 |
format | 字符串 | 没有 | 输出格式:"摘要"(仅概述)或"详细"(包括逐行覆盖) |
project | 字符串 | 没有 | 只使用来自此Vitest项目的测试(例如. "unit"(中文(简体) ) |
exclude | 字符串 [] | 没有 | 被排除在外的模式(例如,[”**)." ). 替换您的配置 coverage.exclude 此运行 |
说明: 覆盖阈值应在您的
vitest.config.ts文件,不通过 MCP 参数.
该工具运行每个导入目标的测试( E)vitest related),无论你的测试住在哪里(./test, (中文(简体) ), __tests__,在源旁边.),并报告只覆盖目标,包括没有被测试触及的文件. 报告被写入一个临时目录,所以您自己 coverage/ 输出被单独处理。 测试公用事业、模拟、故事和e2e文件自动排除在外.
多存储器支持
// Project A
set_project_root({ path: "/path/to/frontend" })
run_tests({ target: "./src" })
// Project B
set_project_root({ path: "/path/to/backend" })
run_tests({ target: "./src" })
克劳德 代码虎克
自动将 Vitest 命令重定向到 MCP 工具 :
# Run from project root
curl -o .claude/vitest-hook.sh https://raw.githubusercontent.com/djankies/vitest-mcp/refs/heads/main/.claude/vitest-hook.sh
chmod +x .claude/vitest-hook.sh
那就加进你的项目 .claude/settings.local.json数字 :
{
"hooks": {
"PreToolUse": [{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": ".claude/vitest-hook.sh" }]
}]
}
}
钩子可以绕过 BYPASS_VITEST_HOOK 环境变量 :
BYPASS_VITEST_HOOK=1 npm test
或导出整个会话 :
export BYPASS_VITEST_HOOK=1
LLM 指令
鼓励Claude或你的ide正确使用这些工具: CLAUDE.例.md
QQ 配置
Vitest 配置优先级
如果你的项目 vitest.mcp.config.* 文件( 编号.ts, (中文(简体) ), .mts, (中文(简体) ), .cts, (中文(简体) ), .js, (中文(简体) ), .mjs 或者说 .cjs),MCP服务器以 --config否则Vitest会发现你的正常 vitest.config.* 编号 : vite.config.* 和往常一样.
这使得您可以有一个专用的 MCP 配置,不会干扰您的常规开发工作流程:
// vitest.mcp.config.ts
import { defineConfig, mergeConfig } from 'vitest/config';
import baseConfig from './vitest.config';
export default mergeConfig(baseConfig, defineConfig({
test: {
// MCP-specific settings, e.g. a longer timeout for AI-driven runs
testTimeout: 30000,
},
}));
记者,覆盖输出和控制台抓取由服务器设置在命令行上,因此不需要配置.
覆盖率阈值
实现在 analyze_coverage 工具,只需在虚拟配置文件中配置:
// vitest.config.ts or vitest.mcp.config.ts
import { defineConfig } from 'vitest/config';
export default defineConfig({
test: {
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
thresholds: {
lines: 90,
functions: 85,
branches: 80,
statements: 90
}
}
}
});
💡 说明:无论门槛设置如何,总有覆盖面分析。 阈值报告只是帮助 你的LLM目标.
Vitest-MCP 配置文件
可选 .vitest-mcp.json 在家庭或项目目录中:
{
"safety": {
"allowedPaths": ["/Users/username/Projects"]
},
"testDefaults": {
"format": "detailed",
"timeout": 60000
}
}
优先权顺序
配置按以下顺序合并(最优先优先第一):
- 命令行旗帜
- 环境变量
- 配置文件
- 内建默认
QQ 开发模式和调试
启用调试模式
设置详细记录的调试环境变量 :
VITEST_MCP_DEBUG=true
或者在您的 MCP 配置文件中 :
{
"mcpServers": {
"vitest": {
"command": "npx",
"args": ["-y", "@djankies/vitest-mcp"],
"env": {
"VITEST_MCP_DEBUG": "true"
}
}
}
}
发展模式
启用在自己的密码库测试服务器 :
# Set in .env.development, or in your mcp config file
VITEST_MCP_DEV_MODE=true
* 解决问题
"没有找到" - 在您设置为根的工程中安装: npm install --save-dev vitest
"没有找到封面供应商" 编号 : "和维特不匹配" - 安装匹配您 Vitest 主修的提供者, 例如 . npm install --save-dev @vitest/coverage-v8@4 维特4号
钩子问题 - 绕道: BYPASS_VITEST_HOOK=1 npm test
找到窃听器了吗? 请提交错误报告,谢谢.
许可证
麻省理工学院——见 自由主义。 。 。 .