@cplace/test-mcp-server 0.1.14 → 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 (149) hide show
  1. package/README.md +275 -75
  2. package/dist/api.d.ts +4 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js.map +1 -1
  5. package/dist/conditional-registration.d.ts.map +1 -1
  6. package/dist/conditional-registration.js +21 -3
  7. package/dist/conditional-registration.js.map +1 -1
  8. package/dist/index.js +82 -99
  9. package/dist/index.js.map +1 -1
  10. package/dist/preference-file.d.ts +16 -0
  11. package/dist/preference-file.d.ts.map +1 -0
  12. package/dist/preference-file.js +133 -0
  13. package/dist/preference-file.js.map +1 -0
  14. package/dist/profiles.d.ts +1 -3
  15. package/dist/profiles.d.ts.map +1 -1
  16. package/dist/profiles.js +60 -107
  17. package/dist/profiles.js.map +1 -1
  18. package/dist/searchConversion.d.ts.map +1 -1
  19. package/dist/searchConversion.js +18 -5
  20. package/dist/searchConversion.js.map +1 -1
  21. package/dist/searchSchema.d.ts +25 -25
  22. package/dist/searchSchema.d.ts.map +1 -1
  23. package/dist/searchSchema.js +5 -5
  24. package/dist/searchSchema.js.map +1 -1
  25. package/dist/token-hashing.d.ts +3 -0
  26. package/dist/token-hashing.d.ts.map +1 -0
  27. package/dist/token-hashing.js +18 -0
  28. package/dist/token-hashing.js.map +1 -0
  29. package/dist/tool-metadata.d.ts +2 -0
  30. package/dist/tool-metadata.d.ts.map +1 -0
  31. package/dist/tool-metadata.js +43 -0
  32. package/dist/tool-metadata.js.map +1 -0
  33. package/dist/tools/change-listeners.d.ts +30 -0
  34. package/dist/tools/change-listeners.d.ts.map +1 -1
  35. package/dist/tools/change-listeners.js +24 -18
  36. package/dist/tools/change-listeners.js.map +1 -1
  37. package/dist/tools/common-schemas.d.ts +2 -0
  38. package/dist/tools/common-schemas.d.ts.map +1 -1
  39. package/dist/tools/common-schemas.js +16 -0
  40. package/dist/tools/common-schemas.js.map +1 -1
  41. package/dist/tools/csv-export.d.ts +1849 -0
  42. package/dist/tools/csv-export.d.ts.map +1 -0
  43. package/dist/tools/csv-export.js +61 -0
  44. package/dist/tools/csv-export.js.map +1 -0
  45. package/dist/tools/generic-layouts.d.ts +332 -0
  46. package/dist/tools/generic-layouts.d.ts.map +1 -0
  47. package/dist/tools/generic-layouts.js +490 -0
  48. package/dist/tools/generic-layouts.js.map +1 -0
  49. package/dist/tools/get-operations.d.ts +16 -0
  50. package/dist/tools/get-operations.d.ts.map +1 -0
  51. package/dist/tools/get-operations.js +63 -0
  52. package/dist/tools/get-operations.js.map +1 -0
  53. package/dist/tools/pages.d.ts +55 -0
  54. package/dist/tools/pages.d.ts.map +1 -1
  55. package/dist/tools/pages.js +217 -209
  56. package/dist/tools/pages.js.map +1 -1
  57. package/dist/tools/ppt-export-schemas.d.ts +16 -16
  58. package/dist/tools/ppt-export.d.ts +1493 -0
  59. package/dist/tools/ppt-export.d.ts.map +1 -1
  60. package/dist/tools/ppt-export.js +23 -17
  61. package/dist/tools/ppt-export.js.map +1 -1
  62. package/dist/tools/profile-management.d.ts +20 -0
  63. package/dist/tools/profile-management.d.ts.map +1 -0
  64. package/dist/tools/profile-management.js +250 -0
  65. package/dist/tools/profile-management.js.map +1 -0
  66. package/dist/tools/references.d.ts +36 -0
  67. package/dist/tools/references.d.ts.map +1 -1
  68. package/dist/tools/references.js +48 -45
  69. package/dist/tools/references.js.map +1 -1
  70. package/dist/tools/richstring-widgets.d.ts +51 -0
  71. package/dist/tools/richstring-widgets.d.ts.map +1 -0
  72. package/dist/tools/richstring-widgets.js +173 -0
  73. package/dist/tools/richstring-widgets.js.map +1 -0
  74. package/dist/tools/schedule.d.ts +14 -0
  75. package/dist/tools/schedule.d.ts.map +1 -1
  76. package/dist/tools/schedule.js +7 -3
  77. package/dist/tools/schedule.js.map +1 -1
  78. package/dist/tools/script-logs.d.ts +29 -0
  79. package/dist/tools/script-logs.d.ts.map +1 -0
  80. package/dist/tools/script-logs.js +144 -0
  81. package/dist/tools/script-logs.js.map +1 -0
  82. package/dist/tools/search.d.ts +1870 -0
  83. package/dist/tools/search.d.ts.map +1 -1
  84. package/dist/tools/search.js +49 -75
  85. package/dist/tools/search.js.map +1 -1
  86. package/dist/tools/system.d.ts +2 -1
  87. package/dist/tools/system.d.ts.map +1 -1
  88. package/dist/tools/system.js +68 -2
  89. package/dist/tools/system.js.map +1 -1
  90. package/dist/tools/type-layouts.d.ts +37 -0
  91. package/dist/tools/type-layouts.d.ts.map +1 -1
  92. package/dist/tools/type-layouts.js +57 -11
  93. package/dist/tools/type-layouts.js.map +1 -1
  94. package/dist/tools/type-management.d.ts +134 -0
  95. package/dist/tools/type-management.d.ts.map +1 -0
  96. package/dist/tools/{workspace.js → type-management.js} +67 -307
  97. package/dist/tools/type-management.js.map +1 -0
  98. package/dist/tools/users.d.ts +19 -0
  99. package/dist/tools/users.d.ts.map +1 -1
  100. package/dist/tools/users.js +14 -28
  101. package/dist/tools/users.js.map +1 -1
  102. package/dist/tools/validators.d.ts +28 -0
  103. package/dist/tools/validators.d.ts.map +1 -1
  104. package/dist/tools/validators.js +21 -15
  105. package/dist/tools/validators.js.map +1 -1
  106. package/dist/tools/version-check.d.ts +4 -0
  107. package/dist/tools/version-check.d.ts.map +1 -0
  108. package/dist/tools/version-check.js +107 -0
  109. package/dist/tools/version-check.js.map +1 -0
  110. package/dist/tools/version-history.d.ts +48 -0
  111. package/dist/tools/version-history.d.ts.map +1 -1
  112. package/dist/tools/version-history.js +39 -29
  113. package/dist/tools/version-history.js.map +1 -1
  114. package/dist/tools/widgets.d.ts +182 -0
  115. package/dist/tools/widgets.d.ts.map +1 -1
  116. package/dist/tools/widgets.js +213 -590
  117. package/dist/tools/widgets.js.map +1 -1
  118. package/dist/tools/workflow-scripts.d.ts +40 -0
  119. package/dist/tools/workflow-scripts.d.ts.map +1 -0
  120. package/dist/tools/workflow-scripts.js +186 -0
  121. package/dist/tools/workflow-scripts.js.map +1 -0
  122. package/dist/tools/workflow.d.ts +70 -0
  123. package/dist/tools/workflow.d.ts.map +1 -0
  124. package/dist/tools/workflow.js +259 -0
  125. package/dist/tools/workflow.js.map +1 -0
  126. package/dist/tools/workspace-admin.d.ts +40 -0
  127. package/dist/tools/workspace-admin.d.ts.map +1 -0
  128. package/dist/tools/workspace-admin.js +125 -0
  129. package/dist/tools/workspace-admin.js.map +1 -0
  130. package/dist/tools/workspace-core.d.ts +45 -0
  131. package/dist/tools/workspace-core.d.ts.map +1 -0
  132. package/dist/tools/workspace-core.js +153 -0
  133. package/dist/tools/workspace-core.js.map +1 -0
  134. package/dist/types.d.ts +3 -3
  135. package/dist/types.d.ts.map +1 -1
  136. package/dist/url-parsing.d.ts +6 -0
  137. package/dist/url-parsing.d.ts.map +1 -0
  138. package/dist/url-parsing.js +25 -0
  139. package/dist/url-parsing.js.map +1 -0
  140. package/dist/utils/dateValidation.d.ts +5 -0
  141. package/dist/utils/dateValidation.d.ts.map +1 -0
  142. package/dist/utils/dateValidation.js +57 -0
  143. package/dist/utils/dateValidation.js.map +1 -0
  144. package/dist/utils.js +7 -7
  145. package/dist/utils.js.map +1 -1
  146. package/package.json +1 -1
  147. package/dist/tools/workspace.d.ts +0 -4
  148. package/dist/tools/workspace.d.ts.map +0 -1
  149. package/dist/tools/workspace.js.map +0 -1
@@ -1,33 +1,23 @@
1
1
  import { z } from "zod";
2
2
  import { debugLogWithTag } from "../logger.js";
3
- export function registerUserTools(server, client) {
4
- server.registerTool("cplace_get_person_by_id", {
5
- description: "Get details about a person including their name and email.",
6
- inputSchema: {
7
- id: z.string().describe("The ID of the person to get, e.g. 'person/kkt8ol745jqur4581kelm5ply'")
8
- },
9
- annotations: { title: "Get Person by ID" }
10
- }, async ({ id }) => {
11
- try {
12
- const result = await client.makeApiRequest('json/person', 'GET', { id });
13
- return {
14
- content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
15
- };
16
- }
17
- catch (error) {
18
- return {
19
- content: [{ type: "text", text: `Error retrieving person: ${error instanceof Error ? error.message : String(error)}` }],
20
- isError: true
21
- };
22
- }
23
- });
24
- server.registerTool("cplace_get_person_by_name", {
3
+ const TOOL_GET_PERSON_BY_NAME = 'cplace_get_person_by_name';
4
+ const TOOL_GET_CURRENT_USER = 'cplace_get_current_user';
5
+ export const USER_TOOL_DEFINITIONS = {
6
+ [TOOL_GET_PERSON_BY_NAME]: {
25
7
  description: "Get details about a person by searching for their name.",
26
8
  inputSchema: {
27
9
  name: z.string().describe("The name of the person or part of the name to search for"),
28
10
  },
29
11
  annotations: { title: "Get Person by Name" }
30
- }, async ({ name }) => {
12
+ },
13
+ [TOOL_GET_CURRENT_USER]: {
14
+ description: "Get information about the currently logged-in user, including their attributes and metadata",
15
+ inputSchema: {},
16
+ annotations: { title: "Get Current User" }
17
+ }
18
+ };
19
+ export function registerUserTools(server, client) {
20
+ server.registerTool(TOOL_GET_PERSON_BY_NAME, USER_TOOL_DEFINITIONS[TOOL_GET_PERSON_BY_NAME], async ({ name }) => {
31
21
  try {
32
22
  const result = await client.makeApiRequest('json/person', 'GET', { name });
33
23
  return {
@@ -41,11 +31,7 @@ export function registerUserTools(server, client) {
41
31
  };
42
32
  }
43
33
  });
44
- server.registerTool("cplace_get_current_user", {
45
- description: "Get information about the currently logged-in user, including their attributes and metadata",
46
- inputSchema: {},
47
- annotations: { title: "Get Current User" }
48
- }, async () => {
34
+ server.registerTool(TOOL_GET_CURRENT_USER, USER_TOOL_DEFINITIONS[TOOL_GET_CURRENT_USER], async () => {
49
35
  debugLogWithTag('CURRENT_USER', 'Starting current user request');
50
36
  try {
51
37
  const result = await client.makeApiRequest('json/current-user');
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAC5D,MAAM,qBAAqB,GAAG,yBAAyB,CAAC;AAGxD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,CAAC,uBAAuB,CAAC,EAAE;QACzB,WAAW,EAAE,yDAAyD;QACtE,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;SACtF;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE;KAC7C;IACD,CAAC,qBAAqB,CAAC,EAAE;QACvB,WAAW,EAAE,6FAA6F;QAC1G,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE;KAC3C;CACO,CAAC;AAEX,MAAM,UAAU,iBAAiB,CAAC,MAAiB,EAAE,MAAuB;IAC1E,MAAM,CAAC,YAAY,CAAC,uBAAuB,EACzC,qBAAqB,CAAC,uBAAuB,CAAC,EAC9C,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YAE3E,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC1H,OAAO,EAAE,IAAI;aACd,CAAC;QAEJ,CAAC;IACH,CAAC,CACF,CAAC;IAGF,MAAM,CAAC,YAAY,CAAC,qBAAqB,EACvC,qBAAqB,CAAC,qBAAqB,CAAC,EAC5C,KAAK,IAAI,EAAE;QACT,eAAe,CAAC,cAAc,EAAE,+BAA+B,CAAC,CAAC;QAEjE,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAEhE,eAAe,CAAC,cAAc,EAAE,oCAAoC,CAAC,CAAC;YAEtE,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8CAA8C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBACzI,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -1,4 +1,32 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
2
3
  import { CplaceApiClient } from '../api.js';
4
+ export declare const VALIDATOR_TOOL_DEFINITIONS: {
5
+ readonly cplace_get_validator_by_attribute: {
6
+ readonly description: "Retrieves the JavaScript validator script and metadata for a specific attribute definition. Returns comprehensive context information including workspace, type, and attribute details along with the validator code if it exists.";
7
+ readonly inputSchema: {
8
+ readonly workspaceId: z.ZodString;
9
+ readonly typeInternalName: z.ZodString;
10
+ readonly attributeName: z.ZodString;
11
+ };
12
+ readonly annotations: {
13
+ readonly title: "Get Validator by Attribute";
14
+ };
15
+ };
16
+ readonly cplace_manage_validator: {
17
+ readonly description: "Create or update JavaScript validators for attribute definitions. Validators are JavaScript functions executed to validate attribute values during page creation and updates.";
18
+ readonly inputSchema: {
19
+ readonly operation: z.ZodEnum<["create", "update"]>;
20
+ readonly workspaceId: z.ZodString;
21
+ readonly typeInternalName: z.ZodString;
22
+ readonly attributeName: z.ZodString;
23
+ readonly script: z.ZodOptional<z.ZodString>;
24
+ readonly description: z.ZodOptional<z.ZodString>;
25
+ };
26
+ readonly annotations: {
27
+ readonly title: "Manage Validator";
28
+ };
29
+ };
30
+ };
3
31
  export declare function registerValidatorTools(server: McpServer, client: CplaceApiClient): void;
4
32
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/tools/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QA0GhF"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/tools/validators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAO5C,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;CAsB7B,CAAC;AAEX,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAuFhF"}
@@ -1,6 +1,8 @@
1
1
  import { z } from "zod";
2
- export function registerValidatorTools(server, client) {
3
- server.registerTool("cplace_get_validator_by_attribute", {
2
+ const TOOL_GET_VALIDATOR_BY_ATTRIBUTE = 'cplace_get_validator_by_attribute';
3
+ const TOOL_MANAGE_VALIDATOR = 'cplace_manage_validator';
4
+ export const VALIDATOR_TOOL_DEFINITIONS = {
5
+ [TOOL_GET_VALIDATOR_BY_ATTRIBUTE]: {
4
6
  description: "Retrieves the JavaScript validator script and metadata for a specific attribute definition. Returns comprehensive context information including workspace, type, and attribute details along with the validator code if it exists.",
5
7
  inputSchema: {
6
8
  workspaceId: z.string().describe("The workspace identifier (e.g., 'abc123')"),
@@ -8,7 +10,22 @@ export function registerValidatorTools(server, client) {
8
10
  attributeName: z.string().describe("The name of the attribute (e.g., 'taskTitle')")
9
11
  },
10
12
  annotations: { title: "Get Validator by Attribute" }
11
- }, async ({ workspaceId, typeInternalName, attributeName }) => {
13
+ },
14
+ [TOOL_MANAGE_VALIDATOR]: {
15
+ description: "Create or update JavaScript validators for attribute definitions. Validators are JavaScript functions executed to validate attribute values during page creation and updates.",
16
+ inputSchema: {
17
+ operation: z.enum(["create", "update"]).describe("Operation type: 'create' for new validators, 'update' for existing validators"),
18
+ workspaceId: z.string().describe("Required: Target workspace identifier (e.g., 'abc123')"),
19
+ typeInternalName: z.string().describe("Required: Target type internal name (e.g., 'cf.example.task')"),
20
+ attributeName: z.string().describe("Required: Target attribute name (e.g., 'taskTitle')"),
21
+ script: z.string().optional().describe("⚠️ REQUIRED: Review cplace Low-Code documentation before writing validator scripts. Access via web (https://docs.cplace.io/lowcode/features/validators/), MCP tools, or local file system."),
22
+ description: z.string().optional().describe("Optional: Human-readable description of the validator")
23
+ },
24
+ annotations: { title: "Manage Validator" }
25
+ }
26
+ };
27
+ export function registerValidatorTools(server, client) {
28
+ server.registerTool(TOOL_GET_VALIDATOR_BY_ATTRIBUTE, VALIDATOR_TOOL_DEFINITIONS[TOOL_GET_VALIDATOR_BY_ATTRIBUTE], async ({ workspaceId, typeInternalName, attributeName }) => {
12
29
  try {
13
30
  const result = await client.makeApiRequest('json/validator', 'GET', {
14
31
  workspaceId,
@@ -26,18 +43,7 @@ export function registerValidatorTools(server, client) {
26
43
  };
27
44
  }
28
45
  });
29
- server.registerTool("cplace_manage_validator", {
30
- description: "Create or update JavaScript validators for attribute definitions. Validators are JavaScript functions executed to validate attribute values during page creation and updates.",
31
- inputSchema: {
32
- operation: z.enum(["create", "update"]).describe("Operation type: 'create' for new validators, 'update' for existing validators"),
33
- workspaceId: z.string().describe("Required: Target workspace identifier (e.g., 'abc123')"),
34
- typeInternalName: z.string().describe("Required: Target type internal name (e.g., 'cf.example.task')"),
35
- attributeName: z.string().describe("Required: Target attribute name (e.g., 'taskTitle')"),
36
- script: z.string().optional().describe("⚠️ REQUIRED: Review cplace Low-Code documentation before writing validator scripts. Access via web (https://docs.cplace.io/lowcode/features/validators/), MCP tools, or local file system."),
37
- description: z.string().optional().describe("Optional: Human-readable description of the validator")
38
- },
39
- annotations: { title: "Manage Validator" }
40
- }, async (params) => {
46
+ server.registerTool(TOOL_MANAGE_VALIDATOR, VALIDATOR_TOOL_DEFINITIONS[TOOL_MANAGE_VALIDATOR], async (params) => {
41
47
  try {
42
48
  if (params.operation === "create") {
43
49
  if (!params.script) {
@@ -1 +1 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/tools/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/tools/validators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { CplaceApiClient } from "../api.js";
3
+ export declare function registerVersionCheckTool(server: McpServer, client: CplaceApiClient): void;
4
+ //# sourceMappingURL=version-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.d.ts","sourceRoot":"","sources":["../../src/tools/version-check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AA8B5C,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAoFlF"}
@@ -0,0 +1,107 @@
1
+ import { readFileSync } from 'fs';
2
+ import { fileURLToPath } from 'url';
3
+ import { dirname, join } from 'path';
4
+ const TOOL_CHECK_VERSION_COMPATIBILITY = 'cplace_check_version_compatibility';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = dirname(__filename);
7
+ const packageJsonPath = join(__dirname, '../../package.json');
8
+ function readPackageVersion() {
9
+ try {
10
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
11
+ return packageJson.version;
12
+ }
13
+ catch (error) {
14
+ console.error('Warning: Could not read package.json version:', error);
15
+ return 'unknown';
16
+ }
17
+ }
18
+ const FRONTEND_VERSION = readPackageVersion();
19
+ export function registerVersionCheckTool(server, client) {
20
+ server.registerTool(TOOL_CHECK_VERSION_COMPATIBILITY, {
21
+ description: "Check version compatibility between this MCP server package and the cplace backend API. Compares the npm package version (package.json) with the backend's expected version to detect mismatches. Returns compatibility status and provides guidance on whether to upgrade/downgrade the MCP server or upgrade the backend to resolve version mismatches.",
22
+ inputSchema: {},
23
+ annotations: { title: "Check Version Compatibility" }
24
+ }, async () => {
25
+ try {
26
+ const backendResponse = await client.makeApiRequest('json/version', 'GET');
27
+ const backendExpectedVersion = backendResponse.apiVersion;
28
+ const isCompatible = FRONTEND_VERSION === backendExpectedVersion;
29
+ if (isCompatible) {
30
+ return {
31
+ content: [{
32
+ type: "text",
33
+ text: JSON.stringify({
34
+ status: "compatible",
35
+ message: "✅ Package version matches backend expectations",
36
+ details: {
37
+ frontendPackageVersion: FRONTEND_VERSION,
38
+ backendExpectedVersion: backendExpectedVersion,
39
+ packageName: "@cplace/test-mcp-server"
40
+ }
41
+ }, null, 2)
42
+ }]
43
+ };
44
+ }
45
+ else {
46
+ const frontendIsNewer = compareVersions(FRONTEND_VERSION, backendExpectedVersion) > 0;
47
+ const guidance = frontendIsNewer
48
+ ? {
49
+ action: "MCP SERVER DOWNGRADE OR BACKEND UPGRADE NEEDED",
50
+ recommendation: `Two resolution options:
51
+ Option A: Downgrade MCP server to version ${backendExpectedVersion} by updating your Claude Desktop/Code configuration to use @cplace/test-mcp-server@${backendExpectedVersion}
52
+ Option B: Contact administrator to upgrade cplace backend to the latest version`,
53
+ explanation: "Your MCP server package is newer than what the backend expects. You can either downgrade the MCP server or upgrade the backend."
54
+ }
55
+ : {
56
+ action: "MCP SERVER UPGRADE NEEDED",
57
+ recommendation: `Upgrade MCP server package to version ${backendExpectedVersion}. If using npx without version pin, simply restart Claude to auto-upgrade. Otherwise, update your configuration to @cplace/test-mcp-server@${backendExpectedVersion}`,
58
+ explanation: "Backend has been upgraded and expects newer MCP server package version."
59
+ };
60
+ return {
61
+ content: [{
62
+ type: "text",
63
+ text: JSON.stringify({
64
+ status: "mismatch",
65
+ message: "⚠️ VERSION MISMATCH DETECTED",
66
+ details: {
67
+ frontendPackageVersion: FRONTEND_VERSION,
68
+ backendExpectedVersion: backendExpectedVersion,
69
+ packageName: "@cplace/test-mcp-server"
70
+ },
71
+ ...guidance
72
+ }, null, 2)
73
+ }],
74
+ isError: true
75
+ };
76
+ }
77
+ }
78
+ catch (error) {
79
+ return {
80
+ content: [{
81
+ type: "text",
82
+ text: JSON.stringify({
83
+ status: "error",
84
+ message: "❌ Unable to check version compatibility",
85
+ reason: error instanceof Error ? error.message : String(error),
86
+ suggestion: "Ensure backend endpoint 'json/version' is available. This may indicate the backend needs to be upgraded to support version checking."
87
+ }, null, 2)
88
+ }],
89
+ isError: true
90
+ };
91
+ }
92
+ });
93
+ }
94
+ function compareVersions(v1, v2) {
95
+ const parts1 = v1.split('.').map(Number);
96
+ const parts2 = v2.split('.').map(Number);
97
+ for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
98
+ const part1 = parts1[i] || 0;
99
+ const part2 = parts2[i] || 0;
100
+ if (part1 > part2)
101
+ return 1;
102
+ if (part1 < part2)
103
+ return -1;
104
+ }
105
+ return 0;
106
+ }
107
+ //# sourceMappingURL=version-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version-check.js","sourceRoot":"","sources":["../../src/tools/version-check.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAGrC,MAAM,gCAAgC,GAAG,oCAAoC,CAAC;AAM9E,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;AAE9D,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,CAAC;QACtE,OAAO,WAAW,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAGf,OAAO,CAAC,KAAK,CAAC,+CAA+C,EAAE,KAAK,CAAC,CAAC;QACtE,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;AAE9C,MAAM,UAAU,wBAAwB,CAAC,MAAiB,EAAE,MAAuB;IACjF,MAAM,CAAC,YAAY,CAAC,gCAAgC,EAClD;QACE,WAAW,EAAE,2VAA2V;QACxW,WAAW,EAAE,EAAE;QACf,WAAW,EAAE,EAAE,KAAK,EAAE,6BAA6B,EAAE;KACtD,EACD,KAAK,IAAI,EAAE;QACT,IAAI,CAAC;YAEH,MAAM,eAAe,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;YAC3E,MAAM,sBAAsB,GAAG,eAAe,CAAC,UAAU,CAAC;YAG1D,MAAM,YAAY,GAAG,gBAAgB,KAAK,sBAAsB,CAAC;YAEjE,IAAI,YAAY,EAAE,CAAC;gBAEjB,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,MAAM,EAAE,YAAY;gCACpB,OAAO,EAAE,gDAAgD;gCACzD,OAAO,EAAE;oCACP,sBAAsB,EAAE,gBAAgB;oCACxC,sBAAsB,EAAE,sBAAsB;oCAC9C,WAAW,EAAE,yBAAyB;iCACvC;6BACF,EAAE,IAAI,EAAE,CAAC,CAAC;yBACZ,CAAC;iBACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBAEN,MAAM,eAAe,GAAG,eAAe,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBAEtF,MAAM,QAAQ,GAAG,eAAe;oBAC9B,CAAC,CAAC;wBACE,MAAM,EAAE,gDAAgD;wBACxD,cAAc,EAAE;4CACY,sBAAsB,sFAAsF,sBAAsB;gFAC9F;wBAChE,WAAW,EAAE,iIAAiI;qBAC/I;oBACH,CAAC,CAAC;wBACE,MAAM,EAAE,2BAA2B;wBACnC,cAAc,EAAE,yCAAyC,sBAAsB,8IAA8I,sBAAsB,EAAE;wBACrP,WAAW,EAAE,yEAAyE;qBACvF,CAAC;gBAEN,OAAO;oBACL,OAAO,EAAE,CAAC;4BACR,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gCACnB,MAAM,EAAE,UAAU;gCAClB,OAAO,EAAE,8BAA8B;gCACvC,OAAO,EAAE;oCACP,sBAAsB,EAAE,gBAAgB;oCACxC,sBAAsB,EAAE,sBAAsB;oCAC9C,WAAW,EAAE,yBAAyB;iCACvC;gCACD,GAAG,QAAQ;6BACZ,EAAE,IAAI,EAAE,CAAC,CAAC;yBACZ,CAAC;oBACF,OAAO,EAAE,IAAI;iBACd,CAAC;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAEf,OAAO;gBACL,OAAO,EAAE,CAAC;wBACR,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;4BACnB,MAAM,EAAE,OAAO;4BACf,OAAO,EAAE,yCAAyC;4BAClD,MAAM,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;4BAC9D,UAAU,EAAE,sIAAsI;yBACnJ,EAAE,IAAI,EAAE,CAAC,CAAC;qBACZ,CAAC;gBACF,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC;AAMD,SAAS,eAAe,CAAC,EAAU,EAAE,EAAU;IAC7C,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAChE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAE7B,IAAI,KAAK,GAAG,KAAK;YAAE,OAAO,CAAC,CAAC;QAC5B,IAAI,KAAK,GAAG,KAAK;YAAE,OAAO,CAAC,CAAC,CAAC;IAC/B,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -1,4 +1,52 @@
1
1
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
2
3
  import { CplaceApiClient } from '../api.js';
4
+ export declare const VERSION_HISTORY_TOOL_DEFINITIONS: {
5
+ readonly cplace_get_page_changesets: {
6
+ readonly description: "Get all changesets (modification records) for a specific page within an optional time range. Returns changes in reverse chronological order.";
7
+ readonly inputSchema: {
8
+ readonly pageUID: z.ZodString;
9
+ readonly fromTimestamp: z.ZodOptional<z.ZodNumber>;
10
+ readonly toTimestamp: z.ZodOptional<z.ZodNumber>;
11
+ readonly offset: z.ZodOptional<z.ZodNumber>;
12
+ readonly limit: z.ZodOptional<z.ZodNumber>;
13
+ };
14
+ readonly annotations: {
15
+ readonly title: "Get Page ChangeSets";
16
+ };
17
+ };
18
+ readonly cplace_get_page_state_at_timestamp: {
19
+ readonly description: "Reconstruct and return the complete state of a page as it was at a specific point in time.";
20
+ readonly inputSchema: {
21
+ readonly pageUID: z.ZodString;
22
+ readonly timestamp: z.ZodNumber;
23
+ };
24
+ readonly annotations: {
25
+ readonly title: "Get Page State at Timestamp";
26
+ };
27
+ };
28
+ readonly cplace_get_page_diff: {
29
+ readonly description: "Compare page states between two timestamps and return the differences. If toTimestamp is not provided, compares with current state.";
30
+ readonly inputSchema: {
31
+ readonly pageUID: z.ZodString;
32
+ readonly fromTimestamp: z.ZodNumber;
33
+ readonly toTimestamp: z.ZodOptional<z.ZodNumber>;
34
+ };
35
+ readonly annotations: {
36
+ readonly title: "Get Page Diff";
37
+ };
38
+ };
39
+ readonly cplace_get_page_changesets_summary: {
40
+ readonly description: "Get a summary of recent changes for a page. This is a convenience tool that retrieves changesets for the last 7 days by default.";
41
+ readonly inputSchema: {
42
+ readonly pageUID: z.ZodString;
43
+ readonly daysBack: z.ZodOptional<z.ZodNumber>;
44
+ readonly limit: z.ZodOptional<z.ZodNumber>;
45
+ };
46
+ readonly annotations: {
47
+ readonly title: "Get Page Recent Changes Summary";
48
+ };
49
+ };
50
+ };
3
51
  export declare function registerVersionHistoryTools(server: McpServer, client: CplaceApiClient): void;
4
52
  //# sourceMappingURL=version-history.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version-history.d.ts","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEpE,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAG5C,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAsLrF"}
1
+ {"version":3,"file":"version-history.d.ts","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAU5C,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsCnC,CAAC;AAEX,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAqJrF"}
@@ -1,7 +1,11 @@
1
1
  import { z } from "zod";
2
2
  import { debugLogWithTag } from "../logger.js";
3
- export function registerVersionHistoryTools(server, client) {
4
- server.registerTool("cplace_get_page_changesets", {
3
+ const TOOL_GET_PAGE_CHANGESETS = 'cplace_get_page_changesets';
4
+ const TOOL_GET_PAGE_STATE_AT_TIMESTAMP = 'cplace_get_page_state_at_timestamp';
5
+ const TOOL_GET_PAGE_DIFF = 'cplace_get_page_diff';
6
+ const TOOL_GET_PAGE_CHANGESETS_SUMMARY = 'cplace_get_page_changesets_summary';
7
+ export const VERSION_HISTORY_TOOL_DEFINITIONS = {
8
+ [TOOL_GET_PAGE_CHANGESETS]: {
5
9
  description: "Get all changesets (modification records) for a specific page within an optional time range. Returns changes in reverse chronological order.",
6
10
  inputSchema: {
7
11
  pageUID: z.string().describe("The unique identifier (UID) of the page to get changesets for"),
@@ -11,7 +15,36 @@ export function registerVersionHistoryTools(server, client) {
11
15
  limit: z.number().max(1000).optional().describe("Maximum number of results (default: 100, max: 1000)")
12
16
  },
13
17
  annotations: { title: "Get Page ChangeSets" }
14
- }, async ({ pageUID, fromTimestamp, toTimestamp, offset, limit }) => {
18
+ },
19
+ [TOOL_GET_PAGE_STATE_AT_TIMESTAMP]: {
20
+ description: "Reconstruct and return the complete state of a page as it was at a specific point in time.",
21
+ inputSchema: {
22
+ pageUID: z.string().describe("The unique identifier (UID) of the page to get historical state for"),
23
+ timestamp: z.number().describe("Target timestamp in milliseconds since Unix epoch")
24
+ },
25
+ annotations: { title: "Get Page State at Timestamp" }
26
+ },
27
+ [TOOL_GET_PAGE_DIFF]: {
28
+ description: "Compare page states between two timestamps and return the differences. If toTimestamp is not provided, compares with current state.",
29
+ inputSchema: {
30
+ pageUID: z.string().describe("The unique identifier (UID) of the page to compare"),
31
+ fromTimestamp: z.number().describe("Starting timestamp in milliseconds since Unix epoch"),
32
+ toTimestamp: z.number().optional().describe("Optional ending timestamp in milliseconds since Unix epoch (defaults to current state)")
33
+ },
34
+ annotations: { title: "Get Page Diff" }
35
+ },
36
+ [TOOL_GET_PAGE_CHANGESETS_SUMMARY]: {
37
+ description: "Get a summary of recent changes for a page. This is a convenience tool that retrieves changesets for the last 7 days by default.",
38
+ inputSchema: {
39
+ pageUID: z.string().describe("The unique identifier (UID) of the page to get changes for"),
40
+ daysBack: z.number().optional().describe("Number of days to look back (default: 7)"),
41
+ limit: z.number().max(1000).optional().describe("Maximum number of changesets to return (default: 50)")
42
+ },
43
+ annotations: { title: "Get Page Recent Changes Summary" }
44
+ }
45
+ };
46
+ export function registerVersionHistoryTools(server, client) {
47
+ server.registerTool(TOOL_GET_PAGE_CHANGESETS, VERSION_HISTORY_TOOL_DEFINITIONS[TOOL_GET_PAGE_CHANGESETS], async ({ pageUID, fromTimestamp, toTimestamp, offset, limit }) => {
15
48
  debugLogWithTag('PAGE_CHANGESETS', `Getting changesets for page: ${pageUID}`);
16
49
  try {
17
50
  const requestBody = {
@@ -42,14 +75,7 @@ export function registerVersionHistoryTools(server, client) {
42
75
  };
43
76
  }
44
77
  });
45
- server.registerTool("cplace_get_page_state_at_timestamp", {
46
- description: "Reconstruct and return the complete state of a page as it was at a specific point in time.",
47
- inputSchema: {
48
- pageUID: z.string().describe("The unique identifier (UID) of the page to get historical state for"),
49
- timestamp: z.number().describe("Target timestamp in milliseconds since Unix epoch")
50
- },
51
- annotations: { title: "Get Page State at Timestamp" }
52
- }, async ({ pageUID, timestamp }) => {
78
+ server.registerTool(TOOL_GET_PAGE_STATE_AT_TIMESTAMP, VERSION_HISTORY_TOOL_DEFINITIONS[TOOL_GET_PAGE_STATE_AT_TIMESTAMP], async ({ pageUID, timestamp }) => {
53
79
  debugLogWithTag('PAGE_STATE', `Getting state for page ${pageUID} at timestamp ${timestamp}`);
54
80
  try {
55
81
  const requestBody = {
@@ -71,15 +97,7 @@ export function registerVersionHistoryTools(server, client) {
71
97
  };
72
98
  }
73
99
  });
74
- server.registerTool("cplace_get_page_diff", {
75
- description: "Compare page states between two timestamps and return the differences. If toTimestamp is not provided, compares with current state.",
76
- inputSchema: {
77
- pageUID: z.string().describe("The unique identifier (UID) of the page to compare"),
78
- fromTimestamp: z.number().describe("Starting timestamp in milliseconds since Unix epoch"),
79
- toTimestamp: z.number().optional().describe("Optional ending timestamp in milliseconds since Unix epoch (defaults to current state)")
80
- },
81
- annotations: { title: "Get Page Diff" }
82
- }, async ({ pageUID, fromTimestamp, toTimestamp }) => {
100
+ server.registerTool(TOOL_GET_PAGE_DIFF, VERSION_HISTORY_TOOL_DEFINITIONS[TOOL_GET_PAGE_DIFF], async ({ pageUID, fromTimestamp, toTimestamp }) => {
83
101
  debugLogWithTag('PAGE_DIFF', `Getting diff for page ${pageUID} from ${fromTimestamp} to ${toTimestamp || 'current'}`);
84
102
  try {
85
103
  const requestBody = {
@@ -105,15 +123,7 @@ export function registerVersionHistoryTools(server, client) {
105
123
  };
106
124
  }
107
125
  });
108
- server.registerTool("cplace_get_page_changesets_summary", {
109
- description: "Get a summary of recent changes for a page. This is a convenience tool that retrieves changesets for the last 7 days by default.",
110
- inputSchema: {
111
- pageUID: z.string().describe("The unique identifier (UID) of the page to get changes for"),
112
- daysBack: z.number().optional().describe("Number of days to look back (default: 7)"),
113
- limit: z.number().max(1000).optional().describe("Maximum number of changesets to return (default: 50)")
114
- },
115
- annotations: { title: "Get Page Recent Changes Summary" }
116
- }, async ({ pageUID, daysBack, limit }) => {
126
+ server.registerTool(TOOL_GET_PAGE_CHANGESETS_SUMMARY, VERSION_HISTORY_TOOL_DEFINITIONS[TOOL_GET_PAGE_CHANGESETS_SUMMARY], async ({ pageUID, daysBack, limit }) => {
117
127
  const effectiveDaysBack = daysBack || 7;
118
128
  const effectiveLimit = limit || 50;
119
129
  debugLogWithTag('PAGE_CHANGES_SUMMARY', `Getting recent changes for page ${pageUID} (last ${effectiveDaysBack} days)`);
@@ -1 +1 @@
1
- {"version":3,"file":"version-history.js","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version-history.js","sourceRoot":"","sources":["../../src/tools/version-history.ts"],"names":[],"mappings":"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"}