@antonytm/mcp-sitecore-server 0.1.5 → 0.1.6
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 +72 -2
- package/dist/app.js +0 -1
- package/dist/app.js.map +1 -1
- package/dist/server.js +2 -2
- package/dist/server.js.map +1 -1
- package/dist/tools/item-service/composite/get-item-descendants.d.ts +10 -0
- package/dist/tools/item-service/composite/get-item-descendants.js +30 -0
- package/dist/tools/item-service/composite/get-item-descendants.js.map +1 -0
- package/dist/tools/item-service/register-item-service.js +14 -0
- package/dist/tools/item-service/register-item-service.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,2 +1,72 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# Model Context Protocol server for Sitecore
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
[](CONTRIBUTING.md)
|
|
6
|
+
|
|
7
|
+
## Implemented tools
|
|
8
|
+
|
|
9
|
+
- [x] GraphQL API
|
|
10
|
+
- [x] `introspection-grahpql-{schema}`: returns the GraphQL schema
|
|
11
|
+
- [x] `query-graphql-{schema}`: executes a GraphQL query
|
|
12
|
+
- [x] Item Service API
|
|
13
|
+
- [x] `item-service-get-item`: returns an item by ID
|
|
14
|
+
- [x] `item-service-get-item-children`: returns the children of an item by ID
|
|
15
|
+
- [x] `item-service-get-item-by-path`: returns an item by path
|
|
16
|
+
- [x] `item-service-create-item`: creates an item by providing a template ID and parent path.
|
|
17
|
+
- [x] `item-service-edit-item`: edits an item by ID
|
|
18
|
+
- [x] `item-service-delete-item`: deletes an item by ID
|
|
19
|
+
- [x] `item-service-search-items`: searches for items
|
|
20
|
+
- [x] `item-service-run-stored-query`: runs a stored query
|
|
21
|
+
- [x] `item-service-run-stored-search`: runs a stored search
|
|
22
|
+
- [x] Composite Item Service API
|
|
23
|
+
- [x] `item-service-get-languages`: returns Sitcore languages in the instance
|
|
24
|
+
- [x] `item-service-get-item-descendants`: returns the descendants of an item by ID
|
|
25
|
+
- [ ] Sitecore Powershell
|
|
26
|
+
- [ ] Sitecore CLI
|
|
27
|
+
|
|
28
|
+
## Installation
|
|
29
|
+
|
|
30
|
+
Add the following Model Context Protocol server to your Cursor, VS Code, Claud:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
"Sitecore": {
|
|
34
|
+
"type": "stdio",
|
|
35
|
+
"command": "npx",
|
|
36
|
+
"args": ["@antonytm/mcp-sitecore-server@latest"],
|
|
37
|
+
"env": {
|
|
38
|
+
"TRANSPORT": "stdio",
|
|
39
|
+
"GRAPHQL_ENDPOINT": "https://xmcloudcm.localhost/sitecore/api/graph/",
|
|
40
|
+
"GRAPHQL_SCHEMAS": "edge,master,core",
|
|
41
|
+
"GRAPHQL_API_KEY": "{6D3F291E-66A5-4703-887A-D549AF83D859}",
|
|
42
|
+
"GRAPHQL_HEADERS": "",
|
|
43
|
+
"ITEM_SERVICE_DOMAIN": "sitecore",
|
|
44
|
+
"ITEM_SERVICE_USERNAME": "admin",
|
|
45
|
+
"ITEM_SERVICE_PASSWORD": "b",
|
|
46
|
+
"ITEM_SERVICE_SERVER_URL": "https://xmcloudcm.localhost/"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Environment Variables Description
|
|
52
|
+
|
|
53
|
+
- `TRANSPORT`: The transport protocol to use. Options are `stdio` or `sse`.
|
|
54
|
+
- `GRAPHQL_ENDPOINT`: The GraphQL endpoint URL for the Sitecore instance.
|
|
55
|
+
- `GRAPHQL_SCHEMAS`: The Sitecore schemas to use for the GraphQL API, comma-separated.
|
|
56
|
+
- `GRAPHQL_API_KEY`: The API key for the GraphQL endpoint.
|
|
57
|
+
- `GRAPHQL_HEADERS`: Additional headers to include in the GraphQL requests.
|
|
58
|
+
- `ITEM_SERVICE_DOMAIN`: The domain for the Item Service API login. Default is `sitecore`.
|
|
59
|
+
- `ITEM_SERVICE_USERNAME`: The username for the Item Service API login.
|
|
60
|
+
- `ITEM_SERVICE_PASSWORD`: The password for the Item Service API login.
|
|
61
|
+
- `ITEM_SERVICE_SERVER_URL`: The base URL for the Item Service API.
|
|
62
|
+
|
|
63
|
+
## Resources list
|
|
64
|
+
|
|
65
|
+
- [x] `config`: returns the configuration of the server. Use it to check if everything is properly configured.
|
|
66
|
+
|
|
67
|
+
## Local Installation / Development
|
|
68
|
+
|
|
69
|
+
1. Clone the repository
|
|
70
|
+
2. Run `npm install` to install dependencies
|
|
71
|
+
3. Run `npm run build` to build the project
|
|
72
|
+
4. Run `npm start` to start the server
|
package/dist/app.js
CHANGED
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,QAAQ,EAAE,CAAC
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,QAAQ,EAAE,CAAC"}
|
package/dist/server.js
CHANGED
|
@@ -20,10 +20,10 @@ export function getServer() {
|
|
|
20
20
|
const ENV = envSchema.parse(process.env);
|
|
21
21
|
// Parse the environment variables and set default values
|
|
22
22
|
const config = {
|
|
23
|
-
name: name
|
|
23
|
+
name: `${name} ${version}`,
|
|
24
24
|
graphQL: {
|
|
25
25
|
endpoint: ENV.GRAPHQL_ENDPOINT || "https://xmcloudcm.localhost/sitecore/api/graph/",
|
|
26
|
-
schemas: ENV.GRAPHQL_SCHEMAS ? ENV.GRAPHQL_SCHEMAS.split(",") : ["edge", "master"],
|
|
26
|
+
schemas: ENV.GRAPHQL_SCHEMAS ? ENV.GRAPHQL_SCHEMAS.split(",").map(x => x.trim()) : ["edge", "master"],
|
|
27
27
|
apiKey: ENV.GRAPHQL_API_KEY || "{6D3F291E-66A5-4703-887A-D549AF83D859}",
|
|
28
28
|
headers: ENV.GRAPHQL_HEADERS ? JSON.parse(ENV.GRAPHQL_HEADERS) : {},
|
|
29
29
|
},
|
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,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,SAAS,EAA+B,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,yBAAyB;AACzB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAClE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;AAEtC,MAAM,UAAU,SAAS;IACrB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,IAAI,EAAE,wBAAwB,IAAI,EAAE;QACpC,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAc,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpD,yDAAyD;IACzD,MAAM,MAAM,GAAW;QACnB,IAAI,EAAE,IAAI;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,SAAS,EAA+B,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,eAAe,EAAE,MAAM,qCAAqC,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,yBAAyB;AACzB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;AAClE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;AACrE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,CAAC;AAEtC,MAAM,UAAU,SAAS;IACrB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QACzB,IAAI,EAAE,wBAAwB,IAAI,EAAE;QACpC,WAAW,EAAE,qCAAqC;QAClD,OAAO,EAAE,OAAO;KACnB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAc,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEpD,yDAAyD;IACzD,MAAM,MAAM,GAAW;QACnB,IAAI,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE;QAC1B,OAAO,EAAE;YACL,QAAQ,EAAE,GAAG,CAAC,gBAAgB,IAAI,iDAAiD;YACnF,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC;YACrG,MAAM,EAAE,GAAG,CAAC,eAAe,IAAI,wCAAwC;YACvE,OAAO,EAAE,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE;SACtE;QACD,WAAW,EAAE;YACT,MAAM,EAAE,GAAG,CAAC,mBAAmB,IAAI,UAAU;YAC7C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,IAAI,OAAO;YAC9C,QAAQ,EAAE,GAAG,CAAC,qBAAqB,IAAI,GAAG;YAC1C,SAAS,EAAE,GAAG,CAAC,uBAAuB,IAAI,8BAA8B;SAC3E;KACJ,CAAC;IAEF,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;IAGF,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEhC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEpC,OAAO,MAAM,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import { type Config } from "../../../config.js";
|
|
3
|
+
export declare function getItemDescendants(conf: Config, id: string, options: {
|
|
4
|
+
database?: string;
|
|
5
|
+
language?: string;
|
|
6
|
+
version?: string;
|
|
7
|
+
includeStandardTemplateFields?: boolean;
|
|
8
|
+
includeMetadata?: boolean;
|
|
9
|
+
fields?: string[];
|
|
10
|
+
}): Promise<CallToolResult>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {} from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import {} from "../../../config.js";
|
|
3
|
+
import SitecoreRestfulItemServiceClient from "../client.js";
|
|
4
|
+
export async function getItemDescendants(conf, id, options) {
|
|
5
|
+
const client = new SitecoreRestfulItemServiceClient(conf.itemService.serverUrl, conf.itemService.username, conf.itemService.password, conf.itemService.domain);
|
|
6
|
+
const responseArray = [];
|
|
7
|
+
const idsSet = new Set();
|
|
8
|
+
idsSet.add(id);
|
|
9
|
+
while (idsSet.size > 0) {
|
|
10
|
+
const idToProcess = idsSet.values().next().value ?? "";
|
|
11
|
+
idsSet.delete(idToProcess);
|
|
12
|
+
const children = await client.getItemChildren(idToProcess, options);
|
|
13
|
+
if (children) {
|
|
14
|
+
for (const child of children) {
|
|
15
|
+
idsSet.add(child.ItemID);
|
|
16
|
+
}
|
|
17
|
+
responseArray.push(...children);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
content: [
|
|
22
|
+
{
|
|
23
|
+
type: "text",
|
|
24
|
+
text: JSON.stringify(responseArray, null, 2),
|
|
25
|
+
},
|
|
26
|
+
],
|
|
27
|
+
isError: false,
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=get-item-descendants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-item-descendants.js","sourceRoot":"","sources":["../../../../src/tools/item-service/composite/get-item-descendants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,gCAAgC,MAAM,cAAc,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY,EACjD,EAAU,EAAE,OAOX;IAED,MAAM,MAAM,GAAG,IAAI,gCAAgC,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAC1E,IAAI,CAAC,WAAW,CAAC,QAAQ,EACzB,IAAI,CAAC,WAAW,CAAC,QAAQ,EACzB,IAAI,CAAC,WAAW,CAAC,MAAM,CAC1B,CAAC;IAEF,MAAM,aAAa,GAAG,EAAE,CAAC;IACzB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAEf,OAAM,MAAM,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;QACpB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC;QACvD,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAQ,CAAC;QAE3E,IAAI,QAAQ,EAAE,CAAC;YACX,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACpC,CAAC;IACL,CAAC;IAED,OAAO;QACH,OAAO,EAAE;YACL;gBACI,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/C;SACJ;QACD,OAAO,EAAE,KAAK;KACjB,CAAA;AACL,CAAC"}
|
|
@@ -10,6 +10,7 @@ import { runStoredQuery } from "./simple/run-stored-query.js";
|
|
|
10
10
|
import { runStoredSearch } from "./simple/run-stored-search.js";
|
|
11
11
|
import { editItem } from "./simple/edit-item.js";
|
|
12
12
|
import { searchItems } from "./simple/search-items.js";
|
|
13
|
+
import { getItemDescendants } from "./composite/get-item-descendants.js";
|
|
13
14
|
function registerSimpleItemServices(server, config) {
|
|
14
15
|
server.tool('item-service-get-item', "Get a Sitecore item by its ID.", {
|
|
15
16
|
id: z.string(),
|
|
@@ -134,6 +135,19 @@ function registerCompositeItemServices(server, config) {
|
|
|
134
135
|
server.tool('item-service-get-languages', "Get Sitecore languages.", {}, async () => {
|
|
135
136
|
return safeMcpResponse(getLanguages(config));
|
|
136
137
|
});
|
|
138
|
+
server.tool('item-service-get-item-descendants', "Get descendants of a Sitecore item by its ID.", {
|
|
139
|
+
id: z.string(),
|
|
140
|
+
options: z.object({
|
|
141
|
+
database: z.string().optional(),
|
|
142
|
+
language: z.string().optional(),
|
|
143
|
+
version: z.string().optional(),
|
|
144
|
+
includeStandardTemplateFields: z.boolean().optional(),
|
|
145
|
+
includeMetadata: z.boolean().optional(),
|
|
146
|
+
fields: z.array(z.string()).optional(),
|
|
147
|
+
}).optional(),
|
|
148
|
+
}, async (params) => {
|
|
149
|
+
return safeMcpResponse(getItemDescendants(config, params.id, params.options || {}));
|
|
150
|
+
});
|
|
137
151
|
}
|
|
138
152
|
export function registerItemService(server, config) {
|
|
139
153
|
registerSimpleItemServices(server, config);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register-item-service.js","sourceRoot":"","sources":["../../../src/tools/item-service/register-item-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"register-item-service.js","sourceRoot":"","sources":["../../../src/tools/item-service/register-item-service.ts"],"names":[],"mappings":"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"}
|