
Hamn
io.github.idoo由 GitHub 帳號 idoo 發布v0.1.3更新於 Nov 2, 2026
MCP server for App Store Connect: releases, TestFlight, reviews, reports. Read-only by default.
概覽
面向 App Store Connect 的 MCP 伺服器,讓助理讀取與管理版本發布、TestFlight、商店資訊、評論、銷售與報表,預設唯讀。
- 可以做什麼
- 讀取版本發布、TestFlight 建置、商店資訊、截圖、評論、銷售與財務報表
- 管理發布清單、中繼資料與截圖,公開前先提供預覽
- 執行 TestFlight 與 Xcode Cloud 流程,包含分支與拉取請求執行
- 透過原始 App Store Connect API 存取其他功能
- 選用 insights 工具集:發布後健康度、分階段發布暫停守衛、摘要、分析漏斗、關鍵字排名
- 選用 web 工具集(經 Apple ID):建立 App、填寫 App 隱私權、讀取並回覆 App 審查訊息
- 適用情境
- 適合發布 iOS 或 macOS App 的團隊:讓助理查看評論與銷售、準備發布與中繼資料、回覆 App 審查,而不必切換到網頁後台。
- 執行需求
- 以本機程序執行(二進位檔、.mcpb 套件或容器)。需要 App Store Connect API 金鑰:ASC_KEY_ID 與 ASC_PRIVATE_KEY(.p8 金鑰內容),團隊金鑰另需 ASC_ISSUER_ID,銷售與財務報表需 ASC_VENDOR_NUMBER。需可連線至 Apple API;選用 web 工具集需一次性 Apple ID 登入。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Hamn,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
app-store-connect-mcp
MCP server for App Store Connect. MCP is the plug-in format AI clients like Claude, Cursor and Codex use, so with this one your agent can read and manage your App Store Connect account. Read-only by default, and it asks before anything goes public. The binary is app-store-connect-mcp.
[CI] [CodeQL] [Release] [Go Reference] [License: MIT] [MCP] [Glama score] [OpenSSF Scorecard] [OpenSSF Best Practices]
Install
Paste this into whatever AI is writing your app right now (we won't tell):
Or by hand, in three steps:
Details in docs/INSTALL.md. Upgrading, key rotation and fixes for common errors: docs/FAQ.md.
Why you can trust it
You're handing it an App Store Connect key, so here's what you can check yourself instead of taking my word for it:
- All of it is here. MIT, no closed parts. Build it yourself with
go install github.com/idoo/app-store-connect-mcp/cmd/app-store-connect-mcp@latest. - Read-only until you say otherwise. Write tools aren't even listed until you turn writes on, and anything public or hard to undo shows a preview and waits for your yes. docs/SAFETY.md
- No telemetry. It talks to
api.appstoreconnect.apple.com, the presigned upload and report URLs Apple hands back (sent without your token), and the public iTunes Search API forstore_lookup. Afterweb loginit also readsappstoreconnect.apple.com(App Analytics, Payments, thewebtoolset) and Apple's own sign-in pages. The JWT is signed on your machine and only ever goes to the API. SECURITY.md - Your key stays where you put it. It's read from a file, an env var or the OS keychain. The config holds only a path or keychain reference, is written
0600, and is refused if anyone else can write to it. Apple ID cookies live in the Keychain. No MCP tool can add or change credentials. - Releases are signed and traceable to their source. Every release is built by release.yml from a tag, published as an immutable release, and ships an SPDX SBOM per archive, a cosign keyless signature on
checksums.txt, and build provenance attestations. The macOS binaries are also signed with my Developer ID and notarized by Apple, so Gatekeeper opens them without a warning. - CI scans every push with CodeQL and
govulncheck, and a tag can't ship with a known reachable vulnerability.
Check a download with the GitHub CLI:
or with cosign:
On a Mac, spctl -a -vv -t install app-store-connect-mcp should say source=Notarized Developer ID.
The .mcpb and tools.json are listed in checksums-extra.txt with their own checksums-extra.txt.sigstore.json. Both checks above work on them the same way.
Compared
~ partial
Security
It can't break anything until you let it. Anything public, money-moving or hard to undo for your users and team waits for your yes. Build uploads and Xcode Cloud branch runs don't ask; pull request runs do. A 1-star review that says "ignore previous instructions" is still just a 1-star review. More in docs/SAFETY.md.
What it does
Everything you'd click in App Store Connect: releases, TestFlight, listings, screenshots, reviews, sales, IAPs, signing, Xcode Cloud. For everything else there's raw API access. Tool list, config.
After launch it keeps watching, if you turn on the insights toolset: post-release health with a guard that pauses a phased rollout from cron, a "what's new since yesterday" digest, the analytics funnel, and keyword rank tracking. In Claude Desktop, claude.ai, ChatGPT and VS Code the release checklist, metadata diffs, screenshots, reviews and funnel show up as small interactive views.
A toolset is a group of tools you switch on or off, so your agent only sees what you use. The release, TestFlight, metadata, reviews, reports and screenshots ones are on out of the box. Add others with --toolsets +insights,+signing or ASC_MCP_TOOLSETS=+insights, or ask the agent to turn one on mid-chat. The list is in docs/CONFIG.md.
Stats without an Admin key or vendor number
Apple's Analytics Reports need an Admin key and a day or two before the first numbers, and sales need the vendor number, which the API doesn't expose. After app-store-connect-mcp web login neither matters: the vendor number is read from Payments once and remembered, and analytics_funnel_report and insights_summary read App Analytics the way the website does. insights_summary without an app lists every app's impressions, page views, downloads, sessions and crashes against the previous period.
Creating apps and App Privacy
Apple's API can't create an app record or fill in App Privacy. The opt-in web toolset can, through your Apple ID instead of the API key. You sign in once:
A browser window opens on Apple's own sign-in page. Type your password, approve 2FA or use a passkey, and the window closes by itself. It's a separate browser profile just for this: your default browser if it's Brave, Chrome, Edge or Arc, another one of those if it isn't, or a downloaded Chrome for Testing when you have none. When the session runs out later, the same profile renews it headless, so mostly you won't see a window again. An agent can open the window too, with the web_login tool, when a tool says web_session_required.
No screen? web login --password keeps the old terminal flow (Apple ID, password, 2FA code), though Apple often refuses it with error -20209. On an SSH box, use web import with the cookies from a browser's "Copy as cURL" or a FASTLANE_SESSION.
Then turn the toolset on (--toolsets +web) and ask for apps_create, privacy_get, privacy_plan, privacy_apply, release_review_messages (what App Review wrote about a rejection) and release_review_reply (answer App Review in the Resolution Center). The agent never sees your Apple ID, password or cookies: the cookies stay in your Keychain and the password isn't stored anywhere. Creating an app, publishing App Privacy and replying to App Review each wait for your yes. Details in docs/CONFIG.md.
License
MIT © Ivan Verevkin
來源:README.md,提交 423fdce
工具
0版本歷史
1- v0.1.3最新Oct 26, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
