Skip to main content

Sumo QA — a senior-QA-shaped MCP server for pre-coding QA planning, TDD scaffolding, mutation-testing follow-up, code review, and test-data discovery.

Project description

sumo-qa — strong QA, crouching rikishi mark

sumo-qa MCP

tests PyPI Python License: Apache 2.0

A senior-QA MCP server + skills library that delivers ISTQB-grade testing discipline to AI coding agents across Claude Code, Cursor, Codex, OpenCode, JetBrains AI Assistant + Junie, and VS Code + GitHub Copilot. The discipline lives in skill files the host LLM follows literally; MCP tools provide canonical knowledge catalogues; a SessionStart hook auto-injects the using-sumo-qa router so the agent reliably runs the workflow without you having to remember to invoke it.

🚀 New here? 5-minute demo →

Install with one line, run one prompt on your real repo, see the senior-QA workflow happen on actual code. No staged data, no scripted output.

Why sumo-qa?

Most AI coding assistants approach QA the way a junior engineer would: "add unit tests, consider edge cases, maybe test performance too." That's a checklist, not testing. sumo-qa makes the AI work like a senior QA — risks named against specific lines, design techniques (boundary-value, decision-table, property-based, mutation) picked from a loaded ISTQB-grounded catalogue, test suites run fresh in this turn before any "safe to merge" claim.

The discipline is enforced by 13 skill files the host LLM follows literally — each one with an Iron Law (TDD's red phase before any production code; mutation-strengthening keeps production code locked; no plan ships without measurable entry AND exit criteria) and a HARD-GATE callout the LLM can't talk itself past. A SessionStart hook auto-injects the entry router on every conversation, so the workflow kicks in without you having to remember to invoke it.

Read DEMO.md for the 5-minute install-and-run-this-prompt walkthrough.

Install

One-line install (PyPI)

pip install sumo-qa
# or:  uv tool install sumo-qa

After install, restart your MCP host (Claude Code / Cursor / Codex / OpenCode / JetBrains AI Assistant / VS Code + Copilot) so it picks up the new MCP server.

Claude Code plugin

/plugin marketplace add sumithr/sumo-qa
/plugin install sumo-qa@sumo-qa-dev

Then uv tool install sumo-qa (or pip install sumo-qa) so the MCP server binary is on PATH. The skills come from the plugin; the MCP tools come from the binary.

Multi-host batch install (JetBrains + VS Code + everywhere)

pip install sumo-qa
sumo-qa-install

Configures every supported host detected on this machine. pip puts both sumo-qa (the MCP server binary) and sumo-qa-install (the configurator) on your PATH — on Windows, pip generates .exe wrappers automatically, so no python3 invocation needed. Per-host flags + troubleshooting in docs/INSTALL.md.

From a git URL (latest main)

uv tool install --from git+https://github.com/sumithr/sumo-qa.git sumo-qa

What you get

Layer What it is
13 skills (skills/*/SKILL.md) Iron-Law-enforced procedures the host LLM follows. Cover deciding approach, preparing for work, scaffolding TDD, reviewing diffs, strengthening tests, finding test data, answering testing questions, repo-wide strategising — plus planning + subagent execution + finishing chain (planning → dispatch parallel subagents → capture evidence + PR-ready summary).
24 MCP entry points 13 skill tools + 7 knowledge loaders + 4 test-data tools. Thin file IO; no inference.
5 knowledge catalogues (knowledge/*.md) 4 authoritative catalogues (classifications, approaches, principles, techniques) — the LLM picks from these, not from training-data recall. Plus 1 category-fit primer (specialty_tools) where the LLM picks tool brands from its training knowledge and the file confirms the category fits. Editable as plain markdown.

Host support

Each host surfaces the same skills and tools differently — that's a host-API difference, not a sumo-qa choice. All routes call the same MCP server and read the same SKILL.md content.

Host Slash invocation Setup
Claude Code /qa-deciding-approach (hyphens) Native plugin: /plugin marketplace add sumithr/sumo-qa then /plugin install sumo-qa@sumo-qa-dev. Or sumo-qa-install --claude-code.
Cursor Natural language; Cursor picks skills by description Native plugin: /add-plugin sumo-qa
Codex Natural language; Codex picks skills by description Codex plugin marketplace (search "Sumo QA")
OpenCode skill tool (use skill tool to load sumo-qa/...) Add "sumo-qa@git+..." to opencode.json plugin array, restart
JetBrains AI Assistant /qa_deciding_approach (underscores) One-time Settings → Tools → AI Assistant → Model Context Protocol → Add server with absolute binary path. sumo-qa-install --jetbrains prints the fields to paste.
JetBrains Junie Natural language; Junie picks tools by description Drop the JSON sumo-qa-install prints into ~/.junie/mcp/sumo-qa.json (global) or <repo>/.junie/mcp/ (per-project)
VS Code + Copilot (Agent mode, Claude Sonnet 4.5 or equivalent) Natural language; Copilot picks tools by description sumo-qa-install --vscode --workspace <repo> writes <repo>/.vscode/mcp.json

In Claude Code, MCP tools are NOT slash-invocable directly — use natural language (e.g. "load the QA classifications") and the AI picks the right tool. In JetBrains AI Assistant, every tool IS slash-invocable. Both paths work; both end up calling the same skill body.

Quick test in any host: ask in chat "load the QA classifications". Should return 10 names: api_contract_change, business_logic_change, security_change, performance_change, frontend_change, infrastructure_change, test_change, docs_change, config_change, data_migration. If yes, you're wired correctly.

See it in action

Ten polished worked examples showing what sumo-qa actually looks like in conversation — diff reviews refusing to declare safe-to-merge, TDD cycles with the red output surfaced verbatim, mutation survivors walked one-at-a-time, formal test plans gated on measurable entry/exit criteria, and the surprising one where it correctly says "no tests needed" and stops:

License

Licensed under the Apache License, Version 2.0. See NOTICE for attribution requirements that apply to forks and redistributors.

Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sumo_qa-0.1.4.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sumo_qa-0.1.4-py3-none-any.whl (111.1 kB view details)

Uploaded Python 3

File details

Details for the file sumo_qa-0.1.4.tar.gz.

File metadata

  • Download URL: sumo_qa-0.1.4.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sumo_qa-0.1.4.tar.gz
Algorithm Hash digest
SHA256 20b3ca0638dc0174590f735bb29f33119ec156282c53d196063c486cc1a5f8df
MD5 12fe3861f18e5e14d3600f4ce6774e1e
BLAKE2b-256 61321547b19eab2f8a623518e26e632562ed547de4b5208510092d674190e97e

See more details on using hashes here.

Provenance

The following attestation bundles were made for sumo_qa-0.1.4.tar.gz:

Publisher: release.yml on sumithr/sumo-qa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sumo_qa-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: sumo_qa-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 111.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sumo_qa-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a1fa1c80c2bf3402090596eef11ec270621df9c3c02ada08ad71e1d79769951e
MD5 dc246e7cab5fd36192c8992fad1ce3f6
BLAKE2b-256 b8d5ab732929d2750fb76c05801b1116f9e6862fa44e4bf4c9331d54b9371009

See more details on using hashes here.

Provenance

The following attestation bundles were made for sumo_qa-0.1.4-py3-none-any.whl:

Publisher: release.yml on sumithr/sumo-qa

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page