mcp-testing-tools
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-testing-toolsGenerate tests for fetchUser(id: number): Promise"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@rog0x/mcp-testing-tools
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 |
| string | Yes | Function signature, e.g. |
| string | No |
|
| string | No | Import path for the module under test (default: |
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 |
| string | Yes | Data type to generate |
| number | No | Number of items (default: 10, max: 1000) |
| string | No |
|
| 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 |
| string | Yes | API endpoint path |
| string | No | HTTP method (default: |
| object[] | Yes | Field schemas with |
| number | No | Number of records (default: 1, max: 100) |
| number | No | HTTP status code (default: 200) |
| boolean | No | Wrap in |
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 |
| string | Yes | Source code to analyze |
| string | Yes | Existing test code |
| string | No | Filename label (default: |
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 |
| string | Yes | Expected value as JSON string |
| string | Yes | Actual value as JSON string |
| string | No | Description for the comparison |
| string | No |
|
| boolean | No | Deep equality for objects/arrays (default: true) |
Related MCP server: EvalView
Setup
npm install
npm run buildUsage 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
Available Tools
5 toolsanalyze_test_coverageA
Parse source code and test code to identify untested functions. Suggests which functions need tests most based on complexity, export status, and parameter count.
| Name | Required | Description | Default |
|---|---|---|---|
| test_code | Yes | The test code to check which functions are already tested | |
| source_code | Yes | The source code to analyze for functions | |
| source_file_name | No | Filename for the source (used in output, default: "source.ts") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It communicates that the tool is a read-only analysis operation through verbs like 'parse', 'identify', and 'suggests', and it discloses the ranking behavior by naming complexity, export status, and parameter count.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tightly written sentences deliver the tool's purpose, inputs, and ranking criteria with zero filler. The core behavior is front-loaded and every phrase adds information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description adequately conveys what inputs are needed and what the output will contain at a high level. Since there is no output schema, a bit more detail about the returned suggestion format would help, but the core usage is clear enough for successful invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters. The description adds no parameter-level detail beyond the schema, which keeps it at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action ('Parse source code and test code') and a concrete result ('identify untested functions'), then adds ranking criteria. This clearly distinguishes it from siblings like generate_tests, which would produce tests rather than analyze gaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is inferable: use this when you need to know which functions lack tests. However, it never explicitly states when not to use it or mentions alternatives, so the agent is left to infer the boundary with generate_tests and the other generation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_api_mockB
Generate mock API responses from a schema. Creates realistic JSON responses for REST endpoints based on field names and types.
| Name | Required | Description | Default |
|---|---|---|---|
| count | No | Number of records to generate (default: 1, max: 100) | |
| fields | Yes | Array of field schemas. Each field has: name (string), type (string|number|boolean|date|array|object), optional items (for arrays), optional fields (for nested objects), optional nullable, optional enum. | |
| method | No | HTTP method (default: GET) | |
| endpoint | Yes | API endpoint path, e.g. "/api/v1/users" | |
| status_code | No | HTTP status code for the response (default: 200) | |
| wrap_in_envelope | No | Wrap response in { success, data, meta } envelope (default: true) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full behavioral disclosure burden. It only states that mock responses are generated and based on field names/types; it does not disclose whether the tool makes network calls, whether results are deterministic, whether it can overwrite anything, or any limitations beyond what the schema shows.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core purpose is front-loaded, and the second sentence adds valuable context about realistic JSON and the generation approach without repeating the schema's details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderately complex tool with 6 parameters and no output schema, the description is minimal but not inadequate. It communicates the main deliverable, and the schema covers parameters thoroughly. However, it lacks usage context relative to sibling tools and does not describe the response envelope or other behavioral nuances that would help an agent fully anticipate the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3 even without additional parameter details in the description. The phrase 'based on field names and types' adds a small layer of meaning related to the fields parameter, but the description does not significantly expand on the schema's already detailed parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Generate mock API responses from a schema' and further specifies 'realistic JSON responses for REST endpoints.' This is clear and distinguishable from the sibling generate_mock_data, though it does not explicitly name or contrast the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives like generate_mock_data or generate_tests. It implies usage through its purpose but provides no explicit conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_assertionsA
Given expected and actual values (as JSON strings), generate detailed assertion code with descriptive messages. Supports deep object comparison, array comparison, and type checking.
| Name | Required | Description | Default |
|---|---|---|---|
| deep | No | Use deep equality for objects/arrays (default: true) | |
| label | No | Descriptive label for the comparison (default: "value comparison") | |
| actual | Yes | The actual value as a JSON string (or plain string for primitives) | |
| expected | Yes | The expected value as a JSON string (or plain string for primitives) | |
| framework | No | Assertion framework to generate for (default: jest) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. The description only states that it generates assertion code; it does not disclose whether the operation is pure, if it returns a string, how errors are handled, or any side effects. It also doesn't clarify edge cases or framework-specific behavior beyond the schema. This is a significant gap for a tool with no annotation coverage, though it is not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences that immediately convey the primary purpose and key capabilities. It is front-loaded with the essential information (inputs and action) and avoids redundancy with the schema. Every word earns its place, making it an excellent example of conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, and no output schema, the description is moderately complete. It covers the core purpose and supported features but omits details like the return format (e.g., that it returns code as a string), potential limitations, or how the framework parameter affects output. Given the complexity, the description could be richer, but it provides enough to understand the basic operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minor context by mentioning 'deep object comparison' (related to the 'deep' parameter) and 'type checking', but it doesn't elaborate on parameter syntax or behavior beyond the schema. The schema already documents each parameter, so the description adds limited value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to generate assertion code from expected and actual values. It specifies the verb (generate), the resource (assertion code), and the inputs (expected/actual JSON strings). It also mentions supported comparison modes (deep object, array, type checking), which distinguishes it from siblings like generate_tests (which likely generates full test skeletons) and generate_mock_data (data mocking). The purpose is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear usage context: 'Given expected and actual values, generate assertion code.' This implies the appropriate scenario. However, it does not explicitly compare with alternative tools (e.g., when to use generate_tests instead) or provide exclusions. Since it provides a clear context without exclusions, it meets the '4=clear context, no exclusions' criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_mock_dataA
Generate realistic mock data: names, emails, addresses, dates, UUIDs, phone numbers, company names, credit cards (fake), IP addresses. Configurable count and locale.
| Name | Required | Description | Default |
|---|---|---|---|
| type | Yes | Type of data to generate: name, email, address, date, uuid, phone, company, credit_card, ip | |
| count | No | Number of items to generate (default: 10, max: 1000) | |
| types | No | Generate mixed records with multiple field types (alternative to single type). Each record will have all specified fields. | |
| locale | No | Locale for generated data: "en" or "es" (default: "en") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It does disclose the kinds of data produced, configurability of count/locale, and notes that credit cards are fake. However, it does not state the output format (e.g., single value vs. array), how 'types' changes record shape, or whether results are deterministic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The action and data-type list are front-loaded, and the second sentence summarizes the configuration options. Every phrase contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the tool returns. It does not clarify whether a single item or an array is returned, how count interacts with single vs. mixed-type generation, or what happens if both 'type' and 'types' are supplied. This is a meaningful gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds a human-readable list of data types and mentions count/locale, but does not add operational detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Generate realistic mock data') and names the exact resource categories: names, emails, addresses, dates, UUIDs, phone numbers, company names, credit cards, and IP addresses. This clearly distinguishes it from sibling tools like generate_tests or generate_api_mock.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the obvious use case—generating mock/test data—but does not explicitly explain when to prefer this tool over siblings or when not to use it. There are no exclusions or alternative routing, so the agent must infer usage from the tool name and data-type list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_testsB
Generate test cases from a function signature. Produces happy path, edge cases, error cases, and boundary value tests as Jest/Vitest test code.
| Name | Required | Description | Default |
|---|---|---|---|
| framework | No | Test framework to generate for (default: vitest) | |
| signature | Yes | The function signature to generate tests for, e.g. "export async function fetchUser(id: number): Promise<User>" | |
| module_path | No | Import path for the module under test (default: "./module") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It says the tool 'produces' test code, but it does not clarify whether the code is returned as a string, written to disk, or executed. For a generation tool, knowing the delivery mechanism (return value vs side effect) is critical for the agent to handle the result correctly. This omission is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the primary purpose. It avoids unnecessary detail and gets to the point quickly. It could arguably include a second sentence about usage or output behavior, but as written it is efficient and not verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description must clarify what the agent receives. It only states that test code is 'produced' without specifying the return format or whether it writes files. It also doesn't mention any constraints like requiring an existing module path or how errors are handled. For a tool with three parameters and a potentially complex output, this is incomplete. It lacks critical details for an agent to correctly invoke and use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3. The description adds no additional meaning beyond what the schema already provides for the three parameters (signature, framework, module_path). It mentions the framework implicitly by saying 'Jest/Vitest' but does not elaborate on any parameter semantics. The schema already documents defaults and examples, so the description adds no value here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generating test cases from a function signature, and specifies the output type (Jest/Vitest test code). It also enumerates the test categories (happy path, edge cases, error cases, boundary value) which adds precision. However, it doesn't explicitly distinguish it from sibling tools like generate_assertions or generate_mock_data, though the purpose is clear enough that an agent could infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool—when you have a function signature and need test cases—but it does not explicitly state when not to use it or mention alternatives. There is no guidance on choosing this over other test-related tools (e.g., analyze_test_coverage, generate_assertions). The usage context is understandable but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
analyze_test_coverage - First observed
generate_api_mock - First observed
generate_assertions - First observed
generate_mock_data - First observed
generate_tests
TDQS
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.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
One MCP tool for verified AI-agent outcomes with success-only charging.
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Build, validate, and manage API simulations in WireMock Cloud from MCP-compatible AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceA specialized testing harness that enables AI assistants to thoroughly test other MCP servers by connecting to them, discovering their tools/resources/prompts, executing test calls, and performing end-to-end validation with LLM integration.144MIT
- AlicenseAqualityAmaintenanceMCP server that lets coding agents test AI agents. Create YAML test cases, snapshot golden baselines, check for regressions, and generate visual reports all from inside Claude Code or any MCP-compatible tool. Works with LangGraph, CrewAI, OpenAI, Claude, Mistral, and any HTTP API.1016133Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to programmatically inspect, test, and validate other MCP servers by exposing MCP Workbench capabilities as structured tools. It supports automated test spec generation, execution, and detailed failure analysis to ensure server reliability.419Apache 2.0
- FlicenseNot gradedqualityDmaintenanceAll-in-one automation platform for AI agents, providing browser automation, API testing, debugging, and testing tools via the MCP protocol.3-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rog0x/mcp-testing-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server