@kontent-ai/mcp-server 0.11.0 → 0.12.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 +26 -30
- package/build/server.js +0 -2
- package/build/tools/add-content-item-mapi.js +1 -1
- package/build/tools/add-content-type-mapi.js +1 -1
- package/build/tools/add-content-type-snippet-mapi.js +1 -1
- package/build/tools/add-taxonomy-group-mapi.js +1 -1
- package/build/tools/context/initial-context.js +2 -3
- package/build/tools/delete-content-item-mapi.js +1 -1
- package/build/tools/delete-language-variant-mapi.js +1 -1
- package/build/tools/filter-variants-mapi.js +1 -1
- package/build/tools/get-asset-mapi.js +1 -1
- package/build/tools/get-taxonomy-group-mapi.js +1 -1
- package/build/tools/get-type-mapi.js +1 -1
- package/build/tools/get-type-snippet-mapi.js +1 -1
- package/build/tools/get-variant-mapi.js +1 -1
- package/build/tools/list-assets-mapi.js +1 -1
- package/build/tools/list-content-type-snippets-mapi.js +1 -1
- package/build/tools/list-content-types-mapi.js +1 -1
- package/build/tools/list-languages-mapi.js +1 -1
- package/build/tools/list-taxonomy-groups-mapi.js +1 -1
- package/build/tools/list-workflows-mapi.js +1 -1
- package/build/tools/publish-variant-mapi.js +1 -1
- package/build/tools/unpublish-variant-mapi.js +1 -1
- package/build/tools/update-content-item-mapi.js +1 -1
- package/build/tools/upsert-language-variant-mapi.js +1 -1
- package/package.json +1 -1
- package/build/tools/get-current-datetime.js +0 -9
package/README.md
CHANGED
|
@@ -58,57 +58,53 @@ npx @kontent-ai/mcp-server@latest sse
|
|
|
58
58
|
|
|
59
59
|
### Context and Setup
|
|
60
60
|
|
|
61
|
-
* **get-initial-context** – 🚨 **MANDATORY FIRST STEP**:
|
|
61
|
+
* **get-initial-context** – 🚨 **MANDATORY FIRST STEP**: This tool MUST be called before using ANY other tools. It provides essential context, configuration, and operational guidelines for Kontent.ai
|
|
62
62
|
|
|
63
63
|
### Content Type Management
|
|
64
64
|
|
|
65
|
-
* **get-type-mapi** – Get
|
|
66
|
-
* **list-content-types-mapi** –
|
|
67
|
-
* **add-content-type-mapi** –
|
|
65
|
+
* **get-type-mapi** – Get Kontent.ai content type by internal ID from Management API
|
|
66
|
+
* **list-content-types-mapi** – Get all Kontent.ai content types from Management API
|
|
67
|
+
* **add-content-type-mapi** – Add new Kontent.ai content type via Management API
|
|
68
68
|
|
|
69
69
|
### Content Type Snippet Management
|
|
70
70
|
|
|
71
|
-
* **get-type-snippet-mapi** – Get
|
|
72
|
-
* **list-content-type-snippets-mapi** –
|
|
73
|
-
* **add-content-type-snippet-mapi** –
|
|
71
|
+
* **get-type-snippet-mapi** – Get Kontent.ai content type snippet by internal ID from Management API
|
|
72
|
+
* **list-content-type-snippets-mapi** – Get all Kontent.ai content type snippets from Management API
|
|
73
|
+
* **add-content-type-snippet-mapi** – Add new Kontent.ai content type snippet via Management API
|
|
74
74
|
|
|
75
75
|
### Taxonomy Management
|
|
76
76
|
|
|
77
|
-
* **get-taxonomy-group-mapi** – Get
|
|
78
|
-
* **list-taxonomy-groups-mapi** –
|
|
79
|
-
* **add-taxonomy-group-mapi** –
|
|
77
|
+
* **get-taxonomy-group-mapi** – Get Kontent.ai taxonomy group by internal ID from Management API
|
|
78
|
+
* **list-taxonomy-groups-mapi** – Get all Kontent.ai taxonomy groups from Management API
|
|
79
|
+
* **add-taxonomy-group-mapi** – Add new Kontent.ai taxonomy group via Management API
|
|
80
80
|
|
|
81
81
|
### Content Item Management
|
|
82
82
|
|
|
83
|
-
* **get-item-mapi** – Get
|
|
84
|
-
* **get-item-dapi** – Get
|
|
85
|
-
* **get-variant-mapi** – Get
|
|
86
|
-
* **add-content-item-mapi** –
|
|
87
|
-
* **update-content-item-mapi** – Update
|
|
88
|
-
* **delete-content-item-mapi** – Delete
|
|
89
|
-
* **upsert-language-variant-mapi** – Create or update
|
|
90
|
-
* **delete-language-variant-mapi** – Delete
|
|
91
|
-
* **filter-variants-mapi** – Search and filter language variants
|
|
83
|
+
* **get-item-mapi** – Get Kontent.ai item by internal ID from Management API
|
|
84
|
+
* **get-item-dapi** – Get Kontent.ai item by codename from Delivery API
|
|
85
|
+
* **get-variant-mapi** – Get Kontent.ai language variant of content item from Management API
|
|
86
|
+
* **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
|
|
87
|
+
* **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
|
|
88
|
+
* **delete-content-item-mapi** – Delete Kontent.ai content item by internal ID from Management API
|
|
89
|
+
* **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. Elements should be provided as JSON string in the format expected by the SDK
|
|
90
|
+
* **delete-language-variant-mapi** – Delete Kontent.ai language variant from Management API
|
|
91
|
+
* **filter-variants-mapi** – Search and filter Kontent.ai language variants of content items using Management API
|
|
92
92
|
|
|
93
93
|
### Asset Management
|
|
94
94
|
|
|
95
|
-
* **get-asset-mapi** – Get a specific asset by internal ID
|
|
96
|
-
* **list-assets-mapi** –
|
|
95
|
+
* **get-asset-mapi** – Get a specific Kontent.ai asset by internal ID from Management API
|
|
96
|
+
* **list-assets-mapi** – Get all Kontent.ai assets from Management API
|
|
97
97
|
|
|
98
98
|
### Language Management
|
|
99
99
|
|
|
100
|
-
* **list-languages-mapi** –
|
|
100
|
+
* **list-languages-mapi** – Get all Kontent.ai languages from Management API
|
|
101
101
|
|
|
102
102
|
### Workflow Management
|
|
103
103
|
|
|
104
|
-
* **list-workflows-mapi** –
|
|
105
|
-
* **change-variant-workflow-step-mapi** – Change the workflow step of a language variant
|
|
106
|
-
* **publish-variant-mapi** – Publish or schedule a language variant
|
|
107
|
-
* **unpublish-variant-mapi** – Unpublish or schedule unpublishing of a language variant.
|
|
108
|
-
|
|
109
|
-
### Utility
|
|
110
|
-
|
|
111
|
-
* **get-current-datetime** – Get the current date and time in UTC (ISO-8601 format)
|
|
104
|
+
* **list-workflows-mapi** – Get all Kontent.ai workflows from Management API. Workflows define the content lifecycle stages and transitions between them
|
|
105
|
+
* **change-variant-workflow-step-mapi** – Change the workflow step of a language variant in Kontent.ai. This operation moves a language variant to a different step in the workflow, enabling content lifecycle management such as moving content from draft to review, review to published, etc.
|
|
106
|
+
* **publish-variant-mapi** – Publish or schedule a language variant of a content item in Kontent.ai. This operation can either immediately publish the variant or schedule it for publication at a specific future date and time with optional timezone specification
|
|
107
|
+
* **unpublish-variant-mapi** – Unpublish or schedule unpublishing of a language variant of a content item in Kontent.ai. This operation can either immediately unpublish the variant (making it unavailable through the Delivery API) or schedule it for unpublishing at a specific future date and time with optional timezone specification
|
|
112
108
|
|
|
113
109
|
## ⚙️ Configuration
|
|
114
110
|
|
package/build/server.js
CHANGED
|
@@ -9,7 +9,6 @@ import { registerTool as registerDeleteContentItemMapi } from "./tools/delete-co
|
|
|
9
9
|
import { registerTool as registerDeleteLanguageVariantMapi } from "./tools/delete-language-variant-mapi.js";
|
|
10
10
|
import { registerTool as registerFilterVariantsMapi } from "./tools/filter-variants-mapi.js";
|
|
11
11
|
import { registerTool as registerGetAssetMapi } from "./tools/get-asset-mapi.js";
|
|
12
|
-
import { registerTool as registerGetCurrentDatetime } from "./tools/get-current-datetime.js";
|
|
13
12
|
import { registerTool as registerGetInitialContext } from "./tools/get-initial-context.js";
|
|
14
13
|
import { registerTool as registerGetItemDapi } from "./tools/get-item-dapi.js";
|
|
15
14
|
import { registerTool as registerGetItemMapi } from "./tools/get-item-mapi.js";
|
|
@@ -64,6 +63,5 @@ export const createServer = () => {
|
|
|
64
63
|
registerFilterVariantsMapi(server);
|
|
65
64
|
registerPublishVariantMapi(server);
|
|
66
65
|
registerUnpublishVariantMapi(server);
|
|
67
|
-
registerGetCurrentDatetime(server);
|
|
68
66
|
return { server };
|
|
69
67
|
};
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("add-content-item-mapi", "Add
|
|
6
|
+
server.tool("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.", {
|
|
7
7
|
name: z
|
|
8
8
|
.string()
|
|
9
9
|
.min(1)
|
|
@@ -4,7 +4,7 @@ import { contentGroupSchema, elementSchema, } from "../schemas/contentTypeSchema
|
|
|
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("add-content-type-mapi", "Add
|
|
7
|
+
server.tool("add-content-type-mapi", "Add new Kontent.ai content type via Management API", {
|
|
8
8
|
name: z.string().describe("Display name of the content type"),
|
|
9
9
|
codename: z
|
|
10
10
|
.string()
|
|
@@ -4,7 +4,7 @@ import { snippetElementSchema } from "../schemas/contentTypeSchemas.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("add-content-type-snippet-mapi", "Add
|
|
7
|
+
server.tool("add-content-type-snippet-mapi", "Add new Kontent.ai content type snippet via Management API", {
|
|
8
8
|
name: z.string().describe("Display name of the content type snippet"),
|
|
9
9
|
codename: z
|
|
10
10
|
.string()
|
|
@@ -3,7 +3,7 @@ import { taxonomyGroupSchemas } from "../schemas/taxonomySchemas.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("add-taxonomy-group-mapi", "Add
|
|
6
|
+
server.tool("add-taxonomy-group-mapi", "Add new Kontent.ai taxonomy group via Management API", taxonomyGroupSchemas, async (taxonomyGroup) => {
|
|
7
7
|
const client = createMapiClient();
|
|
8
8
|
try {
|
|
9
9
|
const response = await client
|
|
@@ -98,9 +98,6 @@ ALL FOUR elements must be included in language variant using their internal IDs:
|
|
|
98
98
|
|
|
99
99
|
**Failure to provide the workflowId parameter will result in workflow step change failures.**
|
|
100
100
|
|
|
101
|
-
### Current date and time
|
|
102
|
-
|
|
103
|
-
**CRITICAL**: Always use the **get-current-datetime tool** to obtain the current UTC time. Never assume the current time.
|
|
104
101
|
|
|
105
102
|
## Essential Concepts
|
|
106
103
|
|
|
@@ -116,6 +113,8 @@ ALL FOUR elements must be included in language variant using their internal IDs:
|
|
|
116
113
|
|
|
117
114
|
## Best Practices
|
|
118
115
|
|
|
116
|
+
**CRITICAL**: Never assume the current time. Always obtain the current date and time when needed for time-sensitive operations like scheduling. If the current date and time in UTC format cannot be decisively obtained by any available tool, force the user to specify the current date and time explicitly.
|
|
117
|
+
|
|
119
118
|
Use snippets for common field groups to maintain consistency and avoid duplication. Plan your content types before creating content to ensure proper structure. **Always use internal IDs when working with MCP tools** for optimal performance and reliability. Leverage taxonomies for organization to create logical content hierarchies. Consider your multilingual strategy early in the planning process to avoid restructuring later.
|
|
120
119
|
|
|
121
120
|
When working with snippets, always retrieve and understand the complete element structure before creating content variants.
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("delete-content-item-mapi", "Delete
|
|
6
|
+
server.tool("delete-content-item-mapi", "Delete Kontent.ai content item by internal ID from Management API", {
|
|
7
7
|
id: z.string().describe("Internal ID of the content item to delete"),
|
|
8
8
|
}, async ({ id }) => {
|
|
9
9
|
const client = createMapiClient();
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("delete-language-variant-mapi", "Delete
|
|
6
|
+
server.tool("delete-language-variant-mapi", "Delete Kontent.ai language variant from Management API", {
|
|
7
7
|
itemId: z.string().describe("Internal ID of the content item"),
|
|
8
8
|
languageId: z
|
|
9
9
|
.string()
|
|
@@ -3,7 +3,7 @@ import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
import { throwError } from "../utils/throwError.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("filter-variants-mapi", "Search and filter language variants of content items using
|
|
6
|
+
server.tool("filter-variants-mapi", "Search and filter Kontent.ai language variants of content items using Management API", filterVariantsSchema.shape, async ({ search_phrase, content_types, contributors, completion_statuses, language, workflow_steps, order_by, order_direction, continuation_token, }) => {
|
|
7
7
|
try {
|
|
8
8
|
const requestPayload = {
|
|
9
9
|
filters: {
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("get-asset-mapi", "Get a specific asset by internal ID from Management API", {
|
|
6
|
+
server.tool("get-asset-mapi", "Get a specific Kontent.ai asset by internal ID from Management API", {
|
|
7
7
|
assetId: z.string().describe("Internal ID of the asset to retrieve"),
|
|
8
8
|
}, async ({ assetId }) => {
|
|
9
9
|
const client = createMapiClient();
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("get-taxonomy-group-mapi", "Get taxonomy group by internal ID from Management API", {
|
|
6
|
+
server.tool("get-taxonomy-group-mapi", "Get Kontent.ai taxonomy group by internal ID from Management API", {
|
|
7
7
|
id: z.string().describe("Internal ID of the taxonomy group to get"),
|
|
8
8
|
}, async ({ id }) => {
|
|
9
9
|
const client = createMapiClient();
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("get-type-mapi", "Get content type by internal ID from Management API", {
|
|
6
|
+
server.tool("get-type-mapi", "Get Kontent.ai content type by internal ID from Management API", {
|
|
7
7
|
id: z.string().describe("Internal ID of the content type to get"),
|
|
8
8
|
}, async ({ id }) => {
|
|
9
9
|
const client = createMapiClient();
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("get-type-snippet-mapi", "Get content type snippet by internal ID from Management API", {
|
|
6
|
+
server.tool("get-type-snippet-mapi", "Get Kontent.ai content type snippet by internal ID from Management API", {
|
|
7
7
|
id: z.string().describe("Internal ID of the content type snippet to get"),
|
|
8
8
|
}, async ({ id }) => {
|
|
9
9
|
const client = createMapiClient();
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("get-variant-mapi", "Get language variant of
|
|
6
|
+
server.tool("get-variant-mapi", "Get Kontent.ai language variant of content item from Management API", {
|
|
7
7
|
itemId: z.string().describe("Internal ID of the content item"),
|
|
8
8
|
languageId: z
|
|
9
9
|
.string()
|
|
@@ -2,7 +2,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
2
2
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
export const registerTool = (server) => {
|
|
5
|
-
server.tool("list-assets-mapi", "Get all assets from Management API", {}, async () => {
|
|
5
|
+
server.tool("list-assets-mapi", "Get all Kontent.ai assets from Management API", {}, async () => {
|
|
6
6
|
const client = createMapiClient();
|
|
7
7
|
try {
|
|
8
8
|
const response = await client.listAssets().toAllPromise();
|
|
@@ -2,7 +2,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
2
2
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
export const registerTool = (server) => {
|
|
5
|
-
server.tool("list-content-type-snippets-mapi", "Get all content type snippets from Management API", {}, async () => {
|
|
5
|
+
server.tool("list-content-type-snippets-mapi", "Get all Kontent.ai content type snippets from Management API", {}, async () => {
|
|
6
6
|
const client = createMapiClient();
|
|
7
7
|
try {
|
|
8
8
|
const response = await client.listContentTypeSnippets().toAllPromise();
|
|
@@ -2,7 +2,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
2
2
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
export const registerTool = (server) => {
|
|
5
|
-
server.tool("list-content-types-mapi", "Get all content types from Management API", {}, async () => {
|
|
5
|
+
server.tool("list-content-types-mapi", "Get all Kontent.ai content types from Management API", {}, async () => {
|
|
6
6
|
const client = createMapiClient();
|
|
7
7
|
try {
|
|
8
8
|
const response = await client.listContentTypes().toAllPromise();
|
|
@@ -2,7 +2,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
2
2
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
export const registerTool = (server) => {
|
|
5
|
-
server.tool("list-languages-mapi", "Get all languages from Management API", {}, async () => {
|
|
5
|
+
server.tool("list-languages-mapi", "Get all Kontent.ai languages from Management API", {}, async () => {
|
|
6
6
|
const client = createMapiClient();
|
|
7
7
|
try {
|
|
8
8
|
const response = await client.listLanguages().toAllPromise();
|
|
@@ -2,7 +2,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
2
2
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
export const registerTool = (server) => {
|
|
5
|
-
server.tool("list-taxonomy-groups-mapi", "Get all taxonomy groups from Management API", {}, async () => {
|
|
5
|
+
server.tool("list-taxonomy-groups-mapi", "Get all Kontent.ai taxonomy groups from Management API", {}, async () => {
|
|
6
6
|
const client = createMapiClient();
|
|
7
7
|
try {
|
|
8
8
|
const response = await client.listTaxonomies().toAllPromise();
|
|
@@ -2,7 +2,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
2
2
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
3
3
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
4
4
|
export const registerTool = (server) => {
|
|
5
|
-
server.tool("list-workflows-mapi", "Get all workflows from Management API. Workflows define the content lifecycle stages and transitions between them.", {}, async () => {
|
|
5
|
+
server.tool("list-workflows-mapi", "Get all Kontent.ai workflows from Management API. Workflows define the content lifecycle stages and transitions between them.", {}, async () => {
|
|
6
6
|
const client = createMapiClient();
|
|
7
7
|
try {
|
|
8
8
|
const response = await client.listWorkflows().toPromise();
|
|
@@ -14,7 +14,7 @@ export const registerTool = (server) => {
|
|
|
14
14
|
.describe("Internal ID (UUID) of the language variant to publish or schedule. Use '00000000-0000-0000-0000-000000000000' for the default language. Each language in your project has a unique ID that identifies the specific variant."),
|
|
15
15
|
scheduledTo: z
|
|
16
16
|
.string()
|
|
17
|
-
.datetime()
|
|
17
|
+
.datetime({ offset: true })
|
|
18
18
|
.optional()
|
|
19
19
|
.describe("ISO 8601 formatted date and time when the publish action should occur (e.g., '2024-12-25T10:00:00Z' for UTC or '2024-12-25T10:00:00+02:00' for specific timezone). If not provided, the variant will be published immediately. If provided, must be a future date/time. The actual execution may have up to 5 minutes delay from the specified time."),
|
|
20
20
|
displayTimezone: z
|
|
@@ -14,7 +14,7 @@ export const registerTool = (server) => {
|
|
|
14
14
|
.describe("Internal ID (UUID) of the language variant to unpublish or schedule for unpublishing. Use '00000000-0000-0000-0000-000000000000' for the default language. Each language in your project has a unique ID that identifies the specific variant."),
|
|
15
15
|
scheduledTo: z
|
|
16
16
|
.string()
|
|
17
|
-
.datetime()
|
|
17
|
+
.datetime({ offset: true })
|
|
18
18
|
.optional()
|
|
19
19
|
.describe("ISO 8601 formatted date and time when the unpublish action should occur (e.g., '2024-12-25T10:00:00Z' for UTC or '2024-12-25T10:00:00+02:00' for specific timezone). If not provided, the variant will be unpublished immediately. If provided, must be a future date/time. The actual execution may have up to 5 minutes delay from the specified time. When unpublished, the content will no longer be available through the Delivery API."),
|
|
20
20
|
displayTimezone: z
|
|
@@ -3,7 +3,7 @@ import { createMapiClient } from "../clients/kontentClients.js";
|
|
|
3
3
|
import { handleMcpToolError } from "../utils/errorHandler.js";
|
|
4
4
|
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
5
5
|
export const registerTool = (server) => {
|
|
6
|
-
server.tool("update-content-item-mapi", "Update
|
|
6
|
+
server.tool("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.", {
|
|
7
7
|
id: z.string().describe("Internal ID of the content item to update"),
|
|
8
8
|
name: z
|
|
9
9
|
.string()
|
|
@@ -4,7 +4,7 @@ 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
|
|
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. Elements should be provided as JSON string in the format expected by the SDK.", {
|
|
8
8
|
itemId: z.string().describe("Internal ID of the content item"),
|
|
9
9
|
languageId: z
|
|
10
10
|
.string()
|
package/package.json
CHANGED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { createMcpToolSuccessResponse } from "../utils/responseHelper.js";
|
|
2
|
-
export const registerTool = (server) => {
|
|
3
|
-
server.tool("get-current-datetime", "Get the current date and time in UTC (ISO-8601 format)", {}, async () => {
|
|
4
|
-
const now = new Date();
|
|
5
|
-
return createMcpToolSuccessResponse({
|
|
6
|
-
datetime: now.toISOString(),
|
|
7
|
-
});
|
|
8
|
-
});
|
|
9
|
-
};
|