openqa-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OPENQA_SERVER | No | openQA host (e.g. openqa.opensuse.org). Default is openqa-async default. | |
| OPENQA_VERIFY | No | TLS verification: true/false, or a path to a CA bundle. Default true. | |
| OPENQA_API_KEY | No | API key; overrides the config file when set. | |
| OPENQA_MCP_HOST | No | Default HTTP bind host. Default '127.0.0.1'. | |
| OPENQA_MCP_PORT | No | Default HTTP bind port. Default '8000'. | |
| OPENQA_READONLY | No | Set truthy (1/true/yes/on) to disable mutating tools. Default false. | |
| OPENQA_API_SECRET | No | API secret; overrides the config file when set. | |
| OPENQA_MCP_TRANSPORT | No | Set to 'http' to serve over HTTP. Default 'stdio'. |
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_jobsA | List jobs matching the given filters. WARNING: the full result can be very large (~1.5 MB / 150+ jobs for a
populated build) and may be truncated by MCP clients. For triage, pass
summary=True for a compact per-result breakdown. To work with the full data,
save it to a temporary file and process it with jq, e.g.
|
| list_jobs_overviewA | List a condensed jobs overview matching the given filters. WARNING: the full result can be very large (~1.5 MB / 150+ jobs for a
populated build) and may be truncated by MCP clients. For triage, pass
summary=True for a compact per-result breakdown. To work with the full data,
save it to a temporary file and process it with jq, e.g.
|
| get_jobB | Get full details for a single job. |
| get_job_commentsC | List comments on a job. |
| list_machinesB | List configured worker machines. |
| list_test_suitesB | List configured test suites. |
| list_productsB | List configured products (mediums). |
| find_jobs_by_settingA | Find jobs whose setting |
| get_job_detailsB | Get a single job with full test-module/step details. |
| get_job_statusB | Get a lightweight job status (id, state, result, blocked_by_id). |
| list_job_groupsB | List job groups. |
| get_job_groupC | Get a single job group. |
| list_job_group_jobsC | List jobs belonging to a job group. |
| get_job_group_build_resultsC | Get aggregated build results for a job group. |
| list_parent_groupsB | List parent job groups. |
| get_parent_groupC | Get a single parent job group. |
| list_assetsB | List assets known to the system. |
| get_assetC | Get a single asset by id. |
| list_workersC | List registered worker instances. |
| list_bugsB | List tracked bugs referenced by jobs. |
| searchC | Full-text search across jobs, groups, and test modules. |
| get_scheduled_productC | Get a scheduled product (result of a prior ISO trigger). |
| get_iso_job_statsB | Get job statistics for scheduled products. |
| list_group_commentsC | List comments on a job group. |
| list_parent_group_commentsC | List comments on a parent job group. |
| restart_jobsC | Restart each of the given jobs. |
| cancel_jobC | Cancel a running or scheduled job. |
| add_job_commentC | Add a comment to a job. |
| trigger_isosC | Trigger ISO test scheduling for a product. |
| delete_jobD | Delete a job. |
| duplicate_jobC | Duplicate (clone) a job. |
| set_job_priorityC | Set the priority of a job. |
| restart_jobs_bulkC | Restart several jobs in one bulk request. |
| cancel_jobsC | Cancel all jobs matching the given filters. |
| add_group_commentC | Add a comment to a job group. |
| add_parent_group_commentB | Add a comment to a parent job group. |
| update_job_commentC | Update an existing job comment. |
| delete_job_commentC | Delete a job comment. |
| create_bugC | Create a tracked bug reference. |
| cancel_scheduled_productC | Cancel a scheduled product / ISO by name. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 40 tools
Tools are generally distinct, targeting specific resources and actions. However, list_jobs and list_jobs_overview serve similar purposes with different output detail, and find_jobs_by_setting overlaps with list_jobs filtering, causing slight ambiguity.
All tools use snake_case with a verb-first pattern (e.g., delete_job, list_machines). A few exceptions like find_jobs_by_setting and list_jobs_overview deviate slightly but remain consistent in style.
40 tools is relatively high for an MCP server, indicating a broad scope. While each tool serves a specific function, the count may be overwhelming for simple use cases, though justified for a full-featured openQA client.
The tool surface covers major operations for jobs, groups, comments, assets, and scheduling. Minor gaps exist, such as missing update/delete for bugs and direct job creation, but core workflows are well-supported.