lotux-mcp 0.28.0 → 0.29.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 (3) hide show
  1. package/README.md +1 -0
  2. package/package.json +1 -1
  3. package/tools.mjs +18 -1
package/README.md CHANGED
@@ -58,6 +58,7 @@ Restart Claude, then try: *"list my LOTUX brands"*.
58
58
  | `set_concept_fields` | Update fields / links / team roles |
59
59
  | `save_script` | Write a script: markdown body for one language (`- **Hook:** …`, `- **1:** …`, `- **CTA:** …`), the shotlist, a rename. Pass `language` for a translation |
60
60
  | `add_script` / `delete_script` / `remove_script_language` / `set_base_language` | More scripts per concept; language housekeeping |
61
+ | `add_reference` / `delete_reference` | Reference video by link (TikTok / Reels / Shorts); LOTUX saves a copy + Dropbox `00_Reference`. Listed in `get_concept` → `references` |
61
62
  | `set_beats` / `set_beat_translations` | **Compatibility** for older prompts: a beat list is stored as the script document. Prefer `save_script` |
62
63
  | `list_copy` / `create_copy` / `update_copy` / `delete_copy` / `link_copy` / `unlink_copy` / `add_copy_translation` | Ad copy library + concept links. `update_copy` edits in place; `delete_copy` removes it everywhere (status stays app-only) |
63
64
  | `list_landing_pages` / `create_landing_page` | A brand's landing pages + the agency pool; link them with `set_concept_fields` |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lotux-mcp",
3
- "version": "0.28.0",
3
+ "version": "0.29.0",
4
4
  "type": "module",
5
5
  "description": "Local MCP server that lets Claude create LOTUX concepts (fetch brand-DB entities, create concepts, fill scripts + copy). Talks to the LOTUX app with a personal token; no business logic or secrets live here.",
6
6
  "bin": {
package/tools.mjs CHANGED
@@ -348,7 +348,7 @@ export function registerTools(server, rpc) {
348
348
 
349
349
  server.tool(
350
350
  "get_concept",
351
- "Read the full state of one concept by id: fields, linked products/personas/angles/use-cases, scripts (markdown per language + shotlist), and linked copy. Use to confirm what was written.",
351
+ "Read the full state of one concept by id: fields, linked products/personas/angles/use-cases, references (the videos it is based on), scripts (markdown per language + shotlist), and linked copy. Use to confirm what was written.",
352
352
  { concept_id: z.string() },
353
353
  async ({ concept_id }) => ok(await rpc("get_concept", { concept_id }))
354
354
  );
@@ -476,6 +476,23 @@ export function registerTools(server, rpc) {
476
476
  async (args) => ok(await rpc("save_script", args))
477
477
  );
478
478
 
479
+ server.tool(
480
+ "add_reference",
481
+ "Add a reference (the video a concept is based on) by link: TikTok, Instagram Reels, Facebook Reels or YouTube Shorts (any other link is kept as a plain link). For TikTok / Instagram / Facebook LOTUX saves its own copy (usually under a minute) and puts it in the concept's Dropbox folder under 00_Reference. The first reference is the main one. Video FILES can't be sent here — upload those in the app.",
482
+ {
483
+ concept_id: z.string(),
484
+ url: z.string().describe("Full link to the video, e.g. https://www.instagram.com/reel/ABC123/"),
485
+ },
486
+ async (args) => ok(await rpc("add_reference", args))
487
+ );
488
+
489
+ server.tool(
490
+ "delete_reference",
491
+ "Remove a reference from its concept (id from get_concept → references). Also deletes LOTUX's saved copy and the file in the concept's Dropbox 00_Reference folder. Irreversible in LOTUX (Dropbox keeps deleted files in its trash for 30 days).",
492
+ { reference_id: z.string() },
493
+ async ({ reference_id }) => ok(await rpc("delete_reference", { reference_id }))
494
+ );
495
+
479
496
  server.tool(
480
497
  "add_script",
481
498
  "Add another script to a concept (every concept already has one — use save_script on it first). Returns the new script (starter template in the base language).",