Lupa MCP Server
Click on "Deploy 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., "@Lupa MCP ServerRun my Lupa tests and show me the failures."
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.
Lupa MCP Server
A standalone Model Context Protocol (MCP) server for the Lupa Testing Framework.
This server allows AI assistants (like Claude Desktop, Cursor, or Windsurf) to natively understand, run, and analyze your Lupa test suites. By exposing Lupa's programmatic execution API as standardized tools, your AI can automatically run tests, read structured JSON results, and help you fix failing specs.
Features
Native AI Integration: Exposes
lupa_run_testsandlupa_list_teststo any MCP-compliant client.Robust Sandboxing: Runs tests in ephemeral, isolated child processes. This guarantees zero memory leaks in long-running IDE sessions and prevents test output from corrupting the MCP JSON-RPC protocol.
Dynamic Resolution: Automatically locates and uses the specific
@pawel-up/lupaversion installed in your target project.
Related MCP server: squish-mcp
Usage
You don't need to install this inside your project. Instead, configure your MCP client (IDE or AI assistant) to use npx to spawn the server globally.
Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"lupa": {
"command": "npx",
"args": ["-y", "@pawel-up/lupa-mcp"]
}
}
}Cursor / Windsurf
In your IDE settings for MCP Servers, add a new server:
Type:
command(orstdio)Command:
npx -y @pawel-up/lupa-mcp
Once connected, simply ask your AI:
"Run my Lupa tests and tell me why they are failing."
Available Tools
The server provides the following tools to the AI:
lupa_run_tests
Executes Lupa tests and returns structured JSON results. The AI uses this to identify failing tests and read error stacks.
Arguments:
configPath(required): Absolute path to thelupa.config.tsfile in the target project.files,suites,tags,tests(optional): Standard Lupa filters.
lupa_list_tests
Lists all available test files, suites, and tests without actually executing them. Useful for the AI to discover what tests exist in the project.
Arguments: Same as
lupa_run_tests.
Development
If you are developing or modifying the MCP server itself:
# Install dependencies
npm install
# Build the project
npm run build
# Run the server locally (using the compiled dist/index.js)
node dist/index.jsAvailable Tools
4 toolslupa_initA
Initializes lupa testing framework in a project with default scaffolding, avoiding interactive prompts. MUST be used INSTEAD of running npx lupa init via terminal to ensure non-interactive execution and correct default arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| projectPath | Yes | Absolute path to the project root where lupa should be initialized | |
| config | No | Path to the test configuration file (default: lupa.config.ts or .js) | |
| useTypeScript | No | Use TypeScript configuration and templates (default: true) | |
| testDir | No | Directory where test files will be located (default: tests) | |
| suites | No | List of suite names to create (default: unit, browser) | |
| reporters | No | List of reporters to use (default: dot) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, but the description only mentions non-interactive and default arguments. It does not disclose side effects like file creation, overwriting behavior, or reversibility. For a tool that modifies a project, more behavioral details are needed.
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. The first states the purpose, the second provides a critical usage guideline. No unnecessary words.
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 that initializes a framework with 6 parameters and no output schema, the description is too minimal. It does not explain what 'default scaffolding' entails, what files are created, or what the tool returns. More context is needed for safe usage.
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 description adds no additional meaning beyond what is already in the schema. Per rules, baseline is 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 clearly states the tool initializes the lupa testing framework with default scaffolding, avoiding interactive prompts. It uses a specific verb-resource pair and distinguishes itself from sibling tools (list/run) by being the initialization tool.
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?
Explicitly states to use this tool instead of running `npx lupa init` via terminal to ensure non-interactive execution and correct arguments. Lacks explicit when-not-to-use, but sibling tools are distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lupa_list_test_filesA
List test files resolved by Lupa config without running tests or starting Vite/Playwright.
| Name | Required | Description | Default |
|---|---|---|---|
| configPath | Yes | Absolute path to the lupa.config.ts file in the target project | |
| files | No | Filter tests by file name | |
| suites | No | Filter tests by suite/group name | |
| tags | No | Filter tests by tag | |
| searchFiles | No | Filter files by path queries (supports multiple queries with OR logic) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses that the tool does not run tests or start Vite/Playwright, indicating it is non-destructive and read-only. However, it does not mention other potential behaviors like error handling or performance characteristics.
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, well-structured sentence that front-loads the core purpose and key behavior. Every word is necessary and no extraneous information is included.
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?
Despite having 5 parameters and no output schema, the description does not explain the return value (e.g., list of file paths) or behavior with the configPath requirement. It lacks crucial context for a tool with moderate complexity.
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 coverage is 100%, so the description's role in parameter semantics is minimal. The description does not add additional meaning beyond what the schema already provides for each parameter. Baseline 3 is appropriate.
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 action 'List test files resolved by Lupa config' and explicitly distinguishes from running tests or starting Vite/Playwright. It differentiates from sibling tools like lupa_run_tests and lupa_list_tests by specifying it's a dry-run listing.
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 usage when you want to preview test files without execution, but it does not explicitly state when not to use it or provide direct comparisons to sibling tools (e.g., lupa_list_tests). The guidance is implied but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lupa_list_testsB
List all available test files, suites, and tests without running them. Optionally filter the list.
| Name | Required | Description | Default |
|---|---|---|---|
| configPath | Yes | Absolute path to the lupa.config.ts file in the target project | |
| files | No | Filter tests by file name | |
| suites | No | Filter tests by suite/group name | |
| tags | No | Filter tests by tag | |
| searchTests | No | Filter tests by test title (supports multiple queries with OR logic) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Only states it does not run tests, but lacks details on side effects, permissions, or output behavior.
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?
One sentence with clear core action, plus optional filter. Efficient but could be slightly more structured.
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?
No output schema and no description of return value or filter logic (AND/OR). For a listing tool with 5 parameters, description is too minimal to be complete.
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 coverage is 100% with descriptions for each parameter. Description adds no additional meaning beyond 'Optionally filter the list', so baseline 3 is appropriate.
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?
Description clearly states it lists test files, suites, and tests without running them. It distinguishes from sibling 'lupa_list_test_files' by implying broader scope, but does not explicitly differentiate.
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?
Implies use when you want to see available tests without execution, but no explicit when-not-to-use or alternatives. Sibling tools like 'lupa_run_tests' and 'lupa_list_test_files' exist but no guidance on choosing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lupa_run_testsA
Run Lupa tests and return structured JSON results. Use this to identify failing tests.
| Name | Required | Description | Default |
|---|---|---|---|
| configPath | Yes | Absolute path to the lupa.config.ts file in the target project | |
| files | No | Filter tests by file name | |
| suites | No | Filter tests by suite/group name | |
| tags | No | Filter tests by tag | |
| tests | No | Filter tests by test title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavioral traits. It states the tool returns structured JSON but omits details about side effects (e.g., file modification, console output), prerequisites (e.g., required project setup), error behavior, or destructive potential. The description is insufficient for an agent to fully anticipate the tool's runtime behavior.
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 sentences with no wasted words. The first sentence states the core action and output, and the second provides a concrete usage example. Ideal conciseness for a tool with moderate complexity.
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?
Given five parameters (mostly filters) and no output schema, the description is too sparse. It does not explain how filters combine (AND/OR), the structure of the JSON result, error handling for invalid configPath, or prerequisites (e.g., project initialization via lupa_init). These gaps make the tool less predictable for an AI agent.
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 five parameters. The description adds no parameter-level context beyond what the schema provides. Per guidelines, this yields a baseline score of 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 clearly states the tool action ('Run Lupa tests'), the output format ('structured JSON results'), and a primary use case ('identify failing tests'). It effectively distinguishes from siblings like lupa_init, lupa_list_test_files, and lupa_list_tests by specifying execution rather than initialization or listing.
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 provides a clear usage context ('Use this to identify failing tests') but does not explicitly state when not to use it or mention alternative tools for other purposes. The context signals and sibling names imply differentiation, but the description lacks explicit exclusion guidance.
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.
2 tool updates
v0.2.0- Added
lupa_list_test_files - Changed
lupa_list_tests1 field changed- added
Input schema / properties / searchTestsAdded value: +{ + "description": "Filter tests by test title (supports multiple queries with OR logic)", + "items": { + "type": "string" + }, + "type": "array" +}
3 tool updates
v0.1.3- Added
lupa_init - Changed
lupa_list_tests1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
- Changed
lupa_run_tests1 field changed- removed
Input schema / additionalPropertiesRemoved value: -false
2 tool updates
v0.1.2- First observed
lupa_list_tests - First observed
lupa_run_tests
TDQS
Scored across 4 tools
Each tool serves a distinct purpose: initialization, listing test files, listing individual tests, and running tests. There is no overlap or ambiguity in their functions.
All tools follow a consistent 'lupa_verb_noun' pattern using snake_case, making the naming predictable and easy to understand.
Four tools is appropriate for a focused testing framework, covering initialization, listing, and execution without unnecessary overhead.
The tool set covers the core testing workflow (init, list, run). Missing features like test filtering within run tests or configuration updates are minor gaps.
Maintenance
Related MCP Connectors
Direct access to Cypress tests results and accessibility reports in your AI workflow.
Run, debug, and triage tests from your IDE using natural language, no dashboard switching, no manual data transfers. The TestMu AI (formerly LambdaTest) MCP Server is a single remote server exposing four tool suites: HyperExecute — analyze your project, generate YAML configs and test runner commands, then monitor jobs and sessions. Automation — pull a TestID's details plus command, network, and console logs into one chat for instant root-cause analysis. Includes mobile app upload. SmartUI — explain pixel, layout, DOM, and perceptual changes in a visual regression run, with context-aware React/HTML/CSS fixes. Accessibility — audit any public URL or a local React app against WCAG and get ready-to-apply remediation steps. Connects over https://mcp.lambdatest.com/mcp using OAuth 2.1 — no API keys in your config. One-click install in Cursor; works with Claude, GitHub Copilot, Cline, and any MCP client. Tests execute on the TestMu AI cloud: 3,000+ browsers and 10,000+ real devices.
AI-callable tools for API mocking, testing, monitoring, security, and automation.
Deterministic validation for AI-generated artifacts: JSON Schema, OpenAPI response, SQL syntax.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to run and analyze pytest tests for desktop applications through interactive commands. Supports test execution, filtering, result analysis, and debugging for comprehensive test automation workflows.2-

squish-mcpofficial
FlicenseAqualityFmaintenanceEnables AI agents to run and create Squish test scripts and test suites and analyze the results.1913-- AlicenseNot gradedqualityBmaintenanceExposes a run_suite tool to evaluate whether an AI agent is safe to operate internal web apps, scoring task completion and forbidden-action violations to gate CI/CD pipelines.201Apache 2.0
- AlicenseAqualityBmaintenanceEnables an LLM or agent to drive a VUnit HDL unit-testing project end to end: list tests, compile, run, and inspect reports and per-test logs.9Mozilla Public 2.0