← Back to Home
📖

QA MCP Server — Full Guide

Everything you need: what MCP is, how to connect this server to your IDE or language, and how to use all 15 tools effectively. No prior MCP experience required.

Beginner FriendlyIDE IntegrationAll Languages15 QA Tools

Contents

  1. 1.What is MCP?
  2. 2.What is this QA MCP Server?
  3. 3.Connecting to Your IDE
  4. 4.Using from Python, TypeScript, Java
  5. 5.Tool Walkthrough: All 15 Tools
  6. 6.The Playground (no IDE needed)
  7. 7.Common Patterns & Workflows
  8. 8.Tips & Troubleshooting

1. What is MCP?

MCP stands for Model Context Protocol — an open standard developed by Anthropic that lets AI assistants (like Claude) talk to external tools, APIs, and services in a structured way.

Think of it like this: before MCP, if you wanted Claude to check your test results, you had to copy-paste them into the chat. With MCP, Claude can call a tool directly — without leaving your editor.

The analogy

MCP is to AI what REST APIs are to web apps. It gives AI a standardised way to call external capabilities — generate test cases, parse a JUnit report, evaluate a prompt — and get structured results back. The AI can then reason over those results, ask follow-up questions, or chain multiple tool calls together.

Which tools support MCP?

Claude DesktopNative MCP support. Add the server URL in config and use tools in any conversation.
CursorMCP support in .cursor/mcp.json. Claude can call tools while writing or reviewing code.
VS Code CopilotMCP support via .vscode/mcp.json. Works alongside GitHub Copilot.
Any MCP ClientPython, TypeScript, Java, Go — official SDKs available for all major languages.

2. What is this QA MCP Server?

This is a purpose-built MCP server that exposes 15 AI-powered QA & SDLC tools to any AI client or language. Instead of opening a web app, you can call these tools directly from your IDE or scripts while you work.

✅Test Case Generation

BDD + plain from feature descriptions

🔌API Test Scripts

Postman, pytest, REST Assured, Karate

🤖Automation Conversion

Manual → Playwright, Selenium, Cypress

📊Results Analysis

JUnit / Allure → root cause insights

🐛Bug Reports

Raw description → JIRA-ready report

🔍Test Gap Analysis

Coverage score + missing scenarios

⏱️Effort Estimation

Feature → person-day breakdown

📋Test Plan Generation

Full plan with risks + sign-off

🎯Interview Questions

Role + seniority → targeted Qs

🚨Postmortem Generation

Incident → blameless postmortem

All tools are language-agnostic — the MCP protocol means it does not matter if you code in Python, Java, TypeScript, or Go. The server handles everything.

3. Connecting to Your IDE

Pick your editor and follow the one-time setup. After this, the tools are available in every conversation or code session.

Claude Desktop

  1. 1

    Open config file

    Mac: ~/Library/Application Support/Claude/claude_desktop_config.json
    Windows: %APPDATA%/Claude/claude_desktop_config.json
  2. 2

    Add this block

    {
      "mcpServers": {
        "qa-intelligence": {
          "url": "https://qa-mcp-server-theta.vercel.app/api/mcp"
        }
      }
    }
  3. 3

    Restart Claude Desktop

    Quit and reopen. You should see the QA tools appear when you click the ⚡ icon in a conversation.

Cursor

Create or edit .cursor/mcp.json in your project root:

{
  "servers": {
    "qa-intelligence": {
      "type": "http",
      "url": "https://qa-mcp-server-theta.vercel.app/api/mcp"
    }
  }
}

Reload the window. In any Cursor chat, ask Claude: "Generate BDD test cases for the login feature" and it will call the tool automatically.

VS Code Copilot

Create .vscode/mcp.json:

{
  "servers": {
    "qa-intelligence": {
      "type": "http",
      "url": "https://qa-mcp-server-theta.vercel.app/api/mcp"
    }
  }
}

4. Using from Python, TypeScript, Java

Any language with an HTTP client can call the tools. Install the MCP SDK for the best experience, or use the Playground REST API for a simpler direct call.

Python — via MCP SDK

pip install mcp

import asyncio
from mcp.client.streamable_http import streamablehttp_client
from mcp import ClientSession

async def main():
    async with streamablehttp_client(
        "https://qa-mcp-server-theta.vercel.app/api/mcp"
    ) as (read, write, _):
        async with ClientSession(read, write) as session:
            await session.initialize()

            # Generate BDD test cases
            result = await session.call_tool(
                "generate_test_cases",
                {
                    "feature_description": "User can reset password via email OTP",
                    "format": "bdd",
                    "negative_cases": True
                }
            )
            import json
            print(json.loads(result.content[0].text))

asyncio.run(main())

TypeScript / Node.js — via MCP SDK

npm install @modelcontextprotocol/sdk

import { Client } from '@modelcontextprotocol/sdk/client/index.js'
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js'

const client = new Client({ name: 'my-qa-pipeline', version: '1.0' })
const transport = new StreamableHTTPClientTransport(
  new URL('https://qa-mcp-server-theta.vercel.app/api/mcp')
)
await client.connect(transport)

// Parse failed test results
const result = await client.callTool('parse_test_results', {
  results: junitXmlContent,
  format: 'junit-xml'
})
const analysis = JSON.parse(result.content[0].text)
console.log('Failed tests:', analysis.failures)

Java — via Playground REST API

The Java MCP SDK is in early development. Use the Playground API endpoint directly — it is a plain HTTP POST:

// Using OkHttp (or any HTTP client)
OkHttpClient client = new OkHttpClient();

String requestBody = """
    {
      "passcode": "YOUR_PASSCODE",
      "tool": "generate_bug_report",
      "args": {
        "description": "Checkout fails silently when cart has 5+ items",
        "environment": "Chrome 120, macOS, production",
        "severity": "high"
      }
    }
    """;

Request request = new Request.Builder()
    .url("https://qa-mcp-server-theta.vercel.app/api/playground")
    .post(RequestBody.create(requestBody,
          MediaType.get("application/json")))
    .build();

try (Response response = client.newCall(request).execute()) {
    System.out.println(response.body().string());
}

5. Tool Walkthrough: All 15 Tools

Here is when to reach for each tool and what it gives you back.

✅generate_test_cases
WhenYou have a user story, feature spec, or JIRA ticket and need test cases fast.
GivesStructured test cases with IDs, BDD Given/When/Then, steps, expected result, priority (high/medium/low), and tags (regression, smoke, etc.)
TipSet format: "both" to get BDD and plain side-by-side. Paste the output directly into your test management tool.
🔌generate_api_tests
WhenYou have an API spec, cURL example, or endpoint description and need runnable test code.
GivesFull test code in your chosen framework (Postman collection JSON, pytest file, REST Assured class, etc.) plus a scenarios list.
TipPaste the full OpenAPI YAML for the best results. For a single endpoint, a cURL or plain description works fine.
🤖convert_to_automation
WhenYou have manual test steps that need to be automated.
GivesReady-to-run code files in your framework with dependencies list and setup instructions. Enable page_object_pattern for production-quality structure.
TipInclude the base_url so the generated script targets the right environment.
🗄️generate_test_data
WhenYou need realistic test data for a database table, API payload, or CSV import.
GivesData in JSON/CSV/SQL/YAML format with realistic values, boundary values, and edge cases (nulls, special characters, max-length strings).
TipSet include_edge_cases: true — this generates the tricky records that break applications.
📊parse_test_results
WhenYour CI/CD pipeline ran tests. You have JUnit XML, TestNG output, or Allure JSON and want to understand what failed and why.
GivesPass/fail summary, grouped failure analysis with root cause hypotheses and suggested fixes, flaky test detection, and overall health (healthy/warning/critical).
TipPaste the raw XML or JSON directly — no pre-processing needed. The tool auto-detects format.
🐛generate_bug_report
WhenYou found a bug and need a well-structured JIRA ticket without spending 20 minutes writing it.
GivesTitle, severity, priority, numbered reproduction steps, expected vs actual result, impact assessment, root cause hypothesis, and a complete JIRA-ready description.
TipEven a rough 2-3 sentence description produces a professional report. Add environment details for higher accuracy.
🔍find_test_gaps
WhenYou have existing tests and want to know what is NOT covered before a release.
GivesCoverage score (%), list of covered areas, gaps with risk levels and suggested tests, missing test types (security, a11y, performance), and top 3 priority gaps.
TipPaste just the test titles — does not need to be full test code. Even a list of 10 test names gives meaningful gap analysis.
⏱️estimate_qa_effort
WhenSprint planning: you need a realistic QA effort estimate before committing to a sprint scope.
GivesEffort in person-days broken down by activity (planning, design, execution, automation, regression), sprint fit assessment, risks, and automation candidates.
TipSet team_size accurately — a 2-person QA team has very different capacity than 1 engineer.
📋generate_test_plan
WhenStarting a new project, feature, or release cycle and need a formal test plan document.
GivesComplete test plan: objective, in/out scope, test strategy (levels and types), entry/exit criteria, environments, tools, risk register, schedule, deliverables, and sign-off checklist.
TipUse the output as a starting template — it is designed to be edited, not treated as final.
🎯generate_interview_questions
WhenYou are hiring a QA engineer and need targeted, seniority-appropriate interview questions.
GivesQuestions categorised by type (technical/behavioural/situational/process), what to look for in a strong answer, red flags to watch for, difficulty rating, and a must-ask shortlist.
TipSpecify focus_areas to probe specific technologies the role requires (e.g. "Playwright, k6, GitHub Actions").
⚡evaluate_prompt
WhenYou wrote or received an LLM prompt and want to know objectively how good it is.
GivesScore 0–100 across 6 dimensions (clarity, specificity, role definition, output format, context, constraints), an improved version, and priority fixes.
TipScore below 60 = significant rework needed. Use the improved version as a starting point.
🔬evaluate_rag_output
WhenYou built a RAG pipeline (chatbot over documents) and want to check if the answers are accurate.
GivesFaithfulness, Answer Relevance, Context Recall, Context Precision scores + hallucination detection with exact description of what was fabricated.
TipIf Faithfulness < 7, your answer contains fabricated claims. Check the hallucinationDetails field for specifics.
👤analyze_qa_candidate
WhenYou received a QA resume and need a structured, consistent evaluation quickly.
GivesHiring signal (Strong Yes/Yes/Maybe/No), 8-dimension skill radar, tool detection, strengths, gaps, red flags, 6 tailored interview questions, and executive summary.
TipExtract plain text from the PDF first (use any PDF-to-text tool) then paste here.
🚨generate_postmortem
WhenA production incident occurred and you need a blameless postmortem written up.
GivesSeverity classification, reconstructed timeline, 5-Whys root cause analysis, contributing factors, what went well/wrong, and prioritised action items with owners.
TipEven a rough incident description produces a solid postmortem draft. Add the actual timeline if you have it for higher accuracy.
📝analyze_logs
WhenSomething broke and you have application/server logs but need to find the signal in the noise.
GivesError count, warning count, grouped errors with root cause hypotheses and suggested fixes, anomaly patterns, and a prioritised action list.
TipYou do not need to clean the logs first. Paste raw output — the tool handles mixed formats.

6. The Playground (no IDE needed)

The Playground is a web interface where anyone can try all 15 tools without installing anything or connecting an IDE. Perfect for demos, onboarding, or exploring capabilities.

  1. 1

    Enter the passcode

    Request the passcode from the server owner. It is shared separately to prevent public abuse.

  2. 2

    Pick a tool

    Choose from the left sidebar. Every tool has a "Load Example" button — hit that first to see it in action with a pre-filled, realistic input.

  3. 3

    Fill in your inputs

    Replace the example with your own content. Required fields are marked with ★. Optional fields add precision but are not needed.

  4. 4

    Click Run

    The tool calls the AI and returns structured JSON. Use "Copy JSON" to grab the output for your pipeline or documentation.

7. Common Patterns & Workflows

→ Feature testing workflow (start to finish)

  1. 1.generate_test_cases — get BDD scenarios from the user story
  2. 2.find_test_gaps — cross-check against any existing tests
  3. 3.generate_test_data — get realistic data for the test cases
  4. 4.convert_to_automation — convert the top priority cases to Playwright

→ CI/CD failure triage

  1. 1.parse_test_results — understand what failed and why
  2. 2.analyze_logs — correlate with application logs if tests are environment-sensitive
  3. 3.generate_bug_report — raise the top failures as structured JIRA tickets

→ Sprint planning

  1. 1.estimate_qa_effort — get an effort breakdown for the sprint scope
  2. 2.generate_test_plan — produce a test plan for the sprint
  3. 3.find_test_gaps — identify what regression to prioritise

→ New API → tests in 3 calls

  1. 1.generate_api_tests — get Postman collection + test code from the spec
  2. 2.generate_test_data — get request payloads for edge case testing
  3. 3.evaluate_prompt (optional) — if the API uses an LLM, evaluate its prompt quality

8. Tips & Troubleshooting

✓

Tip: All outputs are JSON

Every tool returns structured JSON, not prose. This means you can use the output programmatically — pipe it into a script, save it to a file, or feed it into another tool.

✓

Tip: Chain tools in sequence

The output of one tool can become the input of the next. For example: use generate_test_cases, then pass the test_cases array to find_test_gaps as existing_tests.

✓

Tip: More input = better output

These tools are AI — the more context you provide, the more accurate and specific the output. A 3-sentence feature description produces generic cases. A 2-paragraph description with constraints produces precise, relevant cases.

⚠

Avoid: Do not paste sensitive data

The tools call an AI API — do not paste production credentials, PII, or confidential customer data into any field. Use anonymised or synthetic data for testing.

⚠

Avoid: Treat output as a draft, not final

AI-generated test cases, effort estimates, and bug reports are starting points. Review and adjust before using in production workflows. The tools dramatically reduce time-to-first-draft, not thinking time.

⚠

Avoid: "Connection refused" or 404

The MCP endpoint URL must match exactly. Make sure you are using /api/mcp (not /api or /mcp). If self-hosting locally, the server must be running on the expected port.

Ready to try it?

Use the Playground for zero-setup access, or connect your IDE for the full experience.

▶ Open Playground📖 Full API Docs