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.TESTING_MCP_TOKEN: Authentication token to use with an explicit TESTING_MCP_PORT or connect({ port }) override.TESTING_MCP_DATA_DIR: Overrides the daemon registry directory. Use this to isolate multiple workspaces or exploratory testing sessions.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
bridge doctor Diagnose daemon registry and connectivity
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-30 · License:MIT · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端