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.
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_areaas a first-class axis (e.g. security, session) abovefailure_type.- More domains (payment, booking) and deeper auth coverage.
- Local-mode execution tools —
run_tests/save_reportvia Playwright. These belong to the local (stdio) server, since a remote server cannot reach yourlocalhostapp under test.
License
MIT © NOGGLEE CREW
Recommended Servers
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.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.