Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
sumo_qa_explain_test_data_requirementsB

Explain the test data a scenario needs ("what data do I need to test X"): entity characteristics, resource state, preconditions, dependencies, edge cases, and what not to use.

sumo_qa_find_test_dataA

Search the local known-good test data catalogue ("find me test data for X") for ranked matches with confidence, freshness and suitability. scenario_tags and known_valid_for narrow it; page with offset and the response's next_offset.

sumo_qa_validate_test_dataA

Validate a test data entry (entry_id from the catalogue, or a full entry dict) without touching downstream systems.

sumo_qa_register_known_good_test_dataA

Add or update an entry in knowledge/test_data/<domain>/known_good.yaml, flagging a duplicate (same environment, domain, product/SKU, and both scenario_tags and known_valid_for overlap). entry is a dict, not a YAML string: id, environment, domain, product_id, sku, scenario_tags, known_valid_for, constraints, owner, last_validated_at, confidence (low / medium / high; default low), source, notes.

sumo_qa_ingest_knowledge_packA

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 scope argument selects where it lands: 'project' (/.sumo-qa, the current repo only) or 'global' (the user data dir, every repo) — the right scope is a user choice worth confirming. Loader precedence is env var > project > global > bundled > repo root.

A PDF / PPTX / URL or any other non-native source is not parsed here; it returns an unsupported_source result that routes through the sumo-qa-suggesting-external-skill flow to convert the source to markdown, which is then re-ingested with an explicit content_type.

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_feedbackA

Manage the user-confirmed memory of recurring review lessons: advisory hints that never override the catalogues.

action: 'list' (default); 'capture' (entry: scope, trigger_signal, recommended_probe, source_note, optional last_reviewed); 'update' (entry_id + entry); 'delete' (entry_id). scope picks the store: 'project' (default) or 'global', else an error. entry needs its own scope too.

Every write needs the user's explicit confirmation; nothing is auto-captured. Raw diffs, secrets, code and pasted issue/PR bodies are rejected: only the user's own summary is stored.

sumo_qa_load_classificationsA

Return the canonical change classifications as plain text. The host LLM picks which apply to a given change.

sumo_qa_load_approachesA

Return the canonical QA approaches as plain text. The host LLM picks which approach fits a given piece of work.

sumo_qa_load_principlesA

Return ISTQB Foundation + Advanced + ISO 25010 grounding as plain text. The host LLM cites principles when shaping recommendations.

sumo_qa_load_techniquesA

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_standardsA

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_rulesA

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_entryA

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: classifications, approaches, principles, techniques.

  • With name set: return one entry. name matches the stable slug id (api_contract_change, equivalence-partitioning) or the verbatim heading text (case-insensitive).

  • With name omitted: return the whole catalogue. format="full" (default) returns the verbatim catalogue text; format="compact" returns one lead-line summary per entry.

format: "full" (default) returns verbatim entry text marked canonical=true — safe to cite. "compact" returns a truncated summary marked canonical=false — a navigation/recall aid, NOT a citation replacement; load the full form (or the zero-argument sumo_qa_load_* loader) when exact wording matters.

Never raises: an unknown catalogue, name, or format returns a JSON error envelope listing the valid choices. The existing zero-argument sumo_qa_load_* loaders are unchanged. Read-only and local-only.

sumo_qa_capabilitiesA

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 — plus the active tool profile, its enabled capability groups, and how to enable the groups it leaves out. 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_repoA

Scan the repository at root and return a compact summary of its QA shape (node, test-edge, command and warning counts). write_to also writes the full repo-map JSON.

sumo_qa_analyze_diff_impactA

Map changed files onto the repo-map: likely tests, the risk surface (changed sources with no mapped test), affected nodes and map staleness. Pass changed_files (repo-relative) or base_ref (diffed from its merge-base with HEAD). The map comes from artifact_path, else a live scan saved there if nothing is (artifact_path=None saves nothing). write_overlay writes .sumo-qa/diff-impact.json. probable_mapping_gap means a naming gap, not zero coverage.

sumo_qa_query_repo_mapA

Search the repo-map for components, tests, CI checks, configs or commands matching query (case-insensitive over ids, paths, names, types and tags); returns a ranked list capped at limit (total_matches counts all), never the whole map. types narrows by node type or "command".

sumo_qa_format_risk_ledgerB

Validate and render a risk-to-test ledger as a markdown table; the host names the risks. Row: risk_id, risk, source_anchor, test (test id or 'planned: ...'), evidence_status (planned / passing / failing / stale / accepted_residual), residual (open / accepted / mitigated / blocker), optional repo_map_node_id.

sumo_qa_format_context_bundleA

Render a host-gathered issue/PR context bundle as a compact markdown brief; no repo or network access. bundle (all optional): issue_summary, pr_summary, head_sha, changed_files ({path, change_kind}), test_evidence / ci_status ({result, freshness, source}), user_constraints. freshness: fresh / stale / unknown / absent; only a fresh pass supports safety. local_head_sha flags a bundle that diverges from the live head.

sumo_qa_format_qa_scorecardA

Compute QA readiness ("is this ready to merge") from existing evidence: ready, ready_with_accepted_residuals, blocked or insufficient_evidence. Infers no risk; an uncovered blocker or stale evidence refuses ready. Optional inputs: ledger_rows (rows of risk_id, risk, source_anchor, test, evidence_status: planned / passing / failing / stale / accepted_residual, residual: open / accepted / mitigated / blocker), context_bundle (as sumo_qa_format_context_bundle takes), coverage / mutation (absent means not measured), scope, and local_head_sha, without which a bundle naming a head_sha cannot support ready.

sumo_qa_export_test_casesA

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 output_path is supplied.

Each case is a dict with: id (stable within this export), title, preconditions (ordered list, may be empty), steps (ordered list, may be empty), expected_result, optional linked_risk_id (a risk id in a companion risk ledger), priority (one of critical / high / medium / low), and evidence_status (one of planned / passing / failing / stale / accepted_residual — the same vocabulary as the risk ledger).

format is one of: markdown (the DEFAULT human-facing table), json (a versioned, key-sorted, deterministic document), or csv (OPTIONAL, and only valid for a flat outline — at most one precondition and one step per case). An unsupported format, or CSV for a non-flat export, returns an error envelope naming the supported formats. Tool- specific import mappings may need local adjustment.

export_title (optional) names the export as a whole — rendered in the markdown header and the JSON top-level title. (It is named export_title, not title, so it stays distinct from each case's own title.)

output_path (optional) is the EXPLICIT file-write carve-out. When omitted (the default) nothing is written. When given, the SAME rendered bytes are ALSO persisted, confined to the project export root (<cwd>/.sumo-qa/exports): a relative path resolves under that root, an absolute path or .. traversal that escapes it is refused, and an already-existing target is refused rather than silently overwritten. The write only happens AFTER successful validation+render, so a bad export never leaves a file. On a successful write written_path carries the resolved absolute path (else None).

Returns the rendered content, the chosen format, the stamped schema_version, the validated test_case_count, and written_path (the persisted location, or None on the default no-write path).

sumo_qa_generate_qa_reportA

Compose the .sumo-qa artifacts under root into the local QA report and return a compact readiness summary. A missing or stale artifact is shown as such, never as passing. risk_ledger_rows / context_bundle override the files; write_to (conventionally .sumo-qa/qa-report.html) writes the page, otherwise nothing is written.

sumo_qa_record_coverageA

Validate a host-collected coverage summary and save it as .sumo-qa/coverage.json for the QA report; a relative write_to stays inside root. coverage: line_percent (0-100; omit for not measured), freshness (fresh / stale / unknown / absent), detail, source_tool, generated_at. Reported, never gated.

sumo_qa_record_mutationA

Validate a host-collected mutation summary and save it as .sumo-qa/mutation.json for the QA report; a relative write_to stays inside root. mutation: survivors, killed (>= 0; omit for not measured), freshness (fresh / stale / unknown / absent), detail, source_tool, generated_at. Reported, never gated.

sumo_qa_search_external_skillsA

Search the Skills CLI registry for external agent skills.

Runs one exact pinned Skills CLI version and returns its identity, the ANSI-stripped CLI output verbatim, and 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_installedA

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 {"installed": false, "skill", "scope"} when the skill is absent.

sumo_qa_preview_external_skillA

Preview the exact payload an external skill install would write; installs nothing.

Returns the resolved commit, files, content_digest, source trust tier, capabilities, and safety-lint findings (critical ones block install). Show it to the user before they confirm the install.

sumo_qa_install_external_skillA

Install a previewed external skill through the pinned Skills CLI.

confirmed: the user wants the previewed payload; approved_digest: that preview's content_digest, which the payload must still match. elevated_trust: only when the user grants it for a mutable ref or an untrusted source. sumo-qa then asks the user itself (MCP elicitation) before writing; a host that cannot ask is refused.

sumo_qa_rollback_external_skillA

After user confirmation, restore the previous approved version of an external skill sumo-qa installed, or remove a first install.

agent: optional, the one agent recorded; a shared skill is refused. elevated_trust: only when the user grants it for the restored version's unlisted source. sumo-qa asks the user itself (MCP elicitation) first; a host that cannot ask is refused.

sumo_qa_execute_external_skillB

Load an installed external SKILL.md and return the execution handoff.

Blocks when the skill no longer matches its recorded commit and digest or SKILL.md fails the safety lint. The skill body is marked untrusted: it never overrides system, developer, user, or sumo-qa instructions.

sumo_qa_list_skill_manifestsA

Return deterministic metadata for every bundled sumo-qa skill as a JSON string — a routing/index aid, NOT the skill bodies.

detail controls how much per-skill index is included (default "compact"):

  • "compact" — routing metadata only: skill_name, tool_name (the zero-argument skill tool), description (from frontmatter), content_hash (sha256 of the SKILL.md) and estimated_tokens_full. NO sections[]/modules[] arrays — the cheap all-skill routing slice.

  • "full_index" — the same metadata PLUS each skill's sections[] (id, heading, level, estimated_tokens, required) and modules[] (id, path, estimated_tokens) index arrays. Section ids are stable heading slugs (duplicates get -2/-3 suffixes); required marks the structural sections (frontmatter, Iron Law, Checklist, Flow, Red Flags, HARD-GATE) when present.

Once routing has chosen one skill, fetch that skill's section/module index with sumo_qa_load_skill_context(skill_name, mode="manifest"), then a single slice via mode="section"/"module"/"full".

An unrecognised detail returns a JSON error envelope listing the valid values rather than raising. Read-only and local-only: no network, no extraction, no caching. The existing zero-argument skill tools still return full bodies unchanged.

sumo_qa_load_skill_contextA

Load one slice of a skill as a JSON string. mode: "manifest" (section and module ids); "section" / "module" (pass section / module); "full" (the whole body, or an oversize pointer to the slices); "bundle" (one call: the body unless include_body=false, comma-separated modules, the entries, standards and rules for comma-separated exact classification ids, and whole catalogues: techniques, principles, classifications, approaches). Slices carry content_hash; passing it as known_hash returns changed=false without the body when unchanged. Bad input returns an error envelope listing the valid choices.

sumo_qa_answering_testing_questionA

Use after sumo-qa-deciding-approach routes here, 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_closing_qa_gapsA

Use after sumo-qa-deciding-approach routes here, when a review, mutation run, or graded scenario has already named a concrete uncovered behavior gap and the user wants it closed with evidence — e.g. 'close this gap', 'drive this uncovered risk to a regression test', 'fix this surviving mutant end to end'. Drives ONE closed loop per gap, with red and green evidence. Pauses when repo context or evidence is insufficient.

sumo_qa_creating_test_planA

Use after sumo-qa-deciding-approach routes here, when the user asks for a formal test plan, entry/exit criteria, or a phased QA approach for a piece of work. Heavier than sumo-qa-preparing-for-work; use when the work is tracked or formally reviewed.

sumo_qa_deciding_approachA

Use first after using-sumo-qa 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_rolloutA

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_dataA

Use after sumo-qa-deciding-approach routes here, 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 the explain, find, validate and register test-data tools.

sumo_qa_finishing_qa_workA

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_tddA

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_measuring_coverageA

Use after sumo-qa-deciding-approach routes here, when the user wants coverage or mutation numbers in the local QA report — "run coverage", "measure coverage", "run mutation testing", "record the survivors". Runs the repo's configured coverage/mutation tool, reads its output (any format), and persists a compact summary into the .sumo-qa artifacts the report loads.

sumo_qa_planning_qa_rolloutA

Use after sumo-qa-deciding-approach routes here, 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. Produces docs/qa/plans/YYYY-MM-DD-.md ready for subagent dispatch via sumo-qa-executing-qa-rollout.

sumo_qa_preparing_for_workA

Use after sumo-qa-deciding-approach routes here, when the user asks to plan QA for a story, ticket, or piece of work before coding starts. Lighter-weight than sumo-qa-creating-test-plan; no formal entry/exit criteria.

sumo_qa_reviewing_before_mergeA

Use after sumo-qa-deciding-approach routes here, when the user asks "review my changes" / "is this safe to merge" / "what could break". Refuses to claim safe-to-merge without fresh verification evidence.

sumo_qa_security_testingB

Use after sumo-qa-deciding-approach routes here, when explicit security testing or a grounded security gap needs deeper evidence selection.

sumo_qa_strategisingA

Use after sumo-qa-deciding-approach routes here, 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 the repo with the host's file tools first.

sumo_qa_strengthening_testsA

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_skillA

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.

sumo_qa_triaging_test_failuresA

Use after sumo-qa-deciding-approach routes here, when a test is failing or flaky and the cause is not yet known — e.g. 'this test keeps failing', 'red in CI but passes locally', 'this test is flaky', 'a test failed, what now?'. Reads the failure output, classifies the likely cause, and names the smallest next isolation step BEFORE any fix. Diagnosis only — it does not patch; it routes to a fixing skill only once a concrete product-behaviour gap is confirmed.

using_sumo_qaA

MUST be called first for any QA-shaped request. Triggers include 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". Also development-framed testing asks ("I'm adding X, how should I test it", "what tests do I need", "cover the edge cases", "write the failing tests first"). Entry router for all sumo-qa work. Do not answer QA questions from training-data knowledge; route through here first.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
sumo-qa skill indexCompact, deterministic metadata for every bundled sumo-qa skill (compact manifests): 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.

TDQS

A3.6/5.0

Scored across 50 tools

Disambiguation4/5

Most tools have a clearly stated role and descriptions explicitly state routing preconditions ('use after sumo_qa_deciding_approach routes here') and contrasts ('lighter-weight than sumo_qa_creating_test_plan'). A few pairs still overlap: sumo_qa_load_catalogue_entry versus the four zero-argument loaders, sumo_qa_finding_test_data (router) versus sumo_qa_find_test_data (leaf), and sumo_qa_measuring_coverage versus sumo_qa_record_coverage — but each clash is disambiguated in prose.

Naming Consistency3/5

The bulk share a `sumo_qa_` prefix, but two conventions coexist inside it: gerund skill names (planning_qa_rollout, creating_test_plan, strategising, triaging_test_failures) and verb_object utility names (find_test_data, scan_repo, analyze_diff_impact). The entry router `using_sumo_qa` also breaks the prefix pattern entirely, and descriptions refer to hyphenated skill ids that differ from the tool names.

Tool Count2/5

50 tools is heavy for any single server and sits at the top of the 'too many' band, even though the surface is organized into routing, skill-loading, test-data, external-skill and artefact families. Several skill entry points could arguably be consolidated into the router rather than exposed as separate tools.

Completeness5/5

The QA lifecycle is covered end to end: routing, approach selection, planning/execution rollout, TDD and test strengthening, triage, coverage and mutation measurement, risk ledger and scorecard, report generation, test-data explain/find/validate/register, catalogue and knowledge ingestion, plus a full external-skill search/preview/install/execute/rollback loop. No obvious dead ends for the stated domain.

Maintenance

ActivityActive
ResponsivenessSyncing