qa-ai-mcp-server-gits
Creates GitHub issues from failed Playwright tests, enabling automated bug tracking with dry-run and live options.
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., "@qa-ai-mcp-server-gitsgenerate test scenarios for user login with valid credentials"
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.
qa-ai-mcp-server-gits
MCP server for end-to-end QA automation: test scenario generation, Playwright locator discovery, TypeScript test codegen, test execution, and automated bug filing to GitHub, Jira, or Azure DevOps.
Features at a Glance
Capability | Details |
6 MCP tools | Scenarios → test cases → locators → Playwright codegen → test run → bug filing |
4 MCP prompts | Built-in workflow templates (no copy-paste needed) |
3 bug trackers | GitHub Issues · Jira · Azure DevOps |
2 editors | Cursor · VS Code (GitHub Copilot Agent) |
npm install |
|
Output |
|
Related MCP server: wopee-mcp
Quick Start
1. Install Playwright browser (one-time)
npx playwright install chromium2. Add MCP config to your automation project
Create .vscode/mcp.json (works in Cursor and VS Code):
{
"mcpServers": {
"qa-ai-mcp-server-gits": {
"command": "npx",
"args": ["-y", "qa-ai-mcp-server-gits"],
"env": {
"QA_MCP_PROJECT_ROOT": "${workspaceFolder}",
"LOG_LEVEL": "info",
"BUG_PROVIDER": "github",
"GITHUB_OWNER": "your-org",
"GITHUB_REPO": "your-automation-repo",
"GITHUB_TOKEN": "ghp_your_token"
}
}
}
}For Jira or Azure DevOps, set
BUG_PROVIDERtojiraorazure-devopsand add the matching env vars — see Bug Filing.
Config examples: cursor-npx.json · vscode-npx.json
3. Enable in your editor
Editor | Steps |
Cursor | Settings → MCP → enable |
VS Code | Install Copilot + Copilot Chat → reload window → Copilot Agent mode |
4. Run your first workflow
Use MCP prompt qa_automation_workflow_example (login demo) or ask in Agent chat:
List the available MCP tools from qa-ai-mcp-server-gitsMCP Tools
Tool | Description |
| Positive, negative, boundary, validation, role-based, accessibility, security, and E2E scenarios |
| Detailed automation-ready test cases with IDs, steps, and test data |
| Playwright browser scan — locator priority: role → label → placeholder → text → testId → CSS → XPath |
| Page Object Model Playwright TypeScript framework (pages, tests, data, utils, config) |
| Execute tests; capture screenshots, traces, and videos |
| File bugs to GitHub, Jira, or Azure DevOps (dry-run or live) |
MCP Prompts
Invoke from the MCP prompts picker in Cursor or VS Code Copilot — no manual copy-paste:
Prompt | Description |
| Full workflow — pass |
| Pre-filled Applitools login demo |
| Compact workflow prompt |
| Setup guide for Cursor, VS Code, and bug trackers |
Prompt template file: prompts/MCP-QA-AUTOMATION-TEMPLATE.md
Output Location
With QA_MCP_PROJECT_ROOT set to ${workspaceFolder}, artifacts are written to your project:
qa-mcp-output/
├── test-cases/ # scenarios & test cases JSON
├── locators/ # discovered locators JSON
├── generated-tests/ # Playwright POM framework
└── reports/ # test runs & bug payloadsEnvironment Variables
Variable | Required | Description |
| Recommended | Automation workspace path ( |
| No | Default bug tracker: |
| GitHub bugs | Personal access token ( |
| GitHub bugs | GitHub org or username |
| GitHub bugs | Target repository |
| No | Comma-separated labels (default: |
| Jira bugs | e.g. |
| Jira bugs | Atlassian account email |
| Jira bugs | Jira API token |
| Jira bugs | e.g. |
| No | Default: |
| ADO bugs | Organization name |
| ADO bugs | Project name |
| ADO bugs | Personal access token (Work Items write) |
| No | Optional area path |
| No | Optional iteration path |
| No |
|
| No |
|
| No |
|
Copy .env.example for a full template.
License
MIT © gits5213
📖 Instructions
Complete setup, workflow, prompt templates, and bug tracker configuration.
1. Installation
Option A — npm (recommended)
No clone required. Editors run the server via npx:
npx playwright install chromium # one-time per machine.vscode/mcp.json in your automation project:
{
"mcpServers": {
"qa-ai-mcp-server-gits": {
"command": "npx",
"args": ["-y", "qa-ai-mcp-server-gits"],
"env": {
"QA_MCP_PROJECT_ROOT": "${workspaceFolder}",
"LOG_LEVEL": "info"
}
}
}
}Option B — GitHub clone (developers / contributors)
git clone https://github.com/gits5213/qa-ai-mcp-server-gits.git
cd qa-ai-mcp-server-gits
npm install
cp .env.example .env
npm run build{
"mcpServers": {
"qa-ai-mcp-server-gits": {
"command": "node",
"args": ["${workspaceFolder}/dist/server.js"],
"cwd": "${workspaceFolder}"
}
}
}Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):
{
"mcpServers": {
"qa-ai-mcp-server-gits": {
"command": "npx",
"args": ["-y", "qa-ai-mcp-server-gits"],
"env": {
"QA_MCP_PROJECT_ROOT": "/absolute/path/to/your/automation-project",
"BUG_PROVIDER": "github",
"GITHUB_TOKEN": "ghp_your_token",
"GITHUB_OWNER": "your-org",
"GITHUB_REPO": "your-repo"
}
}
}
}Restart Claude Desktop after saving.
2. Enable in Cursor & VS Code
Both editors share the same .vscode/mcp.json.
Cursor
Open your automation project (e.g.
qa-automation-framework-gits)Add
.vscode/mcp.json(see Quick Start)Cursor Settings → MCP → enable
qa-ai-mcp-server-gitsRestart Cursor
Open chat in Agent mode
Confirm 6 tools and 4 prompts are available
VS Code (GitHub Copilot)
Prerequisites: VS Code 1.99+ · GitHub Copilot · Copilot Chat
Open your automation project in VS Code
Add
.vscode/mcp.json— see vscode-npx.jsonDeveloper: Reload Window (
Cmd+Shift+P/Ctrl+Shift+P)Open Copilot Chat → switch to Agent mode
Open the tools picker → verify all 6 tools load
MCP prompts appear in the prompts picker
VS Code user-level config (optional):
OS | Path |
macOS |
|
Windows |
|
Linux |
|
Prefer workspace
.vscode/mcp.jsonso${workspaceFolder}resolves per project.
Verify
List the available MCP tools from qa-ai-mcp-server-gitsThen try prompt qa_automation_workflow_example.
3. Built-in MCP Prompts
Prompt | When to use |
| Your feature — provide story, AC, URL |
| Quick Applitools login demo |
| Minimal prompt for fast runs |
| Setup help |
qa_automation_workflow arguments
Argument | Required | Example |
| Yes |
|
| Yes |
|
| Yes | Numbered list |
| Yes |
|
| No |
|
| No |
|
| No |
|
| No |
|
| No | Optional rules |
| No |
|
4. Full QA Workflow
Run MCP tools in order in Agent mode:
Step | Tool | Purpose |
1 |
| Scenarios from user story & acceptance criteria |
2 |
| Detailed test cases with IDs and steps |
3 |
| Playwright scan for stable locators |
4 |
| POM Playwright TypeScript framework |
5 |
| Execute tests; capture artifacts |
6 |
| File bug to GitHub / Jira / ADO (dry-run first) |
5. Copy/Paste Prompt Template
Paste into Cursor or VS Code Copilot Agent mode:
You are my QA Automation Engineer. Use the qa-ai-mcp-server-gits MCP tools.
Feature Name: UserLogin
Application URL: https://demo.applitools.com/
Priority: high
User Story:
As a user, I want to login with valid credentials so that I can access my dashboard.
Acceptance Criteria:
1. User can login with valid username and password.
2. After successful login, URL should contain app.html.
3. Invalid login should show an error message.
Workflow:
1. generate_test_scenarios (featureName: UserLogin, priority: high)
2. generate_test_cases
3. discover_stable_locators (pageName: LoginPage)
4. generate_playwright_test (allureReporting, screenshotOnFailure, traceOnFailure: true)
5. run_playwright_test (headless: true)
6. If fail → create_bug (provider: github, dryRun: true)
Output: qa-mcp-output/ in this project
Begin with Step 1.6. Example Tool Inputs
generate_test_scenarios
{
"userStory": "As a user, I want to login with valid credentials so that I can access my dashboard.",
"acceptanceCriteria": [
"User can login with valid username and password.",
"After successful login, URL should contain app.html.",
"Invalid login should show an error message."
],
"featureName": "UserLogin",
"priority": "high"
}discover_stable_locators
{
"applicationUrl": "https://demo.applitools.com/",
"pageName": "LoginPage",
"scenarioSteps": ["Enter username", "Enter password", "Click Sign in"]
}create_bug — GitHub (dry-run)
{
"provider": "github",
"dryRun": true,
"failedTestResult": {
"testStatus": "failed",
"errorMessage": "Assertion failed",
"executionSummary": "1 test failed"
},
"testCaseDetails": {
"testCaseId": "TC-USERLOGIN-001",
"testCaseTitle": "Verify valid login",
"testType": "positive",
"priority": "high",
"module": "Authentication",
"testSteps": ["1. Navigate to login", "2. Enter credentials", "3. Submit"],
"expectedResult": "User is logged in"
},
"applicationUrl": "https://demo.applitools.com/",
"environment": "demo",
"browser": "chromium"
}create_bug — Jira (live)
{
"provider": "jira",
"dryRun": false,
"confirmed": true,
"failedTestResult": { "testStatus": "failed", "errorMessage": "Timeout", "executionSummary": "1 failed" },
"testCaseDetails": {
"testCaseId": "TC-001",
"testCaseTitle": "Login fails",
"testType": "negative",
"priority": "high",
"module": "Authentication",
"testSteps": ["1. Enter invalid credentials", "2. Submit"],
"expectedResult": "Error message shown"
},
"applicationUrl": "https://demo.applitools.com/",
"environment": "staging",
"browser": "chromium"
}create_bug — Azure DevOps (live)
{
"provider": "azure-devops",
"dryRun": false,
"confirmed": true,
"failedTestResult": { "testStatus": "failed", "errorMessage": "Element not found", "executionSummary": "1 failed" },
"testCaseDetails": {
"testCaseId": "TC-002",
"testCaseTitle": "Dashboard not loaded",
"testType": "positive",
"priority": "critical",
"module": "Dashboard",
"testSteps": ["1. Login", "2. Verify dashboard"],
"expectedResult": "Dashboard visible"
},
"applicationUrl": "https://demo.applitools.com/",
"environment": "test",
"browser": "chromium"
}Live bug rules (all providers): "dryRun": false + "confirmed": true (or autoCreateBug: true)
7. Run Generated Playwright Tests
cd qa-mcp-output/generated-tests/userlogin
npm init -y
npm install -D @playwright/test
npx playwright install
npx playwright testUpdate data/userData.json with valid credentials before expecting passes.
Sync into your framework repo (if using qa-automation-framework-gits):
./scripts/sync-from-mcp.sh userlogin8. Bug Filing (GitHub · Jira · Azure DevOps)
The create_bug tool supports three providers. Set per call via "provider" or default with BUG_PROVIDER env.
Provider |
| Creates |
GitHub |
| GitHub Issue |
Jira |
| Jira Bug |
Azure DevOps |
| ADO Bug work item |
GitHub
BUG_PROVIDER=github
GITHUB_TOKEN=ghp_your_personal_access_token
GITHUB_OWNER=your-github-org
GITHUB_REPO=your-automation-repo
GITHUB_DEFAULT_LABELS=bug,automated-test,qaJira
BUG_PROVIDER=jira
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_EMAIL=you@example.com
JIRA_API_TOKEN=your_jira_api_token
JIRA_PROJECT_KEY=QA
JIRA_ISSUE_TYPE=Bug
JIRA_DEFAULT_LABELS=automated-test,qaAzure DevOps
BUG_PROVIDER=azure-devops
AZURE_DEVOPS_ORG=your-organization
AZURE_DEVOPS_PROJECT=your-project
AZURE_DEVOPS_PAT=your_personal_access_token
AZURE_DEVOPS_AREA_PATH=your-project\\Team Name
AZURE_DEVOPS_ITERATION_PATH=your-project\\Sprint 1
AZURE_DEVOPS_DEFAULT_TAGS=automated-test;qaBehavior
Dry-run (default): builds payload, saves to
qa-mcp-output/reports/bug-payload-{provider}-{testCaseId}.jsonLive: requires
dryRun: false+confirmed: trueSecurity: tokens masked in logs; never committed to git
9. Troubleshooting
Problem | Solution |
MCP tools not visible (Cursor) | Restart Cursor; enable in Settings → MCP |
MCP tools not visible (VS Code) | Reload window; Copilot Agent mode; check |
npm page shows no README | Hard refresh; ensure latest version published |
Locator discovery fails |
|
Output not in my project | Set |
Production URL blocked |
|
Tests fail after codegen | Update |
GitHub bug fails | Check |
Jira bug fails | Verify |
ADO bug fails | PAT needs Work Items (Read & Write) scope |
| Use workspace |
10. Security
Secrets loaded from
.env/ MCP env — never logged (masked)File writes restricted to project root (
QA_MCP_PROJECT_ROOT)Only
npx playwright testpermitted — no arbitrary shell commandsProduction URLs blocked unless
ALLOW_PRODUCTION_URLS=trueBug creation defaults to dry-run; live requires explicit confirmation
11. Scripts (developers)
Command | Description |
| Compile TypeScript |
| Run MCP server (stdio) |
| Dev mode with tsx |
| Install Playwright Chromium |
| Full verification suite |
| Verify tools & prompts register |
Publish to npm (maintainers)
npm login
npm run build
npm publish --access public --otp=YOUR_CODE12. Links & Support
Resource | URL |
npm package | |
GitHub repo | |
Issues | |
Public install guide | |
Deployment guide | |
Prompt template |
Made with ❤️ by gits5213 for QA automation teams.
Available Tools
6 toolscreate_bugA
Create a bug ticket from a failed test — supports GitHub Issues, Jira, and Azure DevOps (dry-run or live)
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | ||
| browser | No | chromium | |
| priority | No | ||
| provider | No | Bug tracker: github (default), jira, or azure-devops. Falls back to BUG_PROVIDER env. | |
| severity | No | ||
| confirmed | No | ||
| tracePath | No | ||
| environment | No | test | |
| autoCreateBug | No | ||
| applicationUrl | Yes | ||
| screenshotPath | No | ||
| testCaseDetails | Yes | ||
| additionalLabels | No | ||
| failedTestResult | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses dry-run vs live behavior and multi-provider support, but misses critical details like authentication requirements, rate limits, or confirmation steps (e.g., the 'confirmed' parameter). A score of 3 reflects partial transparency.
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, short sentence that fully captures the tool's primary purpose and key features. It is front-loaded with essential information and contains no filler.
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 14 parameters, nested objects, no output schema, and no annotations, the description is insufficient. It does not explain return values, error handling, dry-run outcomes, or the interaction between parameters like 'autoCreateBug' and 'confirmed'. The complexity demands a more complete description.
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 only 7%. The description adds minimal parameter meaning beyond the schema—only referencing 'from a failed test' which corresponds to required parameters. Many optional parameters (e.g., priority, severity, provider) remain unexplained. The description does not compensate for the low coverage.
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 creates a bug ticket from a failed test, specifies three supported platforms (GitHub, Jira, Azure DevOps), and mentions dry-run/live modes. This distinguishes it from sibling tools like generate_test_cases.
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 after a failed test but does not provide explicit guidance on when to choose this tool over alternatives or when not to use it. It lists supported providers but no criteria for selecting among them.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_stable_locatorsC
Open the application in Playwright and discover stable locators using accessibility-first priority
| Name | Required | Description | Default |
|---|---|---|---|
| headless | No | ||
| pageName | Yes | ||
| scenarioSteps | No | ||
| applicationUrl | Yes | ||
| allowProduction | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations accompany the tool, so the description must carry the full burden of behavioral disclosure. It mentions 'accessibility-first priority' but fails to state whether the tool modifies state, requires authentication, or has any side effects. Key behaviors like app lifecycle or read-only intent are absent.
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, which is concise but severely under-informative for a tool with 5 parameters and no annotations. It lacks structure and fails to front-load critical 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?
Given the tool's complexity (5 parameters, no annotations, no output schema), the description is woefully incomplete. It omits return values, parameter details, and context about when to invoke it, leaving the agent with insufficient guidance.
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 0%, meaning parameters have no descriptions in the schema. The tool description does not explain any of the 5 parameters (applicationUrl, pageName, headless, scenarioSteps, allowProduction), leaving the agent to guess their meaning and usage.
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: using Playwright to discover stable locators with accessibility-first priority. It is specific and distinct from sibling tools like generate_playwright_test or create_bug. However, 'stable locators' could be more precisely defined.
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?
No guidance is provided on when to use this tool versus alternatives, nor any prerequisites or exclusions. Given the presence of related sibling tools (e.g., run_playwright_test), explicit differentiation is missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_playwright_testC
Generate a Playwright TypeScript framework with Page Object Model, data files, and utilities
| Name | Required | Description | Default |
|---|---|---|---|
| locators | Yes | ||
| testData | No | ||
| testCases | Yes | ||
| applicationUrl | Yes | ||
| allowProduction | No | ||
| frameworkConfiguration | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects (e.g., file creation), authentication requirements, or if it is read-only. This is inadequate for a tool that likely generates files.
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, which is too brief given the tool's complexity. While concise, it sacrifices necessary information and clarity.
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 is severely incomplete. It does not explain what the tool returns (no output schema), how parameters relate, or any contextual cues for using it effectively.
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 schema has 0% description coverage, and the description does not explain any parameters. With 6 complex parameters including nested objects, the description should provide meaning but does not.
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 it generates a Playwright TypeScript framework with Page Object Model, data files, and utilities. This verb+resource combination is specific and distinguishes it from sibling tools like create_bug or generate_test_cases.
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 no guidance on when to use this tool versus alternatives or when not to use it. It does not mention any preconditions or context for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_test_casesC
Convert generated scenarios into detailed manual/automation-ready test cases
| Name | Required | Description | Default |
|---|---|---|---|
| userStory | Yes | ||
| featureName | No | ||
| acceptanceCriteria | Yes | ||
| generatedScenarios | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full burden. It mentions conversion but lacks detail on output format, side effects, or prerequisites (e.g., whether generatedScenarios must come from a prior tool).
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 covering core function with no redundancy. However, could be slightly expanded to include parameter hints without losing 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?
Given four parameters, a complex input schema, and no output schema or annotations, the description is insufficient. It does not describe the structure of generatedScenarios or the output format, making it hard for an agent to invoke correctly.
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?
With 0% schema description coverage, the description adds little beyond the schema. It mentions 'generated scenarios' but does not clarify userStory, acceptanceCriteria, or featureName meanings or relationships, leaving the agent to infer from parameter names.
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 converts generated scenarios into test cases, differentiating it from siblings like generate_test_scenarios (which generates scenarios) and generate_playwright_test (which produces automation code).
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?
No explicit guidance on when to use this tool vs alternatives, such as generate_playwright_test for automation code or create_bug for reporting issues. The description implies it follows generate_test_scenarios but offers no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_test_scenariosC
Generate comprehensive test scenarios from user stories and acceptance criteria
| Name | Required | Description | Default |
|---|---|---|---|
| priority | No | high | |
| userStory | Yes | ||
| featureName | Yes | ||
| businessRules | No | ||
| acceptanceCriteria | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description lacks behavioral details such as side effects, read-only status, or output format. No annotations are provided to compensate.
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?
Single sentence is concise and front-loads the main action, but could include more structure without becoming 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?
With 5 parameters and no output schema, the description is insufficient for an agent to use the tool correctly without additional context.
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 0% and the description adds no meaning to the 5 parameters beyond the schema's names and types.
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 generates test scenarios from user stories and acceptance criteria, but does not differentiate from the sibling 'generate_test_cases' 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?
No guidance on when to use this tool versus alternatives such as generate_test_cases or create_bug.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_playwright_testC
Execute Playwright tests and capture results, screenshots, traces, and videos
| Name | Required | Description | Default |
|---|---|---|---|
| headed | No | ||
| testCases | No | ||
| projectName | No | ||
| testFilePath | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions capturing results, screenshots, traces, and videos but does not disclose how these are returned, side effects, duration, or whether it runs headlessly (despite 'headed' parameter defaulting to false).
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 concise sentence, but it lacks structure and important details. While short, it sacrifices completeness for brevity.
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 the tool has 4 parameters, no output schema, no annotations, and sibling tools, the description is completely inadequate. It does not explain return values, error handling, artifact storage, or how it interacts with other tools.
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 0%, and the description adds no information about any of the 4 parameters (testFilePath, headed, testCases, projectName). The description fails to explain what each parameter does or how to use them.
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 the verb 'Execute' and the resource 'Playwright tests', and mentions capturing results and artifacts, which distinguishes it from sibling 'generate_playwright_test' that creates tests.
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?
No guidance on when to use this tool versus alternatives like 'generate_playwright_test'. The description does not mention prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: bug creation, locator discovery, test generation at multiple levels, and test execution. No two tools can be easily confused.
All tool names follow a consistent verb_noun pattern with underscores (e.g., create_bug, generate_test_cases), making them predictable and easy to understand.
With 6 tools, the server is well-scoped for a QA automation domain, covering essential operations without unnecessary bloat or deficiency.
The tool surface covers the core QA workflow—scenario generation, test case creation, Playwright test generation, execution, and bug reporting. Minor gaps exist (e.g., no tool to list or update bugs), but the set is largely self-contained.
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 Mint — AI-powered QA that runs your app in a real browser on every PR.
Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.
An MCP server that provides access to Testiny projects, test cases and test runs
MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that automatically generates TypeScript Page Object classes and comprehensive Cypress test suites for any web page, supporting element interactions, workflow tests, and both positive and negative testing scenarios.128422MIT
- AlicenseAqualityCmaintenanceMCP server for autonomous end-to-end testing with Wopee.io. Analyzes web applications, generates and executes Playwright-based functional tests, and validates results — all driven by natural language commands.152445MIT
- AlicenseNot gradedqualityDmaintenanceAI-powered E2E testing MCP server. Point at a URL — AI generates test scenarios, runs Playwright tests, and self-heals failures automatically. Works on Canvas and Flutter Web apps.7MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that automates Playwright-based UI and API testing, supporting test case generation from requirements or API specs, and execution with detailed reports.121MIT
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/gits5213/qa-ai-mcp-server-gits'
If you have feedback or need assistance with the MCP directory API, please join our Discord server