creator-mcp 1.0.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 (61) hide show
  1. package/dist/auth.d.ts +14 -0
  2. package/dist/auth.d.ts.map +1 -0
  3. package/dist/auth.js +79 -0
  4. package/dist/auth.js.map +1 -0
  5. package/dist/client.d.ts +23 -0
  6. package/dist/client.d.ts.map +1 -0
  7. package/dist/client.js +56 -0
  8. package/dist/client.js.map +1 -0
  9. package/dist/index.d.ts +12 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +72 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/prompts.d.ts +7 -0
  14. package/dist/prompts.d.ts.map +1 -0
  15. package/dist/prompts.js +262 -0
  16. package/dist/prompts.js.map +1 -0
  17. package/dist/resources.d.ts +7 -0
  18. package/dist/resources.d.ts.map +1 -0
  19. package/dist/resources.js +171 -0
  20. package/dist/resources.js.map +1 -0
  21. package/dist/tools/admin.d.ts +8 -0
  22. package/dist/tools/admin.d.ts.map +1 -0
  23. package/dist/tools/admin.js +66 -0
  24. package/dist/tools/admin.js.map +1 -0
  25. package/dist/tools/ai.d.ts +7 -0
  26. package/dist/tools/ai.d.ts.map +1 -0
  27. package/dist/tools/ai.js +93 -0
  28. package/dist/tools/ai.js.map +1 -0
  29. package/dist/tools/analytics.d.ts +7 -0
  30. package/dist/tools/analytics.d.ts.map +1 -0
  31. package/dist/tools/analytics.js +70 -0
  32. package/dist/tools/analytics.js.map +1 -0
  33. package/dist/tools/billing.d.ts +7 -0
  34. package/dist/tools/billing.d.ts.map +1 -0
  35. package/dist/tools/billing.js +89 -0
  36. package/dist/tools/billing.js.map +1 -0
  37. package/dist/tools/deals.d.ts +7 -0
  38. package/dist/tools/deals.d.ts.map +1 -0
  39. package/dist/tools/deals.js +218 -0
  40. package/dist/tools/deals.js.map +1 -0
  41. package/dist/tools/pipeline.d.ts +7 -0
  42. package/dist/tools/pipeline.d.ts.map +1 -0
  43. package/dist/tools/pipeline.js +225 -0
  44. package/dist/tools/pipeline.js.map +1 -0
  45. package/dist/tools/pitch.d.ts +7 -0
  46. package/dist/tools/pitch.d.ts.map +1 -0
  47. package/dist/tools/pitch.js +115 -0
  48. package/dist/tools/pitch.js.map +1 -0
  49. package/dist/tools/social.d.ts +7 -0
  50. package/dist/tools/social.d.ts.map +1 -0
  51. package/dist/tools/social.js +94 -0
  52. package/dist/tools/social.js.map +1 -0
  53. package/dist/tools/support.d.ts +7 -0
  54. package/dist/tools/support.d.ts.map +1 -0
  55. package/dist/tools/support.js +172 -0
  56. package/dist/tools/support.js.map +1 -0
  57. package/dist/types.d.ts +110 -0
  58. package/dist/types.d.ts.map +1 -0
  59. package/dist/types.js +5 -0
  60. package/dist/types.js.map +1 -0
  61. package/package.json +47 -0
@@ -0,0 +1,218 @@
1
+ /**
2
+ * Deal management MCP tools.
3
+ * Covers: deals CRUD, deliverables, coupons, brand proposals, integrations.
4
+ */
5
+ import { z } from "zod";
6
+ import { authenticate } from "../auth.js";
7
+ import { createUserClient, invokeEdgeFunction } from "../client.js";
8
+ export function registerDealTools(server) {
9
+ // ── List deals ────────────────────────────────────────────────────
10
+ server.tool("list_deals", "List brand deals, optionally filtered by status or platform", {
11
+ status: z
12
+ .enum(["lead", "negotiation", "active", "completed", "cancelled"])
13
+ .optional()
14
+ .describe("Filter by deal status"),
15
+ platform: z
16
+ .enum(["youtube", "instagram", "tiktok", "twitter", "twitch", "other"])
17
+ .optional()
18
+ .describe("Filter by target platform"),
19
+ limit: z.number().min(1).max(100).default(20).describe("Max deals to return"),
20
+ }, async ({ status, platform, limit }) => {
21
+ const { token } = await authenticate();
22
+ const client = createUserClient(token);
23
+ let query = client
24
+ .from("deals")
25
+ .select("*")
26
+ .order("updated_at", { ascending: false })
27
+ .limit(limit);
28
+ if (status)
29
+ query = query.eq("status", status);
30
+ if (platform)
31
+ query = query.eq("target_platform", platform);
32
+ const { data, error } = await query;
33
+ if (error) {
34
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
35
+ }
36
+ return {
37
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
38
+ };
39
+ });
40
+ // ── Get deal detail ───────────────────────────────────────────────
41
+ server.tool("get_deal", "Get details of a specific deal including deliverables and activities", {
42
+ dealId: z.string().uuid().describe("Deal ID"),
43
+ }, async ({ dealId }) => {
44
+ const { token } = await authenticate();
45
+ const client = createUserClient(token);
46
+ const [dealRes, deliverablesRes, activitiesRes] = await Promise.all([
47
+ client.from("deals").select("*").eq("id", dealId).maybeSingle(),
48
+ client
49
+ .from("deal_deliverables")
50
+ .select("*")
51
+ .eq("deal_id", dealId)
52
+ .order("due_date", { ascending: true }),
53
+ client
54
+ .from("deal_activities")
55
+ .select("*")
56
+ .eq("deal_id", dealId)
57
+ .order("created_at", { ascending: false })
58
+ .limit(20),
59
+ ]);
60
+ if (dealRes.error) {
61
+ return { content: [{ type: "text", text: `Error: ${dealRes.error.message}` }], isError: true };
62
+ }
63
+ if (!dealRes.data) {
64
+ return { content: [{ type: "text", text: "Deal not found" }], isError: true };
65
+ }
66
+ return {
67
+ content: [
68
+ {
69
+ type: "text",
70
+ text: JSON.stringify({
71
+ deal: dealRes.data,
72
+ deliverables: deliverablesRes.data ?? [],
73
+ recent_activities: activitiesRes.data ?? [],
74
+ }, null, 2),
75
+ },
76
+ ],
77
+ };
78
+ });
79
+ // ── Create deal ───────────────────────────────────────────────────
80
+ server.tool("create_deal", "Create a new brand deal", {
81
+ brand_name: z.string().min(1).max(200).describe("Brand name (required)"),
82
+ status: z
83
+ .enum(["lead", "negotiation", "active", "completed", "cancelled"])
84
+ .default("lead")
85
+ .describe("Deal status"),
86
+ deal_value: z.number().optional().describe("Deal value"),
87
+ currency: z.string().max(3).default("USD").describe("Currency code"),
88
+ target_platform: z
89
+ .enum(["youtube", "instagram", "tiktok", "twitter", "twitch", "other"])
90
+ .optional()
91
+ .describe("Target platform"),
92
+ deadline: z.string().optional().describe("Deadline (ISO date)"),
93
+ brand_contact_email: z
94
+ .string()
95
+ .email()
96
+ .optional()
97
+ .describe("Brand contact email"),
98
+ notes: z.string().max(5000).optional().describe("Deal notes"),
99
+ }, async (args) => {
100
+ const { token, userId } = await authenticate();
101
+ const client = createUserClient(token);
102
+ const { data, error } = await client
103
+ .from("deals")
104
+ .insert({ ...args, user_id: userId })
105
+ .select()
106
+ .single();
107
+ if (error) {
108
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
109
+ }
110
+ return {
111
+ content: [
112
+ { type: "text", text: `Deal created successfully.\n${JSON.stringify(data, null, 2)}` },
113
+ ],
114
+ };
115
+ });
116
+ // ── Update deal ───────────────────────────────────────────────────
117
+ server.tool("update_deal", "Update an existing deal's fields", {
118
+ dealId: z.string().uuid().describe("Deal ID"),
119
+ brand_name: z.string().max(200).optional().describe("Brand name"),
120
+ status: z
121
+ .enum(["lead", "negotiation", "active", "completed", "cancelled"])
122
+ .optional()
123
+ .describe("Deal status"),
124
+ deal_value: z.number().optional().describe("Deal value"),
125
+ currency: z.string().max(3).optional().describe("Currency code"),
126
+ target_platform: z
127
+ .enum(["youtube", "instagram", "tiktok", "twitter", "twitch", "other"])
128
+ .optional()
129
+ .describe("Target platform"),
130
+ deadline: z.string().optional().describe("Deadline (ISO date)"),
131
+ brand_contact_email: z.string().email().optional().describe("Brand contact email"),
132
+ notes: z.string().max(5000).optional().describe("Deal notes"),
133
+ }, async ({ dealId, ...updates }) => {
134
+ const { token } = await authenticate();
135
+ const client = createUserClient(token);
136
+ const payload = {};
137
+ for (const [k, v] of Object.entries(updates)) {
138
+ if (v !== undefined)
139
+ payload[k] = v;
140
+ }
141
+ const { data, error } = await client
142
+ .from("deals")
143
+ .update(payload)
144
+ .eq("id", dealId)
145
+ .select()
146
+ .maybeSingle();
147
+ if (error) {
148
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
149
+ }
150
+ return {
151
+ content: [
152
+ { type: "text", text: `Deal updated.\n${JSON.stringify(data, null, 2)}` },
153
+ ],
154
+ };
155
+ });
156
+ // ── Export deals to Google Sheets ──────────────────────────────────
157
+ server.tool("export_deals_to_sheets", "Export deals to a Google Sheets spreadsheet via connected integration", {
158
+ dealIds: z
159
+ .array(z.string().uuid())
160
+ .optional()
161
+ .describe("Specific deal IDs to export (omit for all)"),
162
+ }, async (args) => {
163
+ const { token } = await authenticate();
164
+ const data = await invokeEdgeFunction(token, "deal-integrations", {
165
+ action: "export",
166
+ ...args,
167
+ });
168
+ return {
169
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
170
+ };
171
+ });
172
+ // ── Generate coupon message ───────────────────────────────────────
173
+ server.tool("generate_coupon_message", "Generate a promotional coupon message for a deal", {
174
+ dealId: z.string().uuid().describe("Deal ID"),
175
+ couponCode: z.string().optional().describe("Coupon code to include"),
176
+ tone: z.string().optional().describe("Message tone (e.g. 'casual', 'professional')"),
177
+ }, async (args) => {
178
+ const { token } = await authenticate();
179
+ const data = await invokeEdgeFunction(token, "generate-coupon-message", args);
180
+ return {
181
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
182
+ };
183
+ });
184
+ // ── List coupons ──────────────────────────────────────────────────
185
+ server.tool("list_coupons", "List available coupons for the creator's deals", {}, async () => {
186
+ const { token } = await authenticate();
187
+ const data = await invokeEdgeFunction(token, "list-coupons");
188
+ return {
189
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
190
+ };
191
+ });
192
+ // ── Send coupon ───────────────────────────────────────────────────
193
+ server.tool("send_coupon", "Send a coupon to a recipient via email", {
194
+ couponId: z.string().uuid().describe("Coupon ID to send"),
195
+ recipientEmail: z.string().email().describe("Recipient email"),
196
+ message: z.string().max(2000).optional().describe("Personal message"),
197
+ }, async (args) => {
198
+ const { token } = await authenticate();
199
+ const data = await invokeEdgeFunction(token, "send-coupon", args);
200
+ return {
201
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
202
+ };
203
+ });
204
+ // ── Brand proposal (public) ───────────────────────────────────────
205
+ server.tool("submit_brand_proposal", "Submit a brand collaboration proposal (public, no auth required for the endpoint but rate-limited)", {
206
+ brandName: z.string().min(1).max(200).describe("Brand name"),
207
+ contactEmail: z.string().email().describe("Contact email"),
208
+ message: z.string().min(10).max(5000).describe("Proposal message"),
209
+ budget: z.number().optional().describe("Budget range"),
210
+ }, async (args) => {
211
+ const { token } = await authenticate();
212
+ const data = await invokeEdgeFunction(token, "brand-proposal", args);
213
+ return {
214
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
215
+ };
216
+ });
217
+ }
218
+ //# sourceMappingURL=deals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deals.js","sourceRoot":"","sources":["../../src/tools/deals.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEpE,MAAM,UAAU,iBAAiB,CAAC,MAAiB;IACjD,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,YAAY,EACZ,6DAA6D,EAC7D;QACE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;aACjE,QAAQ,EAAE;aACV,QAAQ,CAAC,uBAAuB,CAAC;QACpC,QAAQ,EAAE,CAAC;aACR,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACtE,QAAQ,EAAE;aACV,QAAQ,CAAC,2BAA2B,CAAC;QACxC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KAC9E,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;QACpC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEvC,IAAI,KAAK,GAAG,MAAM;aACf,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC,GAAG,CAAC;aACX,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;aACzC,KAAK,CAAC,KAAK,CAAC,CAAC;QAEhB,IAAI,MAAM;YAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,IAAI,QAAQ;YAAE,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAE5D,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,UAAU,EACV,sEAAsE,EACtE;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;KAC9C,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;QACnB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,aAAa,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,WAAW,EAAE;YAC/D,MAAM;iBACH,IAAI,CAAC,mBAAmB,CAAC;iBACzB,MAAM,CAAC,GAAG,CAAC;iBACX,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;iBACrB,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;YACzC,MAAM;iBACH,IAAI,CAAC,iBAAiB,CAAC;iBACvB,MAAM,CAAC,GAAG,CAAC;iBACX,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;iBACrB,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;iBACzC,KAAK,CAAC,EAAE,CAAC;SACb,CAAC,CAAC;QAEH,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAC1G,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QACzF,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAe;oBACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,YAAY,EAAE,eAAe,CAAC,IAAI,IAAI,EAAE;wBACxC,iBAAiB,EAAE,aAAa,CAAC,IAAI,IAAI,EAAE;qBAC5C,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,yBAAyB,EACzB;QACE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACxE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;aACjE,OAAO,CAAC,MAAM,CAAC;aACf,QAAQ,CAAC,aAAa,CAAC;QAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC;QACpE,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACtE,QAAQ,EAAE;aACV,QAAQ,CAAC,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC/D,mBAAmB,EAAE,CAAC;aACnB,MAAM,EAAE;aACR,KAAK,EAAE;aACP,QAAQ,EAAE;aACV,QAAQ,CAAC,qBAAqB,CAAC;QAClC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KAC9D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACjC,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;aACpC,MAAM,EAAE;aACR,MAAM,EAAE,CAAC;QAEZ,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,+BAA+B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;aAChG;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,kCAAkC,EAClC;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACjE,MAAM,EAAE,CAAC;aACN,IAAI,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;aACjE,QAAQ,EAAE;aACV,QAAQ,CAAC,aAAa,CAAC;QAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxD,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAChE,eAAe,EAAE,CAAC;aACf,IAAI,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;aACtE,QAAQ,EAAE;aACV,QAAQ,CAAC,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAC/D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QAClF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;KAC9D,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,OAAO,EAAE,EAAE,EAAE;QAC/B,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAEvC,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM;aACjC,IAAI,CAAC,OAAO,CAAC;aACb,MAAM,CAAC,OAAO,CAAC;aACf,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;aAChB,MAAM,EAAE;aACR,WAAW,EAAE,CAAC;QAEjB,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClG,CAAC;QAED,OAAO;YACL,OAAO,EAAE;gBACP,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;aACnF;SACF,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,sEAAsE;IACtE,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,uEAAuE,EACvE;QACE,OAAO,EAAE,CAAC;aACP,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;aACxB,QAAQ,EAAE;aACV,QAAQ,CAAC,4CAA4C,CAAC;KAC1D,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,mBAAmB,EAAE;YAChE,MAAM,EAAE,QAAQ;YAChB,GAAG,IAAI;SACR,CAAC,CAAC;QACH,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,yBAAyB,EACzB,kDAAkD,EAClD;QACE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC7C,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wBAAwB,CAAC;QACpE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;KACrF,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,yBAAyB,EAAE,IAAI,CAAC,CAAC;QAC9E,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,cAAc,EACd,gDAAgD,EAChD,EAAE,EACF,KAAK,IAAI,EAAE;QACT,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,aAAa,EACb,wCAAwC,EACxC;QACE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzD,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC9D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;KACtE,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;QAClE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC,CACF,CAAC;IAEF,qEAAqE;IACrE,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,oGAAoG,EACpG;QACE,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC5D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC;QAClE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;KACvD,EACD,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,EAAE,IAAI,CAAC,CAAC;QACrE,OAAO;YACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pipeline & Video management MCP tools.
3
+ * Covers: pipeline videos, saved ideas, video idea generation, thumbnail generation.
4
+ */
5
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ export declare function registerPipelineTools(server: McpServer): void;
7
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/tools/pipeline.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,QA2RtD"}
@@ -0,0 +1,225 @@
1
+ /**
2
+ * Pipeline & Video management MCP tools.
3
+ * Covers: pipeline videos, saved ideas, video idea generation, thumbnail generation.
4
+ */
5
+ import { z } from "zod";
6
+ import { authenticate } from "../auth.js";
7
+ import { createUserClient, invokeEdgeFunction } from "../client.js";
8
+ export function registerPipelineTools(server) {
9
+ // ── List pipeline videos ──────────────────────────────────────────
10
+ server.tool("list_pipeline_videos", "List videos in the content pipeline, optionally filtered by status", {
11
+ status: z
12
+ .enum([
13
+ "idea",
14
+ "script",
15
+ "recording",
16
+ "editing",
17
+ "thumbnail",
18
+ "scheduling",
19
+ "published",
20
+ ])
21
+ .optional()
22
+ .describe("Filter by video status"),
23
+ limit: z
24
+ .number()
25
+ .min(1)
26
+ .max(100)
27
+ .default(20)
28
+ .describe("Max videos to return"),
29
+ }, async ({ status, limit }) => {
30
+ const { token } = await authenticate();
31
+ const client = createUserClient(token);
32
+ let query = client
33
+ .from("pipeline_videos")
34
+ .select("*")
35
+ .order("updated_at", { ascending: false })
36
+ .limit(limit);
37
+ if (status) {
38
+ query = query.eq("status", status);
39
+ }
40
+ const { data, error } = await query;
41
+ if (error) {
42
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
43
+ }
44
+ return {
45
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
46
+ };
47
+ });
48
+ // ── Get pipeline video detail ─────────────────────────────────────
49
+ server.tool("get_pipeline_video", "Get details of a specific pipeline video by ID", {
50
+ videoId: z.string().uuid().describe("Pipeline video ID"),
51
+ }, async ({ videoId }) => {
52
+ const { token } = await authenticate();
53
+ const client = createUserClient(token);
54
+ const { data, error } = await client
55
+ .from("pipeline_videos")
56
+ .select("*")
57
+ .eq("id", videoId)
58
+ .maybeSingle();
59
+ if (error) {
60
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
61
+ }
62
+ if (!data) {
63
+ return { content: [{ type: "text", text: "Video not found" }], isError: true };
64
+ }
65
+ return {
66
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
67
+ };
68
+ });
69
+ // ── Update pipeline video ─────────────────────────────────────────
70
+ server.tool("update_pipeline_video", "Update a pipeline video's status, title, description, or other fields", {
71
+ videoId: z.string().uuid().describe("Pipeline video ID"),
72
+ title: z.string().max(300).optional().describe("New title"),
73
+ status: z
74
+ .enum([
75
+ "idea",
76
+ "script",
77
+ "recording",
78
+ "editing",
79
+ "thumbnail",
80
+ "scheduling",
81
+ "published",
82
+ ])
83
+ .optional()
84
+ .describe("New status"),
85
+ description: z.string().max(5000).optional().describe("New description"),
86
+ target_platform: z.string().optional().describe("Target platform"),
87
+ target_publish_date: z
88
+ .string()
89
+ .optional()
90
+ .describe("Target publish date (YYYY-MM-DD)"),
91
+ tags: z.array(z.string()).optional().describe("Tags array"),
92
+ }, async ({ videoId, ...updates }) => {
93
+ const { token } = await authenticate();
94
+ const client = createUserClient(token);
95
+ const payload = {};
96
+ for (const [k, v] of Object.entries(updates)) {
97
+ if (v !== undefined)
98
+ payload[k] = v;
99
+ }
100
+ const { data, error } = await client
101
+ .from("pipeline_videos")
102
+ .update(payload)
103
+ .eq("id", videoId)
104
+ .select()
105
+ .maybeSingle();
106
+ if (error) {
107
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
108
+ }
109
+ return {
110
+ content: [
111
+ { type: "text", text: `Video updated successfully.\n${JSON.stringify(data, null, 2)}` },
112
+ ],
113
+ };
114
+ });
115
+ // ── Capture to pipeline ───────────────────────────────────────────
116
+ server.tool("capture_to_pipeline", "Capture a video idea to the content pipeline (creates a new pipeline video in 'idea' status)", {
117
+ title: z.string().min(1).max(300).describe("Video title (required)"),
118
+ url: z.string().url().optional().describe("Source URL"),
119
+ videoId: z.string().optional().describe("YouTube video ID"),
120
+ thumbnailUrl: z.string().url().optional().describe("Thumbnail URL"),
121
+ sourceType: z.string().optional().describe("Source type"),
122
+ description: z.string().max(5000).optional().describe("Video description"),
123
+ }, async (args) => {
124
+ const { token } = await authenticate();
125
+ const data = await invokeEdgeFunction(token, "capture-to-pipeline", args);
126
+ return {
127
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
128
+ };
129
+ });
130
+ // ── List saved ideas ──────────────────────────────────────────────
131
+ server.tool("list_saved_ideas", "List saved content ideas that haven't been moved to the pipeline", {
132
+ limit: z
133
+ .number()
134
+ .min(1)
135
+ .max(100)
136
+ .default(20)
137
+ .describe("Max ideas to return"),
138
+ kind: z
139
+ .string()
140
+ .optional()
141
+ .describe("Filter by idea kind (e.g. 'pipeline_capture', 'manual')"),
142
+ }, async ({ limit, kind }) => {
143
+ const { token } = await authenticate();
144
+ const client = createUserClient(token);
145
+ let query = client
146
+ .from("saved_ideas")
147
+ .select("*")
148
+ .is("deleted_at", null)
149
+ .order("created_at", { ascending: false })
150
+ .limit(limit);
151
+ if (kind) {
152
+ query = query.eq("kind", kind);
153
+ }
154
+ const { data, error } = await query;
155
+ if (error) {
156
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
157
+ }
158
+ return {
159
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
160
+ };
161
+ });
162
+ // ── Save idea ─────────────────────────────────────────────────────
163
+ server.tool("save_idea", "Save a new content idea for later", {
164
+ title: z.string().min(1).max(300).describe("Idea title"),
165
+ subtitle: z.string().max(500).optional().describe("Subtitle or notes"),
166
+ source_platform: z.string().optional().describe("Source platform"),
167
+ kind: z.string().optional().describe("Idea kind/category"),
168
+ }, async (args) => {
169
+ const { token } = await authenticate();
170
+ const data = await invokeEdgeFunction(token, "save-idea", args);
171
+ return {
172
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
173
+ };
174
+ });
175
+ // ── Generate video idea ───────────────────────────────────────────
176
+ server.tool("generate_video_idea", "Generate an AI-powered video idea with hook, angle, topics, and thumbnail suggestion", {
177
+ title: z.string().min(1).max(300).describe("Video title/topic (required)"),
178
+ description: z.string().max(2000).optional().describe("Additional context"),
179
+ channelName: z.string().optional().describe("YouTube channel name"),
180
+ url: z.string().url().optional().describe("Reference URL"),
181
+ context: z.string().max(3000).optional().describe("Extra context for AI"),
182
+ }, async (args) => {
183
+ const { token } = await authenticate();
184
+ const data = await invokeEdgeFunction(token, "generate-video-idea", args);
185
+ return {
186
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
187
+ };
188
+ });
189
+ // ── Generate thumbnail ────────────────────────────────────────────
190
+ server.tool("generate_thumbnail", "Generate an AI thumbnail for a video", {
191
+ title: z.string().min(1).max(200).describe("Video title (required)"),
192
+ description: z
193
+ .string()
194
+ .min(1)
195
+ .max(1000)
196
+ .describe("Thumbnail description/prompt (required)"),
197
+ language: z.string().optional().describe("Language code (e.g. 'en', 'pt')"),
198
+ format: z
199
+ .enum(["landscape", "shorts"])
200
+ .optional()
201
+ .describe("Thumbnail format"),
202
+ faceImageUrl: z.string().url().optional().describe("Face image URL for composition"),
203
+ referenceImageUrl: z.string().url().optional().describe("Reference image URL"),
204
+ referenceVisualDNA: z.string().optional().describe("Visual DNA reference"),
205
+ referenceTitle: z.string().optional().describe("Reference title for style matching"),
206
+ }, async (args) => {
207
+ const { token } = await authenticate();
208
+ const data = await invokeEdgeFunction(token, "generate-thumbnail", args);
209
+ return {
210
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
211
+ };
212
+ });
213
+ // ── Send thumbnail reference ──────────────────────────────────────
214
+ server.tool("send_thumbnail_reference", "Send a thumbnail reference image for AI analysis (Visual DNA)", {
215
+ imageUrl: z.string().url().describe("Thumbnail image URL to analyze"),
216
+ videoId: z.string().uuid().optional().describe("Associated pipeline video ID"),
217
+ }, async (args) => {
218
+ const { token } = await authenticate();
219
+ const data = await invokeEdgeFunction(token, "send-thumbnail-ref", args);
220
+ return {
221
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
222
+ };
223
+ });
224
+ }
225
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/tools/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Pitch & public showcase MCP tools.
3
+ * Covers: pitch config, deliverables, views, public showcase.
4
+ */
5
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ export declare function registerPitchTools(server: McpServer): void;
7
+ //# sourceMappingURL=pitch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pitch.d.ts","sourceRoot":"","sources":["../../src/tools/pitch.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,QA4JnD"}
@@ -0,0 +1,115 @@
1
+ /**
2
+ * Pitch & public showcase MCP tools.
3
+ * Covers: pitch config, deliverables, views, public showcase.
4
+ */
5
+ import { z } from "zod";
6
+ import { authenticate } from "../auth.js";
7
+ import { createUserClient, invokeEdgeFunction } from "../client.js";
8
+ export function registerPitchTools(server) {
9
+ // ── Get pitch config ──────────────────────────────────────────────
10
+ server.tool("get_pitch_config", "Get the creator's pitch pack configuration", {}, async () => {
11
+ const { token } = await authenticate();
12
+ const client = createUserClient(token);
13
+ const { data, error } = await client
14
+ .from("pitch_configs")
15
+ .select("*")
16
+ .maybeSingle();
17
+ if (error) {
18
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
19
+ }
20
+ return {
21
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
22
+ };
23
+ });
24
+ // ── Update pitch config ───────────────────────────────────────────
25
+ server.tool("update_pitch_config", "Update pitch pack configuration (headline, bio, rates, etc.)", {
26
+ headline: z.string().max(200).optional().describe("Pitch headline"),
27
+ bio: z.string().max(3000).optional().describe("Creator bio"),
28
+ base_rate: z.number().optional().describe("Base rate for sponsorships"),
29
+ currency: z.string().max(3).optional().describe("Currency code"),
30
+ visibility: z
31
+ .enum(["public", "link_only", "private"])
32
+ .optional()
33
+ .describe("Pitch pack visibility"),
34
+ categories: z.array(z.string()).optional().describe("Content categories"),
35
+ }, async (args) => {
36
+ const { token } = await authenticate();
37
+ const client = createUserClient(token);
38
+ const payload = {};
39
+ for (const [k, v] of Object.entries(args)) {
40
+ if (v !== undefined)
41
+ payload[k] = v;
42
+ }
43
+ const { data, error } = await client
44
+ .from("pitch_configs")
45
+ .update(payload)
46
+ .select()
47
+ .maybeSingle();
48
+ if (error) {
49
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
50
+ }
51
+ return {
52
+ content: [
53
+ { type: "text", text: `Pitch config updated.\n${JSON.stringify(data, null, 2)}` },
54
+ ],
55
+ };
56
+ });
57
+ // ── List pitch deliverables ───────────────────────────────────────
58
+ server.tool("list_pitch_deliverables", "List deliverables configured in the pitch pack", {}, async () => {
59
+ const { token } = await authenticate();
60
+ const client = createUserClient(token);
61
+ const { data, error } = await client
62
+ .from("pitch_deliverables")
63
+ .select("*")
64
+ .order("sort_order", { ascending: true });
65
+ if (error) {
66
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
67
+ }
68
+ return {
69
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
70
+ };
71
+ });
72
+ // ── Get pitch views ───────────────────────────────────────────────
73
+ server.tool("get_pitch_views", "Get analytics on who has viewed the pitch pack", {
74
+ limit: z.number().min(1).max(100).default(20).describe("Max views to return"),
75
+ }, async ({ limit }) => {
76
+ const { token } = await authenticate();
77
+ const client = createUserClient(token);
78
+ const { data, error } = await client
79
+ .from("pitch_views")
80
+ .select("*")
81
+ .order("created_at", { ascending: false })
82
+ .limit(limit);
83
+ if (error) {
84
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
85
+ }
86
+ return {
87
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
88
+ };
89
+ });
90
+ // ── Generate pitch share token ────────────────────────────────────
91
+ server.tool("generate_pitch_share_token", "Generate a unique share token for the pitch pack (for link_only visibility)", {}, async () => {
92
+ const { token, userId } = await authenticate();
93
+ const client = createUserClient(token);
94
+ const { data, error } = await client.rpc("generate_pitch_share_token", {
95
+ _user_id: userId,
96
+ });
97
+ if (error) {
98
+ return { content: [{ type: "text", text: `Error: ${error.message}` }], isError: true };
99
+ }
100
+ return {
101
+ content: [{ type: "text", text: `Share token: ${data}` }],
102
+ };
103
+ });
104
+ // ── Public showcase ───────────────────────────────────────────────
105
+ server.tool("get_public_showcase", "Get public showcase data for a creator (public endpoint)", {
106
+ creatorId: z.string().uuid().describe("Creator user ID"),
107
+ }, async (args) => {
108
+ const { token } = await authenticate();
109
+ const data = await invokeEdgeFunction(token, "public-showcase", args);
110
+ return {
111
+ content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
112
+ };
113
+ });
114
+ }
115
+ //# sourceMappingURL=pitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pitch.js","sourceRoot":"","sources":["../../src/tools/pitch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Social integrations MCP tools.
3
+ * Covers: Instagram, Twitch, Notion, integrations management.
4
+ */
5
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
6
+ export declare function registerSocialTools(server: McpServer): void;
7
+ //# sourceMappingURL=social.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"social.d.ts","sourceRoot":"","sources":["../../src/tools/social.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKzE,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,QAuIpD"}