lotux-mcp 0.1.0 → 0.1.2
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/index.mjs +28 -2
- package/package.json +1 -1
package/index.mjs
CHANGED
|
@@ -52,7 +52,7 @@ const ok = (result) => ({
|
|
|
52
52
|
content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
|
|
53
53
|
});
|
|
54
54
|
|
|
55
|
-
const server = new McpServer({ name: "lotux", version: "0.1.
|
|
55
|
+
const server = new McpServer({ name: "lotux", version: "0.1.2" });
|
|
56
56
|
|
|
57
57
|
// ── Reads ─────────────────────────────────────────────────────────────────────
|
|
58
58
|
|
|
@@ -132,7 +132,7 @@ server.tool(
|
|
|
132
132
|
|
|
133
133
|
server.tool(
|
|
134
134
|
"set_concept_fields",
|
|
135
|
-
"Update fields on an existing concept. Any omitted field is left unchanged; the id arrays, when given, replace the full set of links.",
|
|
135
|
+
"Update fields on an existing concept. Any omitted field is left unchanged; the id arrays, when given, replace the full set of links. Assign team roles by passing a person id from list_members into strategist_id / copy_checker_id / editor_id / media_buyer_id / final_check_id.",
|
|
136
136
|
{
|
|
137
137
|
concept_id: z.string(),
|
|
138
138
|
funnel_stage: z.string().optional(),
|
|
@@ -149,6 +149,12 @@ server.tool(
|
|
|
149
149
|
persona_ids: z.array(z.string()).optional(),
|
|
150
150
|
angle_ids: z.array(z.string()).optional(),
|
|
151
151
|
use_case_ids: z.array(z.string()).optional(),
|
|
152
|
+
// Team roles — pass a member id from list_members.
|
|
153
|
+
strategist_id: z.string().optional().describe("Member id from list_members"),
|
|
154
|
+
copy_checker_id: z.string().optional().describe("Member id from list_members"),
|
|
155
|
+
editor_id: z.string().optional().describe("Member id from list_members"),
|
|
156
|
+
media_buyer_id: z.string().optional().describe("Member id from list_members"),
|
|
157
|
+
final_check_id: z.string().optional().describe("Member id from list_members"),
|
|
152
158
|
},
|
|
153
159
|
async ({ concept_id, ...patch }) =>
|
|
154
160
|
ok(await rpc("set_concept_fields", { concept_id, patch }))
|
|
@@ -187,6 +193,26 @@ server.tool(
|
|
|
187
193
|
async (args) => ok(await rpc("set_base_language", args))
|
|
188
194
|
);
|
|
189
195
|
|
|
196
|
+
server.tool(
|
|
197
|
+
"add_language",
|
|
198
|
+
"Add a translation language (tab) to a concept's Script, e.g. Dutch. Use a full-written name from list_options. Then write each beat's translated line with set_beat_translation.",
|
|
199
|
+
{ concept_id: z.string(), language: z.string().describe("Full-written name, e.g. Dutch") },
|
|
200
|
+
async (args) => ok(await rpc("add_language", args))
|
|
201
|
+
);
|
|
202
|
+
|
|
203
|
+
server.tool(
|
|
204
|
+
"set_beat_translation",
|
|
205
|
+
"Write one beat's translated script line for a language. beat_id comes from get_concept; language must match one added via add_language.",
|
|
206
|
+
{
|
|
207
|
+
beat_id: z.string(),
|
|
208
|
+
language: z.string().describe("Full-written name, e.g. Dutch"),
|
|
209
|
+
delivery_text: z.string().optional().describe("The translated script line / what's said"),
|
|
210
|
+
visual_note: z.string().optional(),
|
|
211
|
+
},
|
|
212
|
+
async ({ beat_id, language, ...patch }) =>
|
|
213
|
+
ok(await rpc("set_beat_translation", { beat_id, language, ...patch }))
|
|
214
|
+
);
|
|
215
|
+
|
|
190
216
|
// ── Copy ──────────────────────────────────────────────────────────────────────
|
|
191
217
|
|
|
192
218
|
server.tool(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "lotux-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
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": {
|