@cplace/test-mcp-server 0.1.15 → 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.
- package/README.md +248 -113
- package/dist/conditional-registration.d.ts.map +1 -1
- package/dist/conditional-registration.js +19 -3
- package/dist/conditional-registration.js.map +1 -1
- package/dist/index.js +21 -93
- package/dist/index.js.map +1 -1
- package/dist/preference-file.d.ts +16 -0
- package/dist/preference-file.d.ts.map +1 -0
- package/dist/preference-file.js +133 -0
- package/dist/preference-file.js.map +1 -0
- package/dist/profiles.d.ts +1 -3
- package/dist/profiles.d.ts.map +1 -1
- package/dist/profiles.js +60 -112
- package/dist/profiles.js.map +1 -1
- package/dist/searchConversion.d.ts.map +1 -1
- package/dist/searchConversion.js +18 -5
- package/dist/searchConversion.js.map +1 -1
- package/dist/searchSchema.d.ts +25 -25
- package/dist/searchSchema.d.ts.map +1 -1
- package/dist/searchSchema.js +5 -5
- package/dist/searchSchema.js.map +1 -1
- package/dist/token-hashing.d.ts +3 -0
- package/dist/token-hashing.d.ts.map +1 -0
- package/dist/token-hashing.js +18 -0
- package/dist/token-hashing.js.map +1 -0
- package/dist/tool-metadata.d.ts +2 -0
- package/dist/tool-metadata.d.ts.map +1 -0
- package/dist/tool-metadata.js +43 -0
- package/dist/tool-metadata.js.map +1 -0
- package/dist/tools/change-listeners.d.ts +30 -0
- package/dist/tools/change-listeners.d.ts.map +1 -1
- package/dist/tools/change-listeners.js +24 -18
- package/dist/tools/change-listeners.js.map +1 -1
- package/dist/tools/common-schemas.d.ts +2 -0
- package/dist/tools/common-schemas.d.ts.map +1 -1
- package/dist/tools/common-schemas.js +16 -0
- package/dist/tools/common-schemas.js.map +1 -1
- package/dist/tools/csv-export.d.ts +1849 -0
- package/dist/tools/csv-export.d.ts.map +1 -0
- package/dist/tools/csv-export.js +61 -0
- package/dist/tools/csv-export.js.map +1 -0
- package/dist/tools/generic-layouts.d.ts +302 -0
- package/dist/tools/generic-layouts.d.ts.map +1 -1
- package/dist/tools/generic-layouts.js +102 -70
- package/dist/tools/generic-layouts.js.map +1 -1
- package/dist/tools/get-operations.d.ts +16 -0
- package/dist/tools/get-operations.d.ts.map +1 -0
- package/dist/tools/get-operations.js +63 -0
- package/dist/tools/get-operations.js.map +1 -0
- package/dist/tools/pages.d.ts +55 -0
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +173 -257
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/ppt-export-schemas.d.ts +16 -16
- package/dist/tools/ppt-export.d.ts +1493 -0
- package/dist/tools/ppt-export.d.ts.map +1 -1
- package/dist/tools/ppt-export.js +23 -17
- package/dist/tools/ppt-export.js.map +1 -1
- package/dist/tools/profile-management.d.ts +20 -0
- package/dist/tools/profile-management.d.ts.map +1 -0
- package/dist/tools/profile-management.js +250 -0
- package/dist/tools/profile-management.js.map +1 -0
- package/dist/tools/references.d.ts +36 -0
- package/dist/tools/references.d.ts.map +1 -1
- package/dist/tools/references.js +48 -45
- package/dist/tools/references.js.map +1 -1
- package/dist/tools/richstring-widgets.d.ts +51 -0
- package/dist/tools/richstring-widgets.d.ts.map +1 -0
- package/dist/tools/richstring-widgets.js +173 -0
- package/dist/tools/richstring-widgets.js.map +1 -0
- package/dist/tools/schedule.d.ts +14 -0
- package/dist/tools/schedule.d.ts.map +1 -1
- package/dist/tools/schedule.js +7 -3
- package/dist/tools/schedule.js.map +1 -1
- package/dist/tools/script-logs.d.ts +29 -0
- package/dist/tools/script-logs.d.ts.map +1 -0
- package/dist/tools/script-logs.js +144 -0
- package/dist/tools/script-logs.js.map +1 -0
- package/dist/tools/search.d.ts +1870 -0
- package/dist/tools/search.d.ts.map +1 -1
- package/dist/tools/search.js +49 -75
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/system.d.ts.map +1 -1
- package/dist/tools/system.js +4 -2
- package/dist/tools/system.js.map +1 -1
- package/dist/tools/type-layouts.d.ts +37 -0
- package/dist/tools/type-layouts.d.ts.map +1 -1
- package/dist/tools/type-layouts.js +30 -22
- package/dist/tools/type-layouts.js.map +1 -1
- package/dist/tools/type-management.d.ts +134 -0
- package/dist/tools/type-management.d.ts.map +1 -0
- package/dist/tools/{workspace.js → type-management.js} +67 -307
- package/dist/tools/type-management.js.map +1 -0
- package/dist/tools/users.d.ts +19 -0
- package/dist/tools/users.d.ts.map +1 -1
- package/dist/tools/users.js +14 -28
- package/dist/tools/users.js.map +1 -1
- package/dist/tools/validators.d.ts +28 -0
- package/dist/tools/validators.d.ts.map +1 -1
- package/dist/tools/validators.js +21 -15
- package/dist/tools/validators.js.map +1 -1
- package/dist/tools/version-check.d.ts.map +1 -1
- package/dist/tools/version-check.js +11 -9
- package/dist/tools/version-check.js.map +1 -1
- package/dist/tools/version-history.d.ts +48 -0
- package/dist/tools/version-history.d.ts.map +1 -1
- package/dist/tools/version-history.js +39 -29
- package/dist/tools/version-history.js.map +1 -1
- package/dist/tools/widgets.d.ts +182 -0
- package/dist/tools/widgets.d.ts.map +1 -1
- package/dist/tools/widgets.js +122 -343
- package/dist/tools/widgets.js.map +1 -1
- package/dist/tools/workflow-scripts.d.ts +40 -0
- package/dist/tools/workflow-scripts.d.ts.map +1 -0
- package/dist/tools/workflow-scripts.js +186 -0
- package/dist/tools/workflow-scripts.js.map +1 -0
- package/dist/tools/workflow.d.ts +70 -0
- package/dist/tools/workflow.d.ts.map +1 -0
- package/dist/tools/workflow.js +259 -0
- package/dist/tools/workflow.js.map +1 -0
- package/dist/tools/workspace-admin.d.ts +40 -0
- package/dist/tools/workspace-admin.d.ts.map +1 -0
- package/dist/tools/workspace-admin.js +125 -0
- package/dist/tools/workspace-admin.js.map +1 -0
- package/dist/tools/workspace-core.d.ts +45 -0
- package/dist/tools/workspace-core.d.ts.map +1 -0
- package/dist/tools/workspace-core.js +153 -0
- package/dist/tools/workspace-core.js.map +1 -0
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/dateValidation.d.ts +5 -0
- package/dist/utils/dateValidation.d.ts.map +1 -0
- package/dist/utils/dateValidation.js +57 -0
- package/dist/utils/dateValidation.js.map +1 -0
- package/dist/utils.js +7 -7
- package/dist/utils.js.map +1 -1
- package/package.json +1 -1
- package/dist/tools/workspace.d.ts +0 -4
- package/dist/tools/workspace.d.ts.map +0 -1
- package/dist/tools/workspace.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richstring-widgets.d.ts","sourceRoot":"","sources":["../../src/tools/richstring-widgets.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;AA4B5C,eAAO,MAAM,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiDrC,CAAC;AAEX,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAkLvF"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { debugLogWithTag } from "../logger.js";
|
|
3
|
+
const TOOL_RICHSTRING_EXTRACT_WIDGETS = 'cplace_richstring_extract_widgets';
|
|
4
|
+
const TOOL_RICHSTRING_INSERT_WIDGET = 'cplace_richstring_insert_widget';
|
|
5
|
+
const TOOL_RICHSTRING_UPDATE_WIDGET = 'cplace_richstring_update_widget';
|
|
6
|
+
const TOOL_RICHSTRING_DELETE_WIDGET = 'cplace_richstring_delete_widget';
|
|
7
|
+
export const RICHSTRING_WIDGET_TOOL_DEFINITIONS = {
|
|
8
|
+
[TOOL_RICHSTRING_EXTRACT_WIDGETS]: {
|
|
9
|
+
description: "Extract all embedded widgets from richstring HTML content. Parses the content and returns structured information about each widget including ID, type, properties, and position. Use this to discover widget IDs before updating or deleting them.",
|
|
10
|
+
inputSchema: {
|
|
11
|
+
content: z.string().describe("The richstring HTML content to parse (may include <embeddedwidget> tags)")
|
|
12
|
+
},
|
|
13
|
+
annotations: { title: "Extract Embedded Widgets from RichString" }
|
|
14
|
+
},
|
|
15
|
+
[TOOL_RICHSTRING_INSERT_WIDGET]: {
|
|
16
|
+
description: "Insert a new embedded widget into richstring content at a specified position or at the end. Returns the modified content which must be saved back to the page. Supports position validation with expectedBefore/expectedAfter parameters for safe concurrent updates.",
|
|
17
|
+
inputSchema: {
|
|
18
|
+
widgetType: z.string().describe("Widget type to insert (e.g., 'cf.platform.wiki', 'cf.platform.embeddedSearchAsTable'). Use cplace_get_widget_definition to verify it supports INSIDE_RICHSTRING embedding."),
|
|
19
|
+
content: z.string().optional().describe("Current richstring content to insert into (default: empty string)"),
|
|
20
|
+
position: z.number().optional().describe("Zero-based character position to insert at (default: end of content). Must be between 0 and content length."),
|
|
21
|
+
expectedBefore: z.string().optional().describe("Optional: Expected content immediately before insertion position for validation. Use for safe concurrent updates."),
|
|
22
|
+
expectedAfter: z.string().optional().describe("Optional: Expected content immediately after insertion position for validation. Use for safe concurrent updates."),
|
|
23
|
+
properties: z.record(z.any()).optional().describe(`Optional: Widget configuration properties as key-value pairs. Values should be arrays. Examples:
|
|
24
|
+
- String array: {"title": ["My Widget"]}
|
|
25
|
+
- Number: {"height": [800]}
|
|
26
|
+
- Boolean: {"showFooter": [true]}
|
|
27
|
+
- Complex JSON: {"config": ["{\"key\": \"value\"}"]}
|
|
28
|
+
|
|
29
|
+
Use cplace_get_widget_definition to understand required properties and data types.`)
|
|
30
|
+
},
|
|
31
|
+
annotations: { title: "Insert Embedded Widget into RichString" }
|
|
32
|
+
},
|
|
33
|
+
[TOOL_RICHSTRING_UPDATE_WIDGET]: {
|
|
34
|
+
description: "Update an existing embedded widget's properties by its ID. Properties are completely replaced (not merged). Returns the modified content which must be saved back to the page. The widget's position and type remain unchanged.",
|
|
35
|
+
inputSchema: {
|
|
36
|
+
widgetId: z.string().describe("The unique ID of the widget to update (obtain via cplace_richstring_extract_widgets)"),
|
|
37
|
+
content: z.string().describe("The complete richstring content containing the widget to update"),
|
|
38
|
+
properties: z.record(z.any()).describe(`New widget properties to set (completely replaces existing properties). Values should be arrays. Examples:
|
|
39
|
+
- String array: {"title": ["Updated Widget"]}
|
|
40
|
+
- Number: {"height": [900]}
|
|
41
|
+
- Boolean: {"showFooter": [true]}
|
|
42
|
+
- Complex JSON: {"config": ["{\"key\": \"value\"}"]}
|
|
43
|
+
|
|
44
|
+
Use cplace_get_widget_definition to understand required properties and data types.`)
|
|
45
|
+
},
|
|
46
|
+
annotations: { title: "Update Embedded Widget in RichString" }
|
|
47
|
+
},
|
|
48
|
+
[TOOL_RICHSTRING_DELETE_WIDGET]: {
|
|
49
|
+
description: "Remove an embedded widget from richstring content by its ID. Returns the modified content which must be saved back to the page. The surrounding HTML structure is preserved. Consider extracting widget details before deletion if needed for backup.",
|
|
50
|
+
inputSchema: {
|
|
51
|
+
widgetId: z.string().describe("The unique ID of the widget to delete (obtain via cplace_richstring_extract_widgets)"),
|
|
52
|
+
content: z.string().describe("The complete richstring content containing the widget to delete")
|
|
53
|
+
},
|
|
54
|
+
annotations: { title: "Delete Embedded Widget from RichString" }
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
export function registerRichStringWidgetTools(server, client) {
|
|
58
|
+
server.registerTool(TOOL_RICHSTRING_EXTRACT_WIDGETS, RICHSTRING_WIDGET_TOOL_DEFINITIONS[TOOL_RICHSTRING_EXTRACT_WIDGETS], async ({ content }) => {
|
|
59
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Starting widget extraction from content (${content.length} chars)`);
|
|
60
|
+
try {
|
|
61
|
+
const result = await client.makeApiRequest('json/richstring-embedded-widget/extract', 'GET', { content });
|
|
62
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Successfully extracted ${result.totalCount || 0} widgets`);
|
|
63
|
+
return {
|
|
64
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Error extracting widgets: ${error instanceof Error ? error.message : String(error)}`);
|
|
69
|
+
return {
|
|
70
|
+
content: [{
|
|
71
|
+
type: "text",
|
|
72
|
+
text: `Error extracting widgets: ${error instanceof Error ? error.message : String(error)}`
|
|
73
|
+
}],
|
|
74
|
+
isError: true
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
server.registerTool(TOOL_RICHSTRING_INSERT_WIDGET, RICHSTRING_WIDGET_TOOL_DEFINITIONS[TOOL_RICHSTRING_INSERT_WIDGET], async ({ widgetType, content, position, expectedBefore, expectedAfter, properties }) => {
|
|
79
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Starting widget insertion: ${widgetType}`);
|
|
80
|
+
try {
|
|
81
|
+
const requestBody = {
|
|
82
|
+
widgetType
|
|
83
|
+
};
|
|
84
|
+
if (content !== undefined) {
|
|
85
|
+
requestBody.content = content;
|
|
86
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Including content (${content.length} chars)`);
|
|
87
|
+
}
|
|
88
|
+
if (position !== undefined) {
|
|
89
|
+
requestBody.position = position;
|
|
90
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Inserting at position: ${position}`);
|
|
91
|
+
}
|
|
92
|
+
if (expectedBefore !== undefined) {
|
|
93
|
+
requestBody.expectedBefore = expectedBefore;
|
|
94
|
+
}
|
|
95
|
+
if (expectedAfter !== undefined) {
|
|
96
|
+
requestBody.expectedAfter = expectedAfter;
|
|
97
|
+
}
|
|
98
|
+
if (properties && Object.keys(properties).length > 0) {
|
|
99
|
+
requestBody.properties = properties;
|
|
100
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Including properties: ${JSON.stringify(Object.keys(properties))}`);
|
|
101
|
+
}
|
|
102
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
|
|
103
|
+
const result = await client.makeApiRequest('json/richstring-embedded-widget/insert', 'POST', undefined, requestBody);
|
|
104
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Successfully inserted widget: ${result.insertedWidgetId}`);
|
|
105
|
+
return {
|
|
106
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Error inserting widget: ${error instanceof Error ? error.message : String(error)}`);
|
|
111
|
+
return {
|
|
112
|
+
content: [{
|
|
113
|
+
type: "text",
|
|
114
|
+
text: `Error inserting widget: ${error instanceof Error ? error.message : String(error)}`
|
|
115
|
+
}],
|
|
116
|
+
isError: true
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
server.registerTool(TOOL_RICHSTRING_UPDATE_WIDGET, RICHSTRING_WIDGET_TOOL_DEFINITIONS[TOOL_RICHSTRING_UPDATE_WIDGET], async ({ widgetId, content, properties }) => {
|
|
121
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Starting widget update: ${widgetId}`);
|
|
122
|
+
try {
|
|
123
|
+
const requestBody = {
|
|
124
|
+
widgetId,
|
|
125
|
+
content,
|
|
126
|
+
properties
|
|
127
|
+
};
|
|
128
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Updating widget with properties: ${JSON.stringify(Object.keys(properties))}`);
|
|
129
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
|
|
130
|
+
const result = await client.makeApiRequest('json/richstring-embedded-widget/update', 'PATCH', undefined, requestBody);
|
|
131
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Successfully updated widget: ${widgetId}`);
|
|
132
|
+
return {
|
|
133
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
catch (error) {
|
|
137
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Error updating widget: ${error instanceof Error ? error.message : String(error)}`);
|
|
138
|
+
return {
|
|
139
|
+
content: [{
|
|
140
|
+
type: "text",
|
|
141
|
+
text: `Error updating widget: ${error instanceof Error ? error.message : String(error)}`
|
|
142
|
+
}],
|
|
143
|
+
isError: true
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
server.registerTool(TOOL_RICHSTRING_DELETE_WIDGET, RICHSTRING_WIDGET_TOOL_DEFINITIONS[TOOL_RICHSTRING_DELETE_WIDGET], async ({ widgetId, content }) => {
|
|
148
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Starting widget deletion: ${widgetId}`);
|
|
149
|
+
try {
|
|
150
|
+
const requestBody = {
|
|
151
|
+
widgetId,
|
|
152
|
+
content
|
|
153
|
+
};
|
|
154
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Request body: ${JSON.stringify(requestBody, null, 2)}`);
|
|
155
|
+
const result = await client.makeApiRequest('json/richstring-embedded-widget/delete', 'DELETE', undefined, requestBody);
|
|
156
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Successfully deleted widget: ${widgetId}`);
|
|
157
|
+
return {
|
|
158
|
+
content: [{ type: "text", text: JSON.stringify(result, null, 2) }]
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
debugLogWithTag('RICHSTRING_WIDGETS', `Error deleting widget: ${error instanceof Error ? error.message : String(error)}`);
|
|
163
|
+
return {
|
|
164
|
+
content: [{
|
|
165
|
+
type: "text",
|
|
166
|
+
text: `Error deleting widget: ${error instanceof Error ? error.message : String(error)}`
|
|
167
|
+
}],
|
|
168
|
+
isError: true
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=richstring-widgets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richstring-widgets.js","sourceRoot":"","sources":["../../src/tools/richstring-widgets.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/schedule.d.ts
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
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 SCHEDULE_TOOL_DEFINITIONS: {
|
|
5
|
+
readonly cplace_get_schedule_links: {
|
|
6
|
+
readonly description: "Get schedule dependencies and links between work packages. Can analyze cross-schedule dependencies (between different schedules), intra-schedule dependencies (within the same schedule), or both, based on the scope parameter.";
|
|
7
|
+
readonly inputSchema: {
|
|
8
|
+
readonly scheduleUID: z.ZodString;
|
|
9
|
+
readonly linkType: z.ZodOptional<z.ZodString>;
|
|
10
|
+
readonly scope: z.ZodDefault<z.ZodEnum<["cross", "inter", "all"]>>;
|
|
11
|
+
};
|
|
12
|
+
readonly annotations: {
|
|
13
|
+
readonly title: "Get Cross-Schedule Links";
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
};
|
|
3
17
|
export declare function registerScheduleTools(server: McpServer, client: CplaceApiClient): void;
|
|
4
18
|
//# sourceMappingURL=schedule.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule.d.ts","sourceRoot":"","sources":["../../src/tools/schedule.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,yBAAyB;;;;;;;;;;;;CAe5B,CAAC;AAEX,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QAmC/E"}
|
package/dist/tools/schedule.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
import { debugLogWithTag } from "../logger.js";
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
const TOOL_GET_SCHEDULE_LINKS = 'cplace_get_schedule_links';
|
|
4
|
+
export const SCHEDULE_TOOL_DEFINITIONS = {
|
|
5
|
+
[TOOL_GET_SCHEDULE_LINKS]: {
|
|
5
6
|
description: "Get schedule dependencies and links between work packages. Can analyze cross-schedule dependencies (between different schedules), intra-schedule dependencies (within the same schedule), or both, based on the scope parameter.",
|
|
6
7
|
inputSchema: {
|
|
7
8
|
scheduleUID: z.string().describe("The unique identifier of the schedule to analyze for schedule links (e.g., 'page/schedule123')"),
|
|
@@ -14,7 +15,10 @@ export function registerScheduleTools(server, client) {
|
|
|
14
15
|
- "all": Both cross-schedule and intra-schedule dependencies`)
|
|
15
16
|
},
|
|
16
17
|
annotations: { title: "Get Cross-Schedule Links" }
|
|
17
|
-
}
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
export function registerScheduleTools(server, client) {
|
|
21
|
+
server.registerTool(TOOL_GET_SCHEDULE_LINKS, SCHEDULE_TOOL_DEFINITIONS[TOOL_GET_SCHEDULE_LINKS], async ({ scheduleUID, linkType, scope = "cross" }) => {
|
|
18
22
|
try {
|
|
19
23
|
debugLogWithTag('SCHEDULE_LINKS', `Getting schedule links for schedule: ${scheduleUID}, scope: ${scope}, linkType: ${linkType || 'all'}`);
|
|
20
24
|
const params = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"schedule.js","sourceRoot":"","sources":["../../src/tools/schedule.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;AAG5D,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,CAAC,uBAAuB,CAAC,EAAE;QACzB,WAAW,EAAE,kOAAkO;QAC/O,WAAW,EAAE;YACX,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC;YAClI,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC;;qEAEsB,CAAC;YAChE,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;;;6DAGZ,CAAC;SACzD;QACD,WAAW,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE;KACnD;CACO,CAAC;AAEX,MAAM,UAAU,qBAAqB,CAAC,MAAiB,EAAE,MAAuB;IAE9E,MAAM,CAAC,YAAY,CAAC,uBAAuB,EACzC,yBAAyB,CAAC,uBAAuB,CAAC,EAClD,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,KAAK,GAAG,OAAO,EAAE,EAAE,EAAE;QACnD,IAAI,CAAC;YACH,eAAe,CAAC,gBAAgB,EAAE,wCAAwC,WAAW,YAAY,KAAK,eAAe,QAAQ,IAAI,KAAK,EAAE,CAAC,CAAC;YAE1I,MAAM,MAAM,GAA2B;gBACrC,WAAW;aACZ,CAAC;YAEF,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC7B,CAAC;YAGD,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAErB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,qBAAqB,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;YAEjF,eAAe,CAAC,gBAAgB,EAAE,4CAA4C,KAAK,EAAE,CAAC,CAAC;YAEvF,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,eAAe,CAAC,gBAAgB,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7H,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC;gBAC5H,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { CplaceApiClient } from '../api.js';
|
|
4
|
+
export declare const SCRIPT_LOGS_TOOL_DEFINITIONS: {
|
|
5
|
+
readonly cplace_get_script_logs: {
|
|
6
|
+
readonly description: "Retrieve filtered and paginated script execution logs for debugging and monitoring low-code scripts.\n\nSupports comprehensive filtering by:\n- Script identity (scriptId, logName)\n- Context (spaceId, userId, correlationId)\n- Log level (logType, messageType)\n- Message content (message, logMatch)\n- Time range (logDateFrom, logDateTo)\n\nSecurity Model:\n- Administrators and low-code editors: Full access to all logs\n- Regular users: Must provide scriptId parameter\n\nResponse Size Management:\n- By default, stack traces are truncated to 500 characters to save tokens\n- Use includeFullStackTraces=true to get complete stack traces when needed\n- If response is still too large, use more specific filters or smaller pageSize";
|
|
7
|
+
readonly inputSchema: {
|
|
8
|
+
readonly scriptId: z.ZodOptional<z.ZodString>;
|
|
9
|
+
readonly logName: z.ZodOptional<z.ZodString>;
|
|
10
|
+
readonly spaceId: z.ZodOptional<z.ZodString>;
|
|
11
|
+
readonly userId: z.ZodOptional<z.ZodString>;
|
|
12
|
+
readonly correlationId: z.ZodOptional<z.ZodString>;
|
|
13
|
+
readonly logType: z.ZodOptional<z.ZodEnum<["debug", "error", "all"]>>;
|
|
14
|
+
readonly messageType: z.ZodOptional<z.ZodEnum<["DEBUG", "ERROR", "INFO", "WARN"]>>;
|
|
15
|
+
readonly message: z.ZodOptional<z.ZodString>;
|
|
16
|
+
readonly logMatch: z.ZodOptional<z.ZodEnum<["prefix", "contains", "exact"]>>;
|
|
17
|
+
readonly logDateFrom: z.ZodOptional<z.ZodString>;
|
|
18
|
+
readonly logDateTo: z.ZodOptional<z.ZodString>;
|
|
19
|
+
readonly page: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
readonly pageSize: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
readonly includeFullStackTraces: z.ZodOptional<z.ZodBoolean>;
|
|
22
|
+
};
|
|
23
|
+
readonly annotations: {
|
|
24
|
+
readonly title: "Get Script Logs";
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export declare function registerScriptLogsTools(server: McpServer, client: CplaceApiClient): void;
|
|
29
|
+
//# sourceMappingURL=script-logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script-logs.d.ts","sourceRoot":"","sources":["../../src/tools/script-logs.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;AAQ5C,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;CAkD/B,CAAC;AAmCX,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,QA4GjF"}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { debugLogWithTag } from "../logger.js";
|
|
3
|
+
import { checkResponseSize } from "../utils.js";
|
|
4
|
+
const TOOL_GET_SCRIPT_LOGS = 'cplace_get_script_logs';
|
|
5
|
+
export const SCRIPT_LOGS_TOOL_DEFINITIONS = {
|
|
6
|
+
[TOOL_GET_SCRIPT_LOGS]: {
|
|
7
|
+
description: `Retrieve filtered and paginated script execution logs for debugging and monitoring low-code scripts.
|
|
8
|
+
|
|
9
|
+
Supports comprehensive filtering by:
|
|
10
|
+
- Script identity (scriptId, logName)
|
|
11
|
+
- Context (spaceId, userId, correlationId)
|
|
12
|
+
- Log level (logType, messageType)
|
|
13
|
+
- Message content (message, logMatch)
|
|
14
|
+
- Time range (logDateFrom, logDateTo)
|
|
15
|
+
|
|
16
|
+
Security Model:
|
|
17
|
+
- Administrators and low-code editors: Full access to all logs
|
|
18
|
+
- Regular users: Must provide scriptId parameter
|
|
19
|
+
|
|
20
|
+
Response Size Management:
|
|
21
|
+
- By default, stack traces are truncated to 500 characters to save tokens
|
|
22
|
+
- Use includeFullStackTraces=true to get complete stack traces when needed
|
|
23
|
+
- If response is still too large, use more specific filters or smaller pageSize`,
|
|
24
|
+
inputSchema: {
|
|
25
|
+
scriptId: z.string().optional().describe("Filter by specific script identifier (e.g., 'script/abc123'). Required for non-admin/non-low-code-editor users."),
|
|
26
|
+
logName: z.string().optional().describe("Filter by log marker name"),
|
|
27
|
+
spaceId: z.string().optional().describe("Filter by workspace ID (e.g., 'workspace/xyz789')"),
|
|
28
|
+
userId: z.string().optional().describe("Filter by user ID who triggered the execution"),
|
|
29
|
+
correlationId: z.string().optional().describe("Filter by correlation ID for tracing related operations"),
|
|
30
|
+
logType: z.enum(['debug', 'error', 'all']).optional().describe("Filter by log category (default: 'all')"),
|
|
31
|
+
messageType: z.enum(['DEBUG', 'ERROR', 'INFO', 'WARN']).optional().describe("Filter by message severity"),
|
|
32
|
+
message: z.string().optional().describe("Filter by message text content"),
|
|
33
|
+
logMatch: z.enum(['prefix', 'contains', 'exact']).optional().describe("Message matching mode (default: 'contains'). 'prefix' matches start of message, 'contains' matches anywhere, 'exact' requires exact match."),
|
|
34
|
+
logDateFrom: z.string().optional().describe("Start date/time in ISO 8601 format or Unix timestamp in milliseconds (e.g., '2025-10-01T00:00:00Z' or '1696118400000')"),
|
|
35
|
+
logDateTo: z.string().optional().describe("End date/time in ISO 8601 format or Unix timestamp in milliseconds"),
|
|
36
|
+
page: z.number().min(1).optional().describe("Page number to retrieve (default: 1, min: 1)"),
|
|
37
|
+
pageSize: z.number().min(1).max(100).optional().describe("Number of log entries per page (default: 25, min: 1, max: 100)"),
|
|
38
|
+
includeFullStackTraces: z.boolean().optional().describe("Include complete stack traces without truncation (default: false). When false, stack traces are truncated to 500 characters to save tokens. Set to true when you need full stack traces for deep debugging.")
|
|
39
|
+
},
|
|
40
|
+
annotations: { title: "Get Script Logs" }
|
|
41
|
+
}
|
|
42
|
+
};
|
|
43
|
+
function truncateStackTraces(logs, maxLength = 500) {
|
|
44
|
+
if (!logs || !Array.isArray(logs)) {
|
|
45
|
+
return logs;
|
|
46
|
+
}
|
|
47
|
+
return logs.map(log => {
|
|
48
|
+
if (!log || typeof log !== 'object') {
|
|
49
|
+
return log;
|
|
50
|
+
}
|
|
51
|
+
if (log.stackTrace && typeof log.stackTrace === 'string' && log.stackTrace.length > maxLength) {
|
|
52
|
+
return {
|
|
53
|
+
...log,
|
|
54
|
+
stackTrace: log.stackTrace.substring(0, maxLength) +
|
|
55
|
+
'\n\n...[truncated - use includeFullStackTraces=true for full trace]',
|
|
56
|
+
stackTraceLength: log.stackTrace.length,
|
|
57
|
+
stackTraceTruncated: true
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return log;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
export function registerScriptLogsTools(server, client) {
|
|
64
|
+
server.registerTool(TOOL_GET_SCRIPT_LOGS, SCRIPT_LOGS_TOOL_DEFINITIONS[TOOL_GET_SCRIPT_LOGS], async ({ scriptId, logName, spaceId, userId, correlationId, logType, messageType, message, logMatch, logDateFrom, logDateTo, page, pageSize, includeFullStackTraces }) => {
|
|
65
|
+
debugLogWithTag('SCRIPT_LOGS', `Getting script logs with filters: ${JSON.stringify({
|
|
66
|
+
scriptId,
|
|
67
|
+
logName,
|
|
68
|
+
spaceId,
|
|
69
|
+
userId,
|
|
70
|
+
correlationId,
|
|
71
|
+
logType,
|
|
72
|
+
messageType,
|
|
73
|
+
message,
|
|
74
|
+
logMatch,
|
|
75
|
+
logDateFrom,
|
|
76
|
+
logDateTo,
|
|
77
|
+
page,
|
|
78
|
+
pageSize,
|
|
79
|
+
includeFullStackTraces
|
|
80
|
+
})}`);
|
|
81
|
+
try {
|
|
82
|
+
const queryParams = {};
|
|
83
|
+
if (scriptId !== undefined)
|
|
84
|
+
queryParams.scriptId = scriptId;
|
|
85
|
+
if (logName !== undefined)
|
|
86
|
+
queryParams.logName = logName;
|
|
87
|
+
if (spaceId !== undefined)
|
|
88
|
+
queryParams.spaceId = spaceId;
|
|
89
|
+
if (userId !== undefined)
|
|
90
|
+
queryParams.userId = userId;
|
|
91
|
+
if (correlationId !== undefined)
|
|
92
|
+
queryParams.correlationId = correlationId;
|
|
93
|
+
if (logType !== undefined)
|
|
94
|
+
queryParams.logType = logType;
|
|
95
|
+
if (messageType !== undefined)
|
|
96
|
+
queryParams.messageType = messageType;
|
|
97
|
+
if (message !== undefined)
|
|
98
|
+
queryParams.message = message;
|
|
99
|
+
if (logMatch !== undefined)
|
|
100
|
+
queryParams.logMatch = logMatch;
|
|
101
|
+
if (logDateFrom !== undefined)
|
|
102
|
+
queryParams.logDateFrom = logDateFrom;
|
|
103
|
+
if (logDateTo !== undefined)
|
|
104
|
+
queryParams.logDateTo = logDateTo;
|
|
105
|
+
if (page !== undefined)
|
|
106
|
+
queryParams.page = page;
|
|
107
|
+
if (pageSize !== undefined)
|
|
108
|
+
queryParams.pageSize = pageSize;
|
|
109
|
+
debugLogWithTag('SCRIPT_LOGS', `Request query params: ${JSON.stringify(queryParams, null, 2)}`);
|
|
110
|
+
const result = await client.makeApiRequest('json/script-logs', 'GET', queryParams, undefined);
|
|
111
|
+
let processedResult = result;
|
|
112
|
+
if (!includeFullStackTraces && result.logs && Array.isArray(result.logs)) {
|
|
113
|
+
debugLogWithTag('SCRIPT_LOGS', `Truncating stack traces for ${result.logs.length} log entries`);
|
|
114
|
+
processedResult = {
|
|
115
|
+
...result,
|
|
116
|
+
logs: truncateStackTraces(result.logs, 500)
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
const sizeCheck = checkResponseSize(processedResult);
|
|
120
|
+
if (sizeCheck.tooLarge) {
|
|
121
|
+
debugLogWithTag('SCRIPT_LOGS', `Response too large: ${sizeCheck.actualSize} characters`);
|
|
122
|
+
return {
|
|
123
|
+
content: [{
|
|
124
|
+
type: "text",
|
|
125
|
+
text: `${sizeCheck.suggestion}\n\nTip: Use more specific filters (scriptId, spaceId, time range) or smaller pageSize parameter. If you need full stack traces, first reduce the result count, then use includeFullStackTraces=true.`
|
|
126
|
+
}],
|
|
127
|
+
isError: true
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
debugLogWithTag('SCRIPT_LOGS', `Successfully retrieved ${result.logs?.length || 0} log entries`);
|
|
131
|
+
return {
|
|
132
|
+
content: [{ type: "text", text: JSON.stringify(processedResult, null, 2) }]
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
debugLogWithTag('SCRIPT_LOGS', `Error retrieving script logs: ${error instanceof Error ? error.message : String(error)}`);
|
|
137
|
+
return {
|
|
138
|
+
content: [{ type: "text", text: `Error retrieving script logs: ${error instanceof Error ? error.message : String(error)}` }],
|
|
139
|
+
isError: true
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=script-logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"script-logs.js","sourceRoot":"","sources":["../../src/tools/script-logs.ts"],"names":[],"mappings":"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"}
|