{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"awesome-pgyer","slug":"pgyer","name":"PGYER","type":"mcp","url":"https://github.com/PGYER/pgyer-mcp-server","page_url":"https://unfragile.ai/pgyer","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"awesome-pgyer__cap_0","uri":"capability://tool.use.integration.mcp.protocol.mobile.app.upload.with.multi.format.support","name":"mcp-protocol mobile app upload with multi-format support","description":"Enables uploading iOS IPA and Android APK files to PGYER through the Model Context Protocol via a PGYERAppUploader component that orchestrates multi-step file transmission. The implementation uses StdioServerTransport for process-based communication with MCP clients (Claude App, VSCode), abstracting PGYER's HTTP API behind a standardized tool interface that handles authentication via PGYER_API_KEY environment variable and manages file streaming to remote servers.","intents":["I want to upload a compiled iOS or Android app binary to PGYER distribution without leaving my IDE or Claude conversation","I need to automate app uploads as part of a CI/CD pipeline or development workflow","I want to integrate app distribution into an AI agent that can manage releases programmatically"],"best_for":["Mobile development teams using Claude or VSCode as their primary development environment","DevOps engineers building automated mobile app release pipelines","AI agent builders integrating app distribution into autonomous workflows"],"limitations":["Requires pre-compiled IPA/APK files — does not perform build compilation itself","File upload latency depends on network bandwidth and file size; no built-in resumable upload for large files","Single-threaded upload processing — concurrent uploads must be queued sequentially","No local file validation before upload — relies on PGYER API to reject invalid formats"],"requires":["Node.js 20+ or Docker runtime","Valid PGYER_API_KEY environment variable set in deployment context","MCP-compatible client (Claude App, VSCode with MCP extension, or compatible platform)","IPA file (iOS) or APK file (Android) already compiled and available locally or accessible via file path"],"input_types":["file path (string pointing to local IPA or APK)","optional metadata (app name, version, release notes as structured parameters)"],"output_types":["structured JSON response with upload status, app ID, download URL, QR code","error messages with PGYER API error codes if upload fails"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-pgyer__cap_1","uri":"capability://tool.use.integration.paginated.app.inventory.querying.with.filtering","name":"paginated app inventory querying with filtering","description":"Provides list-my-apps tool that queries the authenticated user's uploaded applications from PGYER with pagination support, implemented via makePGYERRequest helper that abstracts HTTP request construction and authentication. Returns structured app metadata (IDs, versions, upload dates, download counts) enabling developers to inspect their app distribution portfolio programmatically without accessing the PGYER web dashboard.","intents":["I want to see all apps I've uploaded to PGYER and their current status from within Claude or VSCode","I need to programmatically fetch a list of my distributed apps to determine which version is latest","I want to build a dashboard or monitoring tool that pulls my app inventory from PGYER"],"best_for":["Mobile developers managing multiple app versions across iOS and Android","Release managers tracking which builds are currently distributed","AI agents that need to query app state before deciding on next distribution steps"],"limitations":["Pagination is manual — requires explicit page number parameters; no automatic cursor-based iteration","Returns only basic app metadata — does not include detailed analytics or download statistics","No filtering by app type, version, or date range — returns all apps in chronological order only","Rate-limited by PGYER API — excessive queries may trigger throttling"],"requires":["Node.js 20+ or Docker runtime","Valid PGYER_API_KEY environment variable","MCP-compatible client with tool-calling support","At least one app previously uploaded to PGYER account"],"input_types":["page number (integer, optional, defaults to 1)","page size (integer, optional, defaults to PGYER API default)"],"output_types":["JSON array of app objects with fields: appId, appName, appVersion, uploadTime, downloadCount, shortcutUrl","pagination metadata: currentPage, totalPages, totalApps"],"categories":["tool-use-integration","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-pgyer__cap_2","uri":"capability://tool.use.integration.app.detail.retrieval.by.shortcut.identifier","name":"app detail retrieval by shortcut identifier","description":"Implements get-app-info-by-shortcut tool that fetches detailed metadata for a specific PGYER app using its shortcut identifier (a unique slug assigned by PGYER). Uses makePGYERRequest helper to construct authenticated API calls, returning comprehensive app information including download URL, QR code, version history, and distribution metrics without requiring knowledge of internal app IDs.","intents":["I have a PGYER app shortcut URL and want to retrieve its full metadata programmatically","I need to generate a QR code or download link for a specific distributed app","I want to verify app details (version, size, platform) before sharing with testers"],"best_for":["QA teams distributing test builds to stakeholders via shortcut links","Developers generating shareable app distribution links for beta testing","Automation scripts that need to resolve app shortcuts to full metadata"],"limitations":["Requires exact shortcut identifier — no fuzzy matching or search by app name","Does not return download statistics or user feedback — only static app metadata","Shortcut identifiers are immutable — cannot be customized or changed after app upload","No access to private/draft apps — only returns publicly distributed versions"],"requires":["Node.js 20+ or Docker runtime","Valid PGYER_API_KEY environment variable","MCP-compatible client","Valid PGYER app shortcut identifier (e.g., 'abc123')"],"input_types":["shortcut (string, required) — the unique PGYER app shortcut identifier"],"output_types":["JSON object with app metadata: appName, appVersion, platform (iOS/Android), fileSize, downloadUrl, qrCodeUrl, uploadTime, downloadCount","error response if shortcut not found or access denied"],"categories":["tool-use-integration","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-pgyer__cap_3","uri":"capability://tool.use.integration.mcp.server.lifecycle.management.with.dual.runtime.support","name":"mcp server lifecycle management with dual runtime support","description":"Manages the PGYER MCP server initialization, tool registration, and transport layer configuration supporting both Node.js direct execution and Docker containerized deployment. The server entry point at build/index.js initializes StdioServerTransport for stdio-based communication with MCP clients, registers the three core tools (upload-app, list-my-apps, get-app-info-by-shortcut), and handles authentication setup via environment variables, enabling seamless integration with Claude App and VSCode.","intents":["I want to deploy the PGYER MCP server in my local development environment or production infrastructure","I need to configure the server to work with Claude App or VSCode without manual HTTP endpoint management","I want to ensure the server starts correctly and handles tool registration automatically"],"best_for":["DevOps engineers deploying MCP servers in containerized environments","Individual developers setting up local MCP server instances for IDE integration","Teams standardizing on MCP for tool integration across multiple platforms"],"limitations":["Stdio transport is process-based — requires parent process to manage server lifecycle; no built-in process restart on crash","Single server instance per process — horizontal scaling requires multiple process instances with load balancing","No built-in logging or observability — errors are written to stderr; requires external log aggregation for production","Configuration via environment variables only — no runtime configuration API or hot-reload capability"],"requires":["Node.js 20+ (for direct execution) OR Docker (for containerized deployment)","PGYER_API_KEY environment variable set before server startup","MCP-compatible client configured to spawn the server process (Claude App or VSCode with MCP extension)","File system access to build/index.js (Node.js) or pgyer/pgyer-mcp-server Docker image"],"input_types":["environment variables: PGYER_API_KEY (required)","optional: server configuration parameters (if supported by MCP client)"],"output_types":["stdio stream with MCP protocol messages","tool availability signals to MCP client","error messages to stderr if initialization fails"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-pgyer__cap_4","uri":"capability://tool.use.integration.pgyer.api.authentication.and.request.abstraction","name":"pgyer api authentication and request abstraction","description":"Provides makePGYERRequest helper function that abstracts PGYER API authentication and HTTP request construction, handling API key injection, request signing, and response parsing for all tool implementations. Centralizes authentication logic to ensure consistent credential handling across upload, query, and detail-retrieval operations, with environment variable-based API key management enabling secure credential injection without hardcoding.","intents":["I want to ensure all API calls to PGYER are authenticated consistently without duplicating auth logic","I need to handle PGYER API errors and responses uniformly across different tool implementations","I want to manage API credentials securely via environment variables rather than configuration files"],"best_for":["MCP server developers integrating with PGYER or similar API-based services","Teams standardizing on environment variable-based credential management","Projects requiring consistent error handling and response parsing across multiple API endpoints"],"limitations":["API key stored in environment variable — vulnerable to process memory inspection; no secrets vault integration","No request caching — every tool invocation triggers a fresh API call; no built-in response memoization","No retry logic — failed requests are not automatically retried; caller must implement retry strategy","Synchronous request handling — no concurrent API calls; multiple requests are serialized"],"requires":["PGYER_API_KEY environment variable set in server process","Network connectivity to PGYER API endpoints","Valid PGYER account with API access enabled"],"input_types":["API endpoint path (string)","request parameters (object with query or body fields)","HTTP method (GET, POST, etc.)"],"output_types":["parsed JSON response from PGYER API","error object with PGYER error code and message if request fails"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"awesome-pgyer__cap_5","uri":"capability://tool.use.integration.claude.app.and.vscode.mcp.client.integration.configuration","name":"claude app and vscode mcp client integration configuration","description":"Provides standardized configuration patterns for integrating the PGYER MCP server with Claude App and VSCode through their respective MCP server configuration mechanisms. Claude App uses mcpServers object in settings with Node.js or Docker execution modes, while VSCode uses mcp.servers configuration with input prompts for secure API key entry and workspace folder mounting. Both integration paths support environment variable injection and process spawning without requiring manual HTTP endpoint configuration.","intents":["I want to add the PGYER MCP server to my Claude App so I can upload and manage apps in conversations","I need to configure VSCode to use the PGYER MCP server as a native tool within the editor","I want to ensure the API key is securely provided without hardcoding it in configuration files"],"best_for":["Claude App users who want native PGYER integration in conversations","VSCode users managing mobile apps and wanting IDE-native distribution tools","Teams standardizing on MCP for tool integration across development platforms"],"limitations":["Claude App integration requires Claude App version with MCP support — not available in older versions","VSCode integration requires MCP extension installation — adds dependency on third-party extension","API key entry in VSCode is manual via input prompt — no automatic credential retrieval from system keychains","Configuration changes require client restart — no hot-reload of MCP server settings"],"requires":["Claude App (latest version with MCP support) OR VSCode with MCP extension installed","PGYER_API_KEY available for secure entry (environment variable or manual input)","Node.js 20+ installed locally (for Node.js execution mode) OR Docker installed (for Docker mode)","Read access to PGYER MCP server configuration files or ability to edit client settings"],"input_types":["Claude App settings: mcpServers configuration object with command and args","VSCode settings: mcp.servers configuration with inputPrompts for API key"],"output_types":["MCP server process spawned by client","tool availability signals in Claude or VSCode UI","error messages if server fails to start or authenticate"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":28,"verified":false,"data_access_risk":"high","permissions":["Node.js 20+ or Docker runtime","Valid PGYER_API_KEY environment variable set in deployment context","MCP-compatible client (Claude App, VSCode with MCP extension, or compatible platform)","IPA file (iOS) or APK file (Android) already compiled and available locally or accessible via file path","Valid PGYER_API_KEY environment variable","MCP-compatible client with tool-calling support","At least one app previously uploaded to PGYER account","MCP-compatible client","Valid PGYER app shortcut identifier (e.g., 'abc123')","Node.js 20+ (for direct execution) OR Docker (for containerized deployment)"],"failure_modes":["Requires pre-compiled IPA/APK files — does not perform build compilation itself","File upload latency depends on network bandwidth and file size; no built-in resumable upload for large files","Single-threaded upload processing — concurrent uploads must be queued sequentially","No local file validation before upload — relies on PGYER API to reject invalid formats","Pagination is manual — requires explicit page number parameters; no automatic cursor-based iteration","Returns only basic app metadata — does not include detailed analytics or download statistics","No filtering by app type, version, or date range — returns all apps in chronological order only","Rate-limited by PGYER API — excessive queries may trigger throttling","Requires exact shortcut identifier — no fuzzy matching or search by app name","Does not return download statistics or user feedback — only static app metadata","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.37,"ecosystem":0.39999999999999997,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.046Z","last_scraped_at":"2026-05-03T14:00:15.503Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=pgyer","compare_url":"https://unfragile.ai/compare?artifact=pgyer"}},"signature":"5yvDCP9e0Fe4POTC3RqEACY9Zb2i2jP75vCIjdGSThkTSFrsgvbVviQ6Ia2tw+gD2z6ggztad9NbN9uAVbAfCw==","signedAt":"2026-07-08T19:09:56.596Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/pgyer","artifact":"https://unfragile.ai/pgyer","verify":"https://unfragile.ai/api/v1/verify?slug=pgyer","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}