posterly-mcp-server 0.40.1 → 0.43.1
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/README.md +3 -2
- package/dist/index.js +10 -0
- package/dist/lib/api-client.d.ts +46 -10
- package/dist/lib/api-client.js +12 -0
- package/dist/lib/version.d.ts +1 -1
- package/dist/lib/version.js +1 -1
- package/dist/tools/add-google-business-media.d.ts +2 -2
- package/dist/tools/create-post.d.ts +436 -0
- package/dist/tools/create-post.js +8 -0
- package/dist/tools/create-posts-batch.d.ts +164 -0
- package/dist/tools/generate-image.d.ts +12 -4
- package/dist/tools/generate-image.js +22 -17
- package/dist/tools/get-image-job.d.ts +24 -0
- package/dist/tools/get-image-job.js +31 -0
- package/dist/tools/update-post.d.ts +196 -0
- package/dist/tools/update-post.js +9 -1
- package/dist/tools/validate-post.d.ts +240 -0
- package/package.json +1 -1
- package/server.json +2 -2
- package/src/index.ts +16 -0
- package/src/lib/api-client.ts +45 -6
- package/src/lib/version.ts +1 -1
- package/src/tools/create-post.ts +9 -0
- package/src/tools/generate-image.ts +25 -21
- package/src/tools/get-image-job.ts +36 -0
- package/src/tools/update-post.ts +10 -1
- package/tool-annotations.json +3 -0
package/README.md
CHANGED
|
@@ -122,7 +122,7 @@ Add the same server definition to your Cursor MCP settings:
|
|
|
122
122
|
|
|
123
123
|
## Available tools
|
|
124
124
|
|
|
125
|
-
`posterly-mcp-server@0.
|
|
125
|
+
`posterly-mcp-server@0.43.1` exposes 90 tools.
|
|
126
126
|
|
|
127
127
|
Public setup tools work before `POSTERLY_API_KEY` exists:
|
|
128
128
|
|
|
@@ -180,7 +180,8 @@ Authenticated tools require `POSTERLY_API_KEY`:
|
|
|
180
180
|
- `list_media`
|
|
181
181
|
- `find_available_slot`
|
|
182
182
|
- `generate_captions`
|
|
183
|
-
- `generate_image`
|
|
183
|
+
- `generate_image` (queues a Railway job; Gemini thinking_level / quality high, resolution up to 4K, optional reference_image_urls)
|
|
184
|
+
- `get_image_job` (poll one job or list recent image jobs)
|
|
184
185
|
- `get_video_options`
|
|
185
186
|
- `run_video_function` (read-only Veo helpers for cost estimation and request validation)
|
|
186
187
|
- `generate_video` (queues a cost-guarded Veo video job)
|
package/dist/index.js
CHANGED
|
@@ -38,6 +38,7 @@ import { deletePostGroupTool } from './tools/delete-post-group.js';
|
|
|
38
38
|
import { whoamiTool } from './tools/whoami.js';
|
|
39
39
|
import { generateCaptionsTool } from './tools/generate-captions.js';
|
|
40
40
|
import { generateImageTool } from './tools/generate-image.js';
|
|
41
|
+
import { getImageJobTool } from './tools/get-image-job.js';
|
|
41
42
|
import { getVideoOptionsTool } from './tools/get-video-options.js';
|
|
42
43
|
import { runVideoFunctionTool } from './tools/run-video-function.js';
|
|
43
44
|
import { generateVideoTool } from './tools/generate-video.js';
|
|
@@ -576,6 +577,15 @@ server.tool(generateImageTool.name, generateImageTool.description, generateImage
|
|
|
576
577
|
return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
|
|
577
578
|
}
|
|
578
579
|
});
|
|
580
|
+
server.tool(getImageJobTool.name, getImageJobTool.description, getImageJobTool.inputSchema.shape, getToolAnnotations(getImageJobTool.name), async (input) => {
|
|
581
|
+
try {
|
|
582
|
+
const text = await getImageJobTool.execute(client, input);
|
|
583
|
+
return { content: [{ type: 'text', text }] };
|
|
584
|
+
}
|
|
585
|
+
catch (err) {
|
|
586
|
+
return { content: [{ type: 'text', text: `Error: ${err.message}` }], isError: true };
|
|
587
|
+
}
|
|
588
|
+
});
|
|
579
589
|
server.tool(getPostTool.name, getPostTool.description, getPostTool.inputSchema.shape, getToolAnnotations(getPostTool.name), async (input) => {
|
|
580
590
|
try {
|
|
581
591
|
const text = await getPostTool.execute(client, input);
|
package/dist/lib/api-client.d.ts
CHANGED
|
@@ -162,6 +162,12 @@ export interface InstagramPostSettings {
|
|
|
162
162
|
}>;
|
|
163
163
|
first_comment?: string;
|
|
164
164
|
media_alt_texts?: Record<string, string>;
|
|
165
|
+
media_accessibility?: Array<{
|
|
166
|
+
index: number;
|
|
167
|
+
asset_id?: string;
|
|
168
|
+
source_url?: string;
|
|
169
|
+
alt_text: string;
|
|
170
|
+
}>;
|
|
165
171
|
reel_cover_url?: string;
|
|
166
172
|
reel_thumb_offset?: number;
|
|
167
173
|
}
|
|
@@ -855,6 +861,28 @@ export interface PublicSignupResponse {
|
|
|
855
861
|
export interface PublicSignupSessionResponse {
|
|
856
862
|
signup_session: PublicSignupSession;
|
|
857
863
|
}
|
|
864
|
+
export interface ImageJob {
|
|
865
|
+
id: string;
|
|
866
|
+
status: string;
|
|
867
|
+
provider: 'google' | 'xai';
|
|
868
|
+
prompt: string;
|
|
869
|
+
model: string;
|
|
870
|
+
resolution: string;
|
|
871
|
+
quality?: string | null;
|
|
872
|
+
thinking_level?: string | null;
|
|
873
|
+
variations: number;
|
|
874
|
+
urls: string[];
|
|
875
|
+
images: Array<{
|
|
876
|
+
url: string;
|
|
877
|
+
filename?: string;
|
|
878
|
+
path?: string;
|
|
879
|
+
}>;
|
|
880
|
+
error_message?: string | null;
|
|
881
|
+
credit_cost: number;
|
|
882
|
+
created_at: string;
|
|
883
|
+
started_at?: string | null;
|
|
884
|
+
completed_at?: string | null;
|
|
885
|
+
}
|
|
858
886
|
export interface VideoJob {
|
|
859
887
|
id: string;
|
|
860
888
|
status: string;
|
|
@@ -1065,24 +1093,24 @@ export declare class PosterlyClient {
|
|
|
1065
1093
|
provider?: 'google' | 'xai';
|
|
1066
1094
|
model?: 'lite' | 'flash' | 'pro';
|
|
1067
1095
|
resolution?: '512' | '1K' | '2K' | '4K';
|
|
1068
|
-
quality?: 'low' | 'medium';
|
|
1096
|
+
quality?: 'low' | 'medium' | 'high';
|
|
1097
|
+
thinking_level?: 'minimal' | 'high';
|
|
1098
|
+
reference_image_urls?: string[];
|
|
1069
1099
|
}): Promise<{
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
filename: string;
|
|
1074
|
-
path: string;
|
|
1075
|
-
}>;
|
|
1100
|
+
job_id: string;
|
|
1101
|
+
status: string;
|
|
1102
|
+
message?: string;
|
|
1076
1103
|
model: string;
|
|
1077
1104
|
provider: 'google' | 'xai';
|
|
1105
|
+
resolution?: string;
|
|
1106
|
+
thinking_level?: 'minimal' | 'high' | null;
|
|
1078
1107
|
credits_used: number;
|
|
1079
|
-
|
|
1080
|
-
usage: {
|
|
1108
|
+
usage?: {
|
|
1081
1109
|
used: number | null;
|
|
1082
1110
|
limit: number | null;
|
|
1083
1111
|
period: string | null;
|
|
1084
1112
|
tier: string | null;
|
|
1085
|
-
billed_from:
|
|
1113
|
+
billed_from: string;
|
|
1086
1114
|
};
|
|
1087
1115
|
}>;
|
|
1088
1116
|
getVideoOptions(): Promise<Record<string, any>>;
|
|
@@ -1116,6 +1144,14 @@ export declare class PosterlyClient {
|
|
|
1116
1144
|
job?: VideoJob;
|
|
1117
1145
|
jobs?: VideoJob[];
|
|
1118
1146
|
}>;
|
|
1147
|
+
getImageJob(params?: {
|
|
1148
|
+
job_id?: string;
|
|
1149
|
+
status?: string;
|
|
1150
|
+
limit?: number;
|
|
1151
|
+
}): Promise<{
|
|
1152
|
+
job?: ImageJob;
|
|
1153
|
+
jobs?: ImageJob[];
|
|
1154
|
+
}>;
|
|
1119
1155
|
findAvailableSlots(params?: {
|
|
1120
1156
|
account_ids?: string[];
|
|
1121
1157
|
timezone?: string;
|
package/dist/lib/api-client.js
CHANGED
|
@@ -326,6 +326,18 @@ export class PosterlyClient {
|
|
|
326
326
|
const qs = searchParams.toString();
|
|
327
327
|
return this.request('GET', `/ai/video-jobs${qs ? `?${qs}` : ''}`);
|
|
328
328
|
}
|
|
329
|
+
async getImageJob(params) {
|
|
330
|
+
if (params?.job_id) {
|
|
331
|
+
return this.request('GET', `/ai/image-jobs/${encodeURIComponent(params.job_id)}`);
|
|
332
|
+
}
|
|
333
|
+
const searchParams = new URLSearchParams();
|
|
334
|
+
if (params?.status)
|
|
335
|
+
searchParams.set('status', params.status);
|
|
336
|
+
if (params?.limit)
|
|
337
|
+
searchParams.set('limit', String(params.limit));
|
|
338
|
+
const qs = searchParams.toString();
|
|
339
|
+
return this.request('GET', `/ai/image-jobs${qs ? `?${qs}` : ''}`);
|
|
340
|
+
}
|
|
329
341
|
async findAvailableSlots(params) {
|
|
330
342
|
const searchParams = new URLSearchParams();
|
|
331
343
|
if (params?.account_ids?.length)
|
package/dist/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const POSTERLY_MCP_VERSION = "0.
|
|
1
|
+
export declare const POSTERLY_MCP_VERSION = "0.43.1";
|
package/dist/lib/version.js
CHANGED
|
@@ -5,4 +5,4 @@
|
|
|
5
5
|
// tool set (minus the intentional pre-auth signup tools that only this stdio
|
|
6
6
|
// package exposes). `npm run check:mcp-parity` enforces both the version match
|
|
7
7
|
// and the tool-list match, and runs in the pre-commit hook.
|
|
8
|
-
export const POSTERLY_MCP_VERSION = '0.
|
|
8
|
+
export const POSTERLY_MCP_VERSION = '0.43.1';
|
|
@@ -14,16 +14,16 @@ export declare const addGoogleBusinessMediaTool: {
|
|
|
14
14
|
confirm: z.ZodLiteral<true>;
|
|
15
15
|
}, "strip", z.ZodTypeAny, {
|
|
16
16
|
confirm: true;
|
|
17
|
-
category: "COVER" | "PROFILE" | "LOGO" | "EXTERIOR" | "INTERIOR" | "PRODUCT" | "AT_WORK" | "FOOD_AND_DRINK" | "MENU" | "COMMON_AREA" | "ROOMS" | "TEAMS" | "ADDITIONAL";
|
|
18
17
|
source_url: string;
|
|
18
|
+
category: "COVER" | "PROFILE" | "LOGO" | "EXTERIOR" | "INTERIOR" | "PRODUCT" | "AT_WORK" | "FOOD_AND_DRINK" | "MENU" | "COMMON_AREA" | "ROOMS" | "TEAMS" | "ADDITIONAL";
|
|
19
19
|
workspace_id?: string | undefined;
|
|
20
20
|
account_id?: number | undefined;
|
|
21
21
|
location_id?: string | undefined;
|
|
22
22
|
media_format?: "PHOTO" | "VIDEO" | undefined;
|
|
23
23
|
}, {
|
|
24
24
|
confirm: true;
|
|
25
|
-
category: "COVER" | "PROFILE" | "LOGO" | "EXTERIOR" | "INTERIOR" | "PRODUCT" | "AT_WORK" | "FOOD_AND_DRINK" | "MENU" | "COMMON_AREA" | "ROOMS" | "TEAMS" | "ADDITIONAL";
|
|
26
25
|
source_url: string;
|
|
26
|
+
category: "COVER" | "PROFILE" | "LOGO" | "EXTERIOR" | "INTERIOR" | "PRODUCT" | "AT_WORK" | "FOOD_AND_DRINK" | "MENU" | "COMMON_AREA" | "ROOMS" | "TEAMS" | "ADDITIONAL";
|
|
27
27
|
workspace_id?: string | undefined;
|
|
28
28
|
account_id?: number | undefined;
|
|
29
29
|
location_id?: string | undefined;
|