MCP server for Allure TestOps — projects, launches, test cases, test results
Project description
allure-testops-mcp
MCP server for Allure TestOps. Lets an LLM agent (Claude Code, Cursor, OpenCode, etc.) query projects, launches, test cases and test results through the Allure REST API.
Python, FastMCP, stdio transport.
Works with any Allure TestOps instance — SaaS qameta.io or self-hosted / on-prem. Designed with corporate networks in mind: configurable proxy bypass, optional SSL-verify toggle, API-token auth.
Design highlights
- Tool annotations — every tool is marked
readOnlyHint: True/openWorldHint: True. All 6 tools are read-only; MCP clients won't ask for confirmation. - Structured output on every tool — each tool declares a
TypedDictreturn type, so FastMCP auto-generates anoutputSchemaand every result carries bothstructuredContent(typed payload) and a pre-rendered markdown text block. - Structured errors — auth, 404, 403, 429, 5xx, missing-env errors converted to actionable messages (e.g. "Authentication failed — verify ALLURE_TOKEN has API scope").
- Pydantic input validation — every argument has typed constraints (ranges, lengths, literals) auto-exposed as JSON Schema.
- Pagination — list tools return a
paginationblock withpage,total,has_more,next_page.
Features
6 tools covering everyday Allure TestOps workflows:
Discovery
allure_list_projects— all projects with ID, name, abbreviationallure_get_project_statistics— TC count, automation rate, last launch summary
Launches & results
allure_list_launches— recent launches with pass/fail statsallure_get_test_results— test results in a launch (filter by status)allure_search_failed_tests— FAILED/BROKEN tests in last or specified launch
Test cases
allure_list_test_cases— test cases with manual/auto/layer filters
Installation
Requires Python 3.10+.
# via uvx (recommended)
uvx --from allure-testops-mcp allure-testops-mcp
# or via pipx
pipx install allure-testops-mcp
Configuration
Short version — claude mcp add:
claude mcp add allure -s project \
--env ALLURE_URL=https://allure.example.com \
--env ALLURE_TOKEN=your-api-token \
--env ALLURE_SSL_VERIFY=true \
-- uvx --from allure-testops-mcp allure-testops-mcp
Or in ~/.claude.json / project .mcp.json:
{
"mcpServers": {
"allure": {
"type": "stdio",
"command": "uvx",
"args": ["--from", "allure-testops-mcp", "allure-testops-mcp"],
"env": {
"ALLURE_URL": "https://allure.example.com",
"ALLURE_TOKEN": "${ALLURE_TOKEN}",
"ALLURE_SSL_VERIFY": "true"
}
}
}
}
Check:
claude mcp list
# allure: uvx --from allure-testops-mcp allure-testops-mcp - ✓ Connected
Environment variables
| Variable | Required | Description |
|---|---|---|
ALLURE_URL |
yes | Allure TestOps URL (e.g. https://allure.example.com) |
ALLURE_TOKEN |
yes | API token from Allure TestOps (Profile → API tokens) |
ALLURE_SSL_VERIFY |
no | true/false. Set to false for self-signed corp certs. Default: true. |
Example usage
In Claude Code:
- "List all Allure projects"
- "Show last 10 launches for project 63"
- "Failed tests in the last launch for project 175"
- "Automation rate for project 842"
- "Test results in launch 12345 with status FAILED"
Development
git clone https://github.com/mshegolev/allure-testops-mcp.git
cd allure-testops-mcp
pip install -e '.[dev]'
pytest
Run the server directly (stdio transport, waits on stdin for MCP messages):
ALLURE_URL=... ALLURE_TOKEN=... allure-testops-mcp
License
MIT © Mikhail Shchegolev
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file allure_testops_mcp-0.1.0.tar.gz.
File metadata
- Download URL: allure_testops_mcp-0.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed8502009c963bbc2f21c6fbd9af9b8d2dbd6135f8d3a279c324bc775572f2da
|
|
| MD5 |
eaab06439a1c2d6375f5248bcf15104a
|
|
| BLAKE2b-256 |
1584092fbb9c3f85c503d91e8ea0e880a63a50538784987b78ad4c0335da3e42
|
Provenance
The following attestation bundles were made for allure_testops_mcp-0.1.0.tar.gz:
Publisher:
publish.yml on mshegolev/allure-testops-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
allure_testops_mcp-0.1.0.tar.gz -
Subject digest:
ed8502009c963bbc2f21c6fbd9af9b8d2dbd6135f8d3a279c324bc775572f2da - Sigstore transparency entry: 1330001053
- Sigstore integration time:
-
Permalink:
mshegolev/allure-testops-mcp@69325f9d46cfd2cb955e96251c9518c66a0e373e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mshegolev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@69325f9d46cfd2cb955e96251c9518c66a0e373e -
Trigger Event:
push
-
Statement type:
File details
Details for the file allure_testops_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: allure_testops_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
321a25491a68a5ed22ad25b20cc49f18cd1f0e4fbd3ae5391fbf1123e3c0ac9d
|
|
| MD5 |
af8b16118156e1ba646698519889d343
|
|
| BLAKE2b-256 |
cd3533a9128e4134d4933095c358647800edabfcb9a8b2322dc42ebfc3f24771
|
Provenance
The following attestation bundles were made for allure_testops_mcp-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on mshegolev/allure-testops-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
allure_testops_mcp-0.1.0-py3-none-any.whl -
Subject digest:
321a25491a68a5ed22ad25b20cc49f18cd1f0e4fbd3ae5391fbf1123e3c0ac9d - Sigstore transparency entry: 1330001371
- Sigstore integration time:
-
Permalink:
mshegolev/allure-testops-mcp@69325f9d46cfd2cb955e96251c9518c66a0e373e -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/mshegolev
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@69325f9d46cfd2cb955e96251c9518c66a0e373e -
Trigger Event:
push
-
Statement type: