Skip to main content
Glama
mshegolev

allure-testops-mcp

by mshegolev

allure-testops-mcp

PyPI Python License: MIT Tests

Allure TestOps용 MCP 서버입니다. LLM 에이전트(Claude Code, Cursor, OpenCode 등)가 Allure REST API를 통해 프로젝트, 실행(launch), 테스트 케이스 및 테스트 결과를 조회할 수 있도록 합니다.

Python, FastMCP, stdio 전송 방식을 사용합니다.

모든 Allure TestOps 인스턴스(SaaS qameta.io 또는 자체 호스팅/온프레미스)에서 작동합니다. 기업 네트워크 환경을 고려하여 설계되었으며, 프록시 우회 설정, 선택적 SSL 검증 토글, API 토큰 인증을 지원합니다.

설계 특징

  • 도구 주석 — 모든 도구는 readOnlyHint: True / openWorldHint: True로 표시됩니다. 6개의 도구 모두 읽기 전용이므로 MCP 클라이언트가 확인을 요청하지 않습니다.

  • 모든 도구의 구조화된 출력 — 각 도구는 TypedDict 반환 타입을 선언하므로 FastMCP가 자동으로 outputSchema를 생성하며, 모든 결과는 structuredContent(타입이 지정된 페이로드)와 미리 렌더링된 마크다운 텍스트 블록을 모두 포함합니다.

  • 구조화된 오류 — 인증, 404, 403, 429, 5xx, 누락된 환경 변수 오류가 실행 가능한 메시지(예: "인증 실패 — ALLURE_TOKEN에 API 범위가 있는지 확인하세요")로 변환됩니다.

  • Pydantic 입력 유효성 검사 — 모든 인수는 JSON Schema로 자동 노출되는 타입 제약 조건(범위, 길이, 리터럴)을 가집니다.

  • 페이지네이션 — 목록 도구는 page, total, has_more, next_page가 포함된 pagination 블록을 반환합니다.

  • MCP Context를 통한 진행 상황 보고 — 여러 API 호출을 수행하는 도구(allure_get_project_statistics, allure_search_failed_tests)와 allure_list_test_casesctx.report_progress + ctx.info 이벤트를 발생시켜 호환되는 클라이언트가 진행률 표시줄과 단계 레이블을 렌더링할 수 있도록 합니다.

Related MCP server: Allure TestOps MCP

기능

일상적인 Allure TestOps 워크플로우를 다루는 6가지 도구:

탐색

  • allure_list_projects — ID, 이름, 약어가 포함된 모든 프로젝트

  • allure_get_project_statistics — TC 수, 자동화율, 마지막 실행 요약

실행 및 결과

  • allure_list_launches — 통과/실패 통계가 포함된 최근 실행 목록

  • allure_get_test_results — 실행 내 테스트 결과(상태별 필터링)

  • allure_search_failed_tests — 마지막 또는 지정된 실행에서 FAILED/BROKEN 상태인 테스트

테스트 케이스

  • allure_list_test_cases — 자동화/수동 필터가 포함된 테스트 케이스(각 결과는 레이어 정보, 예: UNIT / API / E2E를 포함)

설치

Python 3.10+가 필요합니다.

# via uvx (recommended)
uvx --from allure-testops-mcp allure-testops-mcp

# or via pipx
pipx install allure-testops-mcp

구성

간단한 버전 — 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

또는 ~/.claude.json / 프로젝트 .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"
      }
    }
  }
}

지원되는 모든 환경 변수 템플릿은 .env.example을 참조하세요.

확인:

claude mcp list
# allure: uvx --from allure-testops-mcp allure-testops-mcp - ✓ Connected

환경 변수

변수

필수

설명

ALLURE_URL

Allure TestOps URL (예: https://allure.example.com)

ALLURE_TOKEN

Allure TestOps의 API 토큰 (프로필 → API 토큰)

ALLURE_SSL_VERIFY

아니오

true/false. 자체 서명된 기업 인증서의 경우 false로 설정. 기본값: true.

사용 예시

Claude Code에서:

  • "모든 Allure 프로젝트 나열"

  • "프로젝트 63의 최근 실행 10개 표시"

  • "프로젝트 175의 마지막 실행에서 실패한 테스트"

  • "프로젝트 842의 자동화율"

  • "실행 12345에서 상태가 FAILED인 테스트 결과"

보안 고려 사항

  • API 토큰은 ALLURE_TOKEN 환경 변수에서 읽음 — 명령줄에 전달되거나 로그에 기록되지 않습니다.

  • 비밀 정보는 도구 응답에 다시 출력되지 않음 (stat.request_headers 덤프나 session.auth 반영 없음).

  • 자체 서명된 SSLALLURE_SSL_VERIFY=false를 통해 선택 가능 — 기본값은 true입니다. 공용 네트워크에서 검증을 비활성화하는 것은 보안 위험이 있으므로 신뢰할 수 있는 기업 인스턴스에서만 사용하세요.

  • 프록시 탐색 비활성화 (session.trust_env = False) — MCP는 의도적으로 HTTP_PROXY/HTTPS_PROXY 환경 변수를 무시하여 세션이 의도치 않은 프록시를 통해 라우팅되지 않도록 합니다. Allure 인스턴스에 프록시를 통해서만 접근할 수 있는 경우, requests가 직접 해결할 수 있는 환경에서 MCP를 실행하세요.

  • 쓰기 작업 노출 안 됨 — 6개 도구 모두 읽기 전용입니다. API 토큰에 쓰기 권한이 있더라도 이 MCP 서버는 Allure TestOps에서 아무것도 생성, 수정 또는 삭제할 수 없습니다.

  • Pydantic을 통한 입력 유효성 검사 — 모든 도구 인수는 타입이 지정되고 제한됩니다(ID는 1 이상이어야 하며, 페이지네이션은 200-500으로 제한됨).

속도 제한

Allure TestOps는 인스턴스별 속도 제한을 적용합니다(일반적으로 API 토큰당 분당 약 60회 요청). HTTP 429 오류 발생 시 MCP는 다음과 같은 조치를 제안하는 실행 가능한 오류를 반환합니다:

  • 30-60초 대기 후 재시도.

  • size 매개변수 줄이기(테스트 결과의 기본값은 50, 프로젝트는 200).

  • 더 작은 페이지 크기로 페이지네이션 수행.

두 가지 도구는 내부적으로 여러 API 호출을 수행합니다:

  • allure_get_project_statistics — 3회 호출 (TC 수 + 실행 목록 + 실행 통계).

  • allure_search_failed_tests — 2-3회 호출 (최신 실행 확인 + FAILED + BROKEN).

두 도구 모두 MCP Context를 사용하여 단계별 진행 상황을 보고하며, allure_list_test_cases도 단일 진행 상황 이벤트를 발생시킵니다. 호환되는 클라이언트에서 진행 상황 스트림을 모니터링하세요.

개발

git clone https://github.com/mshegolev/allure-testops-mcp.git
cd allure-testops-mcp
pip install -e '.[dev]'
pytest

서버 직접 실행 (stdio 전송, MCP 메시지를 위해 stdin 대기):

ALLURE_URL=... ALLURE_TOKEN=... allure-testops-mcp

라이선스

MIT © Mikhail Shchegolev

Install Server
A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
14Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    AI-native Model Context Protocol (MCP) server for TestRail. Lets Claude, Cursor, Windsurf, and other AI assistants browse projects, create and update test cases, kick off test runs, and record results through natural-language conversation — with strongly-typed tool schemas and per-project custom field validation that helps LLMs generate valid TestRail requests on the first try.
    26
    339
    28
    Apache 2.0
  • A
    license
    B
    quality
    A
    maintenance
    An MCP server for Allure TestOps that enables AI agents to manage test cases, defects, test plans, and other test management entities with clear, easy-to-use tools and helpful error guidance.
    66
    7
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Official MCP server for Qase — manage test cases, runs, suites, defects via AI tools.

  • Real-time chat hub for AI agents — Claude Code, Cursor, Cline, Codex over MCP or REST.

  • MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.

View all MCP Connectors

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/mshegolev/allure-testops-mcp'

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