Qai Consultant Mcp

io.github.gvasile29由 GitHub 账号 gvasile29 发布v3.9.3更新于 Oct 29, 2026

Keyless local MCP server for QA: standards retrieval, effort estimation, doc review, test analysis.

发布方自己的服务:Consultant.dev

概览

AI 生成的概览

无需密钥的本地 MCP 服务器,让助手基于 QA 标准知识库检索,并获得确定性的工作量估算、文档评审、测试结果与成熟度数据。

可以做什么
  • 从本地 QA 知识库检索依据片段,涵盖标准、方法论、审计指南与案例研究,并按类别列出全部文档
  • 以 PERT、复杂度系数、团队产能和置信度分数进行确定性的 QA 工作量估算
  • 按六维 ISTQB/IEEE 829 评分标准评审现有测试计划、测试策略或测试用例清单,给出发现与引用
  • 分析 JUnit XML 或 CSV 测试结果,找出不稳定、持续失败、从未运行和最慢的测试以及失败聚集
  • 依据 10 个 TMMi 过程域评估 QA 过程成熟度,输入显示为 AI/ML 系统时附带 EU AI Act 就绪度检查
适用场景
适合希望助手基于公开标准起草或评审 QA 材料,或需要可复现的工作量、文档质量、测试健康度与成熟度数字而非模型猜测的场景。适用于 QA 工程师、工程经理以及没有专职 QA 架构师的团队。
运行要求
以 PyPI 包形式通过 stdio 在本地运行,需用 uvx 启动,因此需安装 Python 与 uv。该 MCP 服务器未声明任何 API 密钥、账号或环境变量,知识库在本地建立索引。仅支持桌面 MCP 客户端。
安装前请注意
出于授权原因,内置知识库不含 ISTQB 与 OWASP 的 PDF 教学大纲,部分基础知识未被覆盖。服务器默认发送匿名使用遥测(工具名、成功与否、耗时、类别、版本、操作系统类型),可通过 QAI_TELEMETRY=0 或 DO_NOT_TRACK=1 关闭。各工具只返回数字与发现,不生成文档。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Qai Consultant Mcp,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

[QAI Consultant]

QAI Consultant

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, Test Results Analysis, and QA Maturity Assessment for evaluating what already exists. Also available as a local MCP server so Claude Code, Claude Desktop, and other MCP clients can ground their own QA work in the same standards and numbers.

🌐 Live demo: quality-ai-consultant.streamlit.app

🔌 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.

[CI] [License] [Python] [Version] [PyPI] [Built with Claude]


Screenshots

Web UI (Streamlit)

Landing page [Streamlit landing page]

MCP panel in the sidebar [Streamlit MCP panel in the sidebar]

Project Discovery dialogue (Web Application template applied) [Streamlit Project Discovery dialogue]

Executive Readout + generation status [Streamlit Executive Readout above the output tabs]

Risk Register (Risk Ledger table) [Streamlit Risk Register tab]

Effort Estimation [Streamlit Effort Estimation tab]

Test Strategy [Streamlit Test Strategy tab]

Test Plan [Streamlit Test Plan tab]

QA Document Quality Review [Streamlit QA Document Quality Review]

QA Maturity Assessment [Streamlit QA Maturity Assessment]

CLI

[CLI Banner] [CLI Project Discovery dialogue]


Quick Start

Option A — Use the live app (no setup)

👉 quality-ai-consultant.streamlit.app

Option B — Run locally

bash
# 1. Clone and installgit clone https://github.com/gvasile29/qai-consultant.gitcd qai-consultantpip install -r requirements.txt
# 2. Set up API keyscp .env.example .env# Edit .env and fill in the 4 keys (see Prerequisites below)
# 3. Build the knowledge base (one-time, pushes to Pinecone)python src/ingest.py
# 4. Runpython src/cli.py            # Terminal UIstreamlit run src/app.py     # Web UI → http://localhost:8501

📖 Full installation guide: INSTALL.md


The Problem

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.


Who Is This For?

  • QA Engineers who need structured guidance on test strategy
  • Engineering Managers who need effort estimations and resource planning
  • Development teams without a dedicated QA Architect
  • QA Consultants who want to accelerate their delivery

What QAI Consultant Generates

From a single 11-question dialogue, QAI Consultant automatically generates four documents:

DocumentWhat it contains
⚠️ Risk RegisterRisk matrix, likelihood/impact analysis, mitigations per risk
📊 Effort Estimation ReportPERT-based breakdown, team capacity analysis, confidence score
📋 Test StrategyISTQB-aligned strategy tailored to your stack, methodology, and compliance
📝 Test PlanIEEE 829-aligned plan with entry/exit criteria, schedule, and AI tool oversight

Above the four tabs, an Executive Readout summarizes overall risk, the QA effort range, team capacity, confidence, and the top 3 risks — computed deterministically from the Risk Register and Effort Estimation, with no extra LLM call.

All outputs are saved as Markdown files and available for PDF download.

Evaluating what already exists (deterministic, no LLM needed for the scores):

ModeWhat it does
📝 QA Document Quality ReviewScores an existing Test Plan / Strategy / test case list 0–100 across six ISTQB/IEEE 829 dimensions, with findings and knowledge-base citations
🧪 Test Results AnalysisFlaky, ever-failing, never-run and slowest tests plus failure clustering from JUnit XML/CSV — optionally used to ground the Risk Register in real execution data
📈 QA Maturity AssessmentIndicative TMMi level (1–3) across 10 process areas from a free-text description, plus an EU AI Act Articles 9–15 readiness check for AI/ML systems

Knowledge Base

QAI Consultant's recommendations are grounded in real QA standards and methodologies:

  • 📘 ISTQB — 14 certification syllabuses (CTFL, CTAL-TA, CTAL-TM, CTAL-TAE, CT-AI, and more)
  • 🔒 OWASP — WSTG v4.2, MASTG, Top 10 2021
  • 🚗 ISO 26262 — Automotive functional safety (ASIL levels, HARA, V&V)
  • 🏭 A-SPICE — Automotive SPICE process reference model (SWE.4, SWE.5, SWE.6)
  • 📋 IEEE 829 — Test documentation standard
  • ⚙️ ISO/IEC 25010 — Software product quality model
  • 🇪🇺 EU AI Act — risk tiers, provider/deployer obligations, Article 50 transparency, Articles 9–15 testing implications
  • 🧭 Testing methodologies — Agile, BDD/TDD, exploratory, risk-based testing, test pyramid
  • 🔍 Audit & process evaluation — TMMi, CMMI, ISO/IEC 33002, ISO 19011, OWASP ASVS, ISO 27001, SOC 2, plus public failure case studies (Knight Capital, Boeing 737 MAX MCAS, CrowdStrike 2024)
  • 🤖 AI Test Planning — 17 real-world AI SDLC case studies (2024–2025)
  • 🧠 Expert Knowledge — Real QA scenarios and lessons learned from practitioners

Prerequisites

QAI Consultant runs on cloud APIs — no local GPU required.

You need four API keys in a .env file (all have free tiers):

KeyWhere to get it
MISTRAL_API_KEYconsole.mistral.ai → API Keys (the default model, ministral-14b-2512, works on Mistral's free plan)
OPENROUTER_API_KEYopenrouter.ai/keys (fallback; uses free models only)
PINECONE_API_KEYpinecone.io → API Keys
PINECONE_INDEX_NAMEName of your Pinecone index (e.g. qai-consultant, dimensions: 384, metric: cosine)
bash
cp .env.example .env# Edit .env and fill in all four values

Architecture

[QAI Consultant Architecture]

How It Works

You describe your project (11 questions)        ↓QAI retrieves relevant knowledge from Pinecone (parallel RAG, 3 threads)        ↓QAI analyzes risks from your context → Risk Register (Mistral API)        ↓QAI estimates effort using PERT + industry benchmarks → Effort Report        ↓QAI summarizes risk, effort, capacity and top risks → Executive Readout (no LLM)        ↓QAI generates a Test Strategy backed by QA standards → Test Strategy (Mistral API)        ↓QAI generates an IEEE 829-aligned Test Plan → Test Plan (Mistral API)        ↓Four documents ready for Markdown + PDF download

LLM calls use the Mistral API (ministral-14b-2512) as the primary provider, with OpenRouter free models (Nemotron 3 Super → GLM 5.2) as automatic fallback.


Interfaces

Web UI (Browser — recommended)

bash
streamlit run src/app.py

Or use the live hosted version: quality-ai-consultant.streamlit.app

Besides the Test Strategy flow, the landing page and sidebar offer Review an existing QA document and Assess QA Maturity; test execution results can be attached on the review screen before generating.

CLI (Terminal)

bash
python src/cli.py                                   # interactive Test Strategy flowpython src/cli.py --results run1.xml run2.xml       # same flow, grounded in JUnit XML/CSV resultspython src/cli.py --review path/to/test_plan.md     # QA Document Quality Reviewpython src/cli.py --maturity path/to/process.txt    # QA Maturity Assessment

MCP Server (for Claude Code, Claude Desktop, and other MCP clients)

[qai-consultant MCP server] [qai-consultant MCP server] [MCP Registry] [Awesome MCP Servers]

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 knowledge base's Markdown documents (the ISTQB and OWASP PDFs are not bundled, for licensing reasons) and exposes deterministic QA effort estimation, document review, test-results analysis and maturity assessment, so your own AI assistant can ground its QA work directly, with no separate LLM call. It runs locally over stdio (requires uv); a hosted version connectable from claude.ai is on the roadmap (v4.0).

[qai-consultant-mcp answering a retrieve_qa_knowledge call in MCP Inspector]

bash
uvx qai-consultant-mcp

Claude Code:

bash
claude mcp add qai-consultant -- uvx qai-consultant-mcp

Claude Desktop (claude_desktop_config.json):

json
{  "mcpServers": {    "qai-consultant": {      "command": "uvx",      "args": ["qai-consultant-mcp"]    }  }}

Tools:

ToolWhat it does
retrieve_qa_knowledgeGrounding chunks from the KB (standards summaries — OWASP Top 10, IEEE 829, ISO/IEC 25010, ISO 26262, A-SPICE, EU AI Act — plus methodologies, audit/evaluation guides, and case studies), filterable by category; returns low_relevance when nothing matches
list_kb_sourcesEvery document in the KB, grouped by category
estimate_qa_effortDeterministic PERT-based effort estimate (no LLM narrative, you write your own from the numbers); warnings lists any assumption made
review_qa_documentDeterministic 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_resultsDeterministic health metrics from JUnit XML/CSV test execution data — flaky tests, ever-failing tests, slowest tests, failure clustering
assess_qa_maturityDeterministic 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: anonymous usage telemetry is on by default (since v3.7.0); turn it off with QAI_TELEMETRY=0 or DO_NOT_TRACK=1. Only tool name/success/duration/category, version and OS family are sent, under a random ID that's new for every server run and never stored — never your query text or project details.


Feedback Loop

After each generation, QAI asks: "Was this strategy useful?"

  • Yes → strategy saved to knowledge_base/generated_strategies/ and included in the next re-ingestion
  • Partially → strategy saved with your improvement notes
  • No → discarded

This creates a feedback loop where QAI learns from validated real-world outputs over time.


Roadmap

  • v0.1 ✅ Core agent + CLI + Streamlit Web UI
  • v0.2 ✅ Feedback loop — validated strategies grow the knowledge base
  • v0.3 ✅ Risk Register — automatic risk analysis alongside Test Strategy
  • v0.4 ✅ Effort Estimation Report — PERT-based with team capacity analysis
  • v0.5 ✅ Auto re-ingest — file watcher + incremental ingest + manifest tracking (the file watcher was removed in v2.0)
  • v0.6 ✅ Confidence level algorithm — score-based (0-100): PERT spread + capacity gap + data quality + multiplier magnitude
  • v1.0 ✅ MVP — error handling, input validation, logging, full documentation, tests, Apache 2.0 license
  • v2.0 ✅ Cloud migration — Ollama → Mistral API + OpenRouter fallback; ChromaDB → Pinecone; deployed to Streamlit Cloud
  • v2.0.1 ✅ Stability — 27 bugs fixed: PERT normalization, template application, PDF caching, session state, filename sanitization, RAG fallback, per-step exception isolation
  • v2.0.2 ✅ Stability — release-gate evals (estimate integrity + RAG metrics), 5 estimation/validation defects fixed, session-state crash fix, narrative duplication/truncation fixes, per-step generation isolation from LLM outages
  • v2.5.0 ✅ In-app Release Notes — sidebar panel + one-time "what's new" banner
  • v2.5.1 ✅ Knowledge base — new evaluation_audit/ pillar: process/test maturity models, audit methodology, security/compliance audit, real public failure case studies
  • v2.5.2 ✅ EU AI Act Article 50 transparency patch — sidebar AI-interaction notice + visible "AI-generated content" label on every generated document
  • v2.6.0 ✅ EU AI Act knowledge base pillar — risk tiers, provider/deployer obligations, Article 50 transparency, Articles 9-15 testing implications, conformity assessment, timeline
  • v3.0.0 ✅ MCP server MVP — local, keyless qai-consultant-mcp (standards-grounded retrieval + deterministic effort estimation), in-app announcement, and machine-readable AI-generated marking (EU AI Act Article 50(2))
  • v3.1.0 ✅ Evaluation Package — QA Document Quality Review (deterministic ISTQB/IEEE-829 rubric scoring an existing Test Plan/Strategy/test case list, with an optional AI narrative) and Test Results Analysis (flaky/ever-failing/slowest/failure-clustering metrics from JUnit XML/CSV, grounding the Risk Register in real execution data); available in the web app, CLI (--review, --results), and the MCP server (review_qa_document, analyze_test_results)
  • v3.1.1 ✅ Visit counter — a running total of app visits now shows in the sidebar, persisted in Pinecone so it survives redeploys
  • v3.1.2 ✅ Fix — the 3.1.1 visit counter never actually incremented (Pinecone rejected its all-zero placeholder vector); now works correctly
  • v3.1.3 ✅ Fix — the visit counter's label was in Romanian ("vizite") instead of English; now reads "visits" to match the rest of the app's UI copy
  • v3.1.4 ✅ Added the 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 change
  • v3.1.5 ✅ Fix — qai-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.0
  • v3.1.6 ✅ Fix — qai-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 request
  • v3.2 ✅ CI quality gates completion — a separate nightly workflow exercising real Pinecone/Mistral/OpenRouter contract tests, which never blocks a PR
  • v3.3 ✅ Adopted the EU's official AI-generated-content icon (Code of Practice, AI Act Article 50(4)) in the Streamlit sidebar and all generated-document PDF exports, reinforcing the existing text/metadata disclosure
  • v3.3.1 ✅ Fix — qai-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-pinned
  • v3.4 ✅ App visual redesign ("Calibration Bench") — token-based color/typography system (IBM Plex fonts, no font CDN) and a reusable "Signal Ledger" score/severity component, applied to Document Review, Effort confidence, Results Analysis, Risk Register, and the Project Discovery question list
  • v3.4.1 ✅ Distribution links (official MCP registry, Glama, Awesome MCP Servers) now shown in the app's own MCP panel, not just the READMEs; landing page redesign started (Phase 1 of 3 — see the CHANGELOG)
  • v3.4.2 ✅ Interactive flow redesign (Phase 2 of 3 — see the CHANGELOG): the Project Discovery dialogue, review screen, and sidebar now share the landing page's "Power-On Sequence" visual language (animated progress bar, one-time entrance-animated summary tiles, hover feedback)
  • v3.4.3 ✅ Output screens redesign (Phase 3 of 3, completing the "Power-On Sequence" redesign — see the CHANGELOG): the Test Strategy results view and the document review screen now share the same visual language (live 4-stage sequence status, entrance-animated score tiles, hover feedback), plus a "What you get in ~2 minutes" addendum on the landing screen
  • v3.4.4 ✅ Fix — qai-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 imports
  • v3.5.0 ✅ QA Maturity Assessment (assess_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)
  • v3.5.1 Fix: QA Maturity scoring missed paraphrased evidence (requirement traceability described in prose, progress tracking described as "defect triage"/"pass rate") — found via live browser QA. Yanked from PyPI — see v3.5.2, published the same day, for why
  • v3.5.2 ✅ Fix: the v3.5.1 MCP package could not be installed at all (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 broken
  • v3.5.3 ✅ qai-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.
  • v3.5.4 ✅ Reliability fixes from the 2026-09-23 external audit: streaming no longer duplicates output when the primary LLM drops mid-response; the effort estimate's risk buffer now counts actual Risk Matrix rows (it was inflated to the 35% cap by keyword matches); confidence scoring no longer treats precise answers like "None" or "functional safety" as vague. See CHANGELOG.md.
  • v3.6.0 ✅ Public-app protection and an at-a-glance summary, from the 2026-09-23 external audit: server-side daily generation limits (a global daily cap plus a per-visitor cap, alongside the existing 3-runs-per-session cap) so opening a new tab no longer resets the quota; and an Executive Readout above the four output tabs — overall risk, QA effort range, team capacity, confidence, and the top 3 risks to address first — built deterministically from the Risk Register and Effort Estimation, with no extra LLM call. See CHANGELOG.md.
  • v3.6.1 ✅ The OpenRouter fallback now uses only free-tier models (Nemotron 3 Super → GLM 5.2, via OpenRouter's models fallback chain), so the fallback no longer accrues charges; an empty AI response now shows a clear error instead of an empty document; the in-app AI notice now warns that submitted text may be logged and used for training by the LLM providers. See CHANGELOG.md.
  • v3.6.2 ✅ Primary model switched to Ministral 14B (Mistral Small is rate-limited on Mistral's free plan), output budget raised to 6,500 tokens so documents are no longer cut off, and a bold Risk Matrix header no longer empties the Risk Ledger, Executive Readout and effort risk buffer
  • v3.6.3 ✅ Fixed the MCP knowledge-base tools crashing with a numpy "inhomogeneous shape" error for installs that cached a briefly broken upstream copy of the embedding model (fastembed 0.8.1) See CHANGELOG.md.
  • v3.7.1 ✅ MCP telemetry never sends an unrecognized category value (it could carry free text), analyze_test_results docs now match how it handles tests with fewer than 3 runs, and a new agent skill (skills/qai-consultant/) tells AI agents when to call each MCP tool. See CHANGELOG.md.
  • v3.7.2 ✅ estimate_qa_effort no longer applies a false "No existing automation" +20% when the automation text merely contains "no" inside a word (e.g. "CANoe"); plus Streamlit output-honesty guards (no invented project facts or unverifiable citations, no stray markdown), tile/logo/Enter-to-submit/time-claim fixes.
  • v3.7.0 ✅ Live adoption numbers on the landing page (visits, AI runs, MCP installs, GitHub stars; downloads and usefulness once there's data), download + feedback counters, and MCP telemetry on by default with an opt-out. See CHANGELOG.md.
  • v3.8.0 ✅ MCP end-to-end QA fixes: estimate_qa_effort unit/range parsing + warnings, review_qa_document not-a-QA-document/test-case/language handling, retrieve_qa_knowledge min_score/low_relevance, analyze_test_results tolerant parsing; plus Streamlit effort/sources/download/copy fixes.
  • v3.8.1 ✅ Out-of-stack tool and invented-quantity markers in generated documents, Download-all .zip, match strength labels on retrieve_qa_knowledge chunks, effort narrative can no longer contradict the tables.
  • v3.9.0 ✅ src/ restructured into the qai_consultant package (wheel tiers common/core/mcp; same tools and behaviour), tests grouped by level and feature, Executive Readout headlines expected effort and labels the range a planning band.
  • v3.9.1 ✅ Generated documents no longer contradict each other or the deterministic tables (absence guard, Effort narrative, cross-document consistency, unverified regulators flagged); MCP dependency lock refreshed (mcp 1.30.0, urllib3 2.8.0, pyjwt 2.15.0).
  • v3.9.2 ✅ Hosted-app fixes: the zip download works again (Starlette pinned), the Streamlit/CLI paths share the cross-document consistency, PDF tables render, and generation shows a stage progress bar instead of streaming every line.
  • v3.9.3 ✅ MCP end-user QA fixes: input validation in estimate_qa_effort, honest assess_qa_maturity/review_qa_document gating, cleaner retrieval, clearer analyze_test_results warnings.
  • v4.0 Remote MCP — a hosted server connectable from claude.ai, plus server-side usage metrics

Contributing

QAI Consultant is built by the QA community, for the QA community.

Contributions are welcome:

  • 📚 Add new knowledge sources to knowledge_base/
  • 🧠 Share expert knowledge using the prompts in knowledge_base/expert_knowledge/
  • 🐛 Report bugs or suggest features via GitHub Issues
  • 🔧 Submit pull requests

See CONTRIBUTING.md for detailed guidelines.


Troubleshooting

ProblemSolution
"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
"The AI providers are temporarily unavailable"Both Mistral and the OpenRouter free models failed — retry in a few minutes; logs/qai_consultant.log has the underlying error
Mistral returns 429 Rate limit exceeded (code 1300) at almost no usageOn Mistral's free plan, Mistral Small/Medium are rejected while the Ministral models are served — keep the default ministral-14b-2512, or enable pay-as-you-go before switching MISTRAL_MODEL

📖 Full troubleshooting guide: INSTALL.md

来源:README.md,提交 c6429c0

工具

6

retrieve_qa_knowledge

Retrieve grounding chunks from the local QA knowledge base (Markdown guides: testing methodologies, IEEE/ISO/OWASP Markdown standards, audit/evaluation frameworks, AI-SDLC case studies, the EU AI Act). NOT included: the ISTQB and OWASP PDF syllabi (licensing) - so fundamentals such as test design techniques (boundary value analysis), smoke vs sanity or test levels are often absent; the first call after server start may take ~30s while the index builds (usually done in the background by then). Returns {"chunks": [{"source", "category", "text", "score", "match"}], "kb_version", "best_score", "low_relevance"[, "note"][, "warnings"]}; "match" is strong (score >=0.55 AND the chunk contains most of the query's content terms), moderate (>=0.40) or weak, and when even the best chunk is not strong a note says to use only chunks that really answer the question (a 0.45 hit on an unrelated case study is vocabulary overlap). A query that names a source the KB does not ship (e.g. ISTQB) gets a note saying so; an out-of-range k is clamped and reported in "warnings". Chunks scoring below min_score (cosine similarity, default 0.40, 0 disables) are dropped; if nothing reaches it, chunks is empty, low_relevance is true and note says so - then answer from your own knowledge and tell the user the KB had no match (best_score shows how close the best miss was). Near-duplicate overlapping chunks of one document are collapsed. category, if given, must be one of: Standard, Methodology, Article, Expert Knowledge, Audit/Evaluation; an empty query, an unrecognized category or an out-of-range min_score returns a structured {"error": "invalid_argument", ...} rather than raising. k is clamped to [1, 20].

输入参数kquery必填categorymin_score

list_kb_sources

List every document in the knowledge base, grouped by category. Returns {"categories": {category: [{"source", "title"}]}, "kb_version", "doc_count"}.

无需输入参数。

estimate_qa_effort

Deterministic QA effort estimate (PERT + complexity multipliers + team capacity + confidence score) — no LLM narrative; write your own from these numbers. Fields mirror the app's project-intake dialogue and are validated with the same rules; a validation failure returns {"error": "validation", "fields": {field: message}}, never a crash; all eleven fields are needed, and a missing or empty one is reported by name in that same shape Success returns the full EstimationData as JSON (baseline, multipliers, pert_activities, capacity, risk_buffer_days, final_effort_min/max, confidence_level/confidence_score, confidence_note, data_quality_score out of data_quality_max=20). Negative team sizes and negative or zero timelines are rejected with a validation error; decimal team sizes ("2.5") are rounded half up to a whole headcount with a warning. capacity_gap = available_person_days - pert_total_expected, so POSITIVE is a surplus and NEGATIVE a deficit; capacity_status ("surplus"/"deficit"/"balanced") and capacity_note state this unambiguously. methodology_note is set only when the methodology does not change the numbers (it is then a label only).

输入参数timelinetech_stackknown_risksmethodologyproject_nameproject_typeteam_qa_sizeteam_dev_sizeadditional_contextexisting_automationproject_descriptioncompliance_requirements

review_qa_document

Deterministically review an existing QA document (Test Plan, Test Strategy, or a test case list) against a six-dimension ISTQB/IEEE-829- grounded rubric (structure completeness, objectives & scope clarity, entry/exit criteria, traceability, measurability, risk coverage) — no LLM anywhere in this call path; write your own narrative from the returned findings. doc_type must be one of "auto", "test_plan", "test_strategy", "test_cases" — "auto" runs a cheap heading-keyword classifier and reports which type it assumed; an unrecognized value returns a structured {"error": "invalid_argument", ...} rather than raising. Documents under ~200 characters (after stripping this app's own AI-disclosure front matter/footer) return doc_type="insufficient_content" with overall_score=0 rather than an error, unless they carry an explicit QA signal (test plan/strategy/case wording, "Test N:" lines) and enough words to score — those get a (low) score with findings. In "auto" mode a weak but genuine QA document (a QA signal plus a core testing term) is scored as its most likely type instead of being rejected. Rejections carry a `hint` telling you to retry with an explicit doc_type. Each finding carries kb_citations resolved from the knowledge base for its citation queries — a finding with no resolvable source is returned with an empty kb_citations list rather than a fabricated one. Non-QA input returns status="not_a_qa_document" (doc_type equals the status, no score); oversize input returns status="input_too_large". Non- English input is still scored but score_reliable=false and language_warning explains the rubric is English-keyword based. detection_confidence says how sure the "auto" type guess was. Returns {doc_type, overall_score, dimension_scores, findings, stats, status, language, language_warning, score_reliable, detection_confidence, detection_note, hint, kb_version}.

输入参数doc_typedocument_text必填

assess_qa_maturity

Deterministically assess QA process maturity from a free-text project/ process description (or a pasted existing Test Strategy/Risk Register) — no LLM anywhere in this call path; write your own narrative from the returned findings. Scores 10 TMMi process areas (Level 2 Managed + Level 3 Defined) and returns an indicative_tmmi_level (1-3 — NEVER higher; Levels 4-5 require quantitative evidence a text description cannot substantiate, per TMMi's own no-skip rule — always read the returned `disclaimer` and never claim a certified TMMi level yourself). When the description signals an AI/ML system, also scores 7 EU AI Act Articles 9-15 readiness checks (ai_act_relevant=true, ai_act_dimension_scores populated); otherwise that dimension is omitted entirely (ai_act_relevant=false, empty dict) rather than scored as a false gap. Descriptions under ~200 characters (after stripping this app's own AI-disclosure front matter/footer) return indicative_tmmi_level=0 with empty findings rather than an error (status="insufficient_content"). Input with essentially no software- testing/QA vocabulary (a recipe, meeting notes) returns status="not_a_qa_description" with indicative_tmmi_level=null, a message and no findings; a successful assessment has status="ok". Mentions of AI that are negated ("no machine learning is used", "AI-free") do not switch the EU AI Act dimension on. Each finding carries kb_citations resolved from the knowledge base for its citation queries — a finding with no resolvable source is returned with an empty kb_citations list rather than a fabricated one. When ai_act_relevant=true, ai_act_note carries a fixed caveat that risk-tier classification (whether the system is legally "high-risk") is a determination this tool does not make — the user/team must confirm that independently; ai_act_note is empty when ai_act_relevant=false. Returns {status, indicative_tmmi_l

输入参数project_description必填

analyze_test_results

Deterministic test-results health metrics (flaky / ever-failing / never-run / slowest / failure clustering) from real test execution data — no LLM anywhere in this call path; write your own narrative from the returned numbers. Provide exactly one of junit_xml or csv_text. junit_xml is normally one JUnit XML report string for one run (accepts both a <testsuites> and a bare <testsuite> root); to analyze flakiness across MULTIPLE runs in one call, pass a JSON array of {"run_id": "...", "xml": "<testsuites>...</testsuites>"} objects (or simply a JSON array of XML strings, auto-named run-1, run-2, ...; repeated run_ids are kept as separate runs with a #2/#3 suffix and a warning) instead — either as a genuine JSON array/list argument, or as a string starting with "[" (some MCP clients stringify array arguments; both forms are accepted). csv_text needs a test-name column (name | test_name | test | testcase | title) and a status column (status | result | outcome); headers are matched case-insensitively. Status synonyms are accepted (pass/ok/success, fail/failure/ko, error/err, skip/ignored/pending). Optional columns: classname (or suite), run_id (or run/build; default "csv"), duration_s (or duration/time/elapsed, in seconds; a *_ms header or "350ms" values mean milliseconds), message (or error/details). Dropped rows and unrecognised columns are listed in `warnings`. If NO test could be parsed (wrong columns, empty or header-only CSV, HTML or non-JUnit XML, malformed XML) the call returns {"error": "no_tests_found", "message", "warnings"} instead of an empty 0% result. reference_tests, if given, is a list of test identities ("classname::name", or just "name" when there is no classname) expected to have run — any absent from the results are reported under never_run. A bare "name" also matches when exactly one executed test has that name (ambiguous bare names are not gue

输入参数csv_textflaky_maxflaky_minjunit_xmlreference_tests

版本历史

13
  1. v3.9.3最新Oct 23, 2026
  2. v3.9.1Oct 22, 2026
  3. v3.9.0Oct 21, 2026
  4. v3.8.1Oct 19, 2026
  5. v3.8.0Oct 19, 2026
  6. v3.7.2Oct 19, 2026
  7. v3.7.1Oct 14, 2026
  8. v3.7.0Oct 14, 2026
  9. v3.6.3Oct 6, 2026
  10. v3.6.2Sep 24, 2026
  11. v3.5.4Sep 23, 2026
  12. v3.5.3Sep 22, 2026
  13. v3.5.2Sep 16, 2026

评分

已满足适用检查项的 80%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分
  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。

其他 Consultant 集成