ddq

ddq

Enables AI coding agents to retrieve QA cases from a curated knowledge base grounded in real bugs, supporting symptom search and feature-wide coverage for test planning.

Category
Visit Server

README

DDQ — Domain-Driven QA

An MCP server that turns real bug reports and QA experience into a searchable knowledge base, so your AI coding agent can plan QA the way an experienced QA engineer would — grounded in what actually breaks, not made-up checklists.

DDQ ships a curated QA knowledge base (real, bug-derived checkpoints tagged by domain / feature / failure type) and exposes it over the Model Context Protocol. Your agent (Claude Code, Cursor, …) calls DDQ's tools to retrieve the right QA cases, then does the reasoning — planning tests, writing scenarios, summarizing results — itself.

Why DDQ

  • Grounded, not hallucinated. Cases come from real bugs and QA experience, rewritten as reusable checkpoints (reproduction, expected result, how to verify).
  • Two retrieval modes, because "QA this login screen" and "the button is broken on mobile" are different requests (see Tools).
  • Cost-zero by design. Embeddings run on a local, quantized multilingual model — no embedding API bill. The expensive LLM reasoning stays in your agent, which you already pay for. The DDQ server only does retrieval.
  • No auth. The knowledge base is public shared knowledge, so there's no OAuth or token to manage — just a URL.

How it works

QA case Markdown (cases/*.md)
      → local embedding (multilingual, q8) → in-memory vector index
Your agent asks "QA this login flow"
      → DDQ returns the relevant cases (similar search OR feature coverage)
      → your agent writes the test plan / scenarios from that grounding

Installation

Remote (hosted) — nothing to download

DDQ runs at https://mcp.nogglee.com/mcp (Streamable HTTP). Add it to your agent and you're done — the knowledge base lives on the server and is always up to date.

Claude Code

claude mcp add --transport http --scope user ddq https://mcp.nogglee.com/mcp

Cursor / generic MCP config

{
  "mcpServers": {
    "ddq": {
      "type": "http",
      "url": "https://mcp.nogglee.com/mcp"
    }
  }
}

Local (stdio) — run it yourself

Fully offline, zero cost, private. Requires Node.js ≥ 20 and pnpm.

git clone https://github.com/nogglee-crew/domain-driven-qa.git
cd domain-driven-qa
pnpm install
pnpm build
claude mcp add ddq -- node "$(pwd)/dist/mcp/stdio.js"

The local server indexes cases/ on startup (downloads the embedding model once).

Tools

DDQ splits QA requests into two modes, plus a lookup:

search_qa_cases — symptom / similar search

For bug-shaped requests. Returns the top-k QA cases most similar to a natural language query (Korean and English both work).

{
  "query": "the login button doesn't respond on mobile",
  "topK": 5,
  // optional tag filters:
  "domain": "auth", "feature": "login",
  "environment": ["mobile", "safari"], "severity": "high"
}

get_coverage_context — feature-wide QA coverage

For "QA this whole feature" requests (e.g. "QA the login flow"). Instead of a few similar hits, it returns all cases for a domain/feature, grouped by risk area (failure_type), and lists which risk areas have no cases yet so your agent can fill the gaps from its own knowledge.

{ "domain": "auth", "feature": "login" }  // feature optional → whole domain

Returns a coverage map (risk areas → cases), the KB gaps, and each case's full checkpoints — enough to write a complete test plan in one call.

get_qa_case — fetch one case

{ "id": "auth-login-rate-limit-002" }

QA case format

Each case is a Markdown file with YAML frontmatter (multi-axis tags) and a body of checkpoints / reproduction / expected result / how-to-verify:

---
id: auth-login-rate-limit-002
title: Login allows unlimited password attempts (no rate limiting)
domain: auth            # auth | ecommerce | booking | payment | admin | content
feature: login
action: submit
environment: [desktop, chrome]
failure_type: [permission, network]   # validation | race_condition | timezone
                                       # | cache | permission | layout | input | network
severity: high          # low | medium | high | critical
source: github_issue    # github_issue | postmortem | manual_checklist | user_report
test_type: [e2e, regression]
---

## 체크포인트
- ...
## 재현 조건
- ...
## 기대 결과
- ...
## 확인 방법
- ...

The current knowledge base covers the auth domain (login / signup / logout / password reset).

Contributing

Add a cases/<id>.md file and open a PR — see CONTRIBUTING.md for the full guide. In short:

  • Rewrite raw bug reports as reusable QA checkpoints, not copies of the issue.
  • Always include reproduction conditions, expected result, and how to verify.
  • Never include sensitive/customer data. Anonymize and generalize.
  • Cases can also be QA methodologies (testing_principle) or test-generation rules (scenario_rule) — the agent reads these and applies them when planning.

Roadmap

  • risk_area as a first-class axis (e.g. security, session) above failure_type.
  • More domains (payment, booking) and deeper auth coverage.
  • Local-mode execution tools — run_tests / save_report via Playwright. These belong to the local (stdio) server, since a remote server cannot reach your localhost app under test.

License

MIT © NOGGLEE CREW

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured