Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Allure TestOps MCP — projects, launches, test cases, test results via REST API.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
ALLURE_URL, ALLURE_TOKEN, ALLURE_SSL_VERIFY标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"allure-testops": {
"command": "uvx",
"args": [
"allure-testops-mcp"
],
"env": {
"ALLURE_URL": "your-value",
"ALLURE_TOKEN": "your-value",
"ALLURE_SSL_VERIFY": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add allure-testops --env ALLURE_URL=your-value --env ALLURE_TOKEN=your-value --env ALLURE_SSL_VERIFY=your-value -- uvx allure-testops-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"allure-testops": {
"command": "uvx",
"args": [
"allure-testops-mcp"
],
"env": {
"ALLURE_URL": "your-value",
"ALLURE_TOKEN": "your-value",
"ALLURE_SSL_VERIFY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"allure-testops": {
"type": "stdio",
"command": "uvx",
"args": [
"allure-testops-mcp"
],
"env": {
"ALLURE_URL": "your-value",
"ALLURE_TOKEN": "your-value",
"ALLURE_SSL_VERIFY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
ALLURE_SSL_VERIFY env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 mshegolev 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:ALLURE_URL, ALLURE_TOKEN
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.9.5)于8天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Python (uv)。
同一分类中有:Spec Driven Development, Remote Desktop Commander, OpenTakeoff
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
An MCP server for Allure TestOps. It lets an LLM agent (Claude Code, Cursor, OpenCode, …) explore and manage projects, launches, test cases, test results and reference data through the Allure REST API.
qameta.io or self-hosted / on-prem (API at /api/rs).allure_list_projects, then pass any project_id. No reconfiguration to switch or compare projects.claude mcp add allure -s user \
--env ALLURE_URL=https://allure.example.com \ --env ALLURE_TOKEN=your-api-token \ -- uvx --from allure-testops-mcp allure-testops-mcp
Then ask your agent: *"List all Allure projects"* or *"Show failed tests in the last launch for project 175"*. Get an API token in Allure TestOps under Profile → API tokens. See Configuration for other clients and Environment variables for all options.
20 tools — 13 read-only (always on) and 7 write tools (opt-in via ALLURE_ENABLE_WRITE=true). Every tool carries MCP annotations and returns both a typed structuredContent payload and a markdown summary.
| Tool | Kind | Purpose |
|---|---|---|
allure_list_projects | read | All projects (id, name, abbreviation) |
allure_get_project_statistics | read | TC count, automation rate, last-launch summary |
allure_list_launches | read | Recent launches with pass/fail stats |
allure_get_test_results | read | Test results in a launch (filter by status) |
allure_search_failed_tests | read | FAILED/BROKEN tests in the last or a given launch |
allure_list_test_cases | read | Test cases (automated/manual + owner filters) |
allure_get_test_case | read | One test case's full detail + scenario steps |
allure_get_test_case_custom_fields | read | A test case's custom-field values |
allure_list_statuses | read | A project's statuses (id, name, color) |
allure_list_layers | read | A project's test layers (id, name) |
allure_list_custom_fields | read | A project's custom-field schema |
allure_list_categories | read | Defect categories (named/coloured buckets) |
allure_list_category_matchers | read | Regex automation rules (message/trace → category) |
allure_create_test_case | write ⚑ | Create a test case |
allure_update_test_case | write ⚑ | Partial update of a test case |
allure_delete_test_case | write ⚑ | Permanent delete (destructive — needs confirm=true) |
allure_create_category | write ⚑ | Create a defect category |
allure_delete_category | write ⚑ | Permanent delete (destructive — needs confirm=true) |
allure_create_category_matcher | write ⚑ | Create + attach a regex automation rule |
allure_delete_category_matcher | write ⚑ | Permanent delete (destructive — needs confirm=true) |
⚑ Registered only when ALLURE_ENABLE_WRITE=true. Without the flag they are never imported, so the agent never sees them — see Security considerations.
allure_create_test_case / allure_update_test_case accept status and layer as either a name (status / layer) or a numeric id (status_id / layer_id). Names are auto-resolved to ids against the project's status/layer lists (GET /api/rs/status, GET /api/rs/testlayer) — an unknown name returns an actionable error listing the valid options. Update is partial (only the fields you pass change), and allure_delete_test_case is irreversible: it carries destructiveHint: True (compliant clients prompt) and additionally requires an explicit confirm=true argument.
readOnlyHint: True / openWorldHint: True so clients don't prompt; allure_delete_test_case is destructiveHint: True.TypedDict return type, so FastMCP auto-generates an outputSchema and every result carries both structuredContent and a markdown block.pagination block with page, total, has_more, next_page.ctx.report_progress + ctx.info events.allure_update_test_case issues PATCH and falls back to PUT on HTTP 405, so it works across Allure deployments that expose only one verb.__version__ derives from installed package metadata, and a test asserts pyproject.toml matches both server.json version fields, so the published version can't drift.Requires Python 3.10+. No manual install needed if you use uvx (recommended) — your MCP client runs it.
# run on demand via uvx (recommended)
uvx --from allure-testops-mcp allure-testops-mcp
pipx install allure-testops-mcp
Claude Code — one command:
claude mcp add allure -s user \
--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
Any MCP client — add to ~/.claude.json, a project .mcp.json, Cursor's mcp.json, etc.:
{
"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" } } } }
See .env.example for a template. Verify the connection:
claude mcp list
| Variable | Required | Default | Description |
|---|---|---|---|
ALLURE_URL | yes | — | Allure TestOps URL (e.g. https://allure.example.com) |
ALLURE_TOKEN | yes | — | API token (Allure → Profile → API tokens) |
ALLURE_SSL_VERIFY | no | true | true/false. Set false for self-signed corp certs |
ALLURE_ENABLE_WRITE | no | false | true registers the 7 write tools; default is a read-only server |
ALLURE_TEST_PROJECT_ID (plus optional ALLURE_TEST_STATUS / ALLURE_TEST_LAYER) are used only by the opt-in live integration tests — see Development.
The server is a stdio process your client respawns each session, so the running version is decided by the uvx invocation. uvx caches the resolved environment under ~/.cache/uv, so an older version sticks until you refresh:
uvx --refresh --from allure-testops-mcp allure-testops-mcp # force latest on next run
uv cache clean allure-testops-mcp # or drop the cached env
Then reconnect the server (/mcp → reconnect, or restart the session). To control the version from config, edit args — pin for stability, or always-latest for currency:
// Pin a version (deterministic; bump consciously)
"args": ["--from", "allure-testops-mcp==0.8.0", "allure-testops-mcp"]
// Always latest on every start (adds a PyPI lookup per launch) "args": ["--refresh", "--from", "allure-testops-mcp", "allure-testops-mcp"]
Read-only:
With ALLURE_ENABLE_WRITE=true, drive test-case CRUD in natural language:
smoke, layer E2E"confirm=true, and a compliant client prompts you firstALLURE_SSL_VERIFY=false (default true). Disabling verification on a public network is a risk; use only for trusted corporate instances.session.trust_env = False) — the server ignores HTTP_PROXY / HTTPS_PROXY so it can't be silently routed through an unintended proxy.ALLURE_ENABLE_WRITE=true the server registers only the 13 read-only tools and cannot create, modify, or delete anything, even with a write-scoped token. When enabled, the destructive tools (allure_delete_test_case / allure_delete_category / allure_delete_category_matcher) carry destructiveHint: True and require confirm=true.Api-Token auth inherits the issuing user's role, so a read-only (guest) account yields a read-only server regardless of the ALLURE_ENABLE_WRITE flag.Allure TestOps enforces per-instance rate limits (typically ~60 requests/minute per token). On HTTP 429 the server returns an actionable error suggesting you wait 30–60s, reduce size, or paginate with smaller pages. Two tools make multiple API calls internally — allure_get_project_statistics (3) and allure_search_failed_tests (2–3) — and report per-step progress via MCP Context.
git clone https://github.com/mshegolev/allure-testops-mcp.git
cd allure-testops-mcp pip install -e '.[dev]' pytest # unit suite (all HTTP mocked) ruff check src tests && ruff format --check src tests
Run the server directly (stdio transport — waits on stdin for MCP messages):
ALLURE_URL=... ALLURE_TOKEN=... allure-testops-mcp
只显示了开头部分;其余内容请在仓库中阅读