The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Qai Consultant listing page.
An open-source AI agent that acts as a senior QA Architect — automatically generating a Test Strategy, Risk Register, Effort Estimation Report, and Test Plan from a simple project description, plus deterministic QA Document Quality Review and Test Results Analysis for evaluating what already exists. Also available as an MCP server so Claude Code, Claude Desktop, and claude.ai can ground their own QA work in the same standards and numbers.
🌐 Live demo: quality-ai-consultant.streamlit.app
🔌 New: QAI Consultant is now also an MCP server —
uvx qai-consultant-mcp. No API keys, no Pinecone. See MCP Server below or the package on PyPI.
🤖 Built with Claude Code by Anthropic.

👉 quality-ai-consultant.streamlit.app
📖 Full installation guide: INSTALL.md
Creating a Test Strategy from scratch is time-consuming and requires deep QA expertise. Most teams either skip it, do it superficially, or spend days researching methodologies.
QAI Consultant eliminates this bottleneck by combining established QA methodologies, industry standards (ISTQB, OWASP, ISO 26262, A-SPICE), and expert knowledge into an AI agent that thinks like a seasoned QA Architect.
From a single 11-question dialogue, QAI Consultant automatically generates four documents:
| Document | What it contains |
|---|---|
| ⚠️ Risk Register | Risk matrix, likelihood/impact analysis, mitigations per risk |
| 📊 Effort Estimation Report | PERT-based breakdown, team capacity analysis, confidence score |
| 📋 Test Strategy | ISTQB-aligned strategy tailored to your stack, methodology, and compliance |
| 📝 Test Plan | IEEE 829-aligned plan with entry/exit criteria, schedule, and AI tool oversight |
All outputs are saved as Markdown files and available for PDF download.
QAI Consultant's recommendations are grounded in real QA standards and methodologies:
QAI Consultant v2.0 runs on cloud APIs — no local GPU or Ollama required.
You need four API keys in a .env file (all have free tiers):
| Key | Where to get it |
|---|---|
MISTRAL_API_KEY | console.mistral.ai → API Keys |
OPENROUTER_API_KEY | openrouter.ai/keys |
PINECONE_API_KEY | pinecone.io → API Keys |
PINECONE_INDEX_NAME | Name of your Pinecone index (e.g. qai-consultant, dimensions: 384, metric: cosine) |
LLM calls use Mistral API as the primary provider, with OpenRouter as automatic fallback.
Or use the live hosted version: quality-ai-consultant.streamlit.app
Listed on the official MCP registry (io.github.gvasile29/qai-consultant-mcp), Glama, and Awesome MCP Servers.
QAI Consultant is also available as a local, fully keyless MCP server —
qai-consultant-mcp. No Pinecone, no Mistral/OpenRouter API keys: it runs a
local embedding index over the same knowledge base and exposes deterministic
QA effort estimation, so your own AI coding assistant can ground its QA
planning directly, no separate LLM call needed.

Claude Code:
Claude Desktop (claude_desktop_config.json):
Tools:
| Tool | What it does |
|---|---|
retrieve_qa_knowledge | Grounding chunks from the KB (ISTQB, OWASP, IEEE, ISO, EU AI Act), filterable by category |
list_kb_sources | Every document in the KB, grouped by category |
estimate_qa_effort | Deterministic PERT-based effort estimate (no LLM narrative — you write your own from the numbers) |
review_qa_document | Deterministic 0–100 quality score for an existing Test Plan/Strategy/test case list across six ISTQB/IEEE-829 dimensions, with findings + KB citations |
analyze_test_results | Deterministic health metrics from JUnit XML/CSV test execution data — flaky tests, ever-failing tests, slowest tests, failure clustering |
assess_qa_maturity | Deterministic indicative TMMi process-maturity level (1-3, never a certified 4-5) from a free-text description, plus a conditional EU AI Act Articles 9-15 readiness score when the input signals an AI/ML system |
Prompts: qa_project_interview (the same 11-question intake this app uses), risk_register_structure, test_strategy_structure, test_plan_structure — each grounds the client's generation in retrieve_qa_knowledge with [Source N] citations.
Privacy: usage telemetry is off by default. Set QAI_TELEMETRY=1 to opt in; even then, only tool name/success/duration/category and an anonymous install ID are sent — never your query text or project details.
After each generation, QAI asks: "Was this strategy useful?"
knowledge_base/generated_strategies/ and included in the next re-ingestionThis creates a feedback loop where QAI learns from validated real-world outputs over time.
evaluation_audit/ pillar: process/test maturity models, audit methodology, security/compliance audit, real public failure case studiesqai-consultant-mcp (standards-grounded retrieval + deterministic effort estimation), in-app announcement, and machine-readable AI-generated marking (EU AI Act Article 50(2))--review, --results), and the MCP server (review_qa_document, analyze_test_results)mcp-name marker to README_MCP.md (PyPI long description) — a prerequisite for listing qai-consultant-mcp in the official Anthropic MCP registry; no functional changeqai-consultant-mcp failed to start (ModuleNotFoundError: mcp.server.fastmcp) after the upstream mcp SDK's breaking 2.0.0 release removed the FastMCP module the server depends on; mcp is now pinned to >=1.8.0,<2.0.0qai-consultant-mcp could fail to attach in Claude Desktop on a cold cache (a client-side handshake timeout, since the server used to fully embed the whole knowledge base before responding to initialize); the full index build is now lazy, deferred until the first real requestqai-consultant-mcp could intermittently fail to attach in Claude Desktop because 4 of its 6 runtime dependencies had loose version bounds, letting uv re-resolve and reinstall on any unrelated upstream release; all dependencies are now exact-pinnedqai-consultant-mcp could again fail to attach in Claude Desktop, this time from an unpinned transitive dependency (scipy, via scikit-learn) picking up a fresh release mid-cache-miss; the entire resolved dependency tree (~99 entries) is now exact-pinned, not just the 6 direct importsassess_qa_maturity) — deterministic TMMi process-maturity signal (10 process areas, indicative level 1-3) plus a conditional EU AI Act Articles 9-15 readiness score for AI/ML projects; available in the web app ("📈 Assess QA Maturity"), CLI (--maturity), and the MCP server (assess_qa_maturity)torch==2.13.0+cpu unresolvable from plain PyPI) — reverted to a plain torch==2.13.0 pin. This is the first working PyPI publish of the assess_qa_maturity MCP tool, since v3.5.0's own publish step was never completed and v3.5.1 was brokenqai-consultant-mcp's local index switched from sentence-transformers/torch to fastembed (ONNX Runtime) for embeddings — same retrieval quality (evals/local_index_parity.py: recall@5=0.91, MRR=0.86, unchanged), ~3x faster cold import, and a much smaller dependency list. Removed the weekly dependency-drift-canary workflow, no longer justified at the smaller scale. See CHANGELOG.md for details.QAI Consultant is built by the QA community, for the QA community.
Contributions are welcome:
knowledge_base/knowledge_base/expert_knowledge/See CONTRIBUTING.md for detailed guidelines.
| Problem | Solution |
|---|---|
| "Missing required secret: 'MISTRAL_API_KEY'" | Add your key to .env or Streamlit Cloud secrets |
| "Missing required secret: 'PINECONE_API_KEY'" | Add your Pinecone key to .env |
| "Knowledge base is empty" | Run python src/ingest.py to push documents to Pinecone |
| "Both Mistral API and OpenRouter are unavailable" | Check API keys are valid and have credits |
📖 Full troubleshooting guide: INSTALL.md