Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
QA_MCP_CONFIGNoPath to the qa.config.json file. Defaults to ./qa.config.json.
QA_CLIENT_SECRETNoClient secret for authentication, referenced by the config as env:QA_CLIENT_SECRET.
QA_ADMIN_PASSWORDNoPassword for the admin role, referenced by the config as env:QA_ADMIN_PASSWORD.
QA_CUSTOMER_PASSWORDNoPassword for the customer role, referenced by the config as env:QA_CUSTOMER_PASSWORD.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
qa_discoverA

Fetches the OpenAPI/Swagger document of every configured service and reports the testable surface: endpoint count per service, how many assertions would be executed, which operations are skipped by the safety policy (and why), and which services could not be reached. Runs no test and sends no request to the endpoints themselves. Use this first to check coverage before running anything.

qa_run_apiA

Generates deterministic tests from OpenAPI and executes them against stage: contract (status declared in the spec + response body matches its schema), authz (secured endpoint called without a token must answer 401/403), robustness (malformed required parameter must answer 400/404/422), and perf (policy.maxResponseMs). Any 5xx is an unconditional critical failure. IMPORTANT: while policy.readOnly is true, every mutating endpoint (POST/PUT/PATCH/DELETE) is skipped unless its path is listed in policy.allowedMutationPaths — call qa_discover to see exactly what was skipped. Returns a digest; the full run is stored under artifactsDir.

qa_run_flowsA

Executes the hand-written business scenarios in tests/flows/*.yaml sequentially (they share state, so never in parallel). Each flow chains calls across services with {{variable}} interpolation, capture, expectStatus/expectBody and waitMs for eventual consistency. This is the only place where destructive operations are allowed, because a human wrote the steps. One flow = one result: on failure you get the failing step name, the trace of successful steps and every captured variable.

qa_run_uiA

Two layers against the React frontend. mode=specs runs the fixed Playwright specs in tests/ui (skipped with a clear message if playwright.config.ts is missing). mode=crawl logs in with a role and BFS-crawls same-origin links, failing a route on navigation error, HTTP >= 400, console errors, failing XHRs or an effectively empty render, with a full-page screenshot for every failure. If the login itself fails the crawl stops immediately with one critical result. mode=both runs the two in order.

qa_run_allA

One complete pass: discovery, generated API tests, YAML flows, Playwright specs and the frontend crawl — then an automatic comparison against the previous stored run. Returns the digest plus the diff buckets, of which regressions (passed before, fails now) is the one that should block a release. Mutating endpoints are still governed by policy.readOnly. Use this as the release gate.

qa_reportA

Reads the full detail of a stored run with filters, for drilling into what a run digest truncated. Filter by status, severity, suite or service. Omit runId to read the most recent run.

qa_diffA

Compares two stored runs by stable test id and splits the delta into regressions (passed before, fails now — the release blocker), fixed, newFailures (test did not exist in the baseline), stillFailing and removed (endpoint or page gone). Defaults to comparing the latest run against the most recent earlier run that covered the same suites.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/shahinnr/mcp_qa'

If you have feedback or need assistance with the MCP directory API, please join our Discord server