AI Skill Hub 推荐使用:MCP工具 是一款优质的MCP工具。AI 综合评分 7.5 分,在同类工具中表现稳健。如果你正在寻找可靠的MCP工具解决方案,这是一个值得深入了解的选择。
MCP工具:让LLMs为您的集成测试编写测试用例—E2E风格。
MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
MCP工具:让LLMs为您的集成测试编写测试用例—E2E风格。
MCP工具 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/mcpland/testing-mcp
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"mcp--": {
"command": "npx",
"args": ["-y", "testing-mcp"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 MCP工具 执行以下任务... Claude: [自动调用 MCP工具 MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"mcp__": {
"command": "npx",
"args": ["-y", "testing-mcp"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
Write complex integration tests with AI - AI assistants see your live page structure, execute code, and iterate until tests work
Provide descriptions for each context key to help AI understand what's available:
await connect({
context: {
screen,
fireEvent,
waitFor,
customHelper: async (text: string) => {
const button = screen.getByText(text);
fireEvent.click(button);
await waitFor(() => {});
},
},
contextDescriptions: {
screen: "Query methods like getByText, findByRole, etc.",
fireEvent: "Trigger DOM events: click, change, etc.",
waitFor: "Wait for assertions: waitFor(() => expect(...).toBe(...))",
customHelper: "async (text: string) => void - Clicks button by text",
},
});
How it works: The client collects metadata (name, type, function signature) for each context key. When AI calls get_current_test_state, it receives the full list of available APIs with their metadata, enabling accurate code generation.
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Node.js Test │ │ Bridge Daemon │ │ LLM/MCP │
│ Process │ │ (Singleton) │ │ Client │
└────────┬─────────┘ └────────┬─────────┘ └────────┬─────────┘
│ │ │
│ │ ┌──────────────────┤
│ │ │ MCP Adapter │
│ │◄────────┤ (per client) │
│ │ RPC └──────────────────┘
│ │ │
│ 1. await connect() │ │
├───────────────────────────►│ │
│ (Auto-discovers port) │ │
│ │ │
│ 2. WebSocket: "ready" │ 3. MCP Tool Call │
│ {dom, logs, context} │ (Stdio/JSON-RPC) │
├───────────────────────────►│◄───────────────────────────┤
│ │ │
│ 4. "connected" │ 5. RPC: getCurrentState │
│ {sessionId} │◄───────────────────────────┤
│◄───────────────────────────┤ │
│ │ 6. Returns state │
│ Test waits... ├───────────────────────────►│
│ │ │
│ │ 7. RPC: sendExecute │
│ 8. "execute" │◄───────────────────────────┤
│ {code, executionId} │ │
│◄───────────────────────────┤ │
│ │ │
│ Runs code with context │ │
│ │ │
│ 9. "executed" │ │
│ {result, newState} │ 10. Returns result │
├───────────────────────────►├───────────────────────────►│
│ │ │
│ │ 11. finalize_test │
│ 12. "close" │◄───────────────────────────┤
│◄───────────────────────────┤ (Adapter edits file) │
│ │ │
│ Test completes │ 13. Returns success │
│ ├───────────────────────────►│
▼ ▼ ▼
If tests with TESTING_MCP=true timeout quickly, you need to increase the test timeout.
AI assistants need time to inspect state and write tests - usually 5+ minutes minimum.
Set timeout in your test:
it("your test", async () => {
render(<YourComponent />);
await connect({ context: { screen, fireEvent } });
}, 600000); // 10 minutes = 600000ms
Install dependencies and build the project before launching the MCP server or consuming the client helper.
```bash npm install -D testing-mcp
Yes, if your tests don't automatically clear the DOM between tests.
By placing connect() in an afterEach hook in your setup file, you can make testing completely non-invasive and easier for automated test writing.
Example Jest setup file(setupFilesAfterEnv)
// jest.setup.ts
import { screen, fireEvent } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { connect } from "testing-mcp";
const timeout = 10 * 60 * 1000;
if (process.env.TESTING_MCP) {
jest.setTimeout(timeout);
}
afterEach(async () => {
if (!process.env.TESTING_MCP) return;
const state = expect.getState();
await connect({
filePath: state.testPath,
context: {
userEvent,
screen,
fireEvent,
},
});
}, timeout);
Example Vitest setup file(setupFiles):
// vitest.setup.ts
import { beforeEach, afterEach, expect } from "vitest";
import { screen, fireEvent } from "@testing-library/react";
import userEvent from "@testing-library/user-event";
import { connect } from "testing-mcp";
const timeout = 10 * 60 * 1000;
beforeEach((context) => {
if (!process.env.TESTING_MCP) return;
Object.assign(context.task, {
timeout,
});
});
afterEach(async () => {
if (!process.env.TESTING_MCP) return;
const state = expect.getState();
await connect({
filePath: state.testPath,
context: {
userEvent,
screen,
expect,
fireEvent,
},
});
}, timeout);
Important: This approach only works if your afterEach hooks don't automatically remove the DOM (e.g., you're not calling cleanup() before connect()).
Step 1: Install
npm install -D testing-mcp
Step 2: Configure Model Context Protocol (MCP) server (e.g., in Claude Desktop config):
{
"testing-mcp": {
"command": "npx",
"args": ["-y", "testing-mcp@latest"]
}
}
Step 3: Connect from your test:
import { render, screen, fireEvent } from "@testing-library/react";
import { connect } from "testing-mcp";
it("your test", async () => {
render(<YourComponent />);
await connect({
context: { screen, fireEvent },
});
}, 600000); // 10 minute timeout for AI interaction
Step 4: Run with MCP enabled:
Prompt:
Please run the persistent test in the `examples/react-jest` directory:
`TESTING_MCP=true RTL_SKIP_AUTO_CLEANUP=true npm test test/App.test.tsx`
Then, use the `testing-mcp` tool to write the test by following these steps:
1. Click the button displaying "count is 0".
2. Verify that the button text changes to "count is 1".
3. Write the test code to a file.
Now your AI assistant can see the page structure, execute code in the test, and help you write assertions.
await connect({
context: {
screen, // React Testing Library queries
fireEvent, // DOM event triggering
userEvent, // User interaction simulation
waitFor, // Async waiting utility
},
});
```bash
Add the MCP server to your AI assistant's configuration (e.g., Claude Desktop, VSCode, etc.):
{
"testing-mcp": {
"command": "npx",
"args": ["-y", "testing-mcp@latest"]
}
}
The server automatically discovers and connects to the bridge daemon, which manages WebSocket connections on dynamically assigned ports.
The daemon starts automatically when needed. For manual control:
```bash
testing-mcp
TESTING_MCP: When set to true, enables the WebSocket bridge to the MCP server. Leave unset to disable (automatically disabled in CI environments).TESTING_MCP_PORT: Overrides the WebSocket port for test clients. In most cases, this is not needed as ports are auto-discovered from the daemon registry.Inject testing utilities so AI knows what's available:
The connect() function accepts a context object that exposes APIs to the test execution environment. This allows AI assistants to know exactly what APIs are available when generating code.
testing-mcp [command] [options]
Commands:
serve Run as MCP adapter via stdio (default)
bridge Start the bridge daemon
bridge stop Stop the running daemon
bridge status Show daemon status
Options:
--help, -h Show this help message
--version, -v Show version number
| Component | Description |
|---|---|
| **Bridge Daemon** | Single background process that manages WebSocket connections from tests. Automatically assigns ports. |
| **MCP Adapter** | Lightweight stdio MCP server that each client spawns. Communicates with daemon via RPC. |
| **Registry File** | ~/.testing-mcp/bridge.json - Contains daemon port and auth token for auto-discovery. |
| Component | Responsibility |
|---|---|
| **Bridge Daemon** | Singleton process managing WebSocket connections, session state, and code execution |
| **MCP Adapter** | Per-client stdio MCP server that forwards tool calls to daemon via RPC |
| **Registry File** | Stores daemon port/token for auto-discovery by adapters and test clients |
| **Test Client** | connect() function that establishes WebSocket to daemon |
本项目是 Testing MCP 的一个测试项目,旨在使用 AI 来编写复杂的集成测试。它允许 AI 辅助员看到页面结构、执行代码并迭代测试直到测试通过。
本节介绍了 Testing MCP 的功能特点,包括如何解决测试超时问题、如何配置 MCP 服务器以及如何使用 connect() 函数等。
本节暂无内容。
要安装 Testing MCP,需要先安装依赖项并构建项目,然后才能启动 MCP 服务器或使用客户端助手。具体步骤如下:
使用 Testing MCP 的步骤包括安装、配置 MCP 服务器和连接测试。具体步骤如下:
配置 MCP 服务器需要在 AI 辅助员的配置文件中添加相关设置。例如,在 Claude Desktop 配置文件中添加以下内容:
connect() 函数接受一个 context 对象,该对象暴露了可供测试执行环境使用的 API。这样 AI 辅助员就可以知道哪些 API 可用并生成代码。
Testing MCP 的工作流包括 Bridge Daemon 和 MCP Adapter 两个关键组件。Bridge Daemon 负责管理 WebSocket 连接、会话状态和代码执行,而 MCP Adapter 负责提供 MCP 服务器功能。
本节提供了 Testing MCP 的常见问题和答案,包括如何解决测试超时问题、如何配置 MCP 服务器等。
MCP工具是一个开源的MCP工具,用于集成测试和E2E测试。它使用TypeScript编写,支持React和React Testing Library。虽然它有9个星星,但其使用场景和安装说明不完全清晰。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ MIT 协议 — 最宽松的开源协议之一,可自由商用、修改、分发,仅需保留版权声明。
总体来看,MCP工具 是一款质量良好的MCP工具,在同类工具中具备一定竞争力。AI Skill Hub 将持续追踪其更新动态,建议收藏备用,结合自身场景选择合适时机引入使用。
| 原始名称 | testing-mcp |
| 原始描述 | 开源MCP工具:Let LLMs author your integration tests—E2E-style.。⭐9 · TypeScript |
| Topics | integration-testingmcp-serverreactreact-testing-librarytestingtypescript |
| GitHub | https://github.com/mcpland/testing-mcp |
| License | MIT |
| 语言 | TypeScript |
收录时间:2026-05-20 · 更新时间:2026-05-23 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端