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

An MCP server and skills library that gives AI coding agents a senior-QA workflow. Works with Claude Code, Cursor, Codex, OpenCode, JetBrains AI Assistant + Junie, and VS Code + GitHub Copilot.

[!IMPORTANT] sumo-qa is an advisor, not an oracle. Like any AI tool it can be wrong. Your judgment and your team's standards are the final word.

🚀 New here? 5-minute demo →

One install line, one prompt on your repo, the workflow runs on real code.

Why it exists

Ask a stock AI assistant to QA a change and you get the junior answer: "add unit tests, consider edge cases, maybe test performance." That's a checklist.

sumo-qa makes the agent work the way a senior QA does:

  • Names 3–7 risks tied to specific files and lines, not categories
  • Picks one design technique per risk from an ISTQB-grounded catalogue (boundary-value, decision-table, property-based, mutation)
  • Runs your test suite fresh in the current turn before any "safe to merge" claim
  • Holds TDD's red phase before any production code is written
  • Keeps production code locked while strengthening tests against mutation survivors
  • Won't ship a plan without measurable entry and exit criteria

The discipline lives in 14 skill files (1 router + 13 sub-skills). The host LLM follows them literally, and each one has an Iron Law and a HARD-GATE callout the LLM can't talk past. Skills route automatically from natural-language prompts; you don't need to remember to invoke them.

Install

pip install sumo-qa && sumo-qa-install --claude-code

Other hosts: swap --claude-code for --vscode --workspace <path-to-repo>, --jetbrains, or drop the flag to configure every host on the machine. Works the same on macOS, Linux, and Windows (pip generates .exe wrappers, so no python3 invocation).

Restart your host or open a fresh chat afterwards.

Per-host flags, schema differences, and troubleshooting: docs/INSTALL.md.

Verify it's wired

In any host, ask:

load the QA classifications

You should get 10 names back: api_contract_change, business_logic_change, security_change, performance_change, frontend_change, infrastructure_change, test_change, docs_change, config_change, data_migration. If you do, you're wired.

Update

pip install --upgrade sumo-qa && sumo-qa-install

Restart the host. The SessionStart hook re-injects the latest content; skills and knowledge refresh from the upgraded package.

What's included

Layer What
14 skills (skills/) Iron-Law procedures: deciding approach, preparing for work, TDD scaffolding, diff review, strengthening tests, finding test data, answering testing questions, repo strategy — plus the planning → parallel subagent execution → finishing chain.
24 MCP entry points 14 skill tools, 6 knowledge loaders, 4 test-data tools. Thin file IO, no inference.
4 knowledge catalogues (knowledge/) Classifications, approaches, principles, techniques. The agent picks from these instead of recalling from training data. Editable as plain markdown. Specialty-tool picks are deliberately not catalogued — the discipline is observe the risk surface, web-search current options for the user's stack, cite when naming a tool.

Host support

Every host calls the same MCP server and reads the same SKILL.md files. What differs is how each host exposes them — that's a host-API difference, not a sumo-qa choice.

These hosts are verified end-to-end with sumo-qa-install:

Host Slash Setup
Claude Code /sumo-qa-deciding-approach (hyphens) sumo-qa-install --claude-code
VS Code + Copilot (Agent mode, Claude Sonnet 4.5 or equivalent) Natural language sumo-qa-install --vscode --workspace <repo> writes .vscode/mcp.json
JetBrains AI Assistant /sumo_qa_deciding_approach (underscores) One-time UI setup; sumo-qa-install --jetbrains prints the fields to paste
JetBrains Junie Natural language Drop the JSON sumo-qa-install prints into ~/.junie/mcp/sumo-qa.json (global) or <repo>/.junie/mcp/ (per project)

In Claude Code, type / then sumo-qa- to see all 14 skills as hyphenated entries (symlinked into ~/.claude/skills/). The same skills are also registered through MCP with underscores (/sumo_qa_load_classifications, /sumo_qa_find_test_data); both routes call the same SKILL.md.

Natural language works everywhere. "Review my changes", "plan QA for this story", "load the QA classifications" — the agent routes by tool description. Slash and natural-language paths produce the same result.

Other MCP hosts (Cursor, Codex, OpenCode, etc.): pip install sumo-qa ships a standard stdio MCP server, so it should work with anything that speaks MCP. Follow your host's MCP-server setup docs and point it at the absolute path from sumo-qa-install --help. Not verified end-to-end by us, so we don't ship instructions.

See it in action

Ten transcripts showing the workflow on real code — diff reviews refusing to call safe-to-merge from stale CI, TDD cycles with the red output surfaced verbatim, mutation survivors walked one at a time, formal test plans gated on entry/exit criteria, and the case where the right answer is "no tests needed, stop here":

When sumo-qa doesn't fit

If your QA intent has no native fit (Playwright E2E, accessibility audits, k6 load testing), sumo-qa offers ([y/N]) to install Vercel Labs' find-skills meta-skill, which then searches and installs from skills.sh.

  • No companion MCP shim. All CLI invocations go through the host LLM's Bash tool inside the skill.
  • Node.js is required (for npx). If it's missing, sumo-qa prints the install URL and stops. It doesn't elevate via sudo.
  • find-skills handles scope (global vs project-local), registry search, and install; sumo-qa's discipline wraps the response.

License

Apache 2.0. See NOTICE for attribution requirements that apply to forks and redistributors.

More docs

Project details


Release history Release notifications | RSS feed

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.3.1.tar.gz (1.4 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.3.1-py3-none-any.whl (122.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sumo_qa-0.3.1.tar.gz
  • Upload date:
  • Size: 1.4 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.3.1.tar.gz
Algorithm Hash digest
SHA256 9233802813e0db4a88e4386cc92defabee27e722162d9d0c860ec662d21eb649
MD5 62043f2cf506548716b8d846f03b5dde
BLAKE2b-256 3ab29970f5cb3e3f634eb6fd035a6018bb733a847b494ce36496f4e274779196

See more details on using hashes here.

Provenance

The following attestation bundles were made for sumo_qa-0.3.1.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.3.1-py3-none-any.whl.

File metadata

  • Download URL: sumo_qa-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 122.4 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.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b7d3530d5e5b5f9fe30038ada78765dd62aa64e5669f2d5cfdb0c14540f4f38f
MD5 725e13f25521d76e761cab1a92b778c2
BLAKE2b-256 9ad274f8672ace6df9b138a37fcf39956b2b4231b8241291d26eb11aaf892bbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for sumo_qa-0.3.1-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