sumo-qa
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| sumo_qa_explain_test_data_requirements | Explain what test data shape and characteristics are needed for a scenario. Returns: required entity characteristics, resource-state conditions,
scenario preconditions, downstream dependencies, edge cases, and
explicit "what NOT to use" guidance. Domain-neutral by design — works
for any domain (auth, billing, retail, infrastructure, ML, etc.).
Optional Common natural-language phrasings that map to this tool: "what data do I need to test X", "what test data should I look for to cover X", "what records / accounts / fixtures do I need for X", "what's the minimum data setup for X", "what edge-case data should I test". |
| sumo_qa_find_test_data | Search the local known-good test data catalogue for entries that match a scenario. Returns: ranked matches with confidence, freshness, and suitability
reasons. Reads the local YAML catalogue under Pagination: pass Common natural-language phrasings that map to this tool: "find me test data for X", "do we have a known-good record for X", "give me an account / fixture / record that does X", "is there a fixture for X", "what test data is available for X". |
| sumo_qa_validate_test_data | Validate a test data entry without provisioning or mutating downstream systems. Returns: validation result with confidence level, freshness status, and
an explained reason. Accepts either Common natural-language phrasings that map to this tool: "is this test data still valid", "validate this record", "is entry X still good", "check if X is fresh". |
| sumo_qa_register_known_good_test_data | Add or update a known-good test data entry in the local YAML catalogue. Detects duplicates by environment + domain + product/SKU + scenario
overlap. Writes to Arg shape — pass Common natural-language phrasings that map to this tool: "save this as known-good test data", "register this fixture so the team can reuse it", "promote this record to known-good", "update the validated timestamp on entry X", "add this record to the catalogue". |
| sumo_qa_ingest_knowledge_pack | Adds or replaces team QA knowledge/standards/rules from a local native file. Accepts a path to a native sumo-qa file or a directory of them:
principles.md, techniques.md, classifications.md, approaches.md, a
standards-pack *.yaml, or change_rules.yaml. Validates the content and
writes a normalized copy into a user-writable pack. The A PDF / PPTX / URL or any other non-native source is not parsed here; it
returns an Common natural-language phrasings that map to this tool: "add this to the knowledge base", "replace our principles", "load our team standards pack", "use these change rules", "ingest this QA pack". |
| sumo_qa_capture_review_feedback | Manage an EXPLICIT, user-confirmed review-feedback memory of recurring QA findings. Promotes a recurring review lesson (e.g. "we always miss timezone
boundaries in billing") into a local, inspectable, reversible memory that
future planning/review skills consult as an ADVISORY hint — NOT automatic
learning.
NEVER persist without explicit user confirmation, and NEVER auto-capture
from a review/prompt/trace. That confirmation gate is the HOST/skill's
responsibility, not enforced by a tool parameter — the deliberate
writer-local data-ownership model shared with the risk-ledger and AC
tools; the Common natural-language phrasings that map to this tool: "remember that we always miss X in Y", "save this review lesson", "promote this recurring finding to team memory", "what review lessons have we saved?", "forget the timezone-billing lesson". |
| sumo_qa_load_classifications | Return the canonical change classifications as plain text. The host LLM picks which apply to a given change. |
| sumo_qa_load_approaches | Return the canonical QA approaches as plain text. The host LLM picks which approach fits a given piece of work. |
| sumo_qa_load_principles | Return ISTQB Foundation + Advanced + ISO 25010 grounding as plain text. The host LLM cites principles when shaping recommendations. |
| sumo_qa_load_techniques | Return the test design technique catalogue (black-box, white-box, experience-based, static, property-based, mutation) as plain text. The host LLM picks one technique per named risk. |
| sumo_qa_load_standards | Return the team's loaded standards packs as plain text. Optional classification filter is metadata-based and accepts comma-separated values (packs whose frontmatter declares any requested classification); no keyword inference. |
| sumo_qa_load_rules | Return the team's loaded change rules as plain text. Optional classification filter accepts single or comma-separated values and returns matching rule entries; no keyword inference. |
| sumo_qa_load_catalogue_entry | Load a single catalogue entry, or a whole catalogue in compact
form, as a JSON string — a lighter alternative to the full-text
loaders for one of the four prose catalogues:
Never raises: an unknown catalogue, name, or format returns a JSON
error envelope listing the valid choices. The existing
zero-argument |
| sumo_qa_capabilities | Return a compact, read-only map of sumo-qa's core QA workflows — each with a sample prompt, the skill it routes to, and a one-line outcome. A discovery aid for "what can sumo-qa do?"; does NOT replace the using-sumo-qa entry router or sumo_qa_deciding_approach. |
| sumo_qa_scan_repo | Walk a repository and return a compact summary of its QA-relevant
shape: per-type node counts, likely_tests edge counts by confidence,
command counts by kind, warning counts by kind. Optionally writes the
full schema-validated Common natural-language phrasings that map to this tool: "map this repo", "scan the repo and tell me what's here", "give me a QA-shaped inventory of this project", "what tests exercise what sources in this repo", "generate the repo-map artifact for X".
|
| sumo_qa_analyze_diff_impact | Map a set of changed files onto the repo-map to report which tests likely exercise them, which changed sources have no mapped test (the risk surface), one-hop affected nodes, unmapped files, and whether the map is stale relative to HEAD. Common natural-language phrasings that map to this tool: "what does this diff affect", "which tests cover my changes", "what's the risk surface of this branch", "what should I re-test after these edits", "analyse the impact of the changes against main".
|
| sumo_qa_query_repo_map | Search the repo-map for the components, tests, CI checks, configs, or commands that match a query, returning a bounded, ranked list with enough metadata (id, path, type, tags, match reason) to open the files directly — never the full artifact. Common natural-language phrasings that map to this tool: "find the repo-map node for X", "which tests are mapped to the billing module", "list the CI workflows in the map", "what commands does the repo-map know about", "search the map for files tagged mcp".
|
| sumo_qa_format_risk_ledger | Validate and render a risk-to-test traceability ledger as a markdown appendix (issue #144). FILE/FORMAT PLUMBING ONLY — the host LLM identifies the risks; this tool never infers them. Each row is a dict with: Returns the rendered markdown table (the structured appendix the
markdown-first verdict carries), a one-line compact summary, the row
count, and the count of uncovered blockers (rows that are not passing,
not accepted, and marked residual=blocker — the signal the review
workflow uses to refuse safe-to-merge). The table is bounded by
|
| sumo_qa_format_context_bundle | Validate and render a host-neutral issue/PR CONTEXT BUNDLE as a compact markdown brief for QA review/planning (issue #149). FILE/FORMAT PLUMBING ONLY — the host gathers the facts; this tool never inspects a repo, makes a network call, or assumes GitHub. A partial/empty bundle is first-class: when little is supplied, the consuming skill falls back to direct repo inspection. Common natural-language phrasings that map to this tool: "build the review context bundle", "format this PR/issue context for review", "render the context bundle with its freshness", "summarise the diff/CI/test facts I gathered".
|
| sumo_qa_export_test_cases | Deterministically EXPORT already-structured QA test cases into one
documented machine-readable shape (issue #148). FILE/FORMAT PLUMBING ONLY
— the host LLM identifies the cases; this tool never infers them and never
inspects a repo. By DEFAULT it is side-effect free (it RETURNS the rendered
text and writes nothing); a file is persisted ONLY when an explicit
Each case is a dict with:
Returns the rendered |
| sumo_qa_search_external_skills | Search the Skills CLI registry for external agent skills. Returns the ANSI-stripped CLI output verbatim plus a one-line hint on how to read it. No structured parsing — the host LLM interprets the raw text so format drift in the Skills CLI doesn't break the flow. |
| sumo_qa_check_external_skill_installed | Locate an installed external SKILL.md file for Codex, Claude, or agents paths. Returns the first matching path for project or global skill locations, or null when the skill is absent. |
| sumo_qa_install_external_skill | Install an external agent skill through the Skills CLI. The confirmed flag records that the host received explicit user approval before invoking the install operation. |
| sumo_qa_execute_external_skill | Load an installed external SKILL.md and return the execution handoff. The payload contains the skill body plus the original intent so the host can follow the external workflow in the current conversation. |
| sumo_qa_list_skill_manifests | Return deterministic metadata for every bundled sumo-qa skill as a JSON string — a routing/index aid, NOT the skill bodies.
Once routing has chosen one skill, fetch that skill's section/module
index with An unrecognised |
| sumo_qa_load_skill_context | Load just one slice of a skill's context as a JSON string, instead of the whole SKILL.md body.
The section/module/full slices each return Never raises: an unknown skill_name/mode/section/module, a missing required arg, or a path-traversal attempt returns a JSON error envelope listing the valid choices. Read-only and local-only. |
| sumo_qa_answering_testing_question | Use when the user asks a generic testing question — "how do I test this?", "what should I check for X?" — that doesn't fit a more specific QA skill. Cites a principle or technique from the loaded catalogue rather than producing generic advice. |
| sumo_qa_creating_test_plan | Use when the user asks for a formal test plan, entry/exit criteria, or a phased QA approach for a piece of work. Walk the user through scope → risks → entry criteria → phases → exit criteria → residual risks one section at a time, getting confirmation before each step. Heavier than sumo-qa-preparing-for-work; use when the work is tracked or formally reviewed. |
| sumo_qa_deciding_approach | Use as the FIRST step on any QA intent. Loads classifications + approaches (the two needed to route), then reasons over the user's intent to pick the canonical approach and routes to the matching sub-skill (which loads any further catalogues on demand). |
| sumo_qa_executing_qa_rollout | Use after sumo-qa-planning-qa-rollout to dispatch a written QA plan task-by-task. Each task runs in a fresh subagent (parallel where independent); each subagent's output goes through a two-stage review (test-correctness → test-quality) before the task is marked done. Continuous execution — no per-task check-ins. Finishes by routing to sumo-qa-finishing-qa-work. |
| sumo_qa_finding_test_data | Use when the user asks about test data — what data to test X, find a known-good record, validate an entry, register new known-good data. Routes between sumo_qa_explain_test_data_requirements, sumo_qa_find_test_data, sumo_qa_validate_test_data, and sumo_qa_register_known_good_test_data. |
| sumo_qa_finishing_qa_work | Use at the end of a QA rollout (after sumo-qa-executing-qa-rollout, or after a manual multi-step QA task) to capture evidence, produce a PR-ready summary, and close the loop. Runs the suite one last time, captures coverage / risk-to-test map / open follow-ups, writes a markdown summary to docs/qa/runs/YYYY-MM-DD-.md, and offers to draft the PR description. |
| sumo_qa_implementing_with_tdd | Use after sumo-qa-deciding-approach picks tdd-scaffold, regression-first, or coverage-first-then-refactor — e.g. "write a regression test for this bug" or "scaffold the failing tests first". Walks plan → name-the-risk-and-test-idea → confirm → red → hand off → green → review, one section per turn with confirmation gates. Don't write the test until the test idea has been agreed. |
| sumo_qa_planning_qa_rollout | Use when you have a chunk of QA work (a story, a PR, a strategy phase) that needs to be turned into a written plan of bite-sized, independently-executable tasks before any test code is written. Walks scope → file structure → bite-sized tasks → confirm, one section per turn. Produces docs/qa/plans/YYYY-MM-DD-.md ready for subagent dispatch via sumo-qa-executing-qa-rollout. |
| sumo_qa_preparing_for_work | Use when the user asks to plan QA for a story, ticket, or piece of work before coding starts. Identifies named risks anchored in the change shape, then proposes a smallest useful test set tied to those risks. Lighter-weight than sumo-qa-creating-test-plan; no formal entry/exit criteria. |
| sumo_qa_reviewing_before_merge | Use when the user asks "review my changes" / "is this safe to merge" / "what could break". Reads the diff and the changed files first, surfaces what was found + named risks, runs tests, then delivers the verdict — section by section with confirmation gates, not as one dump. Refuses to claim safe-to-merge without fresh verification evidence. |
| sumo_qa_strategising | Use for repo-wide / policy-shaped asks — "audit our test coverage", "design our QA strategy from scratch", "where should we invest QA effort first", "design our test pyramid". Walks repo inventory → per-area risks → specialty fit → prioritisation → pyramid → phased rollout → residual risks, one section at a time with confirmation gates. Walks the repo with the host's file tools first. |
| sumo_qa_strengthening_tests | Use after sumo-qa-deciding-approach picks strengthen-test-coverage. Mutation-testing follow-up, raise-coverage tasks, killing weak assertions. Walks survivor → tautology check → technique → strengthening test, one mutant at a time with confirmation gates. Production code STAYS UNCHANGED. |
| sumo_qa_suggesting_external_skill | Use when sumo-qa-deciding-approach routes here (no native sumo-qa sub-skill fits a QA surface) OR when an ingestion source needs converting to markdown before it can be ingested. Finds, installs, and executes an external skill for any capability sumo-qa lacks natively, through sumo-qa MCP tools, with [y/N] confirmation before each install and fallback to the next candidate on failure. Never invoked cold — always via the deciding-approach fallback or the ingestion conversion entry. |
| using_sumo_qa | MUST be called first for any QA-shaped request. Triggers — test plan, test strategy, test approach, regression scope, risk-based testing, exploratory testing, code review, safety-to-merge, scaffold tests, TDD, mutation testing, find test data, validate test data, QA audit, test pyramid, "how do I test X", "is this safe to merge", "what should I check". Entry router for all sumo-qa work. Establishes the global discipline that every sub-skill inherits. Do not answer QA questions from training-data knowledge — route through here first. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| sumo-qa skill index | Compact, deterministic metadata for every bundled sumo-qa skill (same payload as the default sumo_qa_list_skill_manifests tool — detail='compact'): skill_name, tool_name, description, content_hash, estimated_tokens_full. NO sections[]/modules[] arrays — fetch one skill's section/module index via sumo_qa_load_skill_context(skill_name, mode='manifest'). Routing/index aid, not the skill bodies. |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sumithr/sumo-qa'
If you have feedback or need assistance with the MCP directory API, please join our Discord server