@rog0x/mcp-testing-tools
About
MCP server for testing: generate test cases, create mock data, mock API responses, analyze test coverage, generate assertions Install: npx @rog0x/mcp-testing-tools
Details
- License
- MIT
Explore
- Generate test cases from function signatures (Jest/Vitest)
- Create realistic mock data for common types (name, email, etc.)
- Mock REST API responses from schema definitions
- Analyze source code and tests for untested functions
- Generate assertion code by deep-diffing expected vs actual values
npm install
npm run build
Add to your claude_desktop_config.json:
{
"mcpServers": {
"testing-tools": {
"command": "node",
"args": ["path/to/mcp-testing-tools/dist/index.js"]
}
}
}
Testing and quality assurance tools for AI agents, exposed via the Model Context Protocol (MCP).
Testing and quality assurance tools for AI agents, exposed via the Model Context Protocol (MCP).
Tools
generate_tests
Generate test cases from a function signature. Produces four categories of tests as ready-to-run Jest or Vitest code:
- Happy path -- valid inputs, expected outputs
- Edge cases -- empty strings, zero values, null parameters
- Error cases -- missing arguments, wrong types
- Boundary values -- extreme numbers, large arrays, NaN
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| signature | string | Yes | Function signature, e.g. async function fetchUser(id: number): Promise<User> |
| framework | string | No | jest or vitest (default: vitest) |
| module_path | string | No | Import path for the module under test (default: ./module) |
generate_mock_data
Generate realistic mock data for testing. Supported types:
name, email, address, date, uuid, phone, company, credit_card, ip
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| type | string | Yes | Data type to generate |
| count | number | No | Number of items (default: 10, max: 1000) |
| locale | string | No | en or es (default: en) |
| types | string[] | No | Generate mixed records with multiple field types |
generate_api_mock
Generate mock API responses from a schema definition. Creates realistic JSON payloads for REST endpoints by inferring values from field names and types.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| endpoint | string | Yes | API endpoint path |
| method | string | No | HTTP method (default: GET) |
| fields | object[] | Yes | Field schemas with name, type, optional items, fields, nullable, enum |
| count | number | No | Number of records (default: 1, max: 100) |
| status_code | number | No | HTTP status code (default: 200) |
| wrap_in_envelope | boolean | No | Wrap in { success, data, meta } (default: true) |
analyze_test_coverage
Analyze source code and test code to find untested functions. Prioritizes suggestions by:
- Export status (public API surface)
- Cyclomatic complexity estimate
- Parameter count
- Async functions (more error paths)
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| source_code | string | Yes | Source code to analyze |
| test_code | string | Yes | Existing test code |
| source_file_name | string | No | Filename label (default: source.ts) |
generate_assertions
Generate detailed assertion code by comparing expected and actual values. Performs deep diff and produces per-field assertions with descriptive comments.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| expected | string | Yes | Expected value as JSON string |
| actual | string | Yes | Actual value as JSON string |
| label | string | No | Description for the comparison |
| framework | string | No | jest, vitest, or chai (default: jest) |
| deep | boolean | No | Deep equality for objects/arrays (default: true) |
Setup
npm install
npm run build
Usage with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"testing-tools": {
"command": "node",
"args": ["path/to/mcp-testing-tools/dist/index.js"]
}
}
}
License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



