From 88865cbdd0a67d03ede7a8034f4d8bf39170d36b Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Thu, 8 Oct 2026 14:41:10 +0200 Subject: [PATCH 01/10] mcp_usage.md: Update Copilot link --- docs/ai/mcp/mcp_usage.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ai/mcp/mcp_usage.md b/docs/ai/mcp/mcp_usage.md index 9741037921..7426b6ba10 100644 --- a/docs/ai/mcp/mcp_usage.md +++ b/docs/ai/mcp/mcp_usage.md @@ -93,8 +93,8 @@ The server: Filesystem storage is convenient for the sake of this example and for testing. For production, it is recommended that you use Redis or Valkey to share cache among the cluster and improve performance. - For development, you can set `discovery_cache: ~` to avoid clearing the cache after each change. - This example uses the filesystem storage to illustrate that you have to clear the cache pool to refresh the available capabilities, exactly as when deploying into production. + For development, you can set `discovery_cache: ~` to avoid clearing the cache after each change. + This example uses the filesystem storage to illustrate that you have to clear the cache pool to refresh the available capabilities, exactly as when deploying into production. In a new `config/packages/mcp.yaml` file, define a new MCP server for the `default` repository and assign it to all SiteAccesses: @@ -294,7 +294,7 @@ You can select and test it in the right column. ### Perform Copilot or Claude Code test -You can test your MCP server with [Copilot CLI](https://docs.github.com/en/copilot/concepts/agents/copilot-cli/about-copilot-cli) or [Claude Code CLI](https://code.claude.com/docs/en/overview), as illustrated here, or with any other agent or interface. +You can test your MCP server with [GitHub Copilot CLI](https://docs.github.com/en/copilot/concepts/copilot-surfaces/copilot-cli) or [Claude Code CLI](https://code.claude.com/docs/en/overview), as illustrated here, or with any other agent or interface. #### Add MCP server to agent CLI From 52744b9691cc7c8b75040ac64b59e520e90fc08d Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 9 Oct 2026 14:29:58 +0200 Subject: [PATCH 02/10] mcp_config.md: Add new incoming built-in tools --- docs/ai/mcp/mcp_config.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index 1f0e8a4210..74eea31559 100644 --- a/docs/ai/mcp/mcp_config.md +++ b/docs/ai/mcp/mcp_config.md @@ -138,6 +138,14 @@ MCP Servers LTS Update comes with the following **experimental** built-in tools: - `list_non_translated_content_ids` - lists IDs of content which have missing translations for a given language code. - `Ibexa\Mcp\Tool\SeoTools` - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). Useful for identifying content that needs SEO attention. +- `Ibexa\Taxonomy\Mcp\Tool\TaxonomyTools` + - `list_taxonomies` - Lists the taxonomies. + - `list_taxonomy_entries` - Lists entries of a taxonomy, below its root or a specific entry, with depth and pagination options. Useful for traversing taxonomy tree. +- `Ibexa\Workflow\Mcp\Tool\WorkflowTools` + - `list_workflows` - Lists the editorial workflows. + - `get_content_workflow_status` - Gets the workflow status of a content version. + - `apply_workflow_transition` - Applies a workflow transition to a content version. + ``` yaml hl_lines="5-7" [[= include_code('code_samples/mcp/mcp.matrix.yaml', 4, 7) =]] From f2ea0f1b8d1c2c76133d5f2c87914fb3c274c14a Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 9 Oct 2026 14:35:47 +0200 Subject: [PATCH 03/10] MCP release note --- docs/release_notes/ibexa_dxp_v5.0.md | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/release_notes/ibexa_dxp_v5.0.md b/docs/release_notes/ibexa_dxp_v5.0.md index c1c49bd622..67fb8391ce 100644 --- a/docs/release_notes/ibexa_dxp_v5.0.md +++ b/docs/release_notes/ibexa_dxp_v5.0.md @@ -10,6 +10,32 @@ month_change: false
+[[% set version = 'v5.0.11' %]] +[[% set date = 'YYYY-MM-DD' %]] + +[[= release_note_entry_begin( + 'MCP Servers ' + version, + date, + ['Headless', 'Experience', 'Commerce', 'LTS Update'] +) =]] + +### Tools + +Several new [MCP tools](mcp_config.md#built-in-tools) have been added for [taxonomy](taxonomy.md) and [workflow](workflow.md): + +- `list_taxonomies` +- `list_taxonomy_entries` +- `list_workflows` +- `get_content_workflow_status` +- `apply_workflow_transition` + +### Schemas + +Input and output formats have changes for several tools. +If you have written prompts, skill files, or other resources to help your agents to produce inputs or interpret outputs, you have to adapt them to those new formats. + +[[= release_note_entry_end() =]] + [[% set version = 'v5.0.10' %]] [[% set date = '2026-08-20' %]] From 8ac4668c71bf412b1a526a104233fa6dd1d67021 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 9 Oct 2026 14:37:10 +0200 Subject: [PATCH 04/10] MCP release note --- docs/release_notes/ibexa_dxp_v5.0.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/release_notes/ibexa_dxp_v5.0.md b/docs/release_notes/ibexa_dxp_v5.0.md index 67fb8391ce..2b25cfec9d 100644 --- a/docs/release_notes/ibexa_dxp_v5.0.md +++ b/docs/release_notes/ibexa_dxp_v5.0.md @@ -31,8 +31,8 @@ Several new [MCP tools](mcp_config.md#built-in-tools) have been added for [taxon ### Schemas -Input and output formats have changes for several tools. -If you have written prompts, skill files, or other resources to help your agents to produce inputs or interpret outputs, you have to adapt them to those new formats. +Input and output formats have been optimized for several tools. +If you have written prompts, skill files, or other resources to help your agents to produce inputs or interpret outputs, you have to adapt them to those format changes. [[= release_note_entry_end() =]] From af67e592f561cfd043eaacf72ee361448a475207 Mon Sep 17 00:00:00 2001 From: Adrien Dupuis <61695653+adriendupuis@users.noreply.github.com> Date: Fri, 9 Oct 2026 14:40:54 +0200 Subject: [PATCH 05/10] mcp_usage.md: format Markdown --- docs/ai/mcp/mcp_usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ai/mcp/mcp_usage.md b/docs/ai/mcp/mcp_usage.md index 7426b6ba10..7af03b3473 100644 --- a/docs/ai/mcp/mcp_usage.md +++ b/docs/ai/mcp/mcp_usage.md @@ -94,7 +94,7 @@ The server: For production, it is recommended that you use Redis or Valkey to share cache among the cluster and improve performance. For development, you can set `discovery_cache: ~` to avoid clearing the cache after each change. - This example uses the filesystem storage to illustrate that you have to clear the cache pool to refresh the available capabilities, exactly as when deploying into production. + This example uses the filesystem storage to illustrate that you have to clear the cache pool to refresh the available capabilities, exactly as when deploying into production. In a new `config/packages/mcp.yaml` file, define a new MCP server for the `default` repository and assign it to all SiteAccesses: From b38b8d4371796bdb95846243b007b43f8a52da7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C4=85browski?= <64841871+dabrt@users.noreply.github.com> Date: Tue, 20 Oct 2026 21:01:29 +0200 Subject: [PATCH 06/10] Update tools list, move RN to master PR --- docs/ai/mcp/mcp_config.md | 53 +++++++++++++++++----------- docs/release_notes/ibexa_dxp_v5.0.md | 26 -------------- 2 files changed, 32 insertions(+), 47 deletions(-) diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index 74eea31559..34b85291fe 100644 --- a/docs/ai/mcp/mcp_config.md +++ b/docs/ai/mcp/mcp_config.md @@ -119,33 +119,44 @@ There are two ways to associate tools with a server: MCP Servers LTS Update comes with the following **experimental** built-in tools: - `Ibexa\Mcp\Tool\ContentType\ContentTypeTools` - - `get_content_type` - gets a content type by its ID. - - `get_content_type_by_identifier` - gets a content type by its identifier. - - `get_content_type_list` - gets content types by their IDs. - - `create_content_type` - creates a draft for a new content type. - - `create_content_type_draft` - creates a draft for an existing content type. - - `get_content_type_draft` - gets a content type draft by content type ID. - - `publish_content_type_draft` - publishes a content type draft by content type ID. + - `get_content_type` - gets a content type by its ID + - `get_content_type_by_identifier` - gets a content type by its identifier + - `get_content_type_list` - gets content types by their IDs + - `create_content_type` - creates a draft for a new content type + - `create_content_type_draft` - creates a draft for an existing content type + - `get_content_type_draft` - gets a content type draft by content type ID + - `publish_content_type_draft` - publishes a content type draft by content type ID +- `Ibexa\Mcp\Tool\Content\ContentTools` + - `ibexa/mcp:update_content` - sets field values on a draft, in the draft's initial language (unless `initialLanguageCode` is given) + - `ibexa/mcp:create_content` - creates an unpublished draft + - `ibexa/mcp:convert_to_richtext_xml` - converts plain text, HTML fragments or complete DocBook / XHTML5 edit documents into the DocBook XML stored in RichText fields + - `ibexa/mcp:create_content_draft` - creates a new draft from the published or archived version + - `ibexa/mcp:list_locations` - lists direct children of a parent Location, and/or Locations that match a pattern, paginated + - `ibexa/mcp:get_content_info` - gets version-independent metadata of a content item + - `ibexa/mcp:get_content_version_info` - gets metadata of a specific version of a content item (current by default) + - `ibexa/mcp:get_default_language_code` - gets the first configured language of the current SiteAccess + - `ibexa/mcp:get_root_location` - gets the root Location of the content tree of a SiteAccess (current if no SiteAccess name is given) + - `ibexa/mcp:get_content` - gets a content item with its metadata, a version and the field values of that version + - `ibexa/mcp:get_language` - gets a language by its language code, together with information whether it is enabled + -`publish_version` - publishes a draft - `Ibexa\Mcp\Tool\ContentType\FieldDefinitionTools` - - `add_field_definition` - adds a field definition to a content type draft. - - `update_field_definition` - updates a field definition in a content type draft. - - `remove_field_definition` - removes a field definition from a content type draft. + - `add_field_definition` - adds a field definition to a content type draft + - `update_field_definition` - updates a field definition in a content type draft + - `remove_field_definition` - removes a field definition from a content type draft - `Ibexa\Mcp\Tool\ContentType\ContentTypeGroupTools` - - `get_content_type_groups` - gets all content type groups. + - `get_content_type_groups` - gets all content type groups - `Ibexa\Mcp\Tool\TranslationTools` - - `list_languages` - lists all languages in the current SiteAccess. - - `list_content_languages` - lists languages which have translations for a given content item. - - `list_non_translated_content_ids` - lists IDs of content which have missing translations for a given language code. + - `list_languages` - lists all languages in the current SiteAccess + - `list_content_languages` - lists languages which have translations for a given content item + - `list_non_translated_content_ids` - lists IDs of content which have missing translations for a given language code - `Ibexa\Mcp\Tool\SeoTools` - - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). Useful for identifying content that needs SEO attention. + - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). Useful for identifying content that needs SEO attention - `Ibexa\Taxonomy\Mcp\Tool\TaxonomyTools` - - `list_taxonomies` - Lists the taxonomies. - - `list_taxonomy_entries` - Lists entries of a taxonomy, below its root or a specific entry, with depth and pagination options. Useful for traversing taxonomy tree. + - `list_taxonomies` - Lists the taxonomies - `Ibexa\Workflow\Mcp\Tool\WorkflowTools` - - `list_workflows` - Lists the editorial workflows. - - `get_content_workflow_status` - Gets the workflow status of a content version. - - `apply_workflow_transition` - Applies a workflow transition to a content version. - + - `list_workflows` - Lists the editorial workflows + - `get_content_workflow_status` - Gets the workflow status of a content version + - `apply_workflow_transition` - Applies a workflow transition to a content version ``` yaml hl_lines="5-7" [[= include_code('code_samples/mcp/mcp.matrix.yaml', 4, 7) =]] diff --git a/docs/release_notes/ibexa_dxp_v5.0.md b/docs/release_notes/ibexa_dxp_v5.0.md index 2b25cfec9d..c1c49bd622 100644 --- a/docs/release_notes/ibexa_dxp_v5.0.md +++ b/docs/release_notes/ibexa_dxp_v5.0.md @@ -10,32 +10,6 @@ month_change: false
-[[% set version = 'v5.0.11' %]] -[[% set date = 'YYYY-MM-DD' %]] - -[[= release_note_entry_begin( - 'MCP Servers ' + version, - date, - ['Headless', 'Experience', 'Commerce', 'LTS Update'] -) =]] - -### Tools - -Several new [MCP tools](mcp_config.md#built-in-tools) have been added for [taxonomy](taxonomy.md) and [workflow](workflow.md): - -- `list_taxonomies` -- `list_taxonomy_entries` -- `list_workflows` -- `get_content_workflow_status` -- `apply_workflow_transition` - -### Schemas - -Input and output formats have been optimized for several tools. -If you have written prompts, skill files, or other resources to help your agents to produce inputs or interpret outputs, you have to adapt them to those format changes. - -[[= release_note_entry_end() =]] - [[% set version = 'v5.0.10' %]] [[% set date = '2026-08-20' %]] From 50b30c6d7d07bb44fc02f2ee9bf0f07d9d8651c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C4=85browski?= <64841871+dabrt@users.noreply.github.com> Date: Wed, 21 Oct 2026 19:42:17 +0200 Subject: [PATCH 07/10] Implement reviewer comments --- docs/ai/mcp/mcp_config.md | 51 +++++++++++++++++++++------------------ 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index 34b85291fe..5a54c2f2f6 100644 --- a/docs/ai/mcp/mcp_config.md +++ b/docs/ai/mcp/mcp_config.md @@ -118,45 +118,50 @@ There are two ways to associate tools with a server: MCP Servers LTS Update comes with the following **experimental** built-in tools: +- `Ibexa\Mcp\Tool\Content\ContentTools` + - `get_content_info` - gets version-independent metadata of a content item + - `get_content_version_info` - gets metadata of a specific version of a content item (current by default) + - `get_content` - gets a content item with its metadata, a version and the field values of that version + - `create_content` - creates an unpublished draft + - `create_content_draft` - creates a new draft from the published or archived version + - `update_content` - sets field values on a draft, in the draft's initial language (unless `initialLanguageCode` is given) + - `publish_version` - publishes a draft +- `Ibexa\Mcp\Tool\ContentType\ContentTypeGroupTools` + - `get_content_type_groups` - gets all content type groups - `Ibexa\Mcp\Tool\ContentType\ContentTypeTools` - - `get_content_type` - gets a content type by its ID - - `get_content_type_by_identifier` - gets a content type by its identifier + - `get_content_type` - gets a content type by its ID or identifier - `get_content_type_list` - gets content types by their IDs - `create_content_type` - creates a draft for a new content type - `create_content_type_draft` - creates a draft for an existing content type - `get_content_type_draft` - gets a content type draft by content type ID - `publish_content_type_draft` - publishes a content type draft by content type ID -- `Ibexa\Mcp\Tool\Content\ContentTools` - - `ibexa/mcp:update_content` - sets field values on a draft, in the draft's initial language (unless `initialLanguageCode` is given) - - `ibexa/mcp:create_content` - creates an unpublished draft - - `ibexa/mcp:convert_to_richtext_xml` - converts plain text, HTML fragments or complete DocBook / XHTML5 edit documents into the DocBook XML stored in RichText fields - - `ibexa/mcp:create_content_draft` - creates a new draft from the published or archived version - - `ibexa/mcp:list_locations` - lists direct children of a parent Location, and/or Locations that match a pattern, paginated - - `ibexa/mcp:get_content_info` - gets version-independent metadata of a content item - - `ibexa/mcp:get_content_version_info` - gets metadata of a specific version of a content item (current by default) - - `ibexa/mcp:get_default_language_code` - gets the first configured language of the current SiteAccess - - `ibexa/mcp:get_root_location` - gets the root Location of the content tree of a SiteAccess (current if no SiteAccess name is given) - - `ibexa/mcp:get_content` - gets a content item with its metadata, a version and the field values of that version - - `ibexa/mcp:get_language` - gets a language by its language code, together with information whether it is enabled - -`publish_version` - publishes a draft - `Ibexa\Mcp\Tool\ContentType\FieldDefinitionTools` - `add_field_definition` - adds a field definition to a content type draft - `update_field_definition` - updates a field definition in a content type draft - `remove_field_definition` - removes a field definition from a content type draft -- `Ibexa\Mcp\Tool\ContentType\ContentTypeGroupTools` - - `get_content_type_groups` - gets all content type groups + - `get_field_type_list` - lists all available field types with identifiers, empty value structure, settings, and validator configuration +- `Ibexa\Mcp\Tool\Language\LanguageTools` + - `get_language` - gets a language by its language code, together with information whether it is enabled + - `get_default_language_code` - gets the first configured language of the current SiteAccess +- `Ibexa\Mcp\Tool\Location\LocationTools` + - `list_locations` - lists direct children of a parent Location, and/or Locations that match a pattern, paginated + - `get_root_location` - gets the root Location of the content tree of a SiteAccess (current if no SiteAccess name is given) +- `Ibexa\Mcp\Tool\RichText\RichTextTools` + - `convert_to_richtext_xml` - converts plain text, HTML fragments or complete DocBook / XHTML5 edit documents into the DocBook XML stored in RichText fields +- `Ibexa\Mcp\Tool\SeoTools` + - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). Useful for identifying content that needs SEO attention - `Ibexa\Mcp\Tool\TranslationTools` - `list_languages` - lists all languages in the current SiteAccess - `list_content_languages` - lists languages which have translations for a given content item - `list_non_translated_content_ids` - lists IDs of content which have missing translations for a given language code -- `Ibexa\Mcp\Tool\SeoTools` - - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). Useful for identifying content that needs SEO attention + +The following tools are included with their respective packages, [Taxonomy](taxonomy.md) and [Workflow](workflow.md): - `Ibexa\Taxonomy\Mcp\Tool\TaxonomyTools` - - `list_taxonomies` - Lists the taxonomies + - `list_taxonomies` - lists the taxonomies - `Ibexa\Workflow\Mcp\Tool\WorkflowTools` - - `list_workflows` - Lists the editorial workflows - - `get_content_workflow_status` - Gets the workflow status of a content version - - `apply_workflow_transition` - Applies a workflow transition to a content version + - `list_workflows` - lists the editorial workflows + - `get_content_workflow_status` - gets the workflow status of a content version + - `apply_workflow_transition` - applies a workflow transition to a content version ``` yaml hl_lines="5-7" [[= include_code('code_samples/mcp/mcp.matrix.yaml', 4, 7) =]] From 39e771b7dcca5da64ae600c9e66878cb216fff33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C4=85browski?= <64841871+dabrt@users.noreply.github.com> Date: Wed, 21 Oct 2026 20:53:36 +0200 Subject: [PATCH 08/10] Add WorkflowTools to the snippet --- code_samples/mcp/mcp.matrix.yaml | 1 + docs/ai/mcp/mcp_config.md | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/code_samples/mcp/mcp.matrix.yaml b/code_samples/mcp/mcp.matrix.yaml index c5d1371e91..39e6aef7af 100644 --- a/code_samples/mcp/mcp.matrix.yaml +++ b/code_samples/mcp/mcp.matrix.yaml @@ -9,6 +9,7 @@ ibexa: tools: - Ibexa\Mcp\Tool\TranslationTools - Ibexa\Mcp\Tool\SeoTools + - Ibexa\Workflow\Mcp\Tool\WorkflowTools discovery_cache: session: type: diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index 5a54c2f2f6..c007e0ff35 100644 --- a/docs/ai/mcp/mcp_config.md +++ b/docs/ai/mcp/mcp_config.md @@ -60,8 +60,8 @@ You define MCP servers within a repository configuration and then assign those s ``` yaml [[= include_code('code_samples/mcp/mcp.matrix.yaml', 1, 8) =]] -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 12, 17) =]] -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 31, 35) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 13, 18) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 32, 36) =]] ``` Servers are automatically registered as services with an ID following the pattern `ibexa.mcp.server..`. @@ -156,6 +156,7 @@ MCP Servers LTS Update comes with the following **experimental** built-in tools: - `list_non_translated_content_ids` - lists IDs of content which have missing translations for a given language code The following tools are included with their respective packages, [Taxonomy](taxonomy.md) and [Workflow](workflow.md): + - `Ibexa\Taxonomy\Mcp\Tool\TaxonomyTools` - `list_taxonomies` - lists the taxonomies - `Ibexa\Workflow\Mcp\Tool\WorkflowTools` @@ -163,9 +164,9 @@ The following tools are included with their respective packages, [Taxonomy](taxo - `get_content_workflow_status` - gets the workflow status of a content version - `apply_workflow_transition` - applies a workflow transition to a content version -``` yaml hl_lines="5-7" +``` yaml hl_lines="5-8" [[= include_code('code_samples/mcp/mcp.matrix.yaml', 4, 7) =]] -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 9, 11) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 9, 12) =]] # … ``` @@ -186,7 +187,7 @@ You must provide a PSR-6 or PSR-16 cache pool for this caching. For example, you could set up a dedicated Redis/Valkey: ``` yaml -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 19, 19) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 20, 20) =]] ``` For a production cluster, it's recommended to use a Redis/Valkey cache pool so the cache can be shared by all nodes. @@ -229,8 +230,8 @@ Optionally, you could use a more specific `prefix` option than the default `mcp_ Such setup is suitable for production environments. ``` yaml -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 20, 23) =]] -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 36, 45) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 21, 24) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 37, 46) =]] ``` #### File @@ -242,7 +243,7 @@ Such setup is suitable for development environments. In this example, sessions are stored in the `var/cache//mcp/sessions/` directory (for example, `var/cache/dev/mcp/session/` for the `dev` environment, and `var/cache/prod/mcp/sessions/` for the `prod` environment): ``` yaml -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 25, 27) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 26, 28) =]] ``` ### Allowed hosts @@ -256,7 +257,7 @@ IPv6 addresses must be bracketed, for example `[::1]`. In this example, only requests from `admin.example.com` domain, `my-ddev-project.ddev.site` domain, or from 127.0.0.1 IP are accepted: ``` yaml -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 16, 16) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 17, 17) =]] - 'www.example.com' - 'my-ddev-project.ddev.site' - '127.0.0.1' From 49cbb6ad3bb60e0dd28cc2a568f8e7d1a577b0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C4=85browski?= <64841871+dabrt@users.noreply.github.com> Date: Wed, 21 Oct 2026 21:00:34 +0200 Subject: [PATCH 09/10] Fix typos --- docs/ai/mcp/mcp_config.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index c007e0ff35..280a296bd8 100644 --- a/docs/ai/mcp/mcp_config.md +++ b/docs/ai/mcp/mcp_config.md @@ -144,12 +144,12 @@ MCP Servers LTS Update comes with the following **experimental** built-in tools: - `get_language` - gets a language by its language code, together with information whether it is enabled - `get_default_language_code` - gets the first configured language of the current SiteAccess - `Ibexa\Mcp\Tool\Location\LocationTools` - - `list_locations` - lists direct children of a parent Location, and/or Locations that match a pattern, paginated - - `get_root_location` - gets the root Location of the content tree of a SiteAccess (current if no SiteAccess name is given) + - `list_locations` - lists direct children of a parent location, and/or locations that match a pattern, paginated + - `get_root_location` - gets the root location of the content tree of a SiteAccess (current if no SiteAccess name is given) - `Ibexa\Mcp\Tool\RichText\RichTextTools` - `convert_to_richtext_xml` - converts plain text, HTML fragments or complete DocBook / XHTML5 edit documents into the DocBook XML stored in RichText fields - `Ibexa\Mcp\Tool\SeoTools` - - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). Useful for identifying content that needs SEO attention + - `get_non_seo_content_ids` - returns IDs of content items that are missing SEO optimization (no meta title tag). You can use it to identify content that needs SEO attention - `Ibexa\Mcp\Tool\TranslationTools` - `list_languages` - lists all languages in the current SiteAccess - `list_content_languages` - lists languages which have translations for a given content item From 402a45aad4705eed0b835f92ae4e3153e69c90ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomasz=20D=C4=85browski?= <64841871+dabrt@users.noreply.github.com> Date: Fri, 23 Oct 2026 17:57:45 +0200 Subject: [PATCH 10/10] Add three additional tools to the list --- docs/ai/mcp/mcp_config.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index 280a296bd8..74bda672f8 100644 --- a/docs/ai/mcp/mcp_config.md +++ b/docs/ai/mcp/mcp_config.md @@ -159,6 +159,9 @@ The following tools are included with their respective packages, [Taxonomy](taxo - `Ibexa\Taxonomy\Mcp\Tool\TaxonomyTools` - `list_taxonomies` - lists the taxonomies + - `assign_to_taxonomy_entry` - assigns up to 100 content items to a taxonomy entry + - `list_taxonomy_entry_content` - lists the content items assigned to a taxonomy entry + - `unassign_from_taxonomy_entry` - removes the assignment of content items to a taxonomy entry - `Ibexa\Workflow\Mcp\Tool\WorkflowTools` - `list_workflows` - lists the editorial workflows - `get_content_workflow_status` - gets the workflow status of a content version