lotux-mcp 0.15.0 → 0.16.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 (2) hide show
  1. package/index.mjs +9 -9
  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.15.0" });
55
+ const server = new McpServer({ name: "lotux", version: "0.16.0" });
56
56
 
57
57
  // ── Reads ─────────────────────────────────────────────────────────────────────
58
58
 
@@ -91,7 +91,7 @@ server.tool(
91
91
 
92
92
  server.tool(
93
93
  "run_client_setup",
94
- "Run client setup for a brand: slug, second brain from the template, the agentic workspace folder + CLIENT.md settings block, and (once the brand has connected Dropbox) the linked Dropbox client folder. It already runs by itself when a brand is created and when it connects Dropbox; run it again to fill gaps. Only creates what's missing; running it twice changes nothing. Skipped for clients that aren't active. dry_run: true returns the plan without changing anything. Returns a report per step (created / linked / updated / already there / failed + reason).",
94
+ "Run client setup for a brand: slug, second brain (an \"Agentic workspace\" page plus Client Feedback and Basic Rules folders in its \"Exposed to MCP\" section), the agentic workspace folder + CLIENT.md settings block, and (once the brand has connected Dropbox) the linked Dropbox client folder. It already runs by itself when a brand is created and when it connects Dropbox; run it again to fill gaps. Only creates what's missing; running it twice changes nothing. Skipped for clients that aren't active. dry_run: true returns the plan without changing anything. Returns a report per step (created / linked / updated / already there / failed + reason).",
95
95
  {
96
96
  account_id: z.string().describe("Brand id from list_brands"),
97
97
  dry_run: z.boolean().optional(),
@@ -101,14 +101,14 @@ server.tool(
101
101
 
102
102
  server.tool(
103
103
  "list_kb_folders",
104
- "The folders of a Kennisbank workspace (id, name, parent_id). Use a folder id as folder_id in create_kb_doc.",
104
+ "The folders in a Kennisbank workspace's \"Exposed to MCP\" section, the only part of a second brain the MCP can see (id, name, parent_id, path; parent_id null = directly in the section). Use a folder id as folder_id in create_kb_doc.",
105
105
  { workspace_id: z.string().describe("Workspace id from list_kb_workspaces or get_brand") },
106
106
  async (args) => ok(await rpc("list_kb_folders", args))
107
107
  );
108
108
 
109
109
  server.tool(
110
110
  "create_kb_folder",
111
- "Create a folder in a Kennisbank workspace (at the root, or inside parent_id). Returns the folder id.",
111
+ "Create a folder in a Kennisbank workspace's \"Exposed to MCP\" section (at its top level, or inside parent_id). Returns the folder id.",
112
112
  {
113
113
  workspace_id: z.string(),
114
114
  name: z.string(),
@@ -536,28 +536,28 @@ server.tool(
536
536
 
537
537
  server.tool(
538
538
  "list_kb_workspaces",
539
- "List the Kennisbank (knowledge base) workspaces you can access — markdown docs the team and AI share. Returns id, name, visibility. Use a workspace id with list_kb_docs / create_kb_doc.",
539
+ "List the Kennisbank (knowledge base) workspaces you can access — markdown docs the team and AI share. Returns id, name, visibility. Use a workspace id with list_kb_docs / create_kb_doc. Only each workspace's \"Exposed to MCP\" section is visible to the MCP; the rest is the team's own notes.",
540
540
  {},
541
541
  async () => ok(await rpc("list_kb_workspaces"))
542
542
  );
543
543
 
544
544
  server.tool(
545
545
  "list_kb_docs",
546
- "List the pages in a Kennisbank workspace (id, title, folder path). Use a doc id with get_kb_doc.",
546
+ "List the pages in a Kennisbank workspace's \"Exposed to MCP\" section (id, title, folder path inside the section; \"\" = its top level). Pages outside the section are not listed. Use a doc id with get_kb_doc.",
547
547
  { workspace_id: z.string().describe("Workspace id from list_kb_workspaces") },
548
548
  async ({ workspace_id }) => ok(await rpc("list_kb_docs", { workspace_id }))
549
549
  );
550
550
 
551
551
  server.tool(
552
552
  "get_kb_doc",
553
- "Read one Kennisbank page's full markdown content by id.",
553
+ "Read one Kennisbank page's full markdown content by id. Only pages in the \"Exposed to MCP\" section can be read.",
554
554
  { doc_id: z.string() },
555
555
  async ({ doc_id }) => ok(await rpc("get_kb_doc", { doc_id }))
556
556
  );
557
557
 
558
558
  server.tool(
559
559
  "create_kb_doc",
560
- "Create a new markdown page in a Kennisbank workspace. Returns the new doc id. content is markdown; folder_id is optional (root if omitted).",
560
+ "Create a new markdown page in a Kennisbank workspace's \"Exposed to MCP\" section. Returns the new doc id. content is markdown; folder_id is optional (top of the section if omitted) and must be a folder from list_kb_folders.",
561
561
  {
562
562
  workspace_id: z.string().describe("Workspace id from list_kb_workspaces"),
563
563
  title: z.string(),
@@ -569,7 +569,7 @@ server.tool(
569
569
 
570
570
  server.tool(
571
571
  "update_kb_doc",
572
- "Update a Kennisbank page's title and/or markdown content. Omitted fields are left unchanged.",
572
+ "Update a Kennisbank page's title and/or markdown content (pages in the \"Exposed to MCP\" section only). Omitted fields are left unchanged.",
573
573
  {
574
574
  doc_id: z.string(),
575
575
  title: z.string().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lotux-mcp",
3
- "version": "0.15.0",
3
+ "version": "0.16.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": {