Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
App Store release pilot — version bump, TestFlight upload, metadata, review submission
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
APPLE_KEY_ID, APPLE_ISSUER_ID, ASC_KEY_PATH, APPLE_KEY_CONTENT, APPLE_TEAM_ID, ASC_BUNDLE_ID, ASC_PROJECT_DIR, ASC_PLATFORM, ASC_FASTLANE_LANE, ASC_FASTLANE_PLATFORM, ASC_UPLOAD_CMD标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"appstore-release": {
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_KEY_ID": "your-value",
"APPLE_ISSUER_ID": "your-value",
"ASC_KEY_PATH": "your-value",
"APPLE_KEY_CONTENT": "your-value",
"APPLE_TEAM_ID": "your-value",
"ASC_BUNDLE_ID": "your-value",
"ASC_PROJECT_DIR": "your-value",
"ASC_PLATFORM": "your-value",
"ASC_FASTLANE_LANE": "your-value",
"ASC_FASTLANE_PLATFORM": "your-value",
"ASC_UPLOAD_CMD": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add appstore-release --env APPLE_KEY_ID=your-value --env APPLE_ISSUER_ID=your-value --env ASC_KEY_PATH=your-value --env APPLE_KEY_CONTENT=your-value --env APPLE_TEAM_ID=your-value --env ASC_BUNDLE_ID=your-value --env ASC_PROJECT_DIR=your-value --env ASC_PLATFORM=your-value --env ASC_FASTLANE_LANE=your-value --env ASC_FASTLANE_PLATFORM=your-value --env ASC_UPLOAD_CMD=your-value -- npx -y appstore-release-mcp运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"appstore-release": {
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_KEY_ID": "your-value",
"APPLE_ISSUER_ID": "your-value",
"ASC_KEY_PATH": "your-value",
"APPLE_KEY_CONTENT": "your-value",
"APPLE_TEAM_ID": "your-value",
"ASC_BUNDLE_ID": "your-value",
"ASC_PROJECT_DIR": "your-value",
"ASC_PLATFORM": "your-value",
"ASC_FASTLANE_LANE": "your-value",
"ASC_FASTLANE_PLATFORM": "your-value",
"ASC_UPLOAD_CMD": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"appstore-release": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"appstore-release-mcp"
],
"env": {
"APPLE_KEY_ID": "your-value",
"APPLE_ISSUER_ID": "your-value",
"ASC_KEY_PATH": "your-value",
"APPLE_KEY_CONTENT": "your-value",
"APPLE_TEAM_ID": "your-value",
"ASC_BUNDLE_ID": "your-value",
"ASC_PROJECT_DIR": "your-value",
"ASC_PLATFORM": "your-value",
"ASC_FASTLANE_LANE": "your-value",
"ASC_FASTLANE_PLATFORM": "your-value",
"ASC_UPLOAD_CMD": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
ASC_KEY_PATH envAPPLE_TEAM_ID envASC_PROJECT_DIR envASC_PLATFORM envASC_FASTLANE_LANE envASC_FASTLANE_PLATFORM envASC_UPLOAD_CMD env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过 GitHub 账户 rabdulsal 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:APPLE_KEY_ID, APPLE_ISSUER_ID, APPLE_KEY_CONTENT, ASC_BUNDLE_ID
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.1.1)于4个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, 好縮 Short
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Smart URL shortener: create, tag and track short links on s.gooo.name.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
An MCP server that drives the full App Store release cycle for iOS and macOS apps: version bump → archive + TestFlight upload → metadata → review submission → status.
What makes it different: existing App Store Connect MCP servers wrap the REST API — metadata, TestFlight management, analytics. None of them can do the one step the REST API doesn't support: getting a binary onto Apple's servers. This server is a *release pilot*, not an API browser, and gives you two ways to do that:
node:crypto) for status, builds, metadata, and review submission.ipa? (from eas build, a CI pipeline, a manual Xcode archive) Upload it directly via xcrun altool — no fastlane, no local archive step, nothing to configure beyond the ASC API key you already haveproject.pbxproj (and project.yml for xcodegen projects)xcrun altool — used by asc_upload_ipa)beta) — only needed for asc_upload_build; skip it entirely if you're only using asc_upload_ipa.p8).p8 — Apple lets you download it exactly once. Keep it in ~/.appstoreconnect/private_keys/.claude mcp add appstore \
-e APPLE_KEY_ID=XXXXXXXXXX \ -e APPLE_ISSUER_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \ -e ASC_KEY_PATH=$HOME/.appstoreconnect/private_keys/AuthKey_XXXXXXXXXX.p8 \ -e APPLE_TEAM_ID=XXXXXXXXXX \ -e ASC_BUNDLE_ID=com.example.myapp \ -e ASC_PROJECT_DIR=/path/to/your/xcode/project \ -- npx appstore-release-mcp
For a macOS app whose Fastfile uses platform :mac, add -e ASC_PLATFORM=MAC_OS -e ASC_FASTLANE_PLATFORM=mac.
asc_doctor. All checks should be ✓.| Tool | What it does |
|---|---|
asc_doctor | Verify config, creds, fastlane/xcodebuild/altool, app record — run first |
asc_app_status | Versions + review states + recent builds in one call |
asc_list_builds | Build processing states (wait for VALID after upload) |
asc_bump_version | Bump build number / set marketing version in local project files |
asc_upload_build | Run your fastlane upload lane as an async job — returns job ID immediately |
asc_upload_ipa | Upload an already-built .ipa via xcrun altool — async job, no fastlane needed |
asc_job_status | Poll a job started by asc_upload_build or asc_upload_ipa; status + log tail |
asc_update_metadata | Description / keywords / what's-new / promo text via REST |
asc_submit_review | Attach build + create review submission + submit |
Building locally with fastlane:
asc_doctor # toolchain healthy?
asc_bump_version {marketing_version: "1.1.0"} asc_upload_build # → job id asc_job_status {job_id} # poll until succeeded asc_list_builds # wait for processingState VALID asc_update_metadata {whats_new: "...", create_version: "1.1.0"} asc_submit_review {build_id} # point of no return asc_app_status # WAITING_FOR_REVIEW
Already have a signed .ipa (EAS Build, CI, manual archive) — no fastlane needed:
asc_doctor
asc_upload_ipa {ipa_path: "./build/app.ipa"} # → job id asc_job_status {job_id} # poll until succeeded asc_list_builds # wait for processingState VALID asc_update_metadata {whats_new: "...", create_version: "1.1.0"} asc_submit_review {build_id} asc_app_status
Credential names deliberately match fastlane's app_store_connect_api_key, so one credential set serves both.
| Var | Required | Notes |
|---|---|---|
APPLE_KEY_ID | yes | ASC API key ID |
APPLE_ISSUER_ID | yes | ASC issuer ID |
APPLE_KEY_CONTENT / ASC_KEY_PATH | one of | base64-encoded .p8 / path to .p8 file |
APPLE_TEAM_ID | for asc_upload_build | Apple Developer team ID (not needed for asc_upload_ipa) |
ASC_BUNDLE_ID | yes | your app's bundle identifier |
ASC_PROJECT_DIR | recommended | Xcode project root where fastlane runs (default: cwd) |
ASC_PLATFORM | no | IOS (default), MAC_OS, TV_OS, VISION_OS |
ASC_FASTLANE_LANE | no | upload lane name (default: beta) |
ASC_FASTLANE_PLATFORM | no | fastlane platform prefix, e.g. mac or ios |
ASC_UPLOAD_CMD | no | full override, e.g. bundle exec fastlane ios beta |
~/.appstore-mcp/jobs/ either way.asc_submit_review is the point of no return for a release — the tool description tells agents to confirm with a human first.MIT