App Store Connect MCP Server
App Store Connect MCP 服务器 — 代码模式
923 个端点。2 个工具。规范即实现。
问题所在
传统的 MCP 服务器将每个 API 端点包装为单独的工具。Apple 的 App Store Connect API 拥有 923 个端点。这意味着需要 923 个工具定义,占用超过 10 万个上下文 Token,并且每次 Apple 添加端点时都需要发布新版本。
Related MCP server: mcp-appstore-connect
解决方案
代码模式:2 个工具替代 923 个。
工具 | 功能 |
| 编写 JS 来查询 Apple 的 OpenAPI 规范。发现端点、检查参数、读取架构。 |
| 编写 JS 来调用 API。自动处理身份验证。支持链式调用。 |
LLM 编写查询。规范即实现。添加端点 = Apple 更新其规范。我们无需更改任何代码。
Traditional MCP: 923 endpoints → 923 tools → ~100K tokens → constant maintenance
Code Mode: 923 endpoints → 2 tools → ~1K tokens → zero maintenance快速入门
1. 获取 App Store Connect 凭据
前往 App Store Connect → 用户和访问 → 集成 → 密钥
点击“+”生成新密钥(管理员或财务角色)
下载
.p8文件(仅可下载一次!)记录您的密钥 ID (Key ID) 和发行人 ID (Issuer ID)
2. 通过 Claude Code 安装
claude mcp add appstore-connect -s user \
-e APP_STORE_KEY_ID=YOUR_KEY_ID \
-e APP_STORE_ISSUER_ID=YOUR_ISSUER_ID \
-e APP_STORE_P8_PATH=/absolute/path/to/AuthKey_XXXXXXXXXX.p8 \
-e APP_STORE_VENDOR_NUMBER=YOUR_VENDOR_NUMBER \
-- npx -y @trialanderror-ai/appstore-connect-mcp-s user 使服务器在您的所有项目中可用。如果您不需要财务报告,可以省略 -e APP_STORE_VENDOR_NUMBER。
或者跳过内联环境变量形式,直接在您的 shell 或 MCP 配置中设置它们(见下文)。
3. 配置凭据
三个必需的环境变量(一个可选):
变量 | 描述 |
| 10 位字符的密钥 ID |
| UUID 发行人 ID |
|
|
| 财务报告必需 |
为 Claude Code 配置
可以在 shell 中设置环境变量,或通过 .mcp.json 传递:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "@trialanderror-ai/appstore-connect-mcp"],
"env": {
"APP_STORE_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_P8_PATH": "/path/to/AuthKey_XXXXXXXXXX.p8",
"APP_STORE_VENDOR_NUMBER": "YOUR_VENDOR_NUMBER"
}
}
}
}为 Claude Desktop 配置
添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"appstore-connect": {
"command": "npx",
"args": ["-y", "@trialanderror-ai/appstore-connect-mcp"],
"env": {
"APP_STORE_KEY_ID": "YOUR_KEY_ID",
"APP_STORE_ISSUER_ID": "YOUR_ISSUER_ID",
"APP_STORE_P8_PATH": "/path/to/AuthKey_XXXXXXXXXX.p8"
}
}
}
}从源码构建(替代方案)
git clone https://github.com/TrialAndErrorAI/appstore-connect-mcp
cd appstore-connect-mcp
npm install
npm run build然后将您的 MCP 配置指向 node /path/to/appstore-connect-mcp/dist/index.js 而不是 npx。
使用示例
发现端点
search: "Find all endpoints related to customer reviews"LLM 编写:
const reviews = Object.entries(spec.paths)
.filter(([p]) => p.includes('customerReview'))
.map(([path, methods]) => ({
path,
methods: Object.keys(methods).map(m => m.toUpperCase())
}));
return reviews;列出您的应用
execute: "List all my apps"LLM 编写:
const apps = await api.request({ method: 'GET', path: '/v1/apps' });
return apps.data.map(a => ({ id: a.id, name: a.attributes.name }));链式调用
execute: "Get latest reviews for my first app"LLM 编写:
const apps = await api.request({ method: 'GET', path: '/v1/apps', params: { limit: '1' } });
const appId = apps.data[0].id;
const reviews = await api.request({
method: 'GET',
path: `/v1/apps/${appId}/customerReviews`,
params: { limit: '5', sort: '-createdDate' }
});
return {
app: apps.data[0].attributes.name,
reviews: reviews.data.map(r => ({
rating: r.attributes.rating,
title: r.attributes.title,
body: r.attributes.body
}))
};您可以访问的内容
全部 923 个 App Store Connect API 端点,包括:
类别 | 端点 | 您可以获得 |
应用元数据 | 29 | 标题、副标题、关键词、描述 — 读取和写入 |
分析 | 10 | 展示次数、页面浏览量、下载量、来源归因 |
销售与财务 | 2 | 各国收入、单位、收益 |
客户评论 | 5 | 评分、评论文本、回复评论 |
订阅 | 30 | 订阅管理、定价、组、优惠 |
App 内购买 | 29 | IAP 管理、优惠代码 |
版本 | 28 | 版本管理、分阶段发布 |
屏幕截图 | 12 | 上传、重新排序、管理截图集 |
A/B 测试 | 24 | 产品页面实验、处理变体 |
自定义产品页面 | 18 | 每个广告系列的自定义落地页 |
TestFlight | 23 | Beta 组、测试人员、构建版本 |
定价 | 11 | 各地区定价、价格点 |
构建版本 | 29 | 构建版本管理、处理状态 |
查看 API-COVERAGE.md 获取完整的分组映射。
工作原理
Claude writes JavaScript
│
▼
┌─────────────────────────────────────────────────┐
│ search({ code }) │
│ Sandbox executes code against OpenAPI spec │
│ 923 paths, 1337 schemas — pre-resolved $refs │
│ Returns: matching endpoints + parameters │
└─────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ execute({ code }) │
│ Sandbox executes code against auth'd client │
│ JWT injected — code never sees credentials │
│ Supports GET/POST/PATCH/DELETE + chaining │
│ Auto-decompresses gzipped report responses │
│ Returns: API response (truncated to 40K chars) │
└─────────────────────────────────────────────────┘安全性
代码在 Node.js
vm沙箱中运行不提供
fetch、require、process、eval、setTimeout凭据通过绑定注入 — 对生成的代码不可见
响应被截断以防止上下文膨胀
仅提供
spec(搜索) 或api(执行) 作为全局变量
架构
src/
├── auth/jwt-manager.ts — JWT with P8 key, ES256, 19-min cache
├── api/client.ts — HTTP client, rate limiting, gzip handling
├── spec/
│ ├── openapi.json — Apple's official spec (923 endpoints)
│ └── loader.ts — Loads + resolves $refs for flat traversal
├── executor/sandbox.ts — vm-based sandboxed execution
├── server/mcp-server.ts — MCP server (search, execute, test_connection)
└── index.ts — Entry point为什么选择代码模式?
传统 MCP | 代码模式 | |
工具 | 每个端点 1 个 (923) | 总共 2 个 |
上下文 Token | ~100K+ | ~1K |
添加端点 | 新工具 + 代码 + 架构 + 发布 | Apple 更新规范。无需更改。 |
链式调用 | 在每次调用之间重新进入 LLM | 单次执行,多次调用 |
维护 | 更新 923 个工具定义 | 更新 1 个规范文件 |
灵感来自 Cloudflare 的代码模式。
开发
npm install # Install dependencies
npm run build # Compile + copy spec
npm run dev # Watch mode (tsx)
npm start # Run compiled server
npm run type-check # TypeScript check许可证
MIT — 使用它、修改它、出售它。只要让它运行起来就行。
致谢
由 Trial and Error Inc 构建。在生产环境中被 RenovateAI 使用,这是一款适用于 iOS、Android 和 Web 的 AI 驱动家居设计应用。代码模式源自 Cloudflare。
“我们不实现单个端点。我们实现调用任何端点的能力。”
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
ASO analytics and App Store optimization tools for indie iOS developers and AI agents.
- app-managerOAuthapp.lance
App Store Connect operator for AI agents: icons, TestFlight builds, listings, IAP, rejection fixes.
Analyze and manage Apple Ads from your AI assistant with RevenueCat insights and safety controls.
Live App Store & Google Play data for AI agents: app discovery, ASO keywords, reviews.
Related MCP Servers
- AlicenseBqualityCmaintenanceEnables interaction with Apple's App Store Connect API through natural language to manage apps, beta testing, localizations, analytics, sales reports, and CI/CD workflows for iOS and macOS development.3163MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to manage Apple App Store Connect operations including app management, TestFlight, analytics, reviews, subscriptions, and more through 54 tools.614911MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to manage Apple App Store Connect through the official API, including apps, metadata, reviews, TestFlight, provisioning, users, and reports.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to manage Apple App Store Connect resources like apps, builds, TestFlight, and reviews through natural language.2021MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/TrialAndErrorAI/appstore-connect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server