Unleash
공식Unleash 기능 플래그를 관리하고 모범 사례를 자동화하기 위한 MCP 서버입니다.
Unleash MCP(으)로 무엇을 할 수 있나요?
- 플래그 및 프로젝트 찾기 — 프로젝트에서 특정 태그가 지정된 플래그를 묻거나,
search를 통해 이름으로 프로젝트, 세그먼트, 컨텍스트 필드, 환경을 나열합니다. - 플래그 살펴보기 —
inspect를 사용해 프로젝트, 플래그, 컨텍스트 필드 또는 세그먼트의 전체 내용을 확인합니다. - 플래그 평가 확인 — 특정 사용자가 특정 환경에서 플래그를 받는지 묻고,
evaluate를 통해 활성화, 비활성화 또는 알 수 없음으로 답변을 받습니다. - 플래그 출시 또는 끄기 —
release를 사용해 대상에게 플래그를 켜고, 비율이나 템플릿에 따라 분할하거나, 플래그를 끕니다. 플래그가 없으면 생성합니다. - A/B 테스트 실행 —
experiment를 사용해 비율에 따라 또는 각 하나씩 대상을 대조군과 실험군으로 나누거나 테스트를 중단합니다. - 변경 사항 검토 —
audit를 사용해 최대 31일 동안 무엇이, 누가, 언제 변경했는지 확인합니다.
문서
Unleash MCP 서버
AI 에이전트가 Unleash UI에서 작업하는 것처럼 Unleash를 사용할 수 있게 해 주는 MCP 서버입니다. 플래그를 찾고, 롤아웃하고, 어떤 사용자가 플래그를 받는지 확인하고, 변경 사항을 살펴볼 수 있습니다. 현재 알파 버전이며 npm에 게시되지 않았으므로 소스에서 실행해야 합니다.
도구
| 도구 | 설명 | 예시 프롬프트 |
|---|---|---|
search | 이름으로 프로젝트, 플래그, 세그먼트, 컨텍스트 필드, 태그, 태그 유형, 플래그 생성자, 릴리스 템플릿, 이벤트 유형 및 환경을 찾습니다. | "checkout 프로젝트에서 team:payments 태그가 지정된 플래그는 무엇인가요?" |
inspect | 프로젝트, 플래그, 컨텍스트 필드 또는 세그먼트의 전체 정보를 읽습니다. | "new-checkout 플래그에 관한 모든 정보를 보여 주세요." |
evaluate | 환경에서 특정 컨텍스트에 대해 플래그가 활성화, 비활성화 또는 알 수 없는 상태인지 알려줍니다. | "production에서 사용자 42에게 new-checkout이 제공되나요?" |
release | 대상 사용자에게 플래그를 켜거나, 값별로 분할하거나, 릴리스 템플릿을 통해 켜거나, 끕니다. 플래그가 없으면 생성합니다. 환경에서 변경 요청이 필요한 경우 변경 요청을 엽니다. | "production에서 사용자 10%에게 new-checkout을 롤아웃해 주세요." |
kill_switch | 영구 킬 스위치를 모든 사용자 또는 선택한 대상 사용자에 대해 켜거나 끕니다. 스위치가 없으면 생성합니다. 환경에서 변경 요청이 필요한 경우 변경 요청을 엽니다. | "production에서 payments를 꺼 주세요." |
experiment | A/B 테스트를 실행합니다. 점유율 기준 또는 각 대상에 하나씩 control 및 treatment 같은 값을 할당하거나 테스트를 중지합니다. 플래그가 없으면 생성합니다. 환경에서 변경 요청이 필요한 경우 변경 요청을 엽니다. | "checkout을 control과 새 흐름으로 50/50 분할해 주세요." |
manage_flag | 플래그를 정의하고, 상위 종속성을 설정하고, 플래그를 완료로 표시하고, 보관하거나 복원합니다. 플래그를 삭제하지는 않습니다. | "old-banner 플래그를 보관해 주세요." |
configure | 컨텍스트 필드와 허용 값, 세그먼트, 태그 유형 및 태그, 릴리스 템플릿과 프로젝트를 변경합니다. | "userId가 1, 2, 3인 beta-testers 세그먼트를 만들어 주세요." |
audit | 최대 31일 동안 무엇이 언제, 누구에 의해 변경되었는지 읽습니다. | "어제 production에서 무엇이 변경되었나요?" |
docs | 현재 Unleash 문서를 바탕으로 기능 플래그 관행과 Unleash 자체에 관한 질문에 답합니다. | "오래된 플래그는 어떻게 정리해야 하나요?" |
send_feedback | 서버가 제대로 처리하지 못한 부분을 Unleash에 보고합니다. UNLEASH_MCP_SEND_FEEDBACK에서 결정하지 않는 한 먼저 사용자에게 묻습니다. | 없음: 에이전트가 자체적으로 호출합니다. |
로컬 설치
Node 24 이상과 pnpm이 필요합니다.
-
저장소를 복제하고
v2브랜치로 전환합니다.git clone https://github.com/Unleash/unleash-mcp.git cd unleash-mcp git checkout v2이렇게 하면 v2 소스를 가져옵니다.
-
종속 항목을 설치합니다.
pnpm installNode가 TypeScript 소스를 직접 실행하므로 빌드 단계는 없습니다.
-
Unleash에서 Profile > Personal API tokens로 이동해 개인 액세스 토큰을 만듭니다. 서버는 해당 사용자의 권한으로 작동합니다.
-
MCP 클라이언트에 서버를 등록합니다. Claude Code의 경우:
claude mcp add unleash \ -e UNLEASH_BASE_URL=https://your-instance.getunleash.io \ -e UNLEASH_PAT=user:your-personal-access-token \ -- node /absolute/path/to/unleash-mcp/src/index.ts이렇게 하면
unleash이라는 stdio 서버가 Claude Code에 추가됩니다. Claude Desktop, Cursor 또는 VS Code처럼 JSON으로 설정하는 클라이언트에서는 MCP 서버 설정에 다음을 추가합니다.{ "mcpServers": { "unleash": { "command": "node", "args": ["/absolute/path/to/unleash-mcp/src/index.ts"], "env": { "UNLEASH_BASE_URL": "https://your-instance.getunleash.io", "UNLEASH_PAT": "user:your-personal-access-token" } } } } -
에이전트에게 "내 Unleash 프로젝트를 나열해 줘"라고 요청합니다. 프로젝트 목록이 표시되면 서버가 실행 중인 것입니다.
로컬 서버 구성
| 변수 | 필수 | 설명 |
|---|---|---|
UNLEASH_BASE_URL | 예 | Unleash 인스턴스의 URL입니다. 예: https://sandbox.getunleash.io/enterprise. |
UNLEASH_PAT | 예 | 서버가 Unleash를 호출할 때 사용하는 개인 액세스 토큰입니다. |
UNLEASH_MCP_SEND_FEEDBACK | 아니요 | true은 묻지 않고 보고서를 전송하고, false는 send_feedback을 제외합니다. 설정하지 않으면 첫 보고서 전송 시 묻습니다. |
UNLEASH_FEEDBACK_URL | 아니요 | send_feedback 보고서를 받는 Unleash 인스턴스입니다. 설정하지 않으면 Unleash 인스턴스(https://eu.app.unleash-hosted.com/hosted/)를 사용합니다. |
UNLEASH_MCP_CONFIG_DIR | 아니요 | 답변을 저장하는 디렉터리인 feedback_consent.json입니다. 기본값은 플랫폼의 구성 디렉터리입니다. |
서버가 제대로 처리하지 못한 경우, 즉 도구 오류가 발생하거나 지원하는 도구가 없는 요청을 받거나 잘못된 결과를 반환하면 send_feedback가 익명 보고서를 Unleash에 전송합니다. 보고서에는 도구 이름, 오류 및 에이전트가 실행되는 MCP 클라이언트가 포함됩니다. 작동하지 않는 부분을 개선할 수 있도록 동의해 주세요.
동의하기 전에는 아무것도 전송되지 않습니다. 첫 보고서 전송 시 MCP 클라이언트를 통해 동의를 요청하며, 답변은 feedback_consent.json에 저장되므로 한 번만 묻습니다. 파일은 $XDG_CONFIG_HOME이 설정된 경우 그 아래의 unleash-mcp 디렉터리에 저장되고, 설정되지 않은 경우 macOS에서는 ~/Library/Application Support, Windows에서는 %APPDATA%, Linux에서는 ~/.config 아래에 저장됩니다. 다시 묻도록 하려면 파일을 삭제하세요.
질문을 닫거나 클라이언트에서 질문을 표시할 수 없는 경우, 다음 세션까지 피드백이 비활성화됩니다. OpenCode, Gemini 및 Antigravity는 질문을 표시하지 않으므로 UNLEASH_MCP_SEND_FEEDBACK가 true이 아닌 한 피드백이 비활성화됩니다.
클라이언트 구성에 비밀 정보를 넣지 않으려면 .env.example를 .env에 복사하고 값을 입력한 다음 node --env-file=.env /absolute/path/to/unleash-mcp/src/index.ts으로 서버를 시작하세요.
원격 서버에 연결
Unleash Enterprise는 Streamable HTTP를 통해 이 서버를 호스팅하므로 컴퓨터에서 실행되는 것은 없습니다. 관리자가 Admin > Remote MCP Server에서 서버를 활성화합니다. 관리자가 해당 위치에서 비활성화하지 않는 한 send_feedback 보고서가 전송됩니다.
MCP 클라이언트에 서버를 등록합니다. Claude Code의 경우:
claude mcp add unleash https://your-instance.getunleash.io/api/admin/mcp --transport http
Codex의 경우 서버를 추가한 다음 로그인합니다.
codex mcp add unleash --url https://your-instance.getunleash.io/api/admin/mcp
codex mcp login unleash
로그인하면 브라우저에서 Unleash에 로그인하는 페이지가 열립니다. Claude Code도 처음 사용할 때 같은 방식으로 진행합니다. 그러면 Unleash가 클라이언트용 개인 액세스 토큰을 생성합니다. 이 토큰은 24시간 동안 유효하며 서버는 사용자의 권한으로 작동합니다.
CI처럼 브라우저 로그인이 불가능한 경우에는 직접 만든 개인 액세스 토큰을 대신 전달하면 로그인 절차가 생략됩니다.
claude mcp add unleash https://your-instance.getunleash.io/api/admin/mcp \
--transport http \
--header "Authorization: Bearer user:your-personal-access-token"
Codex는 [mcp_servers.unleash] 아래의 config.toml에 지정된 환경 변수에서 토큰을 가져옵니다. bearer_token_env_var 형식으로 지정합니다.