@antonytm/mcp-sitecore-server 0.17.1 → 0.19.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 +6 -0
- package/dist/bundle.js +218 -89
- package/dist/config.d.ts +11 -1
- package/dist/config.js +36 -0
- package/dist/config.js.map +1 -1
- package/dist/const.d.ts +1 -0
- package/dist/const.js +1 -1
- package/dist/const.js.map +1 -1
- package/dist/register.js +13 -1
- package/dist/register.js.map +1 -1
- package/dist/server.d.ts +2 -1
- package/dist/server.js +3 -32
- package/dist/server.js.map +1 -1
- package/dist/sse.js +27 -14
- package/dist/sse.js.map +1 -1
- package/dist/stdio.js +2 -1
- package/dist/stdio.js.map +1 -1
- package/dist/streamable-http.js +44 -36
- package/dist/streamable-http.js.map +1 -1
- package/dist/tools/powershell/client.js +2 -0
- package/dist/tools/powershell/client.js.map +1 -1
- package/dist/tools/powershell/simple/presentation/get-default-layout-device.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/get-default-layout-device.js +9 -0
- package/dist/tools/powershell/simple/presentation/get-default-layout-device.js.map +1 -0
- package/dist/tools/powershell/simple/presentation/get-layout-device.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/get-layout-device.js +14 -0
- package/dist/tools/powershell/simple/presentation/get-layout-device.js.map +1 -0
- package/dist/tools/powershell/simple/presentation/merge-layout-by-id.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/merge-layout-by-id.js +22 -0
- package/dist/tools/powershell/simple/presentation/merge-layout-by-id.js.map +1 -0
- package/dist/tools/powershell/simple/presentation/merge-layout-by-path.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/merge-layout-by-path.js +18 -0
- package/dist/tools/powershell/simple/presentation/merge-layout-by-path.js.map +1 -0
- package/dist/tools/powershell/simple/presentation/reset-layout-by-id.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/reset-layout-by-id.js +22 -0
- package/dist/tools/powershell/simple/presentation/reset-layout-by-id.js.map +1 -0
- package/dist/tools/powershell/simple/presentation/reset-layout-by-path.d.ts +3 -0
- package/dist/tools/powershell/simple/presentation/reset-layout-by-path.js +22 -0
- package/dist/tools/powershell/simple/presentation/reset-layout-by-path.js.map +1 -0
- package/package.json +10 -2
package/README.md
CHANGED
|
@@ -78,6 +78,12 @@
|
|
|
78
78
|
- [x] `presentation-get-layout-by-path`: returns item presentation layout by path
|
|
79
79
|
- [x] `presentation-set-layout-by-id`: sets item presentation layout by ID
|
|
80
80
|
- [x] `presentation-set-layout-by-path`: sets item presentation layout by path
|
|
81
|
+
- [x] `presentation-reset-layout-by-id`: resets item presentation layout by ID
|
|
82
|
+
- [x] `presentation-reset-layout-by-path`: resets item presentation layout by path
|
|
83
|
+
- [x] `presentation-merge-layout-by-id`: Merges final and shared layouts by item Id
|
|
84
|
+
- [x] `presentation-merge-layout-by-path`: Merges final and shared layouts by item path
|
|
85
|
+
- [x] `presentation-get-layout-device`: Gets the layout for the device specified
|
|
86
|
+
- [x] `presentation-get-default-layout-device`: Gets the default layout
|
|
81
87
|
- [x] Indexing
|
|
82
88
|
- [x] `indexing-initialize-search-index`: initializes one or more search indexes
|
|
83
89
|
- [x] `indexing-get-search-index`: returns a search index
|
package/dist/bundle.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
import fs from 'node:fs';
|
|
2
5
|
import process$1 from 'node:process';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import { fileURLToPath, URL as URL$1 } from 'url';
|
|
6
|
+
import 'fs';
|
|
7
|
+
import require$$0$1 from 'path';
|
|
6
8
|
import 'http';
|
|
7
9
|
import { randomUUID } from 'node:crypto';
|
|
8
10
|
import require$$2$1 from 'statuses';
|
|
9
|
-
import require$$0$
|
|
11
|
+
import require$$0$2 from 'buffer';
|
|
10
12
|
import require$$1$1 from 'string_decoder';
|
|
11
13
|
import contentType from 'content-type';
|
|
14
|
+
import { URL as URL$1 } from 'url';
|
|
12
15
|
import express from 'express';
|
|
13
16
|
|
|
14
17
|
var util;
|
|
@@ -3979,6 +3982,7 @@ ZodNullable.create;
|
|
|
3979
3982
|
|
|
3980
3983
|
objectType({
|
|
3981
3984
|
name: stringType().default("mcp-sitecore-server"),
|
|
3985
|
+
version: stringType().optional(),
|
|
3982
3986
|
graphQL: objectType({
|
|
3983
3987
|
endpoint: stringType().url().min(1, "endpoint is required"),
|
|
3984
3988
|
schemas: arrayType(stringType()),
|
|
@@ -4012,6 +4016,7 @@ objectType({
|
|
|
4012
4016
|
password: "b",
|
|
4013
4017
|
serverUrl: "https://xmcloudcm.localhost/",
|
|
4014
4018
|
}),
|
|
4019
|
+
authorizationHeader: stringType().default("")
|
|
4015
4020
|
});
|
|
4016
4021
|
const envSchema = objectType({
|
|
4017
4022
|
GRAPHQL_ENDPOINT: stringType().url().optional(),
|
|
@@ -4026,6 +4031,7 @@ const envSchema = objectType({
|
|
|
4026
4031
|
POWERSHELL_USERNAME: stringType().optional(),
|
|
4027
4032
|
POWERSHELL_PASSWORD: stringType().optional(),
|
|
4028
4033
|
POWERSHELL_SERVER_URL: stringType().url().optional(),
|
|
4034
|
+
AUTORIZATION_HEADER: stringType().optional(),
|
|
4029
4035
|
});
|
|
4030
4036
|
const envStartSchema = objectType({
|
|
4031
4037
|
//* The transport to use for the server. Can be one of 'stdio' or 'sse'.
|
|
@@ -4041,6 +4047,35 @@ const envStartSchema = objectType({
|
|
|
4041
4047
|
return "stdio";
|
|
4042
4048
|
})
|
|
4043
4049
|
});
|
|
4050
|
+
// Read package.json data
|
|
4051
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
4052
|
+
const __dirname = path.dirname(__filename);
|
|
4053
|
+
const packagePath = path.resolve(__dirname, '..', 'package.json');
|
|
4054
|
+
const packageData = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
4055
|
+
const { version, name } = packageData;
|
|
4056
|
+
const ENV$1 = envSchema.parse(process.env);
|
|
4057
|
+
const config = {
|
|
4058
|
+
name: `${name} ${version}`,
|
|
4059
|
+
graphQL: {
|
|
4060
|
+
endpoint: ENV$1.GRAPHQL_ENDPOINT || "https://xmcloudcm.localhost/sitecore/api/graph/",
|
|
4061
|
+
schemas: ENV$1.GRAPHQL_SCHEMAS ? ENV$1.GRAPHQL_SCHEMAS.split(",").map(x => x.trim()) : ["edge", "master"],
|
|
4062
|
+
apiKey: ENV$1.GRAPHQL_API_KEY || "{6D3F291E-66A5-4703-887A-D549AF83D859}",
|
|
4063
|
+
headers: ENV$1.GRAPHQL_HEADERS ? JSON.parse(ENV$1.GRAPHQL_HEADERS) : {},
|
|
4064
|
+
},
|
|
4065
|
+
itemService: {
|
|
4066
|
+
domain: ENV$1.ITEM_SERVICE_DOMAIN || "sitecore",
|
|
4067
|
+
username: ENV$1.ITEM_SERVICE_USERNAME || "admin",
|
|
4068
|
+
password: ENV$1.ITEM_SERVICE_PASSWORD || "b",
|
|
4069
|
+
serverUrl: ENV$1.ITEM_SERVICE_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
4070
|
+
},
|
|
4071
|
+
powershell: {
|
|
4072
|
+
domain: ENV$1.POWERSHELL_DOMAIN || "sitecore",
|
|
4073
|
+
username: ENV$1.POWERSHELL_USERNAME || "admin",
|
|
4074
|
+
password: ENV$1.POWERSHELL_PASSWORD || "b",
|
|
4075
|
+
serverUrl: ENV$1.POWERSHELL_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
4076
|
+
},
|
|
4077
|
+
authorizationHeader: ENV$1.AUTORIZATION_HEADER || "",
|
|
4078
|
+
};
|
|
4044
4079
|
|
|
4045
4080
|
const LATEST_PROTOCOL_VERSION = "2025-03-26";
|
|
4046
4081
|
const SUPPORTED_PROTOCOL_VERSIONS = [
|
|
@@ -7287,6 +7322,9 @@ class McpServer {
|
|
|
7287
7322
|
return;
|
|
7288
7323
|
}
|
|
7289
7324
|
this.server.assertCanSetRequestHandler(CompleteRequestSchema.shape.method.value);
|
|
7325
|
+
this.server.registerCapabilities({
|
|
7326
|
+
completions: {},
|
|
7327
|
+
});
|
|
7290
7328
|
this.server.setRequestHandler(CompleteRequestSchema, async (request) => {
|
|
7291
7329
|
switch (request.params.ref.type) {
|
|
7292
7330
|
case "ref/prompt":
|
|
@@ -7360,8 +7398,9 @@ class McpServer {
|
|
|
7360
7398
|
const result = await template.resourceTemplate.listCallback(extra);
|
|
7361
7399
|
for (const resource of result.resources) {
|
|
7362
7400
|
templateResources.push({
|
|
7363
|
-
...resource,
|
|
7364
7401
|
...template.metadata,
|
|
7402
|
+
// the defined resource metadata should override the template metadata if present
|
|
7403
|
+
...resource,
|
|
7365
7404
|
});
|
|
7366
7405
|
}
|
|
7367
7406
|
}
|
|
@@ -24197,6 +24236,8 @@ class PowershellClient {
|
|
|
24197
24236
|
}
|
|
24198
24237
|
async executeScript(script, parameters = {}) {
|
|
24199
24238
|
const uuid = generateUUID();
|
|
24239
|
+
// Consider passing `rawOutput=True` and use custom serialization to CSV/JSON
|
|
24240
|
+
// ConvertTo-CliXml that is used internally in SPE relies on System.Management.Automation.Serializer, which seems has bad performance.
|
|
24200
24241
|
const url = `${this.serverUrl}/-/script/script/?sessionId=${uuid}&rawOutput=False&persistentSession=False `;
|
|
24201
24242
|
const headers = {
|
|
24202
24243
|
'Authorization': this.bearertoken || '',
|
|
@@ -25848,6 +25889,96 @@ function setLayoutByPathPowershellTool(server, config) {
|
|
|
25848
25889
|
});
|
|
25849
25890
|
}
|
|
25850
25891
|
|
|
25892
|
+
function resetLayoutByIdPowershellTool(server, config) {
|
|
25893
|
+
server.tool("presentation-reset-layout-by-id", "Resets the layout of an item by Id.", {
|
|
25894
|
+
id: stringType().describe("The ID of the item to reset the layout for."),
|
|
25895
|
+
finalLayout: booleanType().describe("Specifies layout to be reset. If 'true', the final layout is reset, otherwise - shared layout.").optional(),
|
|
25896
|
+
language: stringType().describe("Specifies the item language to reset layout for.").optional(),
|
|
25897
|
+
}, async (params) => {
|
|
25898
|
+
const command = `Reset-Layout`;
|
|
25899
|
+
const options = {};
|
|
25900
|
+
options["Id"] = params.id;
|
|
25901
|
+
if (params.finalLayout === true) {
|
|
25902
|
+
options["FinalLayout"] = "";
|
|
25903
|
+
}
|
|
25904
|
+
if (params.language) {
|
|
25905
|
+
options["Language"] = params.language;
|
|
25906
|
+
}
|
|
25907
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25908
|
+
});
|
|
25909
|
+
}
|
|
25910
|
+
|
|
25911
|
+
function resetLayoutByPathPowershellTool(server, config) {
|
|
25912
|
+
server.tool("presentation-reset-layout-by-path", "Resets the layout of an item by path.", {
|
|
25913
|
+
path: stringType().describe("The path of the item to reset the layout for.").default("master:"),
|
|
25914
|
+
finalLayout: booleanType().describe("Specifies layout to be reset. If 'true', the final layout is reset, otherwise - shared layout.").optional(),
|
|
25915
|
+
language: stringType().describe("Specifies the item language to reset layout for.").optional(),
|
|
25916
|
+
}, async (params) => {
|
|
25917
|
+
const command = `Reset-Layout`;
|
|
25918
|
+
const options = {};
|
|
25919
|
+
options["Path"] = params.path;
|
|
25920
|
+
if (params.finalLayout === true) {
|
|
25921
|
+
options["FinalLayout"] = "";
|
|
25922
|
+
}
|
|
25923
|
+
if (params.language) {
|
|
25924
|
+
options["Language"] = params.language;
|
|
25925
|
+
}
|
|
25926
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25927
|
+
});
|
|
25928
|
+
}
|
|
25929
|
+
|
|
25930
|
+
function mergeLayoutByIdPowershellTool(server, config) {
|
|
25931
|
+
server.tool("presentation-merge-layout-by-id", "Merges final and shared layouts by item Id.", {
|
|
25932
|
+
id: stringType().describe("The ID of the item to merge layout for."),
|
|
25933
|
+
database: stringType().optional().describe("The database to merge layout for."),
|
|
25934
|
+
language: stringType().optional().describe("The item language to merge layout for."),
|
|
25935
|
+
}, async (params) => {
|
|
25936
|
+
const command = `Merge-Layout`;
|
|
25937
|
+
const options = {};
|
|
25938
|
+
options["Id"] = params.id;
|
|
25939
|
+
if (params.database) {
|
|
25940
|
+
options["Database"] = params.database;
|
|
25941
|
+
}
|
|
25942
|
+
if (params.language) {
|
|
25943
|
+
options["Language"] = params.language;
|
|
25944
|
+
}
|
|
25945
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25946
|
+
});
|
|
25947
|
+
}
|
|
25948
|
+
|
|
25949
|
+
function mergeLayoutByPathPowershellTool(server, config) {
|
|
25950
|
+
server.tool("presentation-merge-layout-by-path", "Merges final and shared layouts by item path.", {
|
|
25951
|
+
path: stringType().describe("The path of the item to merge layout for."),
|
|
25952
|
+
language: stringType().optional().describe("The item language to merge layout for."),
|
|
25953
|
+
}, async (params) => {
|
|
25954
|
+
const command = `Merge-Layout`;
|
|
25955
|
+
const options = {};
|
|
25956
|
+
options["Path"] = params.path;
|
|
25957
|
+
if (params.language) {
|
|
25958
|
+
options["Language"] = params.language;
|
|
25959
|
+
}
|
|
25960
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25961
|
+
});
|
|
25962
|
+
}
|
|
25963
|
+
|
|
25964
|
+
function getLayoutDevicePowershellTool(server, config) {
|
|
25965
|
+
server.tool("presentation-get-layout-device", "Gets the layout for the device specified.", {
|
|
25966
|
+
name: stringType().describe("Name of the device to return."),
|
|
25967
|
+
}, async (params) => {
|
|
25968
|
+
const command = `Get-LayoutDevice`;
|
|
25969
|
+
const options = {};
|
|
25970
|
+
options["Name"] = params.name;
|
|
25971
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
25972
|
+
});
|
|
25973
|
+
}
|
|
25974
|
+
|
|
25975
|
+
function getDefaultLayoutDevicePowershellTool(server, config) {
|
|
25976
|
+
server.tool("presentation-get-default-layout-device", "Gets the default layout.", {}, async () => {
|
|
25977
|
+
const command = `Get-LayoutDevice -Default`;
|
|
25978
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, {}));
|
|
25979
|
+
});
|
|
25980
|
+
}
|
|
25981
|
+
|
|
25851
25982
|
var LogLevel;
|
|
25852
25983
|
(function (LogLevel) {
|
|
25853
25984
|
LogLevel["DEBUG"] = "DEBUG";
|
|
@@ -26037,10 +26168,16 @@ async function registerAll(server, config) {
|
|
|
26037
26168
|
getItemReferenceByPathPowerShellTool,
|
|
26038
26169
|
getItemReferrerByIdPowerShellTool,
|
|
26039
26170
|
getItemReferrerByPathPowerShellTool,
|
|
26040
|
-
//
|
|
26171
|
+
//Presentation
|
|
26041
26172
|
//Simple Layout PowerShell Tools
|
|
26042
26173
|
getLayoutByIdPowershellTool,
|
|
26043
26174
|
getLayoutByPathPowershellTool,
|
|
26175
|
+
resetLayoutByIdPowershellTool,
|
|
26176
|
+
resetLayoutByPathPowershellTool,
|
|
26177
|
+
mergeLayoutByIdPowershellTool,
|
|
26178
|
+
mergeLayoutByPathPowershellTool,
|
|
26179
|
+
getLayoutDevicePowershellTool,
|
|
26180
|
+
getDefaultLayoutDevicePowershellTool,
|
|
26044
26181
|
//Composite Layout PowerShell Tools
|
|
26045
26182
|
setLayoutIdPowershellTool,
|
|
26046
26183
|
setLayoutByPathPowershellTool,
|
|
@@ -26063,41 +26200,13 @@ async function registerAll(server, config) {
|
|
|
26063
26200
|
], server, config);
|
|
26064
26201
|
}
|
|
26065
26202
|
|
|
26066
|
-
|
|
26067
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
26068
|
-
const __dirname = path.dirname(__filename);
|
|
26069
|
-
const packagePath = path.resolve(__dirname, '..', 'package.json');
|
|
26070
|
-
const packageData = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
26071
|
-
const { version, name } = packageData;
|
|
26072
|
-
async function getServer() {
|
|
26203
|
+
async function getServer(config) {
|
|
26073
26204
|
const server = new McpServer({
|
|
26074
|
-
name: `Sitecore MCP Server: ${name}`,
|
|
26205
|
+
name: `Sitecore MCP Server: ${config.name}`,
|
|
26075
26206
|
description: "Modle Context Protocol for Sitecore",
|
|
26076
|
-
version: version
|
|
26207
|
+
version: config.version || "0.0.1",
|
|
26077
26208
|
});
|
|
26078
|
-
const ENV = envSchema.parse(process.env);
|
|
26079
26209
|
// Parse the environment variables and set default values
|
|
26080
|
-
const config = {
|
|
26081
|
-
name: `${name} ${version}`,
|
|
26082
|
-
graphQL: {
|
|
26083
|
-
endpoint: ENV.GRAPHQL_ENDPOINT || "https://xmcloudcm.localhost/sitecore/api/graph/",
|
|
26084
|
-
schemas: ENV.GRAPHQL_SCHEMAS ? ENV.GRAPHQL_SCHEMAS.split(",").map(x => x.trim()) : ["edge", "master"],
|
|
26085
|
-
apiKey: ENV.GRAPHQL_API_KEY || "{6D3F291E-66A5-4703-887A-D549AF83D859}",
|
|
26086
|
-
headers: ENV.GRAPHQL_HEADERS ? JSON.parse(ENV.GRAPHQL_HEADERS) : {},
|
|
26087
|
-
},
|
|
26088
|
-
itemService: {
|
|
26089
|
-
domain: ENV.ITEM_SERVICE_DOMAIN || "sitecore",
|
|
26090
|
-
username: ENV.ITEM_SERVICE_USERNAME || "admin",
|
|
26091
|
-
password: ENV.ITEM_SERVICE_PASSWORD || "b",
|
|
26092
|
-
serverUrl: ENV.ITEM_SERVICE_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
26093
|
-
},
|
|
26094
|
-
powershell: {
|
|
26095
|
-
domain: ENV.POWERSHELL_DOMAIN || "sitecore",
|
|
26096
|
-
username: ENV.POWERSHELL_USERNAME || "admin",
|
|
26097
|
-
password: ENV.POWERSHELL_PASSWORD || "b",
|
|
26098
|
-
serverUrl: ENV.POWERSHELL_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
26099
|
-
},
|
|
26100
|
-
};
|
|
26101
26210
|
server.resource("config", "config://main", async (uri) => {
|
|
26102
26211
|
return {
|
|
26103
26212
|
contents: [{
|
|
@@ -26121,7 +26230,7 @@ async function getServer() {
|
|
|
26121
26230
|
}
|
|
26122
26231
|
|
|
26123
26232
|
async function startSTDIO() {
|
|
26124
|
-
const server = await getServer();
|
|
26233
|
+
const server = await getServer(config);
|
|
26125
26234
|
const transport = new StdioServerTransport();
|
|
26126
26235
|
await server.connect(transport);
|
|
26127
26236
|
}
|
|
@@ -26323,7 +26432,7 @@ function requireDepd () {
|
|
|
26323
26432
|
* Module dependencies.
|
|
26324
26433
|
*/
|
|
26325
26434
|
|
|
26326
|
-
var relative =
|
|
26435
|
+
var relative = require$$0$1.relative;
|
|
26327
26436
|
|
|
26328
26437
|
/**
|
|
26329
26438
|
* Module exports.
|
|
@@ -27284,7 +27393,7 @@ function requireSafer () {
|
|
|
27284
27393
|
if (hasRequiredSafer) return safer_1;
|
|
27285
27394
|
hasRequiredSafer = 1;
|
|
27286
27395
|
|
|
27287
|
-
var buffer = require$$0$
|
|
27396
|
+
var buffer = require$$0$2;
|
|
27288
27397
|
var Buffer = buffer.Buffer;
|
|
27289
27398
|
|
|
27290
27399
|
var safer = {};
|
|
@@ -39136,28 +39245,42 @@ class SSEServerTransport {
|
|
|
39136
39245
|
}
|
|
39137
39246
|
}
|
|
39138
39247
|
|
|
39248
|
+
const authorizationHeaderName = "Authorization";
|
|
39249
|
+
|
|
39139
39250
|
async function startSSE() {
|
|
39140
|
-
const server = await getServer();
|
|
39251
|
+
const server = await getServer(config);
|
|
39141
39252
|
const app = express();
|
|
39142
39253
|
// to support multiple simultaneous connections we have a lookup object from
|
|
39143
39254
|
// sessionId to transport
|
|
39144
39255
|
const transports = {};
|
|
39145
|
-
app.get("/sse", async (
|
|
39146
|
-
|
|
39147
|
-
|
|
39148
|
-
|
|
39149
|
-
|
|
39150
|
-
|
|
39151
|
-
|
|
39256
|
+
app.get("/sse", async (req, res) => {
|
|
39257
|
+
if (config.authorizationHeader === ""
|
|
39258
|
+
|| config.authorizationHeader === req.headers[authorizationHeaderName]) {
|
|
39259
|
+
const transport = new SSEServerTransport('/messages', res);
|
|
39260
|
+
transports[transport.sessionId] = transport;
|
|
39261
|
+
res.on("close", () => {
|
|
39262
|
+
delete transports[transport.sessionId];
|
|
39263
|
+
});
|
|
39264
|
+
await server.connect(transport);
|
|
39265
|
+
}
|
|
39266
|
+
else {
|
|
39267
|
+
res.status(401).send('Unauthorized');
|
|
39268
|
+
}
|
|
39152
39269
|
});
|
|
39153
39270
|
app.post("/messages", async (req, res) => {
|
|
39154
|
-
|
|
39155
|
-
|
|
39156
|
-
|
|
39157
|
-
|
|
39271
|
+
if (config.authorizationHeader === ""
|
|
39272
|
+
|| config.authorizationHeader === req.headers[authorizationHeaderName]) {
|
|
39273
|
+
const sessionId = req.query.sessionId;
|
|
39274
|
+
const transport = transports[sessionId];
|
|
39275
|
+
if (transport) {
|
|
39276
|
+
await transport.handlePostMessage(req, res);
|
|
39277
|
+
}
|
|
39278
|
+
else {
|
|
39279
|
+
res.status(400).send('No transport found for sessionId');
|
|
39280
|
+
}
|
|
39158
39281
|
}
|
|
39159
39282
|
else {
|
|
39160
|
-
res.status(
|
|
39283
|
+
res.status(401).send('Unauthorized');
|
|
39161
39284
|
}
|
|
39162
39285
|
});
|
|
39163
39286
|
app.listen(3001);
|
|
@@ -39698,45 +39821,51 @@ function startStreamableHTTP() {
|
|
|
39698
39821
|
const transports = {};
|
|
39699
39822
|
// Handle POST requests for client-to-server communication
|
|
39700
39823
|
app.post('/mcp', async (req, res) => {
|
|
39701
|
-
|
|
39702
|
-
|
|
39703
|
-
|
|
39704
|
-
|
|
39705
|
-
|
|
39706
|
-
|
|
39707
|
-
|
|
39708
|
-
|
|
39709
|
-
|
|
39710
|
-
|
|
39711
|
-
|
|
39712
|
-
|
|
39713
|
-
|
|
39714
|
-
|
|
39715
|
-
|
|
39716
|
-
|
|
39717
|
-
|
|
39718
|
-
|
|
39719
|
-
|
|
39720
|
-
|
|
39721
|
-
|
|
39722
|
-
|
|
39723
|
-
|
|
39724
|
-
|
|
39824
|
+
if (config.authorizationHeader === "" ||
|
|
39825
|
+
config.authorizationHeader === req.headers[authorizationHeaderName]) {
|
|
39826
|
+
// Check for existing session ID
|
|
39827
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
39828
|
+
let transport;
|
|
39829
|
+
if (sessionId && transports[sessionId]) {
|
|
39830
|
+
// Reuse existing transport
|
|
39831
|
+
transport = transports[sessionId];
|
|
39832
|
+
}
|
|
39833
|
+
else if (!sessionId && isInitializeRequest(req.body)) {
|
|
39834
|
+
// New initialization request
|
|
39835
|
+
transport = new StreamableHTTPServerTransport({
|
|
39836
|
+
sessionIdGenerator: () => generateUUID(),
|
|
39837
|
+
onsessioninitialized: (sessionId) => {
|
|
39838
|
+
// Store the transport by session ID
|
|
39839
|
+
transports[sessionId] = transport;
|
|
39840
|
+
}
|
|
39841
|
+
});
|
|
39842
|
+
// Clean up transport when closed
|
|
39843
|
+
transport.onclose = () => {
|
|
39844
|
+
if (transport.sessionId) {
|
|
39845
|
+
delete transports[transport.sessionId];
|
|
39846
|
+
}
|
|
39847
|
+
};
|
|
39848
|
+
const server = await getServer(config);
|
|
39849
|
+
await server.connect(transport);
|
|
39850
|
+
}
|
|
39851
|
+
else {
|
|
39852
|
+
// Invalid request
|
|
39853
|
+
res.status(400).json({
|
|
39854
|
+
jsonrpc: '2.0',
|
|
39855
|
+
error: {
|
|
39856
|
+
code: -32e3,
|
|
39857
|
+
message: 'Bad Request: No valid session ID provided',
|
|
39858
|
+
},
|
|
39859
|
+
id: null,
|
|
39860
|
+
});
|
|
39861
|
+
return;
|
|
39862
|
+
}
|
|
39863
|
+
// Handle the request
|
|
39864
|
+
await transport.handleRequest(req, res, req.body);
|
|
39725
39865
|
}
|
|
39726
39866
|
else {
|
|
39727
|
-
|
|
39728
|
-
res.status(400).json({
|
|
39729
|
-
jsonrpc: '2.0',
|
|
39730
|
-
error: {
|
|
39731
|
-
code: -32e3,
|
|
39732
|
-
message: 'Bad Request: No valid session ID provided',
|
|
39733
|
-
},
|
|
39734
|
-
id: null,
|
|
39735
|
-
});
|
|
39736
|
-
return;
|
|
39867
|
+
res.status(401).send('Unauthorized');
|
|
39737
39868
|
}
|
|
39738
|
-
// Handle the request
|
|
39739
|
-
await transport.handleRequest(req, res, req.body);
|
|
39740
39869
|
});
|
|
39741
39870
|
// Reusable handler for GET and DELETE requests
|
|
39742
39871
|
const handleSessionRequest = async (req, res) => {
|
package/dist/config.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
2
|
declare const ConfigSchema: z.ZodObject<{
|
|
3
3
|
name: z.ZodDefault<z.ZodString>;
|
|
4
|
+
version: z.ZodOptional<z.ZodString>;
|
|
4
5
|
graphQL: z.ZodDefault<z.ZodObject<{
|
|
5
6
|
endpoint: z.ZodString;
|
|
6
7
|
schemas: z.ZodArray<z.ZodString, "many">;
|
|
@@ -49,6 +50,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
49
50
|
password: string;
|
|
50
51
|
serverUrl: string;
|
|
51
52
|
}>>;
|
|
53
|
+
authorizationHeader: z.ZodDefault<z.ZodString>;
|
|
52
54
|
}, "strip", z.ZodTypeAny, {
|
|
53
55
|
name: string;
|
|
54
56
|
graphQL: {
|
|
@@ -69,8 +71,11 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
69
71
|
password: string;
|
|
70
72
|
serverUrl: string;
|
|
71
73
|
};
|
|
74
|
+
authorizationHeader: string;
|
|
75
|
+
version?: string | undefined;
|
|
72
76
|
}, {
|
|
73
77
|
name?: string | undefined;
|
|
78
|
+
version?: string | undefined;
|
|
74
79
|
graphQL?: {
|
|
75
80
|
endpoint: string;
|
|
76
81
|
schemas: string[];
|
|
@@ -89,6 +94,7 @@ declare const ConfigSchema: z.ZodObject<{
|
|
|
89
94
|
password: string;
|
|
90
95
|
serverUrl: string;
|
|
91
96
|
} | undefined;
|
|
97
|
+
authorizationHeader?: string | undefined;
|
|
92
98
|
}>;
|
|
93
99
|
export declare const envSchema: z.ZodObject<{
|
|
94
100
|
GRAPHQL_ENDPOINT: z.ZodOptional<z.ZodString>;
|
|
@@ -103,6 +109,7 @@ export declare const envSchema: z.ZodObject<{
|
|
|
103
109
|
POWERSHELL_USERNAME: z.ZodOptional<z.ZodString>;
|
|
104
110
|
POWERSHELL_PASSWORD: z.ZodOptional<z.ZodString>;
|
|
105
111
|
POWERSHELL_SERVER_URL: z.ZodOptional<z.ZodString>;
|
|
112
|
+
AUTORIZATION_HEADER: z.ZodOptional<z.ZodString>;
|
|
106
113
|
}, "strip", z.ZodTypeAny, {
|
|
107
114
|
GRAPHQL_ENDPOINT?: string | undefined;
|
|
108
115
|
GRAPHQL_SCHEMAS?: string | undefined;
|
|
@@ -116,6 +123,7 @@ export declare const envSchema: z.ZodObject<{
|
|
|
116
123
|
POWERSHELL_USERNAME?: string | undefined;
|
|
117
124
|
POWERSHELL_PASSWORD?: string | undefined;
|
|
118
125
|
POWERSHELL_SERVER_URL?: string | undefined;
|
|
126
|
+
AUTORIZATION_HEADER?: string | undefined;
|
|
119
127
|
}, {
|
|
120
128
|
GRAPHQL_ENDPOINT?: string | undefined;
|
|
121
129
|
GRAPHQL_SCHEMAS?: string | undefined;
|
|
@@ -129,6 +137,7 @@ export declare const envSchema: z.ZodObject<{
|
|
|
129
137
|
POWERSHELL_USERNAME?: string | undefined;
|
|
130
138
|
POWERSHELL_PASSWORD?: string | undefined;
|
|
131
139
|
POWERSHELL_SERVER_URL?: string | undefined;
|
|
140
|
+
AUTORIZATION_HEADER?: string | undefined;
|
|
132
141
|
}>;
|
|
133
142
|
export declare const envStartSchema: z.ZodObject<{
|
|
134
143
|
TRANSPORT: z.ZodEffects<z.ZodOptional<z.ZodDefault<z.ZodString>>, "stdio" | "sse" | "streamable-http", string | undefined>;
|
|
@@ -140,4 +149,5 @@ export declare const envStartSchema: z.ZodObject<{
|
|
|
140
149
|
export type Config = z.infer<typeof ConfigSchema>;
|
|
141
150
|
export type EnvConfig = z.infer<typeof envSchema>;
|
|
142
151
|
export type EnvStartConfig = z.infer<typeof envStartSchema>;
|
|
143
|
-
|
|
152
|
+
declare const config: Config;
|
|
153
|
+
export { config };
|
package/dist/config.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
1
3
|
import { z } from "zod";
|
|
4
|
+
import fs from "node:fs";
|
|
2
5
|
const ConfigSchema = z.object({
|
|
3
6
|
name: z.string().default("mcp-sitecore-server"),
|
|
7
|
+
version: z.string().optional(),
|
|
4
8
|
graphQL: z.object({
|
|
5
9
|
endpoint: z.string().url().min(1, "endpoint is required"),
|
|
6
10
|
schemas: z.array(z.string()),
|
|
@@ -34,6 +38,7 @@ const ConfigSchema = z.object({
|
|
|
34
38
|
password: "b",
|
|
35
39
|
serverUrl: "https://xmcloudcm.localhost/",
|
|
36
40
|
}),
|
|
41
|
+
authorizationHeader: z.string().default("")
|
|
37
42
|
});
|
|
38
43
|
export const envSchema = z.object({
|
|
39
44
|
GRAPHQL_ENDPOINT: z.string().url().optional(),
|
|
@@ -48,6 +53,7 @@ export const envSchema = z.object({
|
|
|
48
53
|
POWERSHELL_USERNAME: z.string().optional(),
|
|
49
54
|
POWERSHELL_PASSWORD: z.string().optional(),
|
|
50
55
|
POWERSHELL_SERVER_URL: z.string().url().optional(),
|
|
56
|
+
AUTORIZATION_HEADER: z.string().optional(),
|
|
51
57
|
});
|
|
52
58
|
export const envStartSchema = z.object({
|
|
53
59
|
//* The transport to use for the server. Can be one of 'stdio' or 'sse'.
|
|
@@ -63,4 +69,34 @@ export const envStartSchema = z.object({
|
|
|
63
69
|
return "stdio";
|
|
64
70
|
})
|
|
65
71
|
});
|
|
72
|
+
// Read package.json data
|
|
73
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
74
|
+
const __dirname = path.dirname(__filename);
|
|
75
|
+
const packagePath = path.resolve(__dirname, '..', 'package.json');
|
|
76
|
+
const packageData = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
77
|
+
const { version, name } = packageData;
|
|
78
|
+
const ENV = envSchema.parse(process.env);
|
|
79
|
+
const config = {
|
|
80
|
+
name: `${name} ${version}`,
|
|
81
|
+
graphQL: {
|
|
82
|
+
endpoint: ENV.GRAPHQL_ENDPOINT || "https://xmcloudcm.localhost/sitecore/api/graph/",
|
|
83
|
+
schemas: ENV.GRAPHQL_SCHEMAS ? ENV.GRAPHQL_SCHEMAS.split(",").map(x => x.trim()) : ["edge", "master"],
|
|
84
|
+
apiKey: ENV.GRAPHQL_API_KEY || "{6D3F291E-66A5-4703-887A-D549AF83D859}",
|
|
85
|
+
headers: ENV.GRAPHQL_HEADERS ? JSON.parse(ENV.GRAPHQL_HEADERS) : {},
|
|
86
|
+
},
|
|
87
|
+
itemService: {
|
|
88
|
+
domain: ENV.ITEM_SERVICE_DOMAIN || "sitecore",
|
|
89
|
+
username: ENV.ITEM_SERVICE_USERNAME || "admin",
|
|
90
|
+
password: ENV.ITEM_SERVICE_PASSWORD || "b",
|
|
91
|
+
serverUrl: ENV.ITEM_SERVICE_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
92
|
+
},
|
|
93
|
+
powershell: {
|
|
94
|
+
domain: ENV.POWERSHELL_DOMAIN || "sitecore",
|
|
95
|
+
username: ENV.POWERSHELL_USERNAME || "admin",
|
|
96
|
+
password: ENV.POWERSHELL_PASSWORD || "b",
|
|
97
|
+
serverUrl: ENV.POWERSHELL_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
98
|
+
},
|
|
99
|
+
authorizationHeader: ENV.AUTORIZATION_HEADER || "",
|
|
100
|
+
};
|
|
101
|
+
export { config };
|
|
66
102
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/const.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const authorizationHeaderName = "Authorization";
|
package/dist/const.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
1
|
+
export const authorizationHeaderName = "Authorization";
|
|
2
2
|
//# sourceMappingURL=const.js.map
|
package/dist/const.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../src/const.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAe,CAAC"}
|
package/dist/register.js
CHANGED
|
@@ -68,6 +68,12 @@ import { getLayoutByIdPowershellTool } from "./tools/powershell/simple/presentat
|
|
|
68
68
|
import { getLayoutByPathPowershellTool } from "./tools/powershell/simple/presentation/get-layout-by-path.js";
|
|
69
69
|
import { setLayoutIdPowershellTool } from "./tools/powershell/composite/presentation/set-layout-by-id.js";
|
|
70
70
|
import { setLayoutByPathPowershellTool } from "./tools/powershell/composite/presentation/set-layout-by-path.js";
|
|
71
|
+
import { resetLayoutByIdPowershellTool } from "./tools/powershell/simple/presentation/reset-layout-by-id.js";
|
|
72
|
+
import { resetLayoutByPathPowershellTool } from "./tools/powershell/simple/presentation/reset-layout-by-path.js";
|
|
73
|
+
import { mergeLayoutByIdPowershellTool } from "./tools/powershell/simple/presentation/merge-layout-by-id.js";
|
|
74
|
+
import { mergeLayoutByPathPowershellTool } from "./tools/powershell/simple/presentation/merge-layout-by-path.js";
|
|
75
|
+
import { getLayoutDevicePowershellTool } from "./tools/powershell/simple/presentation/get-layout-device.js";
|
|
76
|
+
import { getDefaultLayoutDevicePowershellTool } from "./tools/powershell/simple/presentation/get-default-layout-device.js";
|
|
71
77
|
import { getLogsPowerShellTool } from "./tools/powershell/composite/logging/get-logs.js";
|
|
72
78
|
export async function register(array, server, config) {
|
|
73
79
|
for (const register of array) {
|
|
@@ -140,10 +146,16 @@ export async function registerAll(server, config) {
|
|
|
140
146
|
getItemReferenceByPathPowerShellTool,
|
|
141
147
|
getItemReferrerByIdPowerShellTool,
|
|
142
148
|
getItemReferrerByPathPowerShellTool,
|
|
143
|
-
//
|
|
149
|
+
//Presentation
|
|
144
150
|
//Simple Layout PowerShell Tools
|
|
145
151
|
getLayoutByIdPowershellTool,
|
|
146
152
|
getLayoutByPathPowershellTool,
|
|
153
|
+
resetLayoutByIdPowershellTool,
|
|
154
|
+
resetLayoutByPathPowershellTool,
|
|
155
|
+
mergeLayoutByIdPowershellTool,
|
|
156
|
+
mergeLayoutByPathPowershellTool,
|
|
157
|
+
getLayoutDevicePowershellTool,
|
|
158
|
+
getDefaultLayoutDevicePowershellTool,
|
|
147
159
|
//Composite Layout PowerShell Tools
|
|
148
160
|
setLayoutIdPowershellTool,
|
|
149
161
|
setLayoutByPathPowershellTool,
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
CHANGED
package/dist/server.js
CHANGED
|
@@ -2,43 +2,14 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
import { envSchema } from "./config.js";
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
|
-
import { fileURLToPath } from 'url';
|
|
6
5
|
import { registerAll } from "./register.js";
|
|
7
|
-
|
|
8
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
9
|
-
const __dirname = path.dirname(__filename);
|
|
10
|
-
const packagePath = path.resolve(__dirname, '..', 'package.json');
|
|
11
|
-
const packageData = JSON.parse(fs.readFileSync(packagePath, 'utf8'));
|
|
12
|
-
const { version, name } = packageData;
|
|
13
|
-
export async function getServer() {
|
|
6
|
+
export async function getServer(config) {
|
|
14
7
|
const server = new McpServer({
|
|
15
|
-
name: `Sitecore MCP Server: ${name}`,
|
|
8
|
+
name: `Sitecore MCP Server: ${config.name}`,
|
|
16
9
|
description: "Modle Context Protocol for Sitecore",
|
|
17
|
-
version: version
|
|
10
|
+
version: config.version || "0.0.1",
|
|
18
11
|
});
|
|
19
|
-
const ENV = envSchema.parse(process.env);
|
|
20
12
|
// Parse the environment variables and set default values
|
|
21
|
-
const config = {
|
|
22
|
-
name: `${name} ${version}`,
|
|
23
|
-
graphQL: {
|
|
24
|
-
endpoint: ENV.GRAPHQL_ENDPOINT || "https://xmcloudcm.localhost/sitecore/api/graph/",
|
|
25
|
-
schemas: ENV.GRAPHQL_SCHEMAS ? ENV.GRAPHQL_SCHEMAS.split(",").map(x => x.trim()) : ["edge", "master"],
|
|
26
|
-
apiKey: ENV.GRAPHQL_API_KEY || "{6D3F291E-66A5-4703-887A-D549AF83D859}",
|
|
27
|
-
headers: ENV.GRAPHQL_HEADERS ? JSON.parse(ENV.GRAPHQL_HEADERS) : {},
|
|
28
|
-
},
|
|
29
|
-
itemService: {
|
|
30
|
-
domain: ENV.ITEM_SERVICE_DOMAIN || "sitecore",
|
|
31
|
-
username: ENV.ITEM_SERVICE_USERNAME || "admin",
|
|
32
|
-
password: ENV.ITEM_SERVICE_PASSWORD || "b",
|
|
33
|
-
serverUrl: ENV.ITEM_SERVICE_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
34
|
-
},
|
|
35
|
-
powershell: {
|
|
36
|
-
domain: ENV.POWERSHELL_DOMAIN || "sitecore",
|
|
37
|
-
username: ENV.POWERSHELL_USERNAME || "admin",
|
|
38
|
-
password: ENV.POWERSHELL_PASSWORD || "b",
|
|
39
|
-
serverUrl: ENV.POWERSHELL_SERVER_URL || "https://xmcloudcm.localhost/",
|
|
40
|
-
},
|
|
41
|
-
};
|
|
42
13
|
server.resource("config", "config://main", async (uri) => {
|
|
43
14
|
return {
|
|
44
15
|
contents: [{
|
package/dist/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAA+B,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,SAAS,EAA+B,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC1C,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,IAAI,EAAE,wBAAwB,MAAM,CAAC,IAAI,EAAE;QAC3C,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,OAAO;KACrC,CAAC,CAAC;IAEH,yDAAyD;IAEzD,MAAM,CAAC,QAAQ,CACX,QAAQ,EACR,eAAe,EACf,KAAK,EAAE,GAAG,EAAE,EAAE;QACV,OAAO;YACH,QAAQ,EAAE,CAAC;oBACP,GAAG,EAAE,GAAG,CAAC,IAAI;oBACb,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC,CAAC;SACL,CAAA;IACL,CAAC,CACJ,CAAC;IAEF,MAAM,CAAC,IAAI,CACP,QAAQ,EACR,sDAAsD,EACtD,EAAE,EACF,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,OAAO;YACH,OAAO,EAAE;gBACL;oBACI,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;iBACxC;aACJ;SACJ,CAAC;IACN,CAAC,CACJ,CAAC;IAEF,MAAM,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAElC,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
package/dist/sse.js
CHANGED
|
@@ -1,29 +1,42 @@
|
|
|
1
|
-
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
2
1
|
import { SSEServerTransport } from "@modelcontextprotocol/sdk/server/sse.js";
|
|
3
2
|
import express from "express";
|
|
4
3
|
import { getServer } from "./server.js";
|
|
4
|
+
import { config } from "./config.js";
|
|
5
|
+
import { authorizationHeaderName } from "./const.js";
|
|
5
6
|
export async function startSSE() {
|
|
6
|
-
const server = await getServer();
|
|
7
|
+
const server = await getServer(config);
|
|
7
8
|
const app = express();
|
|
8
9
|
// to support multiple simultaneous connections we have a lookup object from
|
|
9
10
|
// sessionId to transport
|
|
10
11
|
const transports = {};
|
|
11
|
-
app.get("/sse", async (
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
app.get("/sse", async (req, res) => {
|
|
13
|
+
if (config.authorizationHeader === ""
|
|
14
|
+
|| config.authorizationHeader === req.headers[authorizationHeaderName]) {
|
|
15
|
+
const transport = new SSEServerTransport('/messages', res);
|
|
16
|
+
transports[transport.sessionId] = transport;
|
|
17
|
+
res.on("close", () => {
|
|
18
|
+
delete transports[transport.sessionId];
|
|
19
|
+
});
|
|
20
|
+
await server.connect(transport);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
res.status(401).send('Unauthorized');
|
|
24
|
+
}
|
|
18
25
|
});
|
|
19
26
|
app.post("/messages", async (req, res) => {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
27
|
+
if (config.authorizationHeader === ""
|
|
28
|
+
|| config.authorizationHeader === req.headers[authorizationHeaderName]) {
|
|
29
|
+
const sessionId = req.query.sessionId;
|
|
30
|
+
const transport = transports[sessionId];
|
|
31
|
+
if (transport) {
|
|
32
|
+
await transport.handlePostMessage(req, res);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
res.status(400).send('No transport found for sessionId');
|
|
36
|
+
}
|
|
24
37
|
}
|
|
25
38
|
else {
|
|
26
|
-
res.status(
|
|
39
|
+
res.status(401).send('Unauthorized');
|
|
27
40
|
}
|
|
28
41
|
});
|
|
29
42
|
app.listen(3001);
|
package/dist/sse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sse.js","sourceRoot":"","sources":["../src/sse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,QAAQ;IAC5B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IAEvC,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,4EAA4E;IAC5E,yBAAyB;IACzB,MAAM,UAAU,GAAgD,EAAE,CAAC;IAEnE,GAAG,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAEpD,IAAI,MAAM,CAAC,mBAAmB,KAAK,EAAE;eAChC,MAAM,CAAC,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACzE,MAAM,SAAS,GAAG,IAAI,kBAAkB,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;YAC3D,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;YAC5C,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACnB,OAAO,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,GAAY,EAAE,GAAa,EAAE,EAAE;QAC1D,IAAI,MAAM,CAAC,mBAAmB,KAAK,EAAE;eAChC,MAAM,CAAC,mBAAmB,KAAK,GAAG,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC;YACzE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,SAAmB,CAAC;YAChD,MAAM,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;YACxC,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,SAAS,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAC9C,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACnB,CAAC"}
|
package/dist/stdio.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
2
2
|
import { getServer } from './server.js';
|
|
3
|
+
import { config } from './config.js';
|
|
3
4
|
export async function startSTDIO() {
|
|
4
|
-
const server = await getServer();
|
|
5
|
+
const server = await getServer(config);
|
|
5
6
|
const transport = new StdioServerTransport();
|
|
6
7
|
await server.connect(transport);
|
|
7
8
|
}
|
package/dist/stdio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,MAAM,GAAG,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"stdio.js","sourceRoot":"","sources":["../src/stdio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,MAAM,CAAC,KAAK,UAAU,UAAU;IAC5B,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACpC,CAAC"}
|
package/dist/streamable-http.js
CHANGED
|
@@ -3,6 +3,8 @@ import { generateUUID } from "./utils.js";
|
|
|
3
3
|
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
|
|
4
4
|
import { isInitializeRequest } from "@modelcontextprotocol/sdk/types.js";
|
|
5
5
|
import { getServer } from "./server.js";
|
|
6
|
+
import { config } from "./config.js";
|
|
7
|
+
import { authorizationHeaderName } from "./const.js";
|
|
6
8
|
export function startStreamableHTTP() {
|
|
7
9
|
const app = express();
|
|
8
10
|
app.use(express.json());
|
|
@@ -10,45 +12,51 @@ export function startStreamableHTTP() {
|
|
|
10
12
|
const transports = {};
|
|
11
13
|
// Handle POST requests for client-to-server communication
|
|
12
14
|
app.post('/mcp', async (req, res) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
15
|
+
if (config.authorizationHeader === "" ||
|
|
16
|
+
config.authorizationHeader === req.headers[authorizationHeaderName]) {
|
|
17
|
+
// Check for existing session ID
|
|
18
|
+
const sessionId = req.headers['mcp-session-id'];
|
|
19
|
+
let transport;
|
|
20
|
+
if (sessionId && transports[sessionId]) {
|
|
21
|
+
// Reuse existing transport
|
|
22
|
+
transport = transports[sessionId];
|
|
23
|
+
}
|
|
24
|
+
else if (!sessionId && isInitializeRequest(req.body)) {
|
|
25
|
+
// New initialization request
|
|
26
|
+
transport = new StreamableHTTPServerTransport({
|
|
27
|
+
sessionIdGenerator: () => generateUUID(),
|
|
28
|
+
onsessioninitialized: (sessionId) => {
|
|
29
|
+
// Store the transport by session ID
|
|
30
|
+
transports[sessionId] = transport;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
// Clean up transport when closed
|
|
34
|
+
transport.onclose = () => {
|
|
35
|
+
if (transport.sessionId) {
|
|
36
|
+
delete transports[transport.sessionId];
|
|
37
|
+
}
|
|
38
|
+
};
|
|
39
|
+
const server = await getServer(config);
|
|
40
|
+
await server.connect(transport);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
// Invalid request
|
|
44
|
+
res.status(400).json({
|
|
45
|
+
jsonrpc: '2.0',
|
|
46
|
+
error: {
|
|
47
|
+
code: -32000,
|
|
48
|
+
message: 'Bad Request: No valid session ID provided',
|
|
49
|
+
},
|
|
50
|
+
id: null,
|
|
51
|
+
});
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
// Handle the request
|
|
55
|
+
await transport.handleRequest(req, res, req.body);
|
|
37
56
|
}
|
|
38
57
|
else {
|
|
39
|
-
|
|
40
|
-
res.status(400).json({
|
|
41
|
-
jsonrpc: '2.0',
|
|
42
|
-
error: {
|
|
43
|
-
code: -32000,
|
|
44
|
-
message: 'Bad Request: No valid session ID provided',
|
|
45
|
-
},
|
|
46
|
-
id: null,
|
|
47
|
-
});
|
|
48
|
-
return;
|
|
58
|
+
res.status(401).send('Unauthorized');
|
|
49
59
|
}
|
|
50
|
-
// Handle the request
|
|
51
|
-
await transport.handleRequest(req, res, req.body);
|
|
52
60
|
});
|
|
53
61
|
// Reusable handler for GET and DELETE requests
|
|
54
62
|
const handleSessionRequest = async (req, res) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../src/streamable-http.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AACnG,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"streamable-http.js","sourceRoot":"","sources":["../src/streamable-http.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ class PowershellClient {
|
|
|
15
15
|
}
|
|
16
16
|
async executeScript(script, parameters = {}) {
|
|
17
17
|
const uuid = generateUUID();
|
|
18
|
+
// Consider passing `rawOutput=True` and use custom serialization to CSV/JSON
|
|
19
|
+
// ConvertTo-CliXml that is used internally in SPE relies on System.Management.Automation.Serializer, which seems has bad performance.
|
|
18
20
|
const url = `${this.serverUrl}/-/script/script/?sessionId=${uuid}&rawOutput=False&persistentSession=False `;
|
|
19
21
|
const headers = {
|
|
20
22
|
'Authorization': this.bearertoken || '',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/tools/powershell/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,gBAAgB;IACV,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,WAAW,GAAkB,IAAI,CAAC;IAE1C,YAAY,SAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAE,SAAiB,UAAU;QAC1F,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,aAAkC,EAAE;QACpE,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,+BAA+B,IAAI,2CAA2C,CAAC;QAC5G,MAAM,OAAO,GAAG;YACZ,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACrC,CAAC;QAEF,IAAI,oBAAoB,GAAG,MAAM,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC/B,oBAAoB,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7C,CAAC;qBACI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;oBAC5C,oBAAoB,IAAI,KAAK,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACJ,oBAAoB,IAAI,KAAK,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACxE,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,oBAAoB,UAAU,IAAI,QAAQ,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SAEb,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,aAAkC,EAAE;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI;iBAC3B,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/tools/powershell/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAExE,MAAM,gBAAgB;IACV,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,QAAQ,CAAS;IACjB,MAAM,CAAS;IACf,WAAW,GAAkB,IAAI,CAAC;IAE1C,YAAY,SAAiB,EAAE,QAAgB,EAAE,QAAgB,EAAE,SAAiB,UAAU;QAC1F,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,IAAI,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5F,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,aAAkC,EAAE;QACpE,MAAM,IAAI,GAAG,YAAY,EAAE,CAAC;QAC5B,6EAA6E;QAC7E,sIAAsI;QACtI,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,+BAA+B,IAAI,2CAA2C,CAAC;QAC5G,MAAM,OAAO,GAAG;YACZ,eAAe,EAAE,IAAI,CAAC,WAAW,IAAI,EAAE;YACvC,cAAc,EAAE,kBAAkB;SACrC,CAAC;QAEF,IAAI,oBAAoB,GAAG,MAAM,CAAC;QAClC,IAAI,UAAU,EAAE,CAAC;YACb,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;gBACjC,IAAI,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC;oBAC/B,oBAAoB,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7C,CAAC;qBACI,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;oBAC5C,oBAAoB,IAAI,KAAK,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;gBACpF,CAAC;qBAAM,CAAC;oBACJ,oBAAoB,IAAI,KAAK,SAAS,KAAK,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC;gBACxE,CAAC;YACL,CAAC;QACL,CAAC;QAED,MAAM,IAAI,GAAG,GAAG,oBAAoB,UAAU,IAAI,QAAQ,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC9B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,OAAO;YAChB,IAAI,EAAE,IAAI;SAEb,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,MAAc,EAAE,aAAkC,EAAE;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACxD,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI;iBAC3B,IAAI,CAAC,GAAG,CAAC;iBACT,IAAI,CAAC,GAAG,CAAC;iBACT,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
2
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
3
|
+
export function getDefaultLayoutDevicePowershellTool(server, config) {
|
|
4
|
+
server.tool("presentation-get-default-layout-device", "Gets the default layout.", {}, async () => {
|
|
5
|
+
const command = `Get-LayoutDevice -Default`;
|
|
6
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, {}));
|
|
7
|
+
});
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=get-default-layout-device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-default-layout-device.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/get-default-layout-device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,oCAAoC,CAAC,MAAiB,EAAE,MAAc;IAClF,MAAM,CAAC,IAAI,CACP,wCAAwC,EACxC,0BAA0B,EAC1B,EAAE,EACF,KAAK,IAAI,EAAE;QACP,MAAM,OAAO,GAAG,2BAA2B,CAAC;QAE5C,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function getLayoutDevicePowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-get-layout-device", "Gets the layout for the device specified.", {
|
|
6
|
+
name: z.string().describe("Name of the device to return."),
|
|
7
|
+
}, async (params) => {
|
|
8
|
+
const command = `Get-LayoutDevice`;
|
|
9
|
+
const options = {};
|
|
10
|
+
options["Name"] = params.name;
|
|
11
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=get-layout-device.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-layout-device.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/get-layout-device.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAc;IAC3E,MAAM,CAAC,IAAI,CACP,gCAAgC,EAChC,2CAA2C,EAC3C;QACI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;KAC7D,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,kBAAkB,CAAC;QACnC,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAE9B,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function mergeLayoutByIdPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-merge-layout-by-id", "Merges final and shared layouts by item Id.", {
|
|
6
|
+
id: z.string().describe("The ID of the item to merge layout for."),
|
|
7
|
+
database: z.string().optional().describe("The database to merge layout for."),
|
|
8
|
+
language: z.string().optional().describe("The item language to merge layout for."),
|
|
9
|
+
}, async (params) => {
|
|
10
|
+
const command = `Merge-Layout`;
|
|
11
|
+
const options = {};
|
|
12
|
+
options["Id"] = params.id;
|
|
13
|
+
if (params.database) {
|
|
14
|
+
options["Database"] = params.database;
|
|
15
|
+
}
|
|
16
|
+
if (params.language) {
|
|
17
|
+
options["Language"] = params.language;
|
|
18
|
+
}
|
|
19
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=merge-layout-by-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-layout-by-id.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/merge-layout-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAc;IAC3E,MAAM,CAAC,IAAI,CACP,iCAAiC,EACjC,6CAA6C,EAC7C;QACI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yCAAyC,CAAC;QAClE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACrF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAE1B,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function mergeLayoutByPathPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-merge-layout-by-path", "Merges final and shared layouts by item path.", {
|
|
6
|
+
path: z.string().describe("The path of the item to merge layout for."),
|
|
7
|
+
language: z.string().optional().describe("The item language to merge layout for."),
|
|
8
|
+
}, async (params) => {
|
|
9
|
+
const command = `Merge-Layout`;
|
|
10
|
+
const options = {};
|
|
11
|
+
options["Path"] = params.path;
|
|
12
|
+
if (params.language) {
|
|
13
|
+
options["Language"] = params.language;
|
|
14
|
+
}
|
|
15
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=merge-layout-by-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"merge-layout-by-path.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/merge-layout-by-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,MAAc;IAC7E,MAAM,CAAC,IAAI,CACP,mCAAmC,EACnC,+CAA+C,EAC/C;QACI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KACrF,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function resetLayoutByIdPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-reset-layout-by-id", "Resets the layout of an item by Id.", {
|
|
6
|
+
id: z.string().describe("The ID of the item to reset the layout for."),
|
|
7
|
+
finalLayout: z.boolean().describe("Specifies layout to be reset. If 'true', the final layout is reset, otherwise - shared layout.").optional(),
|
|
8
|
+
language: z.string().describe("Specifies the item language to reset layout for.").optional(),
|
|
9
|
+
}, async (params) => {
|
|
10
|
+
const command = `Reset-Layout`;
|
|
11
|
+
const options = {};
|
|
12
|
+
options["Id"] = params.id;
|
|
13
|
+
if (params.finalLayout === true) {
|
|
14
|
+
options["FinalLayout"] = "";
|
|
15
|
+
}
|
|
16
|
+
if (params.language) {
|
|
17
|
+
options["Language"] = params.language;
|
|
18
|
+
}
|
|
19
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=reset-layout-by-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset-layout-by-id.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/reset-layout-by-id.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,6BAA6B,CAAC,MAAiB,EAAE,MAAc;IAC3E,MAAM,CAAC,IAAI,CACP,iCAAiC,EACjC,qCAAqC,EACrC;QACI,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QACtE,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC,CAAC,QAAQ,EAAE;QAC9I,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC,QAAQ,EAAE;KAC/F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;QAE1B,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAC/B,CAAC;YACG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { safeMcpResponse } from "../../../../helper.js";
|
|
3
|
+
import { runGenericPowershellCommand } from "../generic.js";
|
|
4
|
+
export function resetLayoutByPathPowershellTool(server, config) {
|
|
5
|
+
server.tool("presentation-reset-layout-by-path", "Resets the layout of an item by path.", {
|
|
6
|
+
path: z.string().describe("The path of the item to reset the layout for.").default("master:"),
|
|
7
|
+
finalLayout: z.boolean().describe("Specifies layout to be reset. If 'true', the final layout is reset, otherwise - shared layout.").optional(),
|
|
8
|
+
language: z.string().describe("Specifies the item language to reset layout for.").optional(),
|
|
9
|
+
}, async (params) => {
|
|
10
|
+
const command = `Reset-Layout`;
|
|
11
|
+
const options = {};
|
|
12
|
+
options["Path"] = params.path;
|
|
13
|
+
if (params.finalLayout === true) {
|
|
14
|
+
options["FinalLayout"] = "";
|
|
15
|
+
}
|
|
16
|
+
if (params.language) {
|
|
17
|
+
options["Language"] = params.language;
|
|
18
|
+
}
|
|
19
|
+
return safeMcpResponse(runGenericPowershellCommand(config, command, options));
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=reset-layout-by-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reset-layout-by-path.js","sourceRoot":"","sources":["../../../../../src/tools/powershell/simple/presentation/reset-layout-by-path.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAE5D,MAAM,UAAU,+BAA+B,CAAC,MAAiB,EAAE,MAAc;IAC7E,MAAM,CAAC,IAAI,CACP,mCAAmC,EACnC,uCAAuC,EACvC;QACI,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC7F,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,gGAAgG,CAAC,CAAC,QAAQ,EAAE;QAC9I,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC,CAAC,QAAQ,EAAE;KAC/F,EACD,KAAK,EAAE,MAAM,EAAE,EAAE;QACb,MAAM,OAAO,GAAG,cAAc,CAAC;QAC/B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,MAAM,CAAC,WAAW,KAAK,IAAI,EAC/B,CAAC;YACG,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EACnB,CAAC;YACG,OAAO,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC1C,CAAC;QAED,OAAO,eAAe,CAAC,2BAA2B,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClF,CAAC,CACJ,CAAC;AACN,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antonytm/mcp-sitecore-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.19.0",
|
|
4
4
|
"description": "A Model Context Protocol server for Sitecore",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist",
|
|
@@ -23,7 +23,15 @@
|
|
|
23
23
|
"start:streamable-http": "npm run build && cross-env TRANSPORT=streamable-http node dist/index.js",
|
|
24
24
|
"start:stdio": "npm run build && cross-env TRANSPORT=stdio node dist/index.js",
|
|
25
25
|
"run": "npm run build && node dist/run.js",
|
|
26
|
-
"test": "npm run build && npm run bundle && vitest run"
|
|
26
|
+
"test": "npm run build && npm run bundle && vitest run",
|
|
27
|
+
"docker:windows:build": "docker build -t antonytm/mcp-sitecore-windows:0.19.0 -t antonytm/mcp-sitecore-windows:latest --file .\\docker\\windows\\Dockerfile .",
|
|
28
|
+
"docker:windows:run": "docker run -it --rm -p 4001:3001 antonytm/mcp-sitecore-windows:latest",
|
|
29
|
+
"docker:windows:push": "docker push antonytm/mcp-sitecore-windows:0.19.0 && docker push antonytm/mcp-sitecore-windows:latest",
|
|
30
|
+
"docker:windows": "npm run docker:windows:build && npm run docker:windows:push",
|
|
31
|
+
"docker:linux:build": "docker build -t antonytm/mcp-sitecore-linux:0.19.0 -t antonytm/mcp-sitecore-linux:latest --file ./docker/linux/Dockerfile .",
|
|
32
|
+
"docker:linux:run": "docker run -it --rm -p 4001:3001 antonytm/mcp-sitecore-linux:latest",
|
|
33
|
+
"docker:linux:push": "docker push antonytm/mcp-sitecore-linux:0.19.0 && docker push antonytm/mcp-sitecore-linux:latest",
|
|
34
|
+
"docker:linux": "npm run docker:linux:build && npm run docker:linux:push"
|
|
27
35
|
},
|
|
28
36
|
"dependencies": {
|
|
29
37
|
"@antonytm/clixml-parser": "latest",
|