@ggaiteam/appstore-connect-mcp 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server.d.ts +7 -10
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +171 -116
- package/dist/server.js.map +1 -1
- package/package.json +1 -1
package/dist/server.d.ts
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* server.ts — MCP server core.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Exposes 4 MCP tools instead of 1200+ to keep LLM context small:
|
|
5
|
+
* - search_apis → find the right operation by keyword
|
|
6
|
+
* - get_tool_details → get full parameter schema for an operation
|
|
7
|
+
* - call_api → execute any App Store Connect API operation
|
|
8
|
+
* - list_categories → browse API resource groups
|
|
9
|
+
*
|
|
10
|
+
* The LLM workflow: search → get details → call_api.
|
|
7
11
|
*/
|
|
8
12
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
13
|
import type { ASCCredentials } from "./types.js";
|
|
@@ -11,12 +15,5 @@ export interface CreateServerOptions {
|
|
|
11
15
|
credentials: ASCCredentials;
|
|
12
16
|
verbose?: boolean;
|
|
13
17
|
}
|
|
14
|
-
/**
|
|
15
|
-
* Create and configure the MCP server.
|
|
16
|
-
*
|
|
17
|
-
* Registers:
|
|
18
|
-
* - ListTools handler → returns all generated tools + 3 meta-tools
|
|
19
|
-
* - CallTool handler → dispatches to the API or meta-tool
|
|
20
|
-
*/
|
|
21
18
|
export declare function createMcpServer(opts: CreateServerOptions): Server;
|
|
22
19
|
//# sourceMappingURL=server.d.ts.map
|
package/dist/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,YAAY,CAAC;AAG1D,MAAM,WAAW,mBAAmB;IAClC,WAAW,EAAE,cAAc,CAAC;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,CA8QjE"}
|
package/dist/server.js
CHANGED
|
@@ -1,98 +1,103 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* server.ts — MCP server core.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
4
|
+
* Exposes 4 MCP tools instead of 1200+ to keep LLM context small:
|
|
5
|
+
* - search_apis → find the right operation by keyword
|
|
6
|
+
* - get_tool_details → get full parameter schema for an operation
|
|
7
|
+
* - call_api → execute any App Store Connect API operation
|
|
8
|
+
* - list_categories → browse API resource groups
|
|
9
|
+
*
|
|
10
|
+
* The LLM workflow: search → get details → call_api.
|
|
7
11
|
*/
|
|
8
12
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
9
13
|
import { ListToolsRequestSchema, CallToolRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
-
import { loadTools,
|
|
11
|
-
/**
|
|
12
|
-
* Create and configure the MCP server.
|
|
13
|
-
*
|
|
14
|
-
* Registers:
|
|
15
|
-
* - ListTools handler → returns all generated tools + 3 meta-tools
|
|
16
|
-
* - CallTool handler → dispatches to the API or meta-tool
|
|
17
|
-
*/
|
|
14
|
+
import { loadTools, executeTool } from "./tools.js";
|
|
18
15
|
export function createMcpServer(opts) {
|
|
19
16
|
const { credentials, verbose } = opts;
|
|
20
17
|
const toolsData = loadTools();
|
|
21
|
-
// Build a lookup map for O(1) dispatch
|
|
22
18
|
const toolMap = new Map();
|
|
23
19
|
for (const t of toolsData.tools) {
|
|
24
20
|
toolMap.set(t.name, t);
|
|
25
21
|
}
|
|
26
|
-
const server = new Server({
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
inputSchema: {
|
|
53
|
-
type: "object",
|
|
54
|
-
properties: {
|
|
55
|
-
query: {
|
|
56
|
-
type: "string",
|
|
57
|
-
description: "Search keyword (e.g. 'app', 'build', 'subscription', 'review')",
|
|
58
|
-
},
|
|
59
|
-
category: {
|
|
60
|
-
type: "string",
|
|
61
|
-
description: "Filter by category (e.g. 'Apps', 'Builds')",
|
|
62
|
-
},
|
|
63
|
-
method: {
|
|
64
|
-
type: "string",
|
|
65
|
-
enum: ["GET", "POST", "PATCH", "DELETE"],
|
|
66
|
-
description: "Filter by HTTP method",
|
|
22
|
+
const server = new Server({ name: "appstore-connect-mcp", version: "1.0.0" }, { capabilities: { tools: {} } });
|
|
23
|
+
// ── Only register 4 tools ──────────────────────────────────────
|
|
24
|
+
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
25
|
+
return {
|
|
26
|
+
tools: [
|
|
27
|
+
{
|
|
28
|
+
name: "search_apis",
|
|
29
|
+
description: "Search App Store Connect API operations by keyword. " +
|
|
30
|
+
"Returns matching tool names, methods, paths, and categories. " +
|
|
31
|
+
"Use this first to find the right operation before calling call_api.",
|
|
32
|
+
inputSchema: {
|
|
33
|
+
type: "object",
|
|
34
|
+
properties: {
|
|
35
|
+
query: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Search keyword (e.g. 'app', 'build', 'subscription', 'review', 'beta tester')",
|
|
38
|
+
},
|
|
39
|
+
category: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "Filter by category. Use list_categories to see all options.",
|
|
42
|
+
},
|
|
43
|
+
method: {
|
|
44
|
+
type: "string",
|
|
45
|
+
enum: ["GET", "POST", "PATCH", "DELETE"],
|
|
46
|
+
description: "Filter by HTTP method",
|
|
47
|
+
},
|
|
67
48
|
},
|
|
49
|
+
required: ["query"],
|
|
68
50
|
},
|
|
69
|
-
required: ["query"],
|
|
70
51
|
},
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
52
|
+
{
|
|
53
|
+
name: "get_tool_details",
|
|
54
|
+
description: "Get full details of a specific API operation: all parameters, " +
|
|
55
|
+
"their types, descriptions, and required/optional status. " +
|
|
56
|
+
"Call this after search_apis to learn what arguments call_api needs.",
|
|
57
|
+
inputSchema: {
|
|
58
|
+
type: "object",
|
|
59
|
+
properties: {
|
|
60
|
+
name: {
|
|
61
|
+
type: "string",
|
|
62
|
+
description: "The tool name (operationId), e.g. 'apps_getCollection'",
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
required: ["name"],
|
|
66
|
+
},
|
|
77
67
|
},
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
68
|
+
{
|
|
69
|
+
name: "call_api",
|
|
70
|
+
description: "Execute any App Store Connect API operation. " +
|
|
71
|
+
"Use search_apis to find the operation name, then get_tool_details " +
|
|
72
|
+
"to see required parameters, then call_api to execute it.",
|
|
73
|
+
inputSchema: {
|
|
74
|
+
type: "object",
|
|
75
|
+
properties: {
|
|
76
|
+
name: {
|
|
77
|
+
type: "string",
|
|
78
|
+
description: "The operation name (from search_apis), e.g. 'apps_getCollection'",
|
|
79
|
+
},
|
|
80
|
+
arguments: {
|
|
81
|
+
type: "object",
|
|
82
|
+
description: "Arguments for the operation. " +
|
|
83
|
+
"Path params: e.g. {\"id\": \"123456\"}. " +
|
|
84
|
+
"Query params: e.g. {\"filter[name]\": \"MyApp\", \"limit\": 10}. " +
|
|
85
|
+
"For POST/PATCH: include \"_body\" with the JSON:API request body.",
|
|
86
|
+
additionalProperties: true,
|
|
87
|
+
},
|
|
87
88
|
},
|
|
89
|
+
required: ["name"],
|
|
88
90
|
},
|
|
89
|
-
required: ["name"],
|
|
90
91
|
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
92
|
+
{
|
|
93
|
+
name: "list_categories",
|
|
94
|
+
description: "List all API categories (resource groups) and total operation count.",
|
|
95
|
+
inputSchema: {
|
|
96
|
+
type: "object",
|
|
97
|
+
properties: {},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
],
|
|
96
101
|
};
|
|
97
102
|
});
|
|
98
103
|
// ── CallTool handler ───────────────────────────────────────────
|
|
@@ -102,7 +107,7 @@ export function createMcpServer(opts) {
|
|
|
102
107
|
if (verbose) {
|
|
103
108
|
console.error(`[appstore-connect-mcp] tool call: ${name}`);
|
|
104
109
|
}
|
|
105
|
-
// ──
|
|
110
|
+
// ── search_apis ──────────────────────────────────────────────
|
|
106
111
|
if (name === "search_apis") {
|
|
107
112
|
const query = String(toolArgs.query || "").toLowerCase();
|
|
108
113
|
const category = toolArgs.category;
|
|
@@ -136,21 +141,7 @@ export function createMcpServer(opts) {
|
|
|
136
141
|
],
|
|
137
142
|
};
|
|
138
143
|
}
|
|
139
|
-
|
|
140
|
-
return {
|
|
141
|
-
content: [
|
|
142
|
-
{
|
|
143
|
-
type: "text",
|
|
144
|
-
text: JSON.stringify({
|
|
145
|
-
apiVersion: toolsData.apiVersion,
|
|
146
|
-
totalTools: toolsData.stats.total,
|
|
147
|
-
totalCategories: toolsData.categories.length,
|
|
148
|
-
categories: toolsData.categories,
|
|
149
|
-
}, null, 2),
|
|
150
|
-
},
|
|
151
|
-
],
|
|
152
|
-
};
|
|
153
|
-
}
|
|
144
|
+
// ── get_tool_details ─────────────────────────────────────────
|
|
154
145
|
if (name === "get_tool_details") {
|
|
155
146
|
const toolName = String(toolArgs.name);
|
|
156
147
|
const tool = toolMap.get(toolName);
|
|
@@ -160,49 +151,113 @@ export function createMcpServer(opts) {
|
|
|
160
151
|
isError: true,
|
|
161
152
|
};
|
|
162
153
|
}
|
|
154
|
+
// Return tool def + computed input schema so LLM knows what to pass
|
|
163
155
|
return {
|
|
164
156
|
content: [
|
|
165
157
|
{
|
|
166
158
|
type: "text",
|
|
167
|
-
text: JSON.stringify(
|
|
159
|
+
text: JSON.stringify({
|
|
160
|
+
name: tool.name,
|
|
161
|
+
summary: tool.summary,
|
|
162
|
+
method: tool.method,
|
|
163
|
+
path: tool.path,
|
|
164
|
+
category: tool.category,
|
|
165
|
+
pathParams: tool.pathParams,
|
|
166
|
+
queryParams: tool.queryParams.map((p) => ({
|
|
167
|
+
name: p.name,
|
|
168
|
+
required: p.required,
|
|
169
|
+
description: p.description,
|
|
170
|
+
type: p.schema.type,
|
|
171
|
+
...(p.schema.items?.enum ? { enum: p.schema.items.enum } : {}),
|
|
172
|
+
...(p.schema.enum ? { enum: p.schema.enum } : {}),
|
|
173
|
+
})),
|
|
174
|
+
hasBody: tool.hasBody,
|
|
175
|
+
example: buildExample(tool),
|
|
176
|
+
}, null, 2),
|
|
168
177
|
},
|
|
169
178
|
],
|
|
170
179
|
};
|
|
171
180
|
}
|
|
172
|
-
// ──
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
181
|
+
// ── call_api ─────────────────────────────────────────────────
|
|
182
|
+
if (name === "call_api") {
|
|
183
|
+
const opName = String(toolArgs.name);
|
|
184
|
+
const opArgs = (toolArgs.arguments ?? {});
|
|
185
|
+
const tool = toolMap.get(opName);
|
|
186
|
+
if (!tool) {
|
|
187
|
+
return {
|
|
188
|
+
content: [
|
|
189
|
+
{
|
|
190
|
+
type: "text",
|
|
191
|
+
text: `Unknown operation: ${opName}. Use search_apis to find available operations.`,
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
isError: true,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
try {
|
|
198
|
+
const result = await executeTool(tool, opArgs, credentials);
|
|
199
|
+
const text = typeof result === "string" ? result : JSON.stringify(result, null, 2);
|
|
200
|
+
// Truncate large responses to protect LLM context
|
|
201
|
+
const MAX = 25000;
|
|
202
|
+
return {
|
|
203
|
+
content: [
|
|
204
|
+
{
|
|
205
|
+
type: "text",
|
|
206
|
+
text: text.length > MAX
|
|
207
|
+
? text.slice(0, MAX) +
|
|
208
|
+
`\n\n... (truncated, ${text.length - MAX} more bytes)`
|
|
209
|
+
: text,
|
|
210
|
+
},
|
|
211
|
+
],
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
catch (err) {
|
|
215
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
216
|
+
return {
|
|
217
|
+
content: [{ type: "text", text: `API Error: ${message}` }],
|
|
218
|
+
isError: true,
|
|
219
|
+
};
|
|
220
|
+
}
|
|
184
221
|
}
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
// Format response — ensure it's compact text for the LLM
|
|
188
|
-
const text = typeof result === "string" ? result : JSON.stringify(result, null, 2);
|
|
222
|
+
// ── list_categories ──────────────────────────────────────────
|
|
223
|
+
if (name === "list_categories") {
|
|
189
224
|
return {
|
|
190
225
|
content: [
|
|
191
226
|
{
|
|
192
227
|
type: "text",
|
|
193
|
-
text:
|
|
228
|
+
text: JSON.stringify({
|
|
229
|
+
apiVersion: toolsData.apiVersion,
|
|
230
|
+
totalTools: toolsData.stats.total,
|
|
231
|
+
totalCategories: toolsData.categories.length,
|
|
232
|
+
byMethod: toolsData.stats.by_method,
|
|
233
|
+
categories: toolsData.categories,
|
|
234
|
+
}, null, 2),
|
|
194
235
|
},
|
|
195
236
|
],
|
|
196
237
|
};
|
|
197
238
|
}
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
isError: true,
|
|
203
|
-
};
|
|
204
|
-
}
|
|
239
|
+
return {
|
|
240
|
+
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
241
|
+
isError: true,
|
|
242
|
+
};
|
|
205
243
|
});
|
|
206
244
|
return server;
|
|
207
245
|
}
|
|
246
|
+
/** Build a usage example for a tool to help the LLM call it correctly. */
|
|
247
|
+
function buildExample(tool) {
|
|
248
|
+
const example = {};
|
|
249
|
+
for (const p of tool.pathParams) {
|
|
250
|
+
example[p.name] = p.name === "id" ? "1234567890" : `<${p.name}>`;
|
|
251
|
+
}
|
|
252
|
+
if (tool.queryParams.length > 0) {
|
|
253
|
+
const first = tool.queryParams[0];
|
|
254
|
+
example[first.name] = first.schema.type === "array" ? ["value1"] : "value";
|
|
255
|
+
}
|
|
256
|
+
if (tool.hasBody) {
|
|
257
|
+
example["_body"] = {
|
|
258
|
+
data: { type: "resourceType", attributes: {} },
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
return example;
|
|
262
|
+
}
|
|
208
263
|
//# sourceMappingURL=server.js.map
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ggaiteam/appstore-connect-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "MCP server for the Apple App Store Connect API — exposes all 1200+ operations as MCP tools. Supports local (stdio) and remote (HTTP) deployment.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "appstore-connect-mcp contributors",
|