@kontent-ai/mcp-server 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -88,7 +88,8 @@ npx @kontent-ai/mcp-server@latest sse
|
|
|
88
88
|
* **add-content-item-mapi** – Add new Kontent.ai content item via Management API. This creates the content item structure but does not add content to language variants. Use upsert-language-variant-mapi to add content to the item
|
|
89
89
|
* **update-content-item-mapi** – Update existing Kontent.ai content item by internal ID via Management API. The content item must already exist - this tool will not create new items
|
|
90
90
|
* **delete-content-item-mapi** – Delete Kontent.ai content item by internal ID from Management API
|
|
91
|
-
* **upsert-language-variant-mapi** – Create or update Kontent.ai language variant of a content item via Management API. This adds actual content to the content item elements.
|
|
91
|
+
* **upsert-language-variant-mapi** – Create or update Kontent.ai language variant of a content item via Management API. This adds actual content to the content item elements. When updating an existing variant, only the provided elements will be modified
|
|
92
|
+
* **create-variant-version-mapi** – Create new version of Kontent.ai language variant via Management API. This operation creates a new version of an existing language variant, useful for content versioning and creating new drafts from published content
|
|
92
93
|
* **delete-language-variant-mapi** – Delete Kontent.ai language variant from Management API
|
|
93
94
|
* **filter-variants-mapi** – Search and filter Kontent.ai language variants of content items using Management API
|
|
94
95
|
|
package/build/server.js
CHANGED
|
@@ -5,6 +5,7 @@ import { registerTool as registerAddContentTypeMapi } from "./tools/add-content-
|
|
|
5
5
|
import { registerTool as registerAddContentTypeSnippetMapi } from "./tools/add-content-type-snippet-mapi.js";
|
|
6
6
|
import { registerTool as registerAddTaxonomyGroupMapi } from "./tools/add-taxonomy-group-mapi.js";
|
|
7
7
|
import { registerTool as registerChangeVariantWorkflowStepMapi } from "./tools/change-variant-workflow-step-mapi.js";
|
|
8
|
+
import { registerTool as registerCreateVariantVersionMapi } from "./tools/create-variant-version-mapi.js";
|
|
8
9
|
import { registerTool as registerDeleteContentItemMapi } from "./tools/delete-content-item-mapi.js";
|
|
9
10
|
import { registerTool as registerDeleteContentTypeMapi } from "./tools/delete-content-type-mapi.js";
|
|
10
11
|
import { registerTool as registerDeleteLanguageVariantMapi } from "./tools/delete-language-variant-mapi.js";
|
|
@@ -61,6 +62,7 @@ export const createServer = () => {
|
|
|
61
62
|
registerUpdateContentItemMapi(server);
|
|
62
63
|
registerDeleteContentItemMapi(server);
|
|
63
64
|
registerUpsertLanguageVariantMapi(server);
|
|
65
|
+
registerCreateVariantVersionMapi(server);
|
|
64
66
|
registerDeleteLanguageVariantMapi(server);
|
|
65
67
|
registerListWorkflowsMapi(server);
|
|
66
68
|
registerChangeVariantWorkflowStepMapi(server);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { createMapiClient } from "../clients/kontentClients.js";
|
|
3
|
+
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
|
+
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
|
+
export const registerTool = (server) => {
|
|
6
|
+
server.tool("create-variant-version-mapi", "Create new version of Kontent.ai language variant via Management API. This operation creates a new version of an existing language variant, useful for content versioning and creating new drafts from published content.", {
|
|
7
|
+
itemId: z
|
|
8
|
+
.string()
|
|
9
|
+
.uuid()
|
|
10
|
+
.describe("Internal ID (UUID) of the content item whose language variant you want to create a new version of"),
|
|
11
|
+
languageId: z
|
|
12
|
+
.string()
|
|
13
|
+
.uuid()
|
|
14
|
+
.describe("Internal ID (UUID) of the language variant to create a new version of. Use '00000000-0000-0000-0000-000000000000' for the default language"),
|
|
15
|
+
}, async ({ itemId, languageId }) => {
|
|
16
|
+
const client = createMapiClient();
|
|
17
|
+
try {
|
|
18
|
+
const response = await client
|
|
19
|
+
.createNewVersionOfLanguageVariant()
|
|
20
|
+
.byItemId(itemId)
|
|
21
|
+
.byLanguageId(languageId)
|
|
22
|
+
.toPromise();
|
|
23
|
+
return createMcpToolSuccessResponse({
|
|
24
|
+
message: `Successfully created new version of language variant '${languageId}' for content item '${itemId}'`,
|
|
25
|
+
result: response.data,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
return handleMcpToolError(error, "Variant Version Creation");
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
};
|
|
@@ -4,12 +4,14 @@ import { languageVariantElementSchema } from "../schemas/contentItemSchemas.js";
|
|
|
4
4
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
5
5
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
6
6
|
export const registerTool = (server) => {
|
|
7
|
-
server.tool("upsert-language-variant-mapi", "Create or update Kontent.ai language variant of a content item via Management API. This adds actual content to the content item elements.
|
|
7
|
+
server.tool("upsert-language-variant-mapi", "Create or update Kontent.ai language variant of a content item via Management API. This adds actual content to the content item elements. When updating an existing variant, only the provided elements will be modified.", {
|
|
8
8
|
itemId: z.string().describe("Internal ID of the content item"),
|
|
9
9
|
languageId: z
|
|
10
10
|
.string()
|
|
11
11
|
.describe("Internal ID of the language variant (e.g., '00000000-0000-0000-0000-000000000000' for default language)"),
|
|
12
|
-
elements: z
|
|
12
|
+
elements: z
|
|
13
|
+
.array(languageVariantElementSchema)
|
|
14
|
+
.describe("Array of content elements, each with 'element' (reference object with id/codename/external_id) and 'value' properties. Additional properties may be required depending on element type (e.g., 'mode' for URL slugs)."),
|
|
13
15
|
workflow_step_id: z
|
|
14
16
|
.string()
|
|
15
17
|
.optional()
|