PGYER

공식

PGYER 플랫폼용 MCP 서버로, 앱 업로드 및 조회 등을 지원합니다.

PGYER MCP(으)로 무엇을 할 수 있나요?

  • 설치 파일 업로드 — .apk, .ipa 또는 .hap 파일을 업로드하고 다운로드 페이지 URL, QR 코드, 버전 번호를 받습니다.
  • 업로드 상태 확인 — buildKey에 대한 처리 결과를 조회하며, 업로드 시간 초과 후에 유용합니다.
  • 앱 및 버전 탐색 — 계정의 앱을 나열하거나 주어진 appKey 또는 짧은 링크에 대한 이전 버전을 나열합니다.
  • 앱 세부 정보 보기 — appKey, 짧은 링크 또는 전체 다운로드 페이지 URL로 앱 세부 정보를 조회하며, 선택적으로 특정 버전에 대해서도 조회할 수 있습니다.
  • 앱 설정 관리 — 짧은 링크, 설치 방법 및 비밀번호, 설치 유효 기간, 페이지 언어, 버전 소스, 저작권 표시를 변경하며, dryRun을 지원합니다.
  • 최신 버전 설정 — 특정 버전을 앱의 최신 버전으로 표시하거나 표시 해제합니다.

문서

PGYER MCP 서버

English | 中文

蒲公英(PGYER)의 MCP(Model Context Protocol) 서버입니다. Claude, Cursor, VS Code, Codex 등 AI 클라이언트에서 Android(.apk), iOS(.ipa), HarmonyOS(.hap) 설치 패키지를 직접 업로드하고, 앱과 이전 버전을 조회하며, 앱 설정을 수정할 수 있습니다.

Claude Screenshot

2.0부터 이 패키지는 단순한 런처입니다. 서버 자체는 蒲公英 명령줄 도구 @pgyer/cli(pgyer mcp)에서 제공하며, 두 도구의 기능과 동작은 완전히 동일합니다. 기존 npx -y pgyer-mcp-server 설정은 수정할 필요가 없습니다.

준비

서버는 환경 변수 PGYER_API_KEY을 우선 읽습니다. 설정되어 있지 않으면 pgyer auth login에 저장된 로컬 자격 증명을 사용합니다.

설정

Claude Code

claude mcp add pgyer --env PGYER_API_KEY=<your_pgyer_api_key> -- npx -y pgyer-mcp-server

Claude Desktop

claude_desktop_config.json을 편집합니다(설정 → 개발자 → 구성 편집):

{
  "mcpServers": {
    "pgyer": {
      "command": "npx",
      "args": ["-y", "pgyer-mcp-server"],
      "env": { "PGYER_API_KEY": "<your_pgyer_api_key>" }
    }
  }
}

Cursor

~/.cursor/mcp.json(전역) 또는 프로젝트 내 .cursor/mcp.json에 추가합니다:

{
  "mcpServers": {
    "pgyer": {
      "command": "npx",
      "args": ["-y", "pgyer-mcp-server"],
      "env": { "PGYER_API_KEY": "<your_pgyer_api_key>" }
    }
  }
}

VS Code

원클릭 추가:

code --add-mcp '{"name":"pgyer","command":"npx","args":["-y","pgyer-mcp-server"],"env":{"PGYER_API_KEY":"<your_pgyer_api_key>"}}'

또는 프로젝트의 .vscode/mcp.json에 추가합니다(시작 시 API Key 입력을 요청하며, 파일에 기록되지 않습니다):

{
  "inputs": [
    { "type": "promptString", "id": "pgyer-api-key", "description": "PGYER API Key", "password": true }
  ],
  "servers": {
    "pgyer": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "pgyer-mcp-server"],
      "env": { "PGYER_API_KEY": "${input:pgyer-api-key}" }
    }
  }
}

Codex

codex mcp add pgyer --env PGYER_API_KEY=<your_pgyer_api_key> -- npx -y pgyer-mcp-server

또는 ~/.codex/config.toml를 편집합니다. Codex의 기본 도구 타임아웃은 60초이므로, 큰 설치 패키지를 업로드할 때는 늘려 주세요:

[mcp_servers.pgyer]
command = "npx"
args = ["-y", "pgyer-mcp-server"]
env = { PGYER_API_KEY = "<your_pgyer_api_key>" }
tool_timeout_sec = 900

@pgyer/cli를 전역 설치하고 pgyer auth login을 실행한 경우에는 명령을 pgyer mcp로 바꾸고 PGYER_API_KEY을 생략할 수 있습니다.

도구

도구기능읽기 전용기존 상태 덮어쓰기
upload_app.apk/.ipa/.hap을 업로드하고 蒲公英 처리가 완료될 때까지 기다린 뒤 다운로드 페이지 주소, QR 코드, 버전 번호 등을 반환합니다. 설치 방식, 설치 비밀번호, 업데이트 설명, 앱 소개, 설치 유효 기간, 채널 단축 링크, 해외/국내 업로드 및 처리 타임아웃을 지원하며, 클라이언트가 progressToken을 제공하면 업로드 및 처리 진행 상황을 전송합니다아니요아니요
get_upload_statusbuildKey로 업로드 처리 결과를 조회합니다(upload_app 처리 타임아웃 후 사용). 대기 시간을 설정할 수 있습니다예아니요
list_apps계정의 앱과 최신 버전을 페이지 단위로 나열합니다예아니요
get_appappKey 또는 단축 링크(전체 다운로드 페이지 주소도 가능)로 앱 상세 정보를 조회하며, 이전 버전을 지정할 수 있습니다예아니요
list_versionsappKey 또는 단축 링크로 이전 버전을 페이지 단위로 나열합니다예아니요
set_latest_version특정 버전의 "최신 버전" 표시를 설정하거나 해제합니다아니요예
update_app_settings단축 링크, 설치 방식과 비밀번호, 설치 유효 기간, 다운로드 페이지 언어, 버전 번호 출처, 자동 동기화, 저작권 표시를 수정합니다. 지정하지 않은 설정은 그대로 유지되며 dryRun을 지원합니다아니요예
  • 업로드 시에는 지정한 설정만 전송하며, 지정하지 않은 설정은 앱의 현재 값을 유지합니다
  • 앱이나 버전을 삭제하는 도구는 제공하지 않으며, 설치 비밀번호도 반환하지 않습니다
  • 기본 도메인 www.pgyer.com에 접속할 수 없으면 자동으로 www.xcxwo.com, www.pgyerapp.com로 전환합니다
  • API Key는 HTTPS 요청 본문으로만 전송되며 URL에 나타나지 않습니다

1.x에서 업그레이드

2.0에서는 도구 이름이 snake_case로 변경되고 새 도구가 추가되었습니다. 프롬프트나 클라이언트의 도구 허용 목록에 이전 이름을 사용했다면 그에 맞게 수정하세요:

1.x2.0
upload-appupload_app(모든 업로드 설정과 진행 상황 알림 추가)
list-my-appslist_apps
get-app-info-by-shortcutget_app(매개변수 shortcut)

도구의 반환 결과도 API 응답을 그대로 반환하지 않고 정리된 구조화 데이터로 변경되었습니다. 1.x에서는 API Key를 업로드 결과 조회 URL에 넣었으나, 2.0에서 수정되었습니다.

Docker

docker build -t pgyer-mcp-server .
docker run -i --rm -e PGYER_API_KEY=<your_pgyer_api_key> pgyer-mcp-server

개발 및 배포

서버 코드는 PGYER/pgyer-cli의 src/mcp/에 있으며, 문제와 개선 사항은 해당 저장소에 제출해 주세요. 이 저장소에는 런처, MCP Registry 메타데이터(server.json), 문서만 포함되어 있습니다. 배포 절차는 RELEASING.md를 참고하세요.

라이선스

MIT