@mirrai/mcp-server 0.5.5 → 0.5.7
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/tool-contracts.d.ts +11 -0
- package/dist/tool-contracts.d.ts.map +1 -0
- package/dist/tool-contracts.js +334 -0
- package/dist/tool-contracts.js.map +1 -0
- package/dist/tools/analytics.d.ts.map +1 -1
- package/dist/tools/analytics.js +60 -20
- package/dist/tools/analytics.js.map +1 -1
- package/dist/tools/carousel.d.ts.map +1 -1
- package/dist/tools/carousel.js +135 -43
- package/dist/tools/carousel.js.map +1 -1
- package/dist/tools/publishing.d.ts.map +1 -1
- package/dist/tools/publishing.js +54 -37
- package/dist/tools/publishing.js.map +1 -1
- package/dist/tools/shorts.d.ts.map +1 -1
- package/dist/tools/shorts.js +23 -84
- package/dist/tools/shorts.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export type SharedToolCategory = 'publishing' | 'carousel' | 'shorts' | 'analytics' | 'social';
|
|
3
|
+
export interface SharedToolDefinition {
|
|
4
|
+
name: string;
|
|
5
|
+
description: string;
|
|
6
|
+
category: SharedToolCategory;
|
|
7
|
+
schema: z.AnyZodObject;
|
|
8
|
+
}
|
|
9
|
+
export declare const SHARED_TOOL_DEFINITIONS: SharedToolDefinition[];
|
|
10
|
+
export declare function getSharedToolDefinition(name: string): SharedToolDefinition;
|
|
11
|
+
//# sourceMappingURL=tool-contracts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-contracts.d.ts","sourceRoot":"","sources":["../src/tool-contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,MAAM,kBAAkB,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAA;AAE9F,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,MAAM,EAAE,CAAC,CAAC,YAAY,CAAA;CACvB;AAED,eAAO,MAAM,uBAAuB,EAAE,oBAAoB,EAqVzD,CAAA;AAMD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,wBAQnD"}
|
|
@@ -0,0 +1,334 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const SHARED_TOOL_DEFINITIONS = [
|
|
3
|
+
{
|
|
4
|
+
name: 'social_accounts_list',
|
|
5
|
+
description: 'List connected social media accounts. Returns account IDs needed for posting. Slim by default (id, username, platform, displayName); set verbose=true for full profile data like writingStyle.',
|
|
6
|
+
category: 'social',
|
|
7
|
+
schema: z.object({
|
|
8
|
+
verbose: z.preprocess((v) => (typeof v === 'string' ? v === 'true' : v), z.boolean().default(false)).describe('Return full profile (writingStyle, userPrompt, tokens). Default false returns only id/username/platform/displayName.'),
|
|
9
|
+
}),
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
name: 'post_create',
|
|
13
|
+
description: 'Create a new post draft. Supports text, images, and videos for any connected social platform.',
|
|
14
|
+
category: 'publishing',
|
|
15
|
+
schema: z.object({
|
|
16
|
+
content: z.string().describe('Post content text'),
|
|
17
|
+
socialAccountId: z.string().describe('Social account ID to post from'),
|
|
18
|
+
images: z.array(z.string()).optional().describe('Array of image URLs'),
|
|
19
|
+
videos: z.array(z.string()).optional().describe('Array of video URLs'),
|
|
20
|
+
carouselGenerationId: z.string().optional().describe('Carousel generation ID. If provided and images is empty, the carousel is auto-rendered and its image URLs are used — skips manual carousel_render_images call.'),
|
|
21
|
+
threadParts: z.array(z.object({
|
|
22
|
+
content: z.string().describe('Reply content for the next threaded post'),
|
|
23
|
+
images: z.array(z.string()).optional().describe('Optional image URLs for this reply'),
|
|
24
|
+
})).optional().describe('Thread reply parts for X or Threads posting order'),
|
|
25
|
+
scheduledAt: z.string().optional().describe('ISO 8601 datetime for scheduled publish'),
|
|
26
|
+
status: z.enum(['draft', 'scheduled']).optional().describe('Post status (default: draft)'),
|
|
27
|
+
origin: z.string().optional().describe('Content origin tracking (e.g., mcp, carousel_lab)'),
|
|
28
|
+
}),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
name: 'post_list',
|
|
32
|
+
description: 'List posts with optional filters. Supports filtering by status, account, and date range.',
|
|
33
|
+
category: 'publishing',
|
|
34
|
+
schema: z.object({
|
|
35
|
+
status: z.string().optional().describe('Comma-separated statuses: draft,scheduled,published,failed'),
|
|
36
|
+
socialAccountId: z.string().optional().describe('Filter by social account'),
|
|
37
|
+
limit: z.number().min(1).max(50).default(20).describe('Number of results'),
|
|
38
|
+
page: z.number().min(1).default(1).describe('Page number'),
|
|
39
|
+
orderBy: z.enum(['createdAt', 'scheduledAt', 'publishedAt']).default('createdAt').describe('Sort field'),
|
|
40
|
+
order: z.enum(['asc', 'desc']).default('desc').describe('Sort direction'),
|
|
41
|
+
}),
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'post_get',
|
|
45
|
+
description: 'Get full details of a specific post including engagement metrics.',
|
|
46
|
+
category: 'publishing',
|
|
47
|
+
schema: z.object({
|
|
48
|
+
postId: z.string().describe('Post ID'),
|
|
49
|
+
}),
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
name: 'post_publish_now',
|
|
53
|
+
description: 'Publish a post immediately to the connected social platform.',
|
|
54
|
+
category: 'publishing',
|
|
55
|
+
schema: z.object({
|
|
56
|
+
postId: z.string().describe('Post ID to publish'),
|
|
57
|
+
}),
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'post_schedule',
|
|
61
|
+
description: 'Schedule a post for future publishing.',
|
|
62
|
+
category: 'publishing',
|
|
63
|
+
schema: z.object({
|
|
64
|
+
postId: z.string().describe('Post ID to schedule'),
|
|
65
|
+
scheduledFor: z.string().describe('ISO 8601 datetime for scheduled publish (e.g., 2026-03-25T09:00:00Z)'),
|
|
66
|
+
scheduledAt: z.string().optional().describe('Deprecated alias for scheduledFor'),
|
|
67
|
+
}),
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
name: 'post_repost',
|
|
71
|
+
description: 'Repost an existing published post, optionally scheduled for later.',
|
|
72
|
+
category: 'publishing',
|
|
73
|
+
schema: z.object({
|
|
74
|
+
postId: z.string().describe('Post ID to repost'),
|
|
75
|
+
scheduledAt: z.string().optional().describe('ISO 8601 datetime for scheduled repost. If omitted, reposts immediately.'),
|
|
76
|
+
}),
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'carousel_generate',
|
|
80
|
+
description: 'Generate a carousel (card news) from a topic or content. Returns the generated pages with HTML.',
|
|
81
|
+
category: 'carousel',
|
|
82
|
+
schema: z.object({
|
|
83
|
+
content: z.string().describe('Topic or content to generate carousel from'),
|
|
84
|
+
aspectRatio: z.enum(['1:1', '4:5', '16:9', '9:16', '3:4']).default('1:1').describe('Aspect ratio'),
|
|
85
|
+
slideCount: z.number().min(2).max(15).default(5).describe('Number of slides'),
|
|
86
|
+
mode: z.enum(['follow', 'creative']).default('creative').describe('Generation mode: follow (structured) or creative (freeform)'),
|
|
87
|
+
presetId: z.string().optional().describe('Preset template ID. If omitted, auto-selected from system presets by keyword matching.'),
|
|
88
|
+
customPrompt: z.string().optional().describe('Additional instructions for generation'),
|
|
89
|
+
enableImageSearch: z.preprocess((v) => (typeof v === 'string' ? v === 'true' : v), z.boolean().default(true)).describe('Auto-search and insert images'),
|
|
90
|
+
}),
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
name: 'carousel_refine_page',
|
|
94
|
+
description: 'Refine a specific carousel page using AI instructions.',
|
|
95
|
+
category: 'carousel',
|
|
96
|
+
schema: z.object({
|
|
97
|
+
generationId: z.string().describe('Carousel generation ID'),
|
|
98
|
+
pageNumber: z.number().min(1).describe('Page number to refine (1-based)'),
|
|
99
|
+
prompt: z.string().describe('Refinement instructions for the page'),
|
|
100
|
+
aspectRatio: z.enum(['1:1', '4:5', '16:9', '9:16', '3:4']).default('1:1').describe('Aspect ratio'),
|
|
101
|
+
}),
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: 'carousel_get',
|
|
105
|
+
description: 'Get full details of a carousel generation including all pages.',
|
|
106
|
+
category: 'carousel',
|
|
107
|
+
schema: z.object({
|
|
108
|
+
generationId: z.string().describe('Carousel generation ID'),
|
|
109
|
+
includeHtml: z.preprocess((v) => (typeof v === 'string' ? v === 'true' : v), z.boolean().default(false)).describe('Include raw HTML in generatedPages. Default false replaces html with htmlLength.'),
|
|
110
|
+
}),
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
name: 'carousel_render_images',
|
|
114
|
+
description: 'Render carousel pages to images. Returns URLs of rendered images ready for publishing.',
|
|
115
|
+
category: 'carousel',
|
|
116
|
+
schema: z.object({
|
|
117
|
+
generationId: z.string().describe('Carousel generation ID'),
|
|
118
|
+
format: z.enum(['storage', 'pdf', 'zip']).default('storage').describe('Output format'),
|
|
119
|
+
}),
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: 'carousel_open_editor',
|
|
123
|
+
description: 'Get a URL to open the visual carousel editor in a browser for fine-tuning. Use after generation or refinement when the user wants pixel-level control.',
|
|
124
|
+
category: 'carousel',
|
|
125
|
+
schema: z.object({
|
|
126
|
+
generationId: z.string().describe('Carousel generation ID to edit'),
|
|
127
|
+
locale: z.string().default('en').describe('Editor UI language (en, ko, ja, etc.)'),
|
|
128
|
+
}),
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
name: 'carousel_list_presets',
|
|
132
|
+
description: 'List available carousel design presets (templates). Supports name search and limiting to avoid huge responses.',
|
|
133
|
+
category: 'carousel',
|
|
134
|
+
schema: z.object({
|
|
135
|
+
query: z.string().optional().describe('Case-insensitive substring match on preset name'),
|
|
136
|
+
systemOnly: z.preprocess((v) => (typeof v === 'string' ? v === 'true' : v), z.boolean().default(false)).describe('Only return system (official) presets'),
|
|
137
|
+
limit: z.number().min(1).max(100).default(30).describe('Max results (default 30)'),
|
|
138
|
+
}),
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
name: 'carousel_list',
|
|
142
|
+
description: 'List carousel generation history.',
|
|
143
|
+
category: 'carousel',
|
|
144
|
+
schema: z.object({
|
|
145
|
+
limit: z.number().min(1).max(50).default(20).describe('Number of results'),
|
|
146
|
+
offset: z.number().min(0).default(0).describe('Offset for pagination'),
|
|
147
|
+
includeHtml: z.preprocess((v) => (typeof v === 'string' ? v === 'true' : v), z.boolean().default(false)).describe('Include raw HTML in generatedPages. Default false strips html and returns htmlLength instead.'),
|
|
148
|
+
}),
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
name: 'carousel_delete',
|
|
152
|
+
description: 'Delete a carousel generation by ID.',
|
|
153
|
+
category: 'carousel',
|
|
154
|
+
schema: z.object({
|
|
155
|
+
generationId: z.string().describe('Carousel generation ID to delete'),
|
|
156
|
+
}),
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
name: 'shorts_list_voices',
|
|
160
|
+
description: 'List available TTS voices for shorts narration. Use to find voiceId for shorts_create.',
|
|
161
|
+
category: 'shorts',
|
|
162
|
+
schema: z.object({
|
|
163
|
+
language: z.string().default('ko').describe('Language code (ko, en, ja, etc.)'),
|
|
164
|
+
}),
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
name: 'shorts_create',
|
|
168
|
+
description: 'Create a new shorts video from a topic. Generates script and initializes scenes in one step. IMPORTANT: Before calling this tool, ask the user whether they want TTS narration included. If yes, use shorts_list_voices first to let them pick a voice. If no, omit voiceId/voiceProvider. After creation, use shorts_generate_scenes to generate all scenes. DEFAULT BEHAVIOR: Subtitles are ON by default during render. Use shorts_update_scenes to toggle per-scene settings before rendering.',
|
|
169
|
+
category: 'shorts',
|
|
170
|
+
schema: z.object({
|
|
171
|
+
topic: z.string().describe('Topic or idea for the short video'),
|
|
172
|
+
aspectRatio: z.enum(['9:16', '16:9', '1:1']).default('9:16').describe('Video aspect ratio'),
|
|
173
|
+
narrationLanguage: z.string().default('ko').describe('Language code for narration (en, ko, ja, etc.)'),
|
|
174
|
+
scriptStyle: z.object({
|
|
175
|
+
preset: z.string().optional().describe('Script style preset name'),
|
|
176
|
+
customExamples: z.array(z.string()).optional().describe('Custom style examples'),
|
|
177
|
+
}).optional().describe('Script style configuration'),
|
|
178
|
+
inputMode: z.enum(['topic', 'script']).default('topic').describe('Input mode: topic (generate from idea) or script (provide full script)'),
|
|
179
|
+
directScript: z.string().optional().describe('Full script text (required when inputMode is "script")'),
|
|
180
|
+
creativeDirection: z.string().optional().describe('Custom creative direction for visual style'),
|
|
181
|
+
voiceId: z.string().optional().describe('TTS voice ID'),
|
|
182
|
+
voiceProvider: z.enum(['inworld', 'fish-audio']).optional().describe('TTS provider'),
|
|
183
|
+
includeAutoImages: z.boolean().default(true).describe('Auto-search and include images'),
|
|
184
|
+
}),
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
name: 'shorts_regenerate_script',
|
|
188
|
+
description: 'Regenerate a shorts script with feedback. Use when the user wants to change the tone, style, or content direction.',
|
|
189
|
+
category: 'shorts',
|
|
190
|
+
schema: z.object({
|
|
191
|
+
topic: z.string().describe('Original topic'),
|
|
192
|
+
aspectRatio: z.enum(['9:16', '16:9', '1:1']).default('9:16').describe('Video aspect ratio'),
|
|
193
|
+
narrationLanguage: z.string().default('ko').describe('Language code'),
|
|
194
|
+
regenerateFeedback: z.string().describe('Feedback for regeneration (e.g., "make it more humorous", "shorter scenes", "more professional tone")'),
|
|
195
|
+
scriptStyle: z.object({
|
|
196
|
+
preset: z.string().optional(),
|
|
197
|
+
customExamples: z.array(z.string()).optional(),
|
|
198
|
+
}).optional().describe('Script style configuration'),
|
|
199
|
+
}),
|
|
200
|
+
},
|
|
201
|
+
{
|
|
202
|
+
name: 'shorts_generate_scenes',
|
|
203
|
+
description: 'Generate all scenes for a shorts video (TTS audio + visual code). Call after shorts_create. IMPORTANT: If the user has not confirmed TTS voice preference, ask before proceeding. Pass voiceId=null and voiceProvider=null to skip TTS narration entirely.',
|
|
204
|
+
category: 'shorts',
|
|
205
|
+
schema: z.object({
|
|
206
|
+
generationId: z.string().describe('Shorts generation ID from shorts_create'),
|
|
207
|
+
voiceId: z.string().nullable().describe('TTS voice ID'),
|
|
208
|
+
voiceProvider: z.string().nullable().describe('TTS provider (inworld, fish-audio)'),
|
|
209
|
+
}),
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
name: 'shorts_open_editor',
|
|
213
|
+
description: 'Get a URL to open the visual shorts editor in a browser. Use for previewing scenes, adjusting subtitles, and fine-tuning audio.',
|
|
214
|
+
category: 'shorts',
|
|
215
|
+
schema: z.object({
|
|
216
|
+
generationId: z.string().describe('Shorts generation ID'),
|
|
217
|
+
locale: z.string().default('en').describe('Editor UI language (en, ko, ja, etc.)'),
|
|
218
|
+
}),
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
name: 'shorts_render',
|
|
222
|
+
description: 'Start final video render. This is async - use shorts_check_status to monitor progress. Subtitles and TTS are enabled by default (reads per-scene DB flags set via shorts_update_scenes). Override globally with renderOptions, or per-scene with sceneRenderFlags.',
|
|
223
|
+
category: 'shorts',
|
|
224
|
+
schema: z.object({
|
|
225
|
+
generationId: z.string().describe('Shorts generation ID'),
|
|
226
|
+
bgmUrl: z.string().optional().describe('Background music URL'),
|
|
227
|
+
bgmVolume: z.number().min(0).max(1).default(0.3).describe('BGM volume (0-1)'),
|
|
228
|
+
sfxVolume: z.number().min(0).max(1).default(0.3).describe('SFX volume (0-1)'),
|
|
229
|
+
ttsVolume: z.number().min(0).max(1).default(1).describe('TTS volume (0-1)'),
|
|
230
|
+
subtitleStyle: z.object({
|
|
231
|
+
fontFamily: z.string().optional().describe('Font family (default: Noto Sans KR)'),
|
|
232
|
+
fontSize: z.number().optional().describe('Font size (default: 48)'),
|
|
233
|
+
textColor: z.string().optional().describe('Text color hex (default: #FFFFFF)'),
|
|
234
|
+
backgroundColor: z.string().optional().describe('Background color hex (default: #000000)'),
|
|
235
|
+
backgroundOpacity: z.number().optional().describe('Background opacity 0-1 (default: 0.7)'),
|
|
236
|
+
position: z.enum(['top', 'center', 'bottom']).optional().describe('Position (default: bottom)'),
|
|
237
|
+
}).optional().describe('Global subtitle style. If omitted, uses per-scene styles or built-in defaults.'),
|
|
238
|
+
renderOptions: z.object({
|
|
239
|
+
enableSubtitles: z.boolean().optional().describe('Global subtitle toggle (default: true)'),
|
|
240
|
+
enableTts: z.boolean().optional().describe('Global TTS toggle (default: true)'),
|
|
241
|
+
enableTitle: z.boolean().optional().describe('Global title toggle (default: false)'),
|
|
242
|
+
}).optional().describe('Global render options. Per-scene DB flags take priority.'),
|
|
243
|
+
}),
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
name: 'shorts_check_status',
|
|
247
|
+
description: 'Check the status of a shorts generation/render.',
|
|
248
|
+
category: 'shorts',
|
|
249
|
+
schema: z.object({
|
|
250
|
+
generationId: z.string().describe('Shorts generation ID'),
|
|
251
|
+
}),
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
name: 'shorts_list',
|
|
255
|
+
description: 'List shorts generation history.',
|
|
256
|
+
category: 'shorts',
|
|
257
|
+
schema: z.object({
|
|
258
|
+
limit: z.number().min(1).max(50).default(20).describe('Number of results'),
|
|
259
|
+
offset: z.number().min(0).default(0).describe('Offset for pagination'),
|
|
260
|
+
}),
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: 'shorts_update_scenes',
|
|
264
|
+
description: 'Batch update editor settings for one or more scenes in a single atomic operation. Supports: enableSubtitles, enableTts, enableTitle, subtitleStyle, titleStyle, ttsVolume, sfxVolume, trimStart, trimEnd. Pass a sparse scenes array where only the scenes you want to change have fields set. Example: to enable subtitles on all 9 scenes, pass an array of 9 objects each with { enableSubtitles: true }.',
|
|
265
|
+
category: 'shorts',
|
|
266
|
+
schema: z.object({
|
|
267
|
+
generationId: z.string().describe('Shorts generation ID'),
|
|
268
|
+
scenes: z.array(z.object({
|
|
269
|
+
enableSubtitles: z.boolean().optional().describe('Show/hide subtitles'),
|
|
270
|
+
enableTts: z.boolean().optional().describe('Enable/disable TTS narration'),
|
|
271
|
+
enableTitle: z.boolean().optional().describe('Show/hide title overlay'),
|
|
272
|
+
subtitleStyle: z.record(z.string(), z.unknown()).optional().describe('Subtitle style overrides'),
|
|
273
|
+
titleStyle: z.record(z.string(), z.unknown()).optional().describe('Title style overrides (can include text)'),
|
|
274
|
+
ttsVolume: z.number().min(0).max(1).optional().describe('TTS volume (0-1)'),
|
|
275
|
+
sfxVolume: z.number().min(0).max(1).optional().describe('SFX volume (0-1)'),
|
|
276
|
+
trimStart: z.number().optional().describe('Trim start time in seconds'),
|
|
277
|
+
trimEnd: z.number().optional().describe('Trim end time in seconds'),
|
|
278
|
+
})).describe('Array of per-scene setting updates, indexed by position (scene 0, scene 1, ...). Empty objects {} for scenes you do not want to change.'),
|
|
279
|
+
}),
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
name: 'shorts_get',
|
|
283
|
+
description: 'Get full details of a shorts generation including all scenes.',
|
|
284
|
+
category: 'shorts',
|
|
285
|
+
schema: z.object({
|
|
286
|
+
generationId: z.string().describe('Shorts generation ID'),
|
|
287
|
+
}),
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: 'analytics_posts_performance',
|
|
291
|
+
description: 'Get posts performance metrics with optional period comparison (views, likes, replies, reposts, etc.). Default response is slim — use summaryOnly=false, detailLevel=full to get raw data.',
|
|
292
|
+
category: 'analytics',
|
|
293
|
+
schema: z.object({
|
|
294
|
+
startDate: z.string().describe('Start date (YYYY-MM-DD)'),
|
|
295
|
+
endDate: z.string().describe('End date (YYYY-MM-DD)'),
|
|
296
|
+
accountId: z.string().optional().describe('Filter by social account ID'),
|
|
297
|
+
compareMode: z.enum(['none', 'previous', 'yoy', 'mom', 'wow', 'custom']).optional().describe('Comparison period type (default: none)'),
|
|
298
|
+
summaryOnly: z.preprocess((v) => (typeof v === 'string' ? v === 'true' : v), z.boolean().default(true)).describe('Return only top-line metrics (follower count, engagement rate, post count). Default true.'),
|
|
299
|
+
limit: z.number().min(1).max(50).default(10).describe('Max number of individual posts to return (default 10, max 50). Ignored when summaryOnly=true.'),
|
|
300
|
+
detailLevel: z.enum(['minimal', 'standard', 'full']).default('minimal').describe('minimal=postId+first80chars+core metrics; standard=adds hashtags/platform breakdown; full=all raw fields including timeseries. Default minimal.'),
|
|
301
|
+
}),
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
name: 'analytics_account_insights',
|
|
305
|
+
description: 'Get account-level insights including demographics, follower count, and engagement metrics.',
|
|
306
|
+
category: 'analytics',
|
|
307
|
+
schema: z.object({
|
|
308
|
+
accountId: z.string().describe('Social account ID'),
|
|
309
|
+
startDate: z.string().describe('Start date (YYYY-MM-DD)'),
|
|
310
|
+
endDate: z.string().describe('End date (YYYY-MM-DD)'),
|
|
311
|
+
}),
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
name: 'analytics_chat',
|
|
315
|
+
description: 'Ask AI-powered questions about your social media analytics. Uses LLM to analyze your data and provide insights.',
|
|
316
|
+
category: 'analytics',
|
|
317
|
+
schema: z.object({
|
|
318
|
+
question: z.string().describe('Question about your analytics (e.g., "What was my best performing post this week?")'),
|
|
319
|
+
startDate: z.string().describe('Start date (YYYY-MM-DD)'),
|
|
320
|
+
endDate: z.string().describe('End date (YYYY-MM-DD)'),
|
|
321
|
+
accountId: z.string().optional().describe('Focus on specific account ID'),
|
|
322
|
+
conversationId: z.string().optional().describe('Conversation ID for follow-up questions'),
|
|
323
|
+
}),
|
|
324
|
+
},
|
|
325
|
+
];
|
|
326
|
+
const SHARED_TOOL_DEFINITION_MAP = new Map(SHARED_TOOL_DEFINITIONS.map((definition) => [definition.name, definition]));
|
|
327
|
+
export function getSharedToolDefinition(name) {
|
|
328
|
+
const definition = SHARED_TOOL_DEFINITION_MAP.get(name);
|
|
329
|
+
if (!definition) {
|
|
330
|
+
throw new Error(`Unknown shared tool definition: ${name}`);
|
|
331
|
+
}
|
|
332
|
+
return definition;
|
|
333
|
+
}
|
|
334
|
+
//# sourceMappingURL=tool-contracts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-contracts.js","sourceRoot":"","sources":["../src/tool-contracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAG7D,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,cAAc,QAsJpB"}
|
package/dist/tools/analytics.js
CHANGED
|
@@ -3,15 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Core tools for social media performance data and AI-powered analytics.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { getSharedToolDefinition } from '../tool-contracts.js';
|
|
7
7
|
export function registerAnalyticsTools(server, api) {
|
|
8
|
+
const analyticsPostsPerformanceTool = getSharedToolDefinition('analytics_posts_performance');
|
|
9
|
+
const analyticsAccountInsightsTool = getSharedToolDefinition('analytics_account_insights');
|
|
10
|
+
const analyticsChatTool = getSharedToolDefinition('analytics_chat');
|
|
8
11
|
// 1. Posts performance
|
|
9
|
-
server.tool('analytics_posts_performance',
|
|
10
|
-
startDate: z.string().describe('Start date (YYYY-MM-DD)'),
|
|
11
|
-
endDate: z.string().describe('End date (YYYY-MM-DD)'),
|
|
12
|
-
accountId: z.string().optional().describe('Filter by social account ID'),
|
|
13
|
-
compareMode: z.enum(['none', 'previous', 'yoy', 'mom', 'wow', 'custom']).optional().describe('Comparison period type (default: none)'),
|
|
14
|
-
}, async (params) => {
|
|
12
|
+
server.tool('analytics_posts_performance', analyticsPostsPerformanceTool.description, analyticsPostsPerformanceTool.schema.shape, async (params) => {
|
|
15
13
|
try {
|
|
16
14
|
const result = await api.get('/api/v1/analytics/posts-performance', {
|
|
17
15
|
startDate: params.startDate,
|
|
@@ -19,10 +17,62 @@ export function registerAnalyticsTools(server, api) {
|
|
|
19
17
|
accountId: params.accountId,
|
|
20
18
|
compareMode: params.compareMode,
|
|
21
19
|
});
|
|
20
|
+
// summaryOnly=true (default): top-line metrics only
|
|
21
|
+
if (params.summaryOnly) {
|
|
22
|
+
const raw = result;
|
|
23
|
+
const summary = (raw.summary ?? raw.data ?? raw);
|
|
24
|
+
return {
|
|
25
|
+
content: [{
|
|
26
|
+
type: 'text',
|
|
27
|
+
text: JSON.stringify({
|
|
28
|
+
summary: {
|
|
29
|
+
followersCount: summary.followersCount ?? null,
|
|
30
|
+
engagementRate: summary.avgEngagementRate ?? summary.engagementRate ?? null,
|
|
31
|
+
postCount: summary.postCount ?? (Array.isArray((raw.posts ?? raw.data)) ? raw.posts.length : null),
|
|
32
|
+
totalViews: summary.totalViews ?? null,
|
|
33
|
+
totalLikes: summary.totalLikes ?? null,
|
|
34
|
+
totalReplies: summary.totalReplies ?? null,
|
|
35
|
+
totalReposts: summary.totalReposts ?? null,
|
|
36
|
+
},
|
|
37
|
+
hint: 'summaryOnly=true. Pass summaryOnly=false with detailLevel=minimal|standard|full for post-level data.',
|
|
38
|
+
}, null, 2),
|
|
39
|
+
}],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// summaryOnly=false: return per-post data with detailLevel control
|
|
43
|
+
const raw = result;
|
|
44
|
+
const allPosts = (Array.isArray(raw.posts) ? raw.posts : Array.isArray(raw.data) ? raw.data : []);
|
|
45
|
+
const limited = allPosts.slice(0, params.limit);
|
|
46
|
+
const shapedPosts = limited.map((post) => {
|
|
47
|
+
const contentStr = typeof post.content === 'string' ? post.content : '';
|
|
48
|
+
if (params.detailLevel === 'minimal') {
|
|
49
|
+
return {
|
|
50
|
+
id: post.id,
|
|
51
|
+
content: contentStr.slice(0, 80),
|
|
52
|
+
views: post.views ?? null,
|
|
53
|
+
likes: post.likes ?? null,
|
|
54
|
+
replies: post.replies ?? null,
|
|
55
|
+
reposts: post.reposts ?? null,
|
|
56
|
+
publishedAt: post.publishedAt ?? null,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
if (params.detailLevel === 'standard') {
|
|
60
|
+
// Omit large raw insight blobs, timeseries
|
|
61
|
+
const { rawInsights: _ri, timeseries: _ts, insightTimeseries: _its, ...rest } = post;
|
|
62
|
+
return { ...rest, content: contentStr.slice(0, 80) };
|
|
63
|
+
}
|
|
64
|
+
// full: return everything
|
|
65
|
+
return post;
|
|
66
|
+
});
|
|
22
67
|
return {
|
|
23
68
|
content: [{
|
|
24
69
|
type: 'text',
|
|
25
|
-
text: JSON.stringify(
|
|
70
|
+
text: JSON.stringify({
|
|
71
|
+
summary: raw.summary ?? null,
|
|
72
|
+
postCount: allPosts.length,
|
|
73
|
+
returned: shapedPosts.length,
|
|
74
|
+
posts: shapedPosts,
|
|
75
|
+
}, null, 2),
|
|
26
76
|
}],
|
|
27
77
|
};
|
|
28
78
|
}
|
|
@@ -34,11 +84,7 @@ export function registerAnalyticsTools(server, api) {
|
|
|
34
84
|
}
|
|
35
85
|
});
|
|
36
86
|
// 2. Account insights
|
|
37
|
-
server.tool('analytics_account_insights',
|
|
38
|
-
accountId: z.string().describe('Social account ID'),
|
|
39
|
-
startDate: z.string().describe('Start date (YYYY-MM-DD)'),
|
|
40
|
-
endDate: z.string().describe('End date (YYYY-MM-DD)'),
|
|
41
|
-
}, async (params) => {
|
|
87
|
+
server.tool('analytics_account_insights', analyticsAccountInsightsTool.description, analyticsAccountInsightsTool.schema.shape, async (params) => {
|
|
42
88
|
try {
|
|
43
89
|
const result = await api.get('/api/v1/analytics/account-insights', { accountId: params.accountId, startDate: params.startDate, endDate: params.endDate });
|
|
44
90
|
return {
|
|
@@ -56,13 +102,7 @@ export function registerAnalyticsTools(server, api) {
|
|
|
56
102
|
}
|
|
57
103
|
});
|
|
58
104
|
// 3. AI analytics chat
|
|
59
|
-
server.tool('analytics_chat',
|
|
60
|
-
question: z.string().describe('Question about your analytics (e.g., "What was my best performing post this week?")'),
|
|
61
|
-
startDate: z.string().describe('Start date (YYYY-MM-DD)'),
|
|
62
|
-
endDate: z.string().describe('End date (YYYY-MM-DD)'),
|
|
63
|
-
accountId: z.string().optional().describe('Focus on specific account ID'),
|
|
64
|
-
conversationId: z.string().optional().describe('Conversation ID for follow-up questions'),
|
|
65
|
-
}, async (params) => {
|
|
105
|
+
server.tool('analytics_chat', analyticsChatTool.description, analyticsChatTool.schema.shape, async (params) => {
|
|
66
106
|
try {
|
|
67
107
|
const result = await api.post('/api/v1/analytics/chat', {
|
|
68
108
|
question: params.question,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/tools/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/tools/carousel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"carousel.d.ts","sourceRoot":"","sources":["../../src/tools/carousel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAIxD,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,GAAG,EAAE,cAAc,EACnB,GAAG,EAAE,SAAS,QA4Yf"}
|