get-patch-guideLABSCO SUMMARY
A content model you can draw and then have built — and a live site you can accidentally unpublish.
The modelling work that normally means clicking through a UI becomes something an assistant can carry out from a diagram, and the patch guide is a deliberate speed bump because patch operations have a different shape per entity. What deserves attention before you wire it up is the other half: this key can delete types, overwrite variants and unpublish live content, and the maintainers say plainly that content written by an editor can carry instructions a model will follow. Their own first recommendation is the one that holds regardless of model behaviour — give it a least-privilege key, so a hijacked call fails at the API rather than at the prompt.
What it is
A client for the Kontent.ai Management API covering the whole environment — content model, items and their language variants, assets, languages, collections, spaces, workflows and publishing. Every tool carries an MCP annotation marking it read-only, additive or destructive.
What you get
- The content model under full control: content types and reusable content type snippets listed, read, created, patched with move, addInto, remove and replace operations, and deleted (list-content-types, create-content-type, patch-content-type, delete-content-type, create-content-type-snippet, patch-content-type-snippet).
- Taxonomy groups on the same footing — listed, read, created, patched and deleted (list-taxonomy-groups, create-taxonomy-group, patch-taxonomy-group, delete-taxonomy-group).
- Content items and their language variants written as well as read: the item container, then a variant per language, updated element by element so omitted elements stay untouched, with a new version creatable from published content (create-content-item, update-content-item, create-content-item-variant, update-content-item-variant, create-new-content-item-variant-version, delete-content-item-variant).
- Reading that distinguishes draft from live: the current version of a variant, the published version specifically when a newer draft exists, and every translation of one item (get-content-item-variant, get-published-content-item-variant-version, get-content-item-translations).
- Finding content two ways — filtered and searched listing of variants, a bulk fetch of specific item-and-language pairs with a continuation token, and semantic search by meaning for when you do not know the keywords (list-content-item-variants, bulk-get-content-item-variants, search-content-item-variants).
- The publishing lifecycle: move a variant to another workflow step, publish or unpublish it now or scheduled to a future date and timezone, and cancel a scheduled publish to reopen it for edits (change-content-item-variant-workflow-step, publish-content-item-variant, unpublish-content-item-variant, cancel-scheduled-publishing-content-item-variant).
- Workflows themselves — created with custom steps, transitions, scopes and role permissions, updated, and deleted when nothing uses them (list-workflows, create-workflow, update-workflow, delete-workflow).
- The environment's structure: assets and asset folders, languages, collections that bound content by team or brand, spaces for a website or channel, and the role list (list-assets, update-asset, patch-asset-folders, list-languages, create-language, patch-collections, create-space, list-roles).
- A per-entity patch guide the server insists you fetch before attempting any patch operation (get-patch-guide).
Requirements
A Kontent.ai account with a project, a Management API key, and the environment ID. Run npx @kontent-ai/mcp-server@latest stdio with KONTENT_API_KEY and KONTENT_ENVIRONMENT_ID for a local client, or shttp to serve several environments from one instance on port 3001, where each request carries its environment in the URL path and its key as a Bearer token.
Setup effort
Add the configuration to your client
USE CASES
Turning a content model sketch into a real environment
Create the types and the snippets they share, then the taxonomy that classifies them.
Adding a field to a type that is already in use
Read the patch guide for that entity first, then apply the operation rather than replacing the type.
Getting a translation live
Create the language variant, fill only the elements that change, then move it through its workflow and publish.
Scheduling a launch for a specific date
Schedule the publish with its timezone, and cancel it back to the previous step if the copy needs another pass.
Finding content when you only remember what it was about
Semantic search finds it by meaning; the bulk fetch then pulls the full data for the item and language pairs worth reading.
Checking what is actually live versus what is in draft
The published version and the current version are separate reads, so the difference is explicit.
53 tools
Listed in project docs. Your client may show a different list.
get-content-typelist-content-typescreate-content-typepatch-content-typedelete-content-typeget-content-type-snippetlist-content-type-snippetscreate-content-type-snippetpatch-content-type-snippetdelete-content-type-snippetget-taxonomy-grouplist-taxonomy-groupscreate-taxonomy-grouppatch-taxonomy-groupdelete-taxonomy-groupget-content-itemget-content-item-variantget-published-content-item-variant-versionget-content-item-translationslist-content-item-variantscreate-content-itemupdate-content-itemdelete-content-itemcreate-content-item-variantupdate-content-item-variantcreate-new-content-item-variant-versiondelete-content-item-variantbulk-get-content-item-variantssearch-content-item-variantsget-assetlist-assetsupdate-assetlist-asset-folderspatch-asset-folderslist-languagescreate-languagepatch-languagelist-collectionspatch-collectionslist-spacescreate-spacepatch-spacedelete-spacelist-roleslist-workflowscreate-workflowupdate-workflowdelete-workflowchange-content-item-variant-workflow-steppublish-content-item-variantunpublish-content-item-variantcancel-scheduled-publishing-content-item-variantBEFORE YOU INSTALL
What to know first
Tools you get
53 tools named in the project's documentation.
Requires
- npx on PATH
- KONTENT_API_KEY in your environment
- KONTENT_ENVIRONMENT_ID in your environment
INSTALLATION
Connect your client
MCP Clients
Any MCP client — stdio
{
"mcpServers": {
"kontent-ai-stdio": {
"command": "npx",
"args": [
"@kontent-ai/mcp-server@latest",
"stdio"
],
"env": {
"KONTENT_API_KEY": "<YOUR_KONTENT_API_KEY>",
"KONTENT_ENVIRONMENT_ID": "<YOUR_KONTENT_ENVIRONMENT_ID>"
}
}
}
}Single-environment mode: your MCP client starts the server itself, with your Kontent.ai Management API key and environment ID set in env. The multi-environment setups in the other tabs use a server you start yourself instead.
VS Code
First start the multi-tenant server (it listens on http://localhost:3001):
npx @kontent-ai/mcp-server@latest shttpThen create .vscode/mcp.json in your workspace:
{
"servers": {
"kontent-ai-multi": {
"type": "http",
"url": "http://localhost:3001/<YOUR_KONTENT_ENVIRONMENT_ID>/mcp",
"headers": {
"Authorization": "Bearer <YOUR_KONTENT_API_KEY>"
}
}
}
}<YOUR_KONTENT_ENVIRONMENT_ID> is your Kontent.ai environment ID (GUID). Keep the shttp server running while you use the client.
Claude Desktop
First start the multi-tenant server (it listens on http://localhost:3001):
npx @kontent-ai/mcp-server@latest shttpThen add this to claude_desktop_config.json (mcp-remote adds the authentication header):
{
"mcpServers": {
"kontent-ai-multi": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:3001/<YOUR_KONTENT_ENVIRONMENT_ID>/mcp",
"--header",
"Authorization: Bearer <YOUR_KONTENT_API_KEY>"
]
}
}
}<YOUR_KONTENT_ENVIRONMENT_ID> is your Kontent.ai environment ID (GUID). Keep the shttp server running while you use the client.
Claude Code
First start the multi-tenant server (it listens on http://localhost:3001):
npx @kontent-ai/mcp-server@latest shttpThen add the server:
claude mcp add --transport http kontent-ai-multi \
"http://localhost:3001/<YOUR_KONTENT_ENVIRONMENT_ID>/mcp" \
--header "Authorization: Bearer <YOUR_KONTENT_API_KEY>"<YOUR_KONTENT_ENVIRONMENT_ID> is your Kontent.ai environment ID (GUID). Keep the shttp server running while you use the client.