프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

Zephyr Scale MCP

제작자: vilaabo버전 1.0.0i★ –i내 컴퓨터에서 실행
레지스트리 이름io.github.vilaabo/zephyr-scale-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

Zephyr Scale on self-hosted Jira Server/DC: test cases, cycles, executions, plans and attachments

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 내 컴퓨터에서 실행
  • 전송 방식: stdio
  • 카테고리: 개발자 도구
  • 입력해야 할 값: JIRA_BASE_URL, JIRA_PAT, JIRA_PASSWORD

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

  • 기본 점검: 1개 중 1개 통과
  • 내 컴퓨터에서 내 사용자 계정의 권한(파일, 네트워크, 앱)으로 실행돼요.
  • 직접 입력할 값: JIRA_BASE_URL, JIRA_PAT, JIRA_AUTH, JIRA_USERNAME, JIRA_PASSWORD, ZEPHYR_DEFAULT_PROJECT_KEY, ZEPHYR_ALLOW_INTERNAL_API, ZEPHYR_READONLY, JIRA_TLS_REJECT_UNAUTHORIZED, JIRA_TIMEOUT_MS, JIRA_MAX_RETRIES, ZEPHYR_LOG_LEVEL

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

  • npmNode.js 설치(npx 명령어용)

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요

{
  "mcpServers": {
    "zephyr-scale": {
      "command": "npx",
      "args": [
        "-y",
        "zephyr-scale-mcp"
      ],
      "env": {
        "JIRA_BASE_URL": "your-value",
        "JIRA_PAT": "your-value",
        "JIRA_AUTH": "your-value",
        "JIRA_USERNAME": "your-value",
        "JIRA_PASSWORD": "your-value",
        "ZEPHYR_DEFAULT_PROJECT_KEY": "your-value",
        "ZEPHYR_ALLOW_INTERNAL_API": "your-value",
        "ZEPHYR_READONLY": "your-value",
        "JIRA_TLS_REJECT_UNAUTHORIZED": "your-value",
        "JIRA_TIMEOUT_MS": "your-value",
        "JIRA_MAX_RETRIES": "your-value",
        "ZEPHYR_LOG_LEVEL": "your-value"
      }
    }
  }
}

터미널에서 이 명령어를 실행하세요

claude mcp add zephyr-scale --env JIRA_BASE_URL=your-value --env JIRA_PAT=your-value --env JIRA_AUTH=your-value --env JIRA_USERNAME=your-value --env JIRA_PASSWORD=your-value --env ZEPHYR_DEFAULT_PROJECT_KEY=your-value --env ZEPHYR_ALLOW_INTERNAL_API=your-value --env ZEPHYR_READONLY=your-value --env JIRA_TLS_REJECT_UNAUTHORIZED=your-value --env JIRA_TIMEOUT_MS=your-value --env JIRA_MAX_RETRIES=your-value --env ZEPHYR_LOG_LEVEL=your-value -- npx -y zephyr-scale-mcp

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "zephyr-scale": {
      "command": "npx",
      "args": [
        "-y",
        "zephyr-scale-mcp"
      ],
      "env": {
        "JIRA_BASE_URL": "your-value",
        "JIRA_PAT": "your-value",
        "JIRA_AUTH": "your-value",
        "JIRA_USERNAME": "your-value",
        "JIRA_PASSWORD": "your-value",
        "ZEPHYR_DEFAULT_PROJECT_KEY": "your-value",
        "ZEPHYR_ALLOW_INTERNAL_API": "your-value",
        "ZEPHYR_READONLY": "your-value",
        "JIRA_TLS_REJECT_UNAUTHORIZED": "your-value",
        "JIRA_TIMEOUT_MS": "your-value",
        "JIRA_MAX_RETRIES": "your-value",
        "ZEPHYR_LOG_LEVEL": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "zephyr-scale": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "zephyr-scale-mcp"
      ],
      "env": {
        "JIRA_BASE_URL": "your-value",
        "JIRA_PAT": "your-value",
        "JIRA_AUTH": "your-value",
        "JIRA_USERNAME": "your-value",
        "JIRA_PASSWORD": "your-value",
        "ZEPHYR_DEFAULT_PROJECT_KEY": "your-value",
        "ZEPHYR_ALLOW_INTERNAL_API": "your-value",
        "ZEPHYR_READONLY": "your-value",
        "JIRA_TLS_REJECT_UNAUTHORIZED": "your-value",
        "JIRA_TIMEOUT_MS": "your-value",
        "JIRA_MAX_RETRIES": "your-value",
        "ZEPHYR_LOG_LEVEL": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • JIRA_BASE_URL 필수 env
    Jira base URL without a trailing slash, e.g. https://jira.example.com
  • JIRA_PAT 비밀 env
    Jira Data Center Personal Access Token (used when JIRA_AUTH=pat, the default)
  • JIRA_AUTH env
    Authentication mode: pat (default) or basic
  • JIRA_USERNAME env
    Username for JIRA_AUTH=basic
  • JIRA_PASSWORD 비밀 env
    Password for JIRA_AUTH=basic
  • ZEPHYR_DEFAULT_PROJECT_KEY env
    Project key used when a tool is called without projectKey
  • ZEPHYR_ALLOW_INTERNAL_API env
    true registers 11 UNOFFICIAL tools backed by the internal /rest/tests/1.0 API the vendor does not support: editing a test cycle in place (rename/move, add/remove/reorder its cases), editing or DELETI…
  • ZEPHYR_READONLY env
    true disables all write tools
  • JIRA_TLS_REJECT_UNAUTHORIZED env
    false allows self-signed certificates (disables TLS verification)
  • JIRA_TIMEOUT_MS env
    Timeout of a single HTTP request in milliseconds (default 30000)
  • JIRA_MAX_RETRIES env
    Retries for GET requests and for 429/503 responses, honoring Retry-After (default 2)
  • ZEPHYR_LOG_LEVEL env
    Log verbosity: debug | info | warn | error (default info; all logs go to stderr)

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 vilaabo 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • – 해당 없음

    엔드포인트 응답

    내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요

  • – 해당 없음

    OAuth로 로그인

    내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요

개발자 도구 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 4907개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 4907개 중 30%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 4907개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

Zephyr Scale MCP, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: JIRA_BASE_URL, JIRA_PAT, JIRA_PASSWORD

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(1.0.0)은 3개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: GitHub, Desktop Commander, Cloudflare MCP

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

GitHub

제작자: github

Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

컴퓨터 또는 클라우드★ 34,245MIT4일 전 업데이트
설치

Desktop Commander

제작자: wonderwhy-er

MCP server for terminal commands, file operations, and process management

내 컴퓨터에서 실행★ 10,225MIT16일 전 업데이트
설치

Cloudflare MCP

제작자: cloudflare

Cloudflare MCP servers

클라우드에서 실행★ 4,446Apache-2.014개월 전 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

zephyr-scale-mcp

MCP server for Zephyr Scale on self-hosted Jira Server / Data Center (formerly TM4J). It gives an AI agent — Claude Code, Claude Desktop, Cursor, any MCP client — 54 tools over your test management: test cases, folders, test cycles, executions, test plans, attachments and automation imports, through the Zephyr Scale REST API v1 at {JIRA_BASE_URL}/rest/atm/1.0.

npm: zephyr-scale-mcp · MCP Registry: io.github.vilaabo/zephyr-scale-mcp · Русская версия →

⚠️ Scope: Server / Data Center only. Zephyr Scale Cloud (API v2) and Zephyr Squad are different APIs and are out of scope — this server will not work against them.

Why this exists

Most Zephyr MCP servers target the Cloud API. If your Jira is on-premise you get the v1 API instead, and v1 has teeth: test runs are immutable after creation, folders cannot be listed, statuses are case-sensitive internal names, BDD scripts reject a Feature: header, and older plugin builds are missing whole endpoints. This server encodes that knowledge instead of leaving the agent to discover it one 400 at a time.

  • 54 tools (42 public + 12 opt-in internal-API tools), each with a description that states the endpoint, the constraints a caller cannot guess, and the exact response shape.
  • Composite tools for the API's blind spots — add_test_steps merges steps by id (read → merge → write) so nothing is silently deleted; recreate_test_run_with_items works around run immutability and can carry the last results over; get_issue_test_coverage, get_test_run_summary, clone_test_case, move_test_cases_to_folder.
  • Degradation on older builds — automatic fallback when the paginated results endpoint is absent, and a per-item fallback when the bulk create endpoint is broken. Both were found on a real legacy instance, not in a changelog.
  • Plumbing that fails loudly — strict zod input validation, Retry-After-aware retries with exponential backoff, error messages carrying actionable hints, read-only mode, secrets kept out of logs and tool output.
  • 1181 unit and contract tests (vitest + msw, no network) plus a gated end-to-end scenario against a real instance.

Quick start

Requirements: Node.js >= 20, Jira Server/DC with the Zephyr Scale plugin, and a Personal Access Token (Jira 8.14+) or a username/password pair.

Nothing to clone — the package is on npm. Claude Code:

claude mcp add zephyr-scale \

--env JIRA_BASE_URL=https://jira.example.com \ --env JIRA_PAT= \ --env ZEPHYR_DEFAULT_PROJECT_KEY=PROJ \ --env ZEPHYR_ALLOW_INTERNAL_API=true \ -- npx -y zephyr-scale-mcp

Claude Desktop / any MCP client (claude_desktop_config.json, .mcp.json):

{

"mcpServers": { "zephyr-scale": { "command": "npx", "args": ["-y", "zephyr-scale-mcp"], "env": { "JIRA_BASE_URL": "https://jira.example.com", "JIRA_PAT": " ", "ZEPHYR_DEFAULT_PROJECT_KEY": "PROJ", "ZEPHYR_ALLOW_INTERNAL_API": "true" } } } }

Running from source instead

git clone https://github.com/vilaabo/zephyr-scale-mcp.git

cd zephyr-scale-mcp npm install npm run build # -> dist/index.js

Then point the client at the build: "command": "node", "args": ["/path/to/zephyr-scale-mcp/dist/index.js"].

`ZEPHYR_ALLOW_INTERNAL_API=true` is optional and recommended. It registers 12 extra tools that reach the things the public API cannot do at all: editing a test run in place — renaming or moving it (update_test_run) and adding or removing cases without changing its key (add_test_cases_to_run, remove_test_cases_from_run) — plus listing the folder tree (get_folder_tree), deleting folders (delete_folder), editing older executions (update_test_result_by_id) and reading the exact status names the API silently expects (get_status_options). These call the same undocumented /rest/tests/1.0 endpoints the Jira UI itself uses; the vendor does not support them and they may differ or be absent on another Zephyr Scale version. Leave the flag off if that trade-off is not acceptable — the other 42 tools are unaffected.

Then ask the agent to run health_check. It verifies connectivity and credentials via GET /rest/api/2/myself and, when ZEPHYR_DEFAULT_PROJECT_KEY is set, that the Zephyr plugin answers on /rest/atm/1.0.

What you can ask your agent to do

  • *"Create the folder /Regression/Payments and add step-by-step test cases for the checkout flow described in this document."*
  • *"Find every Draft case in /Regression, review them, and set the ready ones to Approved."*
  • *"Create a cycle for sprint 42 with all smoke cases, then record the results from this report — step by step where the script has steps."*
  • *"Which test cases cover PROJ-123, and when did each of them last pass?"* — traceability from the issue to its cases and their latest executions.
  • *"Take this ZIP of Cucumber JSON reports and publish it as a new cycle in PROJ."* — automation import; scenarios are matched to BDD cases by their @TestCaseKey=PROJ-T1 tag.
  • *"Add two steps to PROJ-T55 after step 3."* — existing steps and their ids survive.
  • *"Recreate cycle PROJ-R7 with three more cases, keep the results, and delete the original."*

Configuration

VariableRequiredDefaultPurpose
JIRA_BASE_URLyes—Jira base URL without a trailing /, e.g. https://jira.example.com
JIRA_AUTHnopatpat \basic
JIRA_PATwith pat—Jira Server/DC Personal Access Token
JIRA_USERNAME, JIRA_PASSWORDwith basic—Basic-auth credentials
JIRA_TIMEOUT_MSno30000Per-request timeout
JIRA_MAX_RETRIESno2Retries for GET and for any 429/503, honoring Retry-After, otherwise exponential backoff with jitter
JIRA_TLS_REJECT_UNAUTHORIZEDnotruefalse accepts self-signed certificates — this disables TLS verification process-wide and prints a warning to stderr
ZEPHYR_DEFAULT_PROJECT_KEYno—Used whenever a tool is called without projectKey
ZEPHYR_READONLYnofalsetrue makes every write tool refuse with an error; read tools keep working
ZEPHYR_ALLOW_INTERNAL_APInofalsetrue registers the 12 UNOFFICIAL tools backed by the internal /rest/tests/1.0 API
ZEPHYR_LOG_LEVELnoinfodebug \info \warn \error

Two guarantees the tests cover: JIRA_PAT and JIRA_PASSWORD never appear in logs, tool output or error messages — in any encoding they can take on the way out: raw, JSON-escaped, or the base64 basic-auth token (error text carries the method and path only — never the query string, which may contain data) — and stdout is reserved for the MCP protocol, every log line goes to stderr. One deliberate exception: a secret shorter than six characters is left alone, because redacting it would corrupt unrelated output while protecting nothing; the server warns about it at startup.

Configuration is validated at startup: all problems are reported at once and the process exits with a non-zero code rather than starting half-configured.

Tools

54 tools. The 42 public ones are always registered; the 12 in the last group only with ZEPHYR_ALLOW_INTERNAL_API=true.

Test cases — 13 tools

ToolWhat it does
create_test_caseCreate a case with a STEP_BY_STEP / PLAIN_TEXT / BDD script, parameters, custom fields, Call-to-Test steps
get_test_caseRead a case, optionally narrowed by fields; step ids come back here
search_test_casesTQL search with pagination; a query longer than 1500 characters is sent as POST /testcase/search (which supports only projectKey, key, name)
update_test_casePartial update; testScript.steps is synchronized by id (see limitation 7)
add_test_stepsInsert steps at a position without losing the existing ones — read, merge by id, write back
set_test_scriptReplace the whole script or change its format; destructive by design
clone_test_caseCopy a case inside its project with fresh step ids; links, attachments and history are not copied
move_test_cases_to_folderBulk-move by explicit keys or by source folder; a failing case does not abort the rest
delete_test_casePermanent delete of the case, its script and its history
create_test_cases_bulkCreate many cases in one call, with a per-case fallback on broken bulk endpoints
link_issues_to_test_casesBulk-link cases to Jira issues (additive)
get_test_cases_linked_to_issueReverse lookup: issue → cases
get_issue_test_coverageTraceability report: issue → linked cases → latest execution of each

Test cycles (test runs) — 7 tools

ToolWhat it does
create_test_runCreate a cycle with its complete item list — optionally with each item's execution result in the same call
get_test_runRead a cycle including its items
search_test_runsTQL search — for runs only projectKey and folder are searchable
delete_test_runPermanent delete of the cycle and all its results
get_test_run_resultsPage through the executions of a cycle, with the legacy flat-endpoint fallback
get_test_run_summaryLast execution per item: byStatus counts verbatim, executionProgressPct, passRatePct when a literal Pass status exists
recreate_test_run_with_itemsThe public workaround for run immutability: rebuild under a new key with cases added or removed, optionally carrying the last results over and deleting the original

Executions (test results) — 4 tools

ToolWhat it does
create_test_resultAppend a new execution to a run item, including per-step scriptResults
update_last_test_resultPartial update of the most recent execution of an item
create_test_results_bulkMany executions for one cycle in a single call
get_latest_result_for_test_caseThe execution of a case with the greatest stored execution date, across all cycles — not necessarily the one recorded last

Items that exist several times in a run (per environment or per assignee) are disambiguated with matchEnvironment / matchUserKey, sent as query parameters.

Test plans — 5 tools

ToolWhat it does
create_test_planCreate a plan; returns { key }, e.g. PROJ-P123
get_test_planRead a plan with its linked runs and issues
update_test_planPartial update
delete_test_planPermanent delete
search_test_plansTQL search; the searchable field set varies by Zephyr Scale version

Folders — 2 tools

ToolWhat it does
create_folderCreate a case / plan / cycle folder from a full path; with recursive (default true) a 400 on the full path triggers creating each parent prefix and one retry — 403, 409 and 5xx propagate untouched
rename_folderRename one folder segment by its numeric id (and optionally set its custom fields)

Attachments</b

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기