npm package: @rog0x/mcp-testing-tools
Description: Testing and quality assurance tools for AI agents via MCP
Latest version: 1.0.2

# @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