mcp-testing-tools
# @rog0x/mcp-testing-tools
Testing and quality assurance tools for AI agents, exposed via the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/).
## 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
```bash
npm install
npm run build
```
## Usage with Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"testing-tools": {
"command": "node",
"args": ["path/to/mcp-testing-tools/dist/index.js"]
}
}
}
```
## License
MIT
TDQS
Scored across 5 tools
Most tools have clearly distinct purposes, but generate_tests and generate_assertions overlap slightly since generated test cases often include assertions. generate_mock_data and generate_api_mock are similarly related, though the former is general-purpose data and the latter is schema-driven API responses.
All tool names follow a consistent verb_noun pattern: generate_tests, generate_mock_data, generate_api_mock, generate_assertions, and analyze_test_coverage. The naming convention is uniform and predictable.
Five tools is a well-scoped set for a testing-focused server. Each tool covers a distinct aspect of test generation, mocking, assertions, or coverage analysis without unnecessary redundancy.
The tool surface covers test generation, mock data, API mocking, assertions, and coverage analysis well. Minor gaps exist, such as no direct test execution or test file management, but the core testing workflow is addressed.