Qase MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| QASE_API_TOKEN | Yes | Your Qase API token | |
| QASE_API_DOMAIN | No | Custom API domain for enterprise customers | api.qase.io |
| NODE_EXTRA_CA_CERTS | No | Path to CA certificate file for SSL errors |
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
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| qase_apiA | Call any Qase REST endpoint directly, for the few things no dedicated tool covers. Pass the HTTP method, a path starting with /v1/, and an optional body or query. See developers.qase.io for the reference. Prefer a dedicated tool wherever one exists: they normalize enums, validate arguments before spending a round trip, and shape the response for a model. This one hands back whatever the API returns. It sends JSON only and cannot upload files — multipart uploads go through qase_attachment_upload. A DELETE through this tool asks for confirmation the same way the dedicated delete tools do. Cost: one API call, typically 0.3-1.5s depending on the endpoint. No caching, no pagination help, no retries beyond the client defaults. |
| qase_attachment_uploadA | Upload a file and get back the hash that other tools reference it by — screenshots, logs, HAR files, videos. Pass |
| qase_case_upsertA | Create or update a single test case. With |
| qase_ci_reportA | Report a whole CI run in one call: creates the run, records every result, and completes it. This is the tool for a pipeline that has just finished — it replaces qase_run_upsert, then qase_result_record, then qase_run_complete, and leaves no half-open run behind if the agent stops early. Each result needs a numeric |
| qase_defect_upsertA | Create or update a defect — a tracked problem found by testing. Without |
| qase_discover_toolsA | Find and switch on tools that are hidden by default. Only core tools appear in the tool list; deletes, shared steps and parameters, attachments, external issue links, case reviews, defect triage, and project and custom-field management all exist but stay hidden until discovered. Search by what you are trying to do — "delete", "milestone", "attachment", "review", "custom field" — and matching tools are activated and become callable. Every word in the query must appear in a tool's name or description, so prefer two or three words over a sentence. Never conclude a capability is missing without searching here first. Cost: no API call, matching happens in memory, about 3ms. Free to call as often as needed. |
| qase_getA | Fetch one known record by type and ID: case, suite, run, result, plan, defect, milestone, environment, shared_step, shared_parameter, configuration, attachment, author, user, review, or custom_field. |
| qase_project_contextA | Seed everything about a project in one call: project details, the full suite tree, milestones, environments, custom fields, and users. This is the first call to make when starting work on a project — it replaces six separate list calls and gives the model the metadata it needs to build any later query. Each collection returns its first 100 entities; the |
| qase_regression_runA | Build and start a test run from a suite, a test plan, or an explicit list of case IDs, in one step. Use it to launch a regression cycle without first querying for cases and then creating a run around them — give it the source and it resolves the cases itself. For a run you assemble by hand, use qase_run_upsert and pass the case IDs. For a pipeline that has already finished and just needs its results filed, use qase_ci_report instead: this tool opens a run, it does not close one. Cost: two API calls behind one tool call — resolving the source, then creating the run — roughly 1s, growing with the number of cases the source resolves to. |
| qase_result_recordA | Record up to 200 results into an existing run. A case says what should be tested; a result says what happened when it ran — status, duration, comment, stacktrace, attachments — so a result always needs a run to live in. Pass several results in one call rather than calling once per test: the tool takes a list and sends them together. 200 is the ceiling for one call, and a longer list is refused before anything is written — split it into consecutive calls rather than dropping the tail. If the run does not exist yet and this is a finished CI job, qase_ci_report is the single call that creates the run, records the results and completes it, and it splits a larger batch for you. Status is a label, one of "passed", "failed", "blocked", "skipped" or "invalid" — unlike the case enums, numeric IDs are not accepted here. Cost: one API call for the whole list, about 0.5s for a small batch, growing with payload rather than with the number of results. |
| qase_run_upsertA | Create or update a test run. Without |
| qase_triage_defectA | Create a defect from a test failure, with the failure context written into it. Requires title, actual_result and severity — the API rejects a defect missing any of the three. Note: the API offers no way to attach existing runs or results to a defect. The runs and results seen on a defect in the UI are populated by the test runner when it reports a result as a defect, so there is nothing to pass here for that — reference the failing results inside actual_result instead, and do not expect a link to appear. For a defect unrelated to a test failure use qase_defect_upsert. Cost: one API call, about 0.5s. Triaging a whole run means one call per defect, so cluster identical failures and file one defect per distinct cause rather than one per failed test. |
| qql_helpA | Read the QQL reference before writing a query. Pass a |
| qql_searchA | Search any entity with Qase Query Language: filtering, cross-project queries, sorting, and aggregation. This is the right tool for every question that is not "give me this one record by ID" — "cases without automation", "results that failed this week", "open blockers across projects" — and the right way to fetch many records at once instead of looping over qase_get. Call qql_help first for the syntax, the fields available per entity, and the enum values; a query naming an unknown attribute is rejected outright. Use qase_get instead when you already know the entity and its ID and want just that one. Cost: one API call. 0.5-0.9s for pages up to 50 records; a page of 100 measured 0.9-2.8s depending on how much each record carries. Prefer one search over N single fetches: the same ten records cost 1.2s here against 5.3s as ten qase_get calls. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| ci_integration | Report CI/CD test results to Qase: create a run, record results, and get a summary. |
| onboard_project | Get a comprehensive overview of a Qase project for a new team member: structure, recent activity, key metrics. |
| regression_workflow | Create and manage a full regression test cycle: set up a run from a plan or suites, track progress, report results. |
| release_readiness | Check release readiness for a milestone: test coverage, pass rate, open defects, blocking issues. |
| triage_failed_run | Analyze a failed test run: show all failed results grouped by error pattern, suggest defects to create for unique failures. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/qase-tms/qase-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server