mcp-server-autoshorts 2.1.0 → 2.3.0

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.
Files changed (55) hide show
  1. package/README.md +87 -16
  2. package/dist/catalog.d.ts +1 -1
  3. package/dist/catalog.d.ts.map +1 -1
  4. package/dist/catalog.js +1 -0
  5. package/dist/catalog.js.map +1 -1
  6. package/dist/client.d.ts +2 -97
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +2 -150
  9. package/dist/client.js.map +1 -1
  10. package/dist/constants.d.ts +8 -4
  11. package/dist/constants.d.ts.map +1 -1
  12. package/dist/constants.js +8 -3
  13. package/dist/constants.js.map +1 -1
  14. package/dist/index.js +15 -16
  15. package/dist/index.js.map +1 -1
  16. package/dist/prompts/generate-video.d.ts.map +1 -1
  17. package/dist/prompts/generate-video.js +8 -2
  18. package/dist/prompts/generate-video.js.map +1 -1
  19. package/dist/proxy.d.ts +75 -0
  20. package/dist/proxy.d.ts.map +1 -0
  21. package/dist/proxy.js +162 -0
  22. package/dist/proxy.js.map +1 -0
  23. package/package.json +4 -2
  24. package/dist/prompts/clone-viral.d.ts +0 -6
  25. package/dist/prompts/clone-viral.d.ts.map +0 -1
  26. package/dist/prompts/clone-viral.js +0 -33
  27. package/dist/prompts/clone-viral.js.map +0 -1
  28. package/dist/tool-helpers.d.ts +0 -21
  29. package/dist/tool-helpers.d.ts.map +0 -1
  30. package/dist/tool-helpers.js +0 -27
  31. package/dist/tool-helpers.js.map +0 -1
  32. package/dist/tools/billing.d.ts +0 -7
  33. package/dist/tools/billing.d.ts.map +0 -1
  34. package/dist/tools/billing.js +0 -8
  35. package/dist/tools/billing.js.map +0 -1
  36. package/dist/tools/credits.d.ts +0 -7
  37. package/dist/tools/credits.d.ts.map +0 -1
  38. package/dist/tools/credits.js +0 -8
  39. package/dist/tools/credits.js.map +0 -1
  40. package/dist/tools/keys.d.ts +0 -8
  41. package/dist/tools/keys.d.ts.map +0 -1
  42. package/dist/tools/keys.js +0 -9
  43. package/dist/tools/keys.js.map +0 -1
  44. package/dist/tools/niches.d.ts +0 -7
  45. package/dist/tools/niches.d.ts.map +0 -1
  46. package/dist/tools/niches.js +0 -8
  47. package/dist/tools/niches.js.map +0 -1
  48. package/dist/tools/usage.d.ts +0 -7
  49. package/dist/tools/usage.d.ts.map +0 -1
  50. package/dist/tools/usage.js +0 -8
  51. package/dist/tools/usage.js.map +0 -1
  52. package/dist/tools/videos.d.ts +0 -7
  53. package/dist/tools/videos.d.ts.map +0 -1
  54. package/dist/tools/videos.js +0 -75
  55. package/dist/tools/videos.js.map +0 -1
@@ -11,7 +11,11 @@ export function registerGenerateVideoPrompt(server) {
11
11
  type: 'text',
12
12
  text: `Help me generate an AI video with AutoShort.${topic ? ` Topic: "${topic}"` : ''}
13
13
 
14
- Steps:
14
+ If I already have a script or specific shots in mind, use director mode instead: agree the scenes with me,
15
+ call autoshort_draft_video with scenes[] (free, narration read verbatim), show me the draft, and only call
16
+ autoshort_render_draft after I approve.
17
+
18
+ Steps for a quick video from a topic:
15
19
  1. First, check my credit balance with autoshort_get_credit_balance
16
20
  2. List available options with autoshort_list_niches (niches, art styles, qualities)
17
21
  3. Generate the video with autoshort_generate_video using:
@@ -21,7 +25,9 @@ Steps:
21
25
  - artStyle: AUTOSHORTS (default cinematic style)
22
26
  4. Poll autoshort_get_video every 20-30 seconds until status is COMPLETED or FAILED.
23
27
  If it returns blockedReason (e.g. INSUFFICIENT_CREDITS), stop polling and tell the user what it says.
24
- 5. Share the video URL when done
28
+ 5. Share the video URL when done.
29
+ 6. If I want it posted: autoshort_publish_video (YouTube upload or TikTok Drafts). If the platform is not connected,
30
+ give me the connectUrl from autoshort_get_connection_status and poll that tool until it says connected.
25
31
 
26
32
  Credit costs: autoshort_generate_video: ${API_VIDEO_COST_TEXT} Chat videos: ${CREDIT_COSTS.videoStandard} credits with the default voice, +${CREDIT_COSTS.elevenLabsVoice} with ElevenLabs.
27
33
  If autoshort_get_credit_balance returns 403 INSUFFICIENT_SCOPE, the API key lacks "credits:read": the error says where to create a key that has it.`,
@@ -1 +1 @@
1
- {"version":3,"file":"generate-video.js","sourceRoot":"","sources":["../../src/prompts/generate-video.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,2DAA2D,EAC3D,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC,EAAE,EACjG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+CAA+C,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;cAMlF,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB;;;;;;;;0CAQX,mBAAmB,iBAAiB,YAAY,CAAC,aAAa,qCAAqC,YAAY,CAAC,eAAe;oJACrB;iBAC3I;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"generate-video.js","sourceRoot":"","sources":["../../src/prompts/generate-video.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElE,MAAM,UAAU,2BAA2B,CAAC,MAAiB;IAC3D,MAAM,CAAC,MAAM,CACX,gBAAgB,EAChB,2DAA2D,EAC3D,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC,EAAE,EACjG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,+CAA+C,KAAK,CAAC,CAAC,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE;;;;;;;;;;cAUlF,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,gBAAgB;;;;;;;;;;0CAUX,mBAAmB,iBAAiB,YAAY,CAAC,aAAa,qCAAqC,YAAY,CAAC,eAAe;oJACrB;iBAC3I;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * The stdio server's tools are the REMOTE server's tools.
3
+ *
4
+ * tools/list and tools/call are forwarded to `${baseUrl}/api/mcp` (JSON-RPC over HTTP) with the
5
+ * user's API key, so this package and the remote connector expose exactly the same tool names,
6
+ * descriptions and schemas — one registry, in the app (src/app/api/mcp/tools.ts). Before this,
7
+ * the package defined its own 12 tools and the remote server 5 differently named ones, and an
8
+ * agent saw different tools depending on how it connected.
9
+ *
10
+ * The one thing a remote server cannot do is read the user's disk, so image-to-video keeps a
11
+ * local convenience: `imagePath` is read here and sent as `imageBase64`.
12
+ *
13
+ * Auth and money are enforced by the server on every call (401 without a valid key, 402 before
14
+ * any paid work); nothing here can bypass them.
15
+ */
16
+ export declare const IMAGE_TO_VIDEO_TOOL = "autoshort_generate_image_to_video";
17
+ export declare const UPLOAD_RECORDING_TOOL = "autoshort_ugc_upload_recording";
18
+ /** The largest image /api/videos/image-to-video accepts (IMAGE_TO_VIDEO_MAX_IMAGE_BYTES there). */
19
+ export declare const MAX_IMAGE_BYTES: number;
20
+ /**
21
+ * The largest recording this package sends inline (MAX_RECORDING_INLINE_BYTES on the server: the
22
+ * /api/mcp body cap leaves room for 10 MB as base64). Larger files (up to 50 MB) go by recordingUrl.
23
+ */
24
+ export declare const MAX_RECORDING_BYTES: number;
25
+ export interface RemoteTool {
26
+ name: string;
27
+ description?: string;
28
+ inputSchema: {
29
+ type: 'object';
30
+ properties?: Record<string, unknown>;
31
+ required?: string[];
32
+ [k: string]: unknown;
33
+ };
34
+ annotations?: Record<string, unknown>;
35
+ }
36
+ export interface ToolCallResult {
37
+ content: Array<{
38
+ type: 'text';
39
+ text: string;
40
+ }>;
41
+ isError?: boolean;
42
+ [k: string]: unknown;
43
+ }
44
+ type FetchLike = (input: string, init: {
45
+ method: string;
46
+ headers: Record<string, string>;
47
+ body: string;
48
+ }) => Promise<{
49
+ ok: boolean;
50
+ status: number;
51
+ json: () => Promise<unknown>;
52
+ }>;
53
+ export declare class RemoteError extends Error {
54
+ readonly status: number;
55
+ constructor(message: string, status: number);
56
+ }
57
+ /**
58
+ * The remote schema, plus the stdio-only local-file alternatives: `imagePath` for image-to-video
59
+ * and `recordingPath` for the UGC screen recording (read here, sent as base64).
60
+ */
61
+ export declare function localizeTool(tool: RemoteTool): RemoteTool;
62
+ export declare class RemoteToolProxy {
63
+ private readonly apiKey;
64
+ private readonly baseUrl;
65
+ private readonly fetchImpl;
66
+ private readonly readLocalFile;
67
+ private readonly localFileSize;
68
+ private nextId;
69
+ constructor(apiKey: string, baseUrl: string, fetchImpl?: FetchLike, readLocalFile?: (path: string) => Promise<Uint8Array>, localFileSize?: (path: string) => Promise<number>);
70
+ private rpc;
71
+ listTools(): Promise<RemoteTool[]>;
72
+ callTool(name: string, rawArgs?: Record<string, unknown>): Promise<ToolCallResult>;
73
+ }
74
+ export {};
75
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH,eAAO,MAAM,mBAAmB,sCAAsC,CAAC;AACvE,eAAO,MAAM,qBAAqB,mCAAmC,CAAC;AAEtE,mGAAmG;AACnG,eAAO,MAAM,eAAe,QAAmB,CAAC;AAEhD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,QAAmB,CAAC;AAEpD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE;QAAE,IAAI,EAAE,QAAQ,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACjH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,KAAK,SAAS,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,OAAO,CAAC;IACnH,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CAC9B,CAAC,CAAC;AAEH,qBAAa,WAAY,SAAQ,KAAK;aACS,MAAM,EAAE,MAAM;gBAA/C,OAAO,EAAE,MAAM,EAAkB,MAAM,EAAE,MAAM;CAI5D;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CA0BzD;AAID,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAPhC,OAAO,CAAC,MAAM,CAAK;gBAGA,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,SAAS,GAAE,SAAyC,EACpD,aAAa,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,UAAU,CAAY,EAC/D,aAAa,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAqC;YAGzF,GAAG;IA2BX,SAAS,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;IAKlC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CA6C7F"}
package/dist/proxy.js ADDED
@@ -0,0 +1,162 @@
1
+ /**
2
+ * The stdio server's tools are the REMOTE server's tools.
3
+ *
4
+ * tools/list and tools/call are forwarded to `${baseUrl}/api/mcp` (JSON-RPC over HTTP) with the
5
+ * user's API key, so this package and the remote connector expose exactly the same tool names,
6
+ * descriptions and schemas — one registry, in the app (src/app/api/mcp/tools.ts). Before this,
7
+ * the package defined its own 12 tools and the remote server 5 differently named ones, and an
8
+ * agent saw different tools depending on how it connected.
9
+ *
10
+ * The one thing a remote server cannot do is read the user's disk, so image-to-video keeps a
11
+ * local convenience: `imagePath` is read here and sent as `imageBase64`.
12
+ *
13
+ * Auth and money are enforced by the server on every call (401 without a valid key, 402 before
14
+ * any paid work); nothing here can bypass them.
15
+ */
16
+ import { readFile, stat } from 'node:fs/promises';
17
+ import { basename } from 'node:path';
18
+ import { USER_AGENT } from './constants.js';
19
+ export const IMAGE_TO_VIDEO_TOOL = 'autoshort_generate_image_to_video';
20
+ export const UPLOAD_RECORDING_TOOL = 'autoshort_ugc_upload_recording';
21
+ /** The largest image /api/videos/image-to-video accepts (IMAGE_TO_VIDEO_MAX_IMAGE_BYTES there). */
22
+ export const MAX_IMAGE_BYTES = 10 * 1024 * 1024;
23
+ /**
24
+ * The largest recording this package sends inline (MAX_RECORDING_INLINE_BYTES on the server: the
25
+ * /api/mcp body cap leaves room for 10 MB as base64). Larger files (up to 50 MB) go by recordingUrl.
26
+ */
27
+ export const MAX_RECORDING_BYTES = 10 * 1024 * 1024;
28
+ export class RemoteError extends Error {
29
+ status;
30
+ constructor(message, status) {
31
+ super(message);
32
+ this.status = status;
33
+ this.name = 'RemoteError';
34
+ }
35
+ }
36
+ /**
37
+ * The remote schema, plus the stdio-only local-file alternatives: `imagePath` for image-to-video
38
+ * and `recordingPath` for the UGC screen recording (read here, sent as base64).
39
+ */
40
+ export function localizeTool(tool) {
41
+ if (tool.name === IMAGE_TO_VIDEO_TOOL) {
42
+ const properties = { ...(tool.inputSchema.properties ?? {}) };
43
+ properties.imagePath = {
44
+ type: 'string',
45
+ description: 'Absolute path to a local JPG, PNG or WebP file up to 10MB (read and uploaded by this local server). Use instead of imageBase64.',
46
+ };
47
+ return {
48
+ ...tool,
49
+ inputSchema: {
50
+ ...tool.inputSchema,
51
+ properties,
52
+ // Either imagePath or imageBase64 — the server checks that an image arrived.
53
+ required: (tool.inputSchema.required ?? []).filter((r) => r !== 'imageBase64'),
54
+ },
55
+ };
56
+ }
57
+ if (tool.name === UPLOAD_RECORDING_TOOL) {
58
+ const properties = { ...(tool.inputSchema.properties ?? {}) };
59
+ properties.recordingPath = {
60
+ type: 'string',
61
+ description: 'Absolute path to a local MP4/MOV screen recording up to 10MB (read and uploaded by this local server). Larger files: pass recordingUrl.',
62
+ };
63
+ return { ...tool, inputSchema: { ...tool.inputSchema, properties } };
64
+ }
65
+ return tool;
66
+ }
67
+ const mb = (n) => (n / (1024 * 1024)).toFixed(1);
68
+ export class RemoteToolProxy {
69
+ apiKey;
70
+ baseUrl;
71
+ fetchImpl;
72
+ readLocalFile;
73
+ localFileSize;
74
+ nextId = 1;
75
+ constructor(apiKey, baseUrl, fetchImpl = fetch, readLocalFile = readFile, localFileSize = async (p) => (await stat(p)).size) {
76
+ this.apiKey = apiKey;
77
+ this.baseUrl = baseUrl;
78
+ this.fetchImpl = fetchImpl;
79
+ this.readLocalFile = readLocalFile;
80
+ this.localFileSize = localFileSize;
81
+ }
82
+ async rpc(method, params) {
83
+ const res = await this.fetchImpl(`${this.baseUrl.replace(/\/+$/, '')}/api/mcp`, {
84
+ method: 'POST',
85
+ headers: {
86
+ Authorization: `Bearer ${this.apiKey}`,
87
+ 'Content-Type': 'application/json',
88
+ Accept: 'application/json',
89
+ 'User-Agent': USER_AGENT,
90
+ },
91
+ body: JSON.stringify({ jsonrpc: '2.0', id: this.nextId++, method, ...(params ? { params } : {}) }),
92
+ });
93
+ let body = {};
94
+ try {
95
+ body = (await res.json());
96
+ }
97
+ catch {
98
+ /* non-JSON */
99
+ }
100
+ if (!res.ok) {
101
+ const message = typeof body.error === 'string' ? body.error : body.error?.message;
102
+ throw new RemoteError(message || `AutoShort returned HTTP ${res.status}`, res.status);
103
+ }
104
+ if (body.error) {
105
+ throw new RemoteError(typeof body.error === 'string' ? body.error : body.error.message || 'AutoShort error', res.status);
106
+ }
107
+ return body.result;
108
+ }
109
+ async listTools() {
110
+ const result = await this.rpc('tools/list');
111
+ return (result?.tools ?? []).map(localizeTool);
112
+ }
113
+ async callTool(name, rawArgs = {}) {
114
+ try {
115
+ const args = { ...rawArgs };
116
+ if (name === UPLOAD_RECORDING_TOOL && typeof args.recordingPath === 'string' && args.recordingPath) {
117
+ const size = await this.localFileSize(args.recordingPath);
118
+ if (size > MAX_RECORDING_BYTES) {
119
+ return {
120
+ content: [{
121
+ type: 'text',
122
+ text: `Error: ${args.recordingPath} is ${mb(size)} MB; a local file can be sent up to ${mb(MAX_RECORDING_BYTES)} MB. Upload it somewhere public and pass recordingUrl instead (up to 50 MB). Nothing was uploaded.`,
123
+ }],
124
+ isError: true,
125
+ };
126
+ }
127
+ const bytes = await this.readLocalFile(args.recordingPath);
128
+ args.recordingBase64 = Buffer.from(bytes).toString('base64');
129
+ if (!args.fileName)
130
+ args.fileName = basename(args.recordingPath);
131
+ delete args.recordingPath;
132
+ }
133
+ if (name === IMAGE_TO_VIDEO_TOOL && typeof args.imagePath === 'string' && args.imagePath) {
134
+ // Checked before reading: a 2GB file must not be loaded into memory and base64'd only
135
+ // for the server to refuse it.
136
+ const size = await this.localFileSize(args.imagePath);
137
+ if (size > MAX_IMAGE_BYTES) {
138
+ return {
139
+ content: [{
140
+ type: 'text',
141
+ text: `Error: ${args.imagePath} is ${mb(size)} MB; AutoShort accepts images up to ${mb(MAX_IMAGE_BYTES)} MB. Nothing was uploaded or charged.`,
142
+ }],
143
+ isError: true,
144
+ };
145
+ }
146
+ const bytes = await this.readLocalFile(args.imagePath);
147
+ args.imageBase64 = Buffer.from(bytes).toString('base64');
148
+ if (!args.imageFileName)
149
+ args.imageFileName = basename(args.imagePath);
150
+ delete args.imagePath;
151
+ }
152
+ return await this.rpc('tools/call', { name, arguments: args });
153
+ }
154
+ catch (e) {
155
+ const msg = e instanceof RemoteError
156
+ ? `Error ${e.status}: ${e.message}`
157
+ : `Error: ${e instanceof Error ? e.message : String(e)}`;
158
+ return { content: [{ type: 'text', text: msg }], isError: true };
159
+ }
160
+ }
161
+ }
162
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "mcp-server-autoshorts",
3
- "version": "2.1.0",
3
+ "version": "2.3.0",
4
4
  "description": "MCP server for AutoShort.org \u2014 AI video generation via Claude, Cursor, and other MCP clients",
5
+ "mcpName": "org.autoshort/autoshort",
5
6
  "type": "module",
6
7
  "main": "dist/index.js",
7
8
  "bin": {
@@ -44,5 +45,6 @@
44
45
  "dist",
45
46
  "README.md",
46
47
  "LICENSE"
47
- ]
48
+ ],
49
+ "homepage": "https://autoshort.org/en/developers"
48
50
  }
@@ -1,6 +0,0 @@
1
- /**
2
- * Viral video cloning prompt template
3
- */
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- export declare function registerCloneViralPrompt(server: McpServer): void;
6
- //# sourceMappingURL=clone-viral.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clone-viral.d.ts","sourceRoot":"","sources":["../../src/prompts/clone-viral.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAGpE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,QAgCzD"}
@@ -1,33 +0,0 @@
1
- /**
2
- * Viral video cloning prompt template
3
- */
4
- import { z } from 'zod';
5
- export function registerCloneViralPrompt(server) {
6
- server.prompt('clone_viral_video', 'Clone a viral video concept with AI-generated content', { topic: z.string().describe('Viral video topic or concept to clone') }, ({ topic }) => ({
7
- messages: [{
8
- role: 'user',
9
- content: {
10
- type: 'text',
11
- text: `Help me clone a viral video concept about "${topic}" using AutoShort.
12
-
13
- Steps:
14
- 1. Check credit balance with autoshort_get_credit_balance
15
- 2. List available niches with autoshort_list_niches
16
- 3. Pick the best niche that matches "${topic}"
17
- 4. Generate the video with autoshort_generate_video:
18
- - topic: A compelling hook based on "${topic}"
19
- - niche: Best matching niche
20
- - duration: 30 (short-form viral content)
21
- - artStyle: AUTOSHORTS (professional cinematic)
22
- 5. Monitor with autoshort_get_video until COMPLETED
23
- 6. Share the result
24
-
25
- Tips for viral content:
26
- - Start with a strong hook in the first 3 seconds
27
- - Keep it under 60 seconds for maximum engagement
28
- - Use trending niches (MOTIVATIONAL, AI_FACTS, PSYCHOLOGY_FACTS)`,
29
- },
30
- }],
31
- }));
32
- }
33
- //# sourceMappingURL=clone-viral.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"clone-viral.js","sourceRoot":"","sources":["../../src/prompts/clone-viral.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,UAAU,wBAAwB,CAAC,MAAiB;IACxD,MAAM,CAAC,MAAM,CACX,mBAAmB,EACnB,uDAAuD,EACvD,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC,EAAE,EACvE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC;gBACT,IAAI,EAAE,MAAe;gBACrB,OAAO,EAAE;oBACP,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,8CAA8C,KAAK;;;;;uCAK5B,KAAK;;0CAEF,KAAK;;;;;;;;;;iEAUkB;iBACxD;aACF,CAAC;KACH,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Shared helpers for MCP tool handlers
3
- */
4
- /** Tool result content type */
5
- type ToolResult = {
6
- content: Array<{
7
- type: 'text';
8
- text: string;
9
- }>;
10
- isError?: boolean;
11
- };
12
- /**
13
- * Wrap a tool handler with error boundary.
14
- * Returns structured error text with status code for AutoShortApiError,
15
- * or generic error message for unexpected errors.
16
- */
17
- export declare function withErrorBoundary<T>(fn: (params: T) => Promise<ToolResult>): (params: T) => Promise<ToolResult>;
18
- /** Format API response as JSON text content */
19
- export declare function jsonResult(data: unknown): ToolResult;
20
- export {};
21
- //# sourceMappingURL=tool-helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-helpers.d.ts","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,+BAA+B;AAC/B,KAAK,UAAU,GAAG;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAExF;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,GACrC,CAAC,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,CAWpC;AAED,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,CAEpD"}
@@ -1,27 +0,0 @@
1
- /**
2
- * Shared helpers for MCP tool handlers
3
- */
4
- import { AutoShortApiError } from './client.js';
5
- /**
6
- * Wrap a tool handler with error boundary.
7
- * Returns structured error text with status code for AutoShortApiError,
8
- * or generic error message for unexpected errors.
9
- */
10
- export function withErrorBoundary(fn) {
11
- return async (params) => {
12
- try {
13
- return await fn(params);
14
- }
15
- catch (e) {
16
- const msg = e instanceof AutoShortApiError
17
- ? `Error ${e.status} (${e.code}): ${e.message}`
18
- : `Error: ${e instanceof Error ? e.message : String(e)}`;
19
- return { content: [{ type: 'text', text: msg }], isError: true };
20
- }
21
- };
22
- }
23
- /** Format API response as JSON text content */
24
- export function jsonResult(data) {
25
- return { content: [{ type: 'text', text: JSON.stringify(data, null, 2) }] };
26
- }
27
- //# sourceMappingURL=tool-helpers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-helpers.js","sourceRoot":"","sources":["../src/tool-helpers.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAKhD;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAC/B,EAAsC;IAEtC,OAAO,KAAK,EAAE,MAAS,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC;QAC1B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,GAAG,GAAG,CAAC,YAAY,iBAAiB;gBACxC,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,OAAO,EAAE;gBAC/C,CAAC,CAAC,UAAU,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AACvF,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Billing MCP tool: subscription status
3
- */
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { AutoShortClient } from '../client.js';
6
- export declare function registerBillingTools(server: McpServer, client: AutoShortClient): void;
7
- //# sourceMappingURL=billing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAO9E"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Billing MCP tool: subscription status
3
- */
4
- import { withErrorBoundary, jsonResult } from '../tool-helpers.js';
5
- export function registerBillingTools(server, client) {
6
- server.tool('autoshort_get_subscription', 'Check your subscription plan, status, video limits, and credit allocation.', {}, withErrorBoundary(async () => jsonResult(await client.getSubscription())));
7
- }
8
- //# sourceMappingURL=billing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../src/tools/billing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,UAAU,oBAAoB,CAAC,MAAiB,EAAE,MAAuB;IAC7E,MAAM,CAAC,IAAI,CACT,4BAA4B,EAC5B,4EAA4E,EAC5E,EAAE,EACF,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC,CAAC,CAC1E,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Credits MCP tool: check credit balance
3
- */
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { AutoShortClient } from '../client.js';
6
- export declare function registerCreditTools(server: McpServer, client: AutoShortClient): void;
7
- //# sourceMappingURL=credits.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credits.d.ts","sourceRoot":"","sources":["../../src/tools/credits.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAO7E"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Credits MCP tool: check credit balance
3
- */
4
- import { withErrorBoundary, jsonResult } from '../tool-helpers.js';
5
- export function registerCreditTools(server, client) {
6
- server.tool('autoshort_get_credit_balance', 'Check your current credit balance, monthly allocation, bonus credits, and plan tier.', {}, withErrorBoundary(async () => jsonResult(await client.getCreditBalance())));
7
- }
8
- //# sourceMappingURL=credits.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"credits.js","sourceRoot":"","sources":["../../src/tools/credits.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAuB;IAC5E,MAAM,CAAC,IAAI,CACT,8BAA8B,EAC9B,sFAAsF,EACtF,EAAE,EACF,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * API Keys MCP tool: list keys
3
- * Note: Only key prefixes are returned, never full API key secrets.
4
- */
5
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
6
- import type { AutoShortClient } from '../client.js';
7
- export declare function registerKeyTools(server: McpServer, client: AutoShortClient): void;
8
- //# sourceMappingURL=keys.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../../src/tools/keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAO1E"}
@@ -1,9 +0,0 @@
1
- /**
2
- * API Keys MCP tool: list keys
3
- * Note: Only key prefixes are returned, never full API key secrets.
4
- */
5
- import { withErrorBoundary, jsonResult } from '../tool-helpers.js';
6
- export function registerKeyTools(server, client) {
7
- server.tool('autoshort_list_api_keys', 'List your API keys with prefix, scopes, rate limits, and usage stats. Note: only key prefixes shown, never full secrets.', {}, withErrorBoundary(async () => jsonResult(await client.listApiKeys())));
8
- }
9
- //# sourceMappingURL=keys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../../src/tools/keys.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,UAAU,gBAAgB,CAAC,MAAiB,EAAE,MAAuB;IACzE,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,0HAA0H,EAC1H,EAAE,EACF,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CACtE,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Niches MCP tool: list available video niches, art styles, qualities
3
- */
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { AutoShortClient } from '../client.js';
6
- export declare function registerNicheTools(server: McpServer, client: AutoShortClient): void;
7
- //# sourceMappingURL=niches.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"niches.d.ts","sourceRoot":"","sources":["../../src/tools/niches.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAO5E"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Niches MCP tool: list available video niches, art styles, qualities
3
- */
4
- import { withErrorBoundary, jsonResult } from '../tool-helpers.js';
5
- export function registerNicheTools(server, client) {
6
- server.tool('autoshort_list_niches', 'List available video niches, art styles, video qualities, and duration options for video generation.', {}, withErrorBoundary(async () => jsonResult(await client.listNiches())));
7
- }
8
- //# sourceMappingURL=niches.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"niches.js","sourceRoot":"","sources":["../../src/tools/niches.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAuB;IAC3E,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,sGAAsG,EACtG,EAAE,EACF,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CACrE,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Usage MCP tool: get usage statistics
3
- */
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { AutoShortClient } from '../client.js';
6
- export declare function registerUsageTools(server: McpServer, client: AutoShortClient): void;
7
- //# sourceMappingURL=usage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/tools/usage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAGpD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAO5E"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Usage MCP tool: get usage statistics
3
- */
4
- import { withErrorBoundary, jsonResult } from '../tool-helpers.js';
5
- export function registerUsageTools(server, client) {
6
- server.tool('autoshort_get_usage_stats', 'Get API usage statistics: credit balance, API call counts (today/total), and recent credit transactions.', {}, withErrorBoundary(async () => jsonResult(await client.getUsageStats())));
7
- }
8
- //# sourceMappingURL=usage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/tools/usage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEnE,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,MAAuB;IAC3E,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,0GAA0G,EAC1G,EAAE,EACF,iBAAiB,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,MAAM,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,CACxE,CAAC;AACJ,CAAC"}
@@ -1,7 +0,0 @@
1
- /**
2
- * Video MCP tools: generate, get status, list videos
3
- */
4
- import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { AutoShortClient } from '../client.js';
6
- export declare function registerVideoTools(server: McpServer, client: AutoShortClient): void;
7
- //# sourceMappingURL=videos.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"videos.d.ts","sourceRoot":"","sources":["../../src/tools/videos.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAepD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QA8G5E"}