diff --git a/code_samples/mcp/config/packages/mcp.yaml b/code_samples/mcp/config/packages/mcp.yaml index f71a60e119..05781ee8f4 100644 --- a/code_samples/mcp/config/packages/mcp.yaml +++ b/code_samples/mcp/config/packages/mcp.yaml @@ -10,7 +10,9 @@ ibexa: discovery_cache: cache.tagaware.filesystem session: type: psr16 - directory: cache.tagaware.filesystem + service: cache.tagaware.filesystem + allowed_hosts: + - '127.0.0.1' system: default: mcp: diff --git a/code_samples/mcp/mcp.matrix.yaml b/code_samples/mcp/mcp.matrix.yaml index 012d588e07..c5d1371e91 100644 --- a/code_samples/mcp/mcp.matrix.yaml +++ b/code_samples/mcp/mcp.matrix.yaml @@ -13,6 +13,8 @@ ibexa: session: type: # Session options… + allowed_hosts: + - '' mcp_psr16: discovery_cache: cache.redis.mcp session: diff --git a/code_samples/mcp/mcp.sh b/code_samples/mcp/mcp.sh index 27a1592f5e..797c65983a 100644 --- a/code_samples/mcp/mcp.sh +++ b/code_samples/mcp/mcp.sh @@ -40,7 +40,7 @@ curl -s -i -X 'POST' "$baseUrl/mcp/example" \ sed '$d' response.tmp.txt tail -n 1 response.tmp.txt | jq -mcpSessionId=$(cat response.tmp.txt | grep 'Mcp-Session-Id:' | sed 's/Mcp-Session-Id: \([0-9a-f-]*\).*/\1/') +mcpSessionId=$(cat response.tmp.txt | grep -i 'Mcp-Session-Id:' | sed 's/Mcp-Session-Id: \([0-9a-f-]*\).*/\1/i') rm response.tmp.txt curl -s -i -X 'POST' "$baseUrl/mcp/example" \ diff --git a/code_samples/mcp/src/Mcp/ExampleCapabilities.php b/code_samples/mcp/src/Mcp/ExampleCapabilities.php index 20568de5c3..682f65807c 100644 --- a/code_samples/mcp/src/Mcp/ExampleCapabilities.php +++ b/code_samples/mcp/src/Mcp/ExampleCapabilities.php @@ -18,6 +18,7 @@ #[McpTool( servers: ['example'], name: 'greet', + title: 'User greeting', description: 'Greet a user by name', annotations: new ToolAnnotations( readOnlyHint: true, @@ -73,6 +74,7 @@ public function greetByName(string $name): array #[McpPrompt( servers: ['example'], name: 'greet', + title: 'Be greeted', description: 'Prompt to invoke the `greet` tool', icons: [new Icon( src: 'https://openmoji.org/data/color/svg/1F91D.svg', diff --git a/code_samples/recommendations/config/packages/ibexa_connector_raptor.yaml b/code_samples/recommendations/config/packages/ibexa_connector_raptor.yaml index 18ad640c12..1147603dcb 100644 --- a/code_samples/recommendations/config/packages/ibexa_connector_raptor.yaml +++ b/code_samples/recommendations/config/packages/ibexa_connector_raptor.yaml @@ -4,7 +4,7 @@ ibexa: connector_raptor: enabled: true customer_id: ~ # Required - tracking_type: client # One of: "client" or "server" + tracking_type: client # One of: "client", "server", or "hybrid" # Raptor Recommendations API key recommendations_api_key: ~ # Required @@ -18,3 +18,4 @@ ibexa: ibexa_connector_raptor: # When enabled, tracking exceptions are thrown instead of being silently handled strict_exceptions: true + hybrid_tracking_proxy_path: '/raptor/track' diff --git a/docs/ai/mcp/mcp_config.md b/docs/ai/mcp/mcp_config.md index 0ac3841cf7..7421956bbe 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, 15) =]] -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 29, 33) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 12, 17) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 31, 35) =]] ``` Routes are built automatically from MCP server `path` configs. @@ -72,16 +72,17 @@ You can list them by running the following command: ### MCP server options -| Option | Type | Required | Default | Description | -|-----------------------------------------------------------------------------------------------------------------|---------|----------|---------|------------------------------------------------------------------| -| `path` | string | Yes | | MCP server endpoint path (appended to SiteAccess-aware base URL) | -| `enabled` | boolean | No | `false` | Server state: decides whether it is enabled or disabled | -| `version` | string | No | `1.0.0` | MCP server version | -| [`description`](https://modelcontextprotocol.io/specification/2025-11-25/schema#implementation-description) | string | No | `null` | Server implementation description | -| [`instructions`](https://modelcontextprotocol.io/specification/2025-11-25/schema#initializeresult-instructions) | string | No | `null` | Prompt-like instructions provided to the AI agent | -| [`tools`](#tool-configuration) | string | No | `[]` | List of tool classes | -| [`discovery_cache`](#discovery-cache) | string | Yes | | PSR-6 or PSR-16 cache pool service identifier | -| [`session`](#session-storage) | object | Yes | | Session storage configuration | +| Option | Type | Required | Default | Description | +|-----------------------------------------------------------------------------------------------------------------|---------|----------|--------------------------------------------------------------------------|------------------------------------------------------------------| +| `path` | string | Yes | | MCP server endpoint path (appended to SiteAccess-aware base URL) | +| `enabled` | boolean | No | `false` | Server state: decides whether it is enabled or disabled | +| `version` | string | No | `1.0.0` | MCP server version | +| [`description`](https://modelcontextprotocol.io/specification/2025-11-25/schema#implementation-description) | string | No | `null` | Server implementation description | +| [`instructions`](https://modelcontextprotocol.io/specification/2025-11-25/schema#initializeresult-instructions) | string | No | `null` | Prompt-like instructions provided to the AI agent | +| [`tools`](#tool-configuration) | array | No | `[]` | List of tool classes | +| [`discovery_cache`](#discovery-cache) | string | Yes | | PSR-6 or PSR-16 cache pool service identifier | +| [`session`](#session-storage) | object | Yes | | Session storage configuration | +| [`allowed_hosts`](#allowed-hosts) | array | No | `[`
`'localhost',`
`'127.0.0.1',`
`'[::1]'`
`]` | Accepted `Host` headers | !!! note "New servers are disabled by default" @@ -106,13 +107,27 @@ There are two ways to associate tools with a server: #### Built-in tools -MCP Servers LTS Update comes with the following built-in tools: - +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 content type draft. + - `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\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. - `Ibexa\Mcp\Tool\TranslationTools` - - `list_languages` - lists all languages in the current SiteAccess - - `list_content_translations` - lists languages in which given content item has translations + - `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) + - `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. ``` yaml hl_lines="5-7" [[= include_code('code_samples/mcp/mcp.matrix.yaml', 4, 7) =]] @@ -120,6 +135,15 @@ MCP Servers LTS Update comes with the following built-in tools: # … ``` +!!! caution "Experimental tools" + + The built-in tools are experimental and may change in future releases. + They are provided as examples of how to implement tools and how to configure them in an MCP server. + As-is, they may not cover all your needs or may not be practical to all AI agents. + If you use them, be prepared to update your MCP server configuration and tool usage when upgrading to a new version of [[= product_name =]]. + + See how to build your own tools in [Work with MCP servers](mcp_usage.md). + ### Discovery cache Discovery is cached to avoid scanning for capabilities on every request. @@ -128,7 +152,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', 17, 17) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 19, 19) =]] ``` For a production cluster, it's recommended to use a Redis/Valkey cache pool so the cache can be shared by all nodes. @@ -163,8 +187,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', 18, 21) =]] -[[= include_code('code_samples/mcp/mcp.matrix.yaml', 34, 43) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 20, 23) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 36, 45) =]] ``` #### File @@ -176,5 +200,22 @@ 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', 23, 25) =]] +[[= include_code('code_samples/mcp/mcp.matrix.yaml', 25, 27) =]] +``` + +### Allowed hosts + +This parameter lists the domains, the `Host` headers, accepted by the MCP server. +The port is not part of the matching. +There is no wildcard character, all cases must be listed. +As item, you can use a hostname, an IP, or an IPv6. +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) =]] + - 'admin.example.com' + - '127.0.0.1' + - 'my-ddev-project.ddev.site' ``` diff --git a/docs/ai/mcp/mcp_usage.md b/docs/ai/mcp/mcp_usage.md index 0dfb03b0bd..3f7bb9c677 100644 --- a/docs/ai/mcp/mcp_usage.md +++ b/docs/ai/mcp/mcp_usage.md @@ -25,7 +25,8 @@ It accepts the following optional arguments: - `servers` - array of server identifiers the tool is assigned to
For more information, see [tools configuration](mcp_config.md#tool-configuration). -- `name` - tool name (if not set, function name is used) +- `name` - tool codename - if not set, function name is used +- `title` - tool title for user interfaces - if not set, the `name` is used - `description` - tool description, used by AI agents to understand the tool's purpose - `icons` - array of [`Mcp\Schema\Icon`](https://github.com/modelcontextprotocol/php-sdk/blob/main/src/Schema/Icon.php) instances
For more information, see the [`icons` specification](https://modelcontextprotocol.io/specification/latest/basic/index#icons). @@ -52,7 +53,8 @@ Methods that return a prompt are marked with the [`Ibexa\Contracts\Mcp\Attribute It accepts several arguments that describe how the prompt is used: - `servers` - array of server identifiers exposing this prompt - required for prompts -- `name` (optional) - prompt name - if not set, method name is used +- `name` (optional) - prompt codename - if not set, method name is used +- `title` (optional) - prompt title - if not set, `name` is used - `description` (optional) - human-readable prompt description - `icons` (optional) - array of [`Mcp\Schema\Icon`](https://github.com/modelcontextprotocol/php-sdk/blob/main/src/Schema/Icon.php) instances
For more information, see the [`icons` specification](https://modelcontextprotocol.io/specification/latest/basic/index#icons). @@ -97,6 +99,8 @@ In a new `config/packages/mcp.yaml` file, define a new MCP server for the `defau [[= include_code('code_samples/mcp/config/packages/mcp.yaml') =]] ``` +Adapt the `allowed_hosts` to your case, for example, if you want to use the DDEV `.ddev.site` domain instead of its `127.0.0.1` address equivalent. + An `ibexa.mcp.example` route is now available: ```bash @@ -242,7 +246,7 @@ Get the [list of prompts](https://modelcontextprotocol.io/specification/latest/s ### Perform MCP Inspector test You can test your server with the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector). -You can even use the inspector as a DDEV add-on with [`craftpulse/ddev-mcp-inspector`](https://github.com/craftpulse/ddev-mcp-inspector). +You can even use the inspector as a DDEV add-on with [`michtio/ddev-mcp-inspector`](https://github.com/michtio/ddev-mcp-inspector). You still need to ask for a JWT token through REST or GraphQL APIs, and use it in the MCP Inspector configuration to connect to the server. You can use a Web interface to obtain the JWT token: diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-AdminUi-Autosave-AutosaveServiceInterface.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-AdminUi-Autosave-AutosaveServiceInterface.html index 50eac1737c..90eee1623f 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-AdminUi-Autosave-AutosaveServiceInterface.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-AdminUi-Autosave-AutosaveServiceInterface.html @@ -106,7 +106,7 @@
- +
diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Message-TrackProxiedEventMessage.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Message-TrackProxiedEventMessage.html new file mode 100644 index 0000000000..45a06f0d9a --- /dev/null +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Message-TrackProxiedEventMessage.html @@ -0,0 +1,758 @@ + + + + + TrackProxiedEventMessage | PHP API Reference (Ibexa Documentation) + + + + + + + + + + + + + + + + +
Copied!
+ + + +
+ +
+ +
+
+
+ + + + + + + + +
+
+
+ + + +
+
+ + +
+
+

+ TrackProxiedEventMessage

+ +
+ TrackProxiedEventMessage.php + : + 14 + +
+
Read-only
+
Final
+ + + +
+

Raw Raptor tracking event from the proxy endpoint, enriched with cookie-resolved identifiers.

+ + + + + + + + + + + + + +

+ Properties +

+ +
+

+ public + $cookieId + + +

+
+ TrackProxiedEventMessage.php + : + 23 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public string $cookieId
+
+
+
+ + +
+

+ public + $customerId + + +

+
+ TrackProxiedEventMessage.php + : + 21 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public string $customerId
+
+
+
+ + +
+

+ public + $moduleName + + +

+
+ TrackProxiedEventMessage.php + : + 26 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public string|null $moduleName = null
+
+
+
+ + +
+

+ public + $parameters + + +

+
+ TrackProxiedEventMessage.php + : + 20 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public array<string|int, mixed> $parameters
+
+
+
+ + +
+

+ public + $sessionId + + +

+
+ TrackProxiedEventMessage.php + : + 24 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public string $sessionId
+
+
+
+ + +
+

+ public + $url + + +

+
+ TrackProxiedEventMessage.php + : + 22 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public string $url
+
+
+
+ + +
+

+ public + $userId + + +

+
+ TrackProxiedEventMessage.php + : + 25 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public string|null $userId = null
+
+
+
+ + + + +

+ Methods +

+ +
+

+ public__construct() + +

+
+ TrackProxiedEventMessage.php + : + 19 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public __construct(array<string, scalar> $parameters, string $customerId, string $url, string $cookieId, string $sessionId[, string|null $userId = null ][, string|null $moduleName = null ])
+
+
+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefault valueDescription
+ $parameters + + array<string, scalar> + + - + + - +
+ $customerId + + string + + - + + - +
+ $url + + string + + - + + - +
+ $cookieId + + string + + - + + - +
+ $sessionId + + string + + - + + - +
+ $userId + + string|null + + null + + - +
+ $moduleName + + string|null + + null + + - +
+ + +
+
+
+ +
+
+
+ +
+
+
+
+
+
+ + + + + + + + + + + diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ContextProvider-WebsiteIdContextProviderInterface.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ContextProvider-WebsiteIdContextProviderInterface.html new file mode 100644 index 0000000000..fa8a687445 --- /dev/null +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ContextProvider-WebsiteIdContextProviderInterface.html @@ -0,0 +1,366 @@ + + + + + WebsiteIdContextProviderInterface | PHP API Reference (Ibexa Documentation) + + + + + + + + + + + + + + + + +
Copied!
+ + + +
+ +
+ +
+
+
+ + + + + + + + +
+
+
+ + + +
+
+ + +
+
+

+ WebsiteIdContextProviderInterface

+ +
+ WebsiteIdContextProviderInterface.php + : + 23 + +
+
Interface
+ +
+

Resolves a default value for the Raptor `websiteId` (parameter `p7`) when none +is supplied explicitly through the tracking event context.

+ + +
+

Implementations are aggregated via the +ibexa.connector.raptor.tracking.website_id_context_provider service tag and +consulted by the chain in descending tag-priority order. The first implementation +returning a non-null value wins.

+

Contract: implementations MUST return either null (meaning "decline, let the +chain continue") or a non-empty string. Returning an empty string is not allowed.

+ +
+ + + + + + + + + + + +

+ Methods +

+ +
+

+ publicgetWebsiteId() + +

+
+ WebsiteIdContextProviderInterface.php + : + 28 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public getWebsiteId() : non-empty-string|null
+
+
+
+
+
+

Return values

+

non-empty-string|null

+ + +
+
+
+ +
+
+
+ +
+
+
+
+
+
+ + + + + + + + + + + diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ServerSideTrackingDispatcherInterface.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ServerSideTrackingDispatcherInterface.html index fbac5b72e6..310dad4823 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ServerSideTrackingDispatcherInterface.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-ServerSideTrackingDispatcherInterface.html @@ -268,11 +268,11 @@

ServerSideTrackingDispatcherInterface.php : - 21 + 24

-

Dispatches tracking event for asynchronous processing.

+

Dispatches a tracking event for asynchronous processing.

@@ -285,7 +285,7 @@

@@ -294,6 +294,11 @@

+
+

When $url is null, the URL of the current main request is used. The proxy controller +passes the originating page URL explicitly so it isn't replaced by the proxy path.

+ +

Parameters

-
public dispatch(EventDataInterface $eventData) : string
+
public dispatch(EventDataInterface $eventData[, string|null $url = null ]) : string
@@ -318,6 +323,20 @@

Parameters

+ + + + + +
-
+ $url + + string|null + + null + + - +
diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingBehaviorProviderInterface.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingBehaviorProviderInterface.html new file mode 100644 index 0000000000..01d2f5d3d1 --- /dev/null +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingBehaviorProviderInterface.html @@ -0,0 +1,542 @@ + + + + + TrackingBehaviorProviderInterface | PHP API Reference (Ibexa Documentation) + + + + + + + + + + + + + + + + +
Copied!
+ + + +
+ +
+ +
+
+
+ + + + + + + + +
+
+
+ + + +
+
+ + +
+
+

+ TrackingBehaviorProviderInterface

+ +
+ TrackingBehaviorProviderInterface.php + : + 20 + +
+
Interface
+ +
+

Resolves how the configured {@see Type} translates into concrete tracking actions.

+ + +
+

In hybrid mode the bundle ships its own client-side shim that proxies every Raptor request +through a same-origin endpoint so ad blockers cannot block them; the client never talks to +Raptor SaaS directly.

+ +
+ + + + + + + + + + + +

+ Methods +

+ +
+

+ publicshouldDispatchServerSide() + +

+
+ TrackingBehaviorProviderInterface.php + : + 34 + +
+
+

Server mode only.

+ +
+ + + + + + + +
+
+
+
+
+
+
public shouldDispatchServerSide() : bool
+
+
+
+
+
+

Return values

+

bool

+ +
+ Tags + + +
+
+
+ Throws +
+
+ InvalidConfigurationExceptionInterface + +
+
+ +
+

+ publicshouldProxyClientEvents() + +

+
+ TrackingBehaviorProviderInterface.php + : + 46 + +
+
+

Hybrid mode only.

+ +
+ + + + + + + +
+
+
+
+
+
+
public shouldProxyClientEvents() : bool
+
+
+
+
+
+

Return values

+

bool

+ +
+ Tags + + +
+
+
+ Throws +
+
+ InvalidConfigurationExceptionInterface + +
+
+ +
+

+ publicshouldRenderEventsClientSide() + +

+
+ TrackingBehaviorProviderInterface.php + : + 39 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public shouldRenderEventsClientSide() : bool
+
+
+
+
+
+

Return values

+

bool

+ +
+ Tags + + +
+
+
+ Throws +
+
+ InvalidConfigurationExceptionInterface + +
+
+ +
+

+ publicshouldRunClientScript() + +

+
+ TrackingBehaviorProviderInterface.php + : + 27 + +
+
+

Client and hybrid modes (Raptor CDN script, or the same-origin shim respectively).

+ +
+ + + + + + + +
+
+
+
+
+
+
public shouldRunClientScript() : bool
+
+
+
+
+
+

Return values

+

bool

+ +
+ Tags + + +
+
+
+ Throws +
+
+ InvalidConfigurationExceptionInterface + +
+
+ +
+
+
+ +
+
+ +
+
+
+
+
+ + + + + + + + + + + diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingServiceInterface.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingServiceInterface.html index 9119374cf2..825b7f6346 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingServiceInterface.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-TrackingServiceInterface.html @@ -5,7 +5,7 @@ TrackingServiceInterface | PHP API Reference (Ibexa Documentation) - + @@ -236,14 +236,13 @@

TrackingServiceInterface.php : - 17 + 14
Interface

-

Server-side tracking service for Raptor.

- + @@ -268,7 +267,7 @@

TrackingServiceInterface.php : - 27 + 24
@@ -319,7 +318,7 @@

TrackingServiceInterface.php : - 22 + 19
@@ -370,7 +369,7 @@

TrackingServiceInterface.php : - 32 + 29
@@ -511,6 +510,166 @@

Tags +
+
+
+ Throws +
+
+ InvalidConfigurationExceptionInterface + +
+
+ +
+

+ publictrackRawParameters() + +

+
+ TrackingServiceInterface.php + : + 44 + +
+
+ +
+ + + + + + + +
+
+
+
+
+
+
public trackRawParameters(array<string, mixed> $parameters, string $url, string $customerId, string $cookieId, string $sessionId[, string|null $userId = null ][, string|null $moduleName = null ]) : void
+
+
+
+
+
+

Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypeDefault valueDescription
+ $parameters + + array<string, mixed> + + - + + - +
+ $url + + string + + - + + - +
+ $customerId + + string + + - + + - +
+ $cookieId + + string + + - + + - +
+ $sessionId + + string + + - + + - +
+ $userId + + string|null + + null + + - +
+ $moduleName + + string|null + + null + + - +
+ +
+ Tags + +
@@ -556,6 +715,11 @@
track() + +
  • + + trackRawParameters() +
  • diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-Type.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-Type.html index 8ddb558e77..4a9a4f28f0 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-Type.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorRaptor-Tracking-Type.html @@ -328,6 +328,40 @@

    + +
    +
    +

    + HYBRID +

    +
    + Type.php + : + 15 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    string HYBRID = 'hybrid'
    +
    +
    +
    + +
    @@ -360,6 +394,11 @@

    SERVER + +
  • + + HYBRID +
  • diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ContentForms-Content-Form-Provider-GroupedContentFormFieldsProviderInterface.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ContentForms-Content-Form-Provider-GroupedContentFormFieldsProviderInterface.html index 0f451c97e7..e382128f4a 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ContentForms-Content-Form-Provider-GroupedContentFormFieldsProviderInterface.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-ContentForms-Content-Form-Provider-GroupedContentFormFieldsProviderInterface.html @@ -106,7 +106,7 @@ @@ -356,7 +356,7 @@

    McpPrompt.php : - 26 + 27
    @@ -451,6 +451,41 @@

    +
    +

    + public + $title + + +

    +
    + McpPrompt.php + : + 25 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    public string|null $title = null
    +
    +
    +
    + +

    @@ -481,7 +516,7 @@

    -
    public __construct(array<int, string> $servers[, string|null $name = null ][, string|null $description = null ][, array<string|int, Icon>|null $icons = null ][, array<string, mixed>|null $meta = null ])
    +
    public __construct(array<int, string> $servers[, string|null $name = null ][, string|null $description = null ][, string|null $title = null ][, array<string|int, Icon>|null $icons = null ][, array<string, mixed>|null $meta = null ])
    @@ -542,6 +577,20 @@

    Parameters

    - + + + + $title + + + string|null + + + null + + + - + @@ -619,6 +668,11 @@

    Parameters

    servers + +
  • + + title +
  • diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResource.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResource.html index 8b37b39141..c0954e2adb 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResource.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResource.html @@ -286,7 +286,7 @@

    McpResource.php : - 29 + 30
    @@ -356,7 +356,7 @@

    McpResource.php : - 30 + 31
    @@ -391,7 +391,7 @@

    McpResource.php : - 31 + 32
    @@ -426,7 +426,7 @@

    McpResource.php : - 27 + 28
    @@ -531,7 +531,7 @@

    McpResource.php : - 28 + 29
    @@ -556,6 +556,41 @@

    +
    +

    + public + $title + + +

    +
    + McpResource.php + : + 27 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    public string|null $title = null
    +
    +
    +
    + +

    public @@ -621,7 +656,7 @@

    -
    public __construct(array<int, string> $servers, string $uri[, string|null $name = null ][, string|null $description = null ][, string|null $mimeType = null ][, int|null $size = null ][, Annotations|null $annotations = null ][, array<string|int, Icon>|null $icons = null ][, array<string, mixed>|null $meta = null ])
    +
    public __construct(array<int, string> $servers, string $uri[, string|null $name = null ][, string|null $description = null ][, string|null $title = null ][, string|null $mimeType = null ][, int|null $size = null ][, Annotations|null $annotations = null ][, array<string|int, Icon>|null $icons = null ][, array<string, mixed>|null $meta = null ])
    @@ -696,6 +731,20 @@

    Parameters

    - + + + + $title + + + string|null + + + null + + + - + @@ -830,6 +879,11 @@

    Parameters

    size + +
  • + + title +
  • diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResourceTemplate.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResourceTemplate.html index 845fcbbb82..a72813e59f 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResourceTemplate.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpResourceTemplate.html @@ -286,7 +286,7 @@

    McpResourceTemplate.php : - 27 + 28

  • @@ -356,7 +356,7 @@

    McpResourceTemplate.php : - 28 + 29
    @@ -391,7 +391,7 @@

    McpResourceTemplate.php : - 26 + 27
    @@ -486,6 +486,41 @@

    +
    +

    + public + $title + + +

    +
    + McpResourceTemplate.php + : + 26 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    public string|null $title = null
    +
    +
    +
    + +

    public @@ -551,7 +586,7 @@

    -
    public __construct(array<int, string> $servers, string $uriTemplate[, string|null $name = null ][, string|null $description = null ][, string|null $mimeType = null ][, Annotations|null $annotations = null ][, array<string, mixed>|null $meta = null ])
    +
    public __construct(array<int, string> $servers, string $uriTemplate[, string|null $name = null ][, string|null $description = null ][, string|null $title = null ][, string|null $mimeType = null ][, Annotations|null $annotations = null ][, array<string, mixed>|null $meta = null ])
    @@ -626,6 +661,20 @@

    Parameters

    - + + + + $title + + + string|null + + + null + + + - + @@ -722,6 +771,11 @@

    Parameters

    servers + +
  • + + title +
  • diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpTool.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpTool.html index 7a08272ebc..bd17f8f254 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpTool.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-Attribute-McpTool.html @@ -286,7 +286,7 @@

    McpTool.php : - 27 + 28

  • @@ -356,7 +356,7 @@

    McpTool.php : - 28 + 29
    @@ -391,7 +391,7 @@

    McpTool.php : - 29 + 30
    @@ -461,7 +461,7 @@

    McpTool.php : - 30 + 31
    @@ -521,6 +521,41 @@

    +
    +

    + public + $title + + +

    +
    + McpTool.php + : + 27 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    public string|null $title = null
    +
    +
    +
    + +

    @@ -551,7 +586,7 @@

    -
    public __construct([array<int, string> $servers = [] ][, string|null $name = null ][, string|null $description = null ][, ToolAnnotations|null $annotations = null ][, array<string|int, Icon>|null $icons = null ][, array<string, mixed>|null $meta = null ][, array<string, mixed>|null $outputSchema = null ])
    +
    public __construct([array<int, string> $servers = [] ][, string|null $name = null ][, string|null $description = null ][, string|null $title = null ][, ToolAnnotations|null $annotations = null ][, array<string|int, Icon>|null $icons = null ][, array<string, mixed>|null $meta = null ][, array<string, mixed>|null $outputSchema = null ])
    @@ -616,6 +651,20 @@

    Parameters

    - + + + + $title + + + string|null + + + null + + + - + @@ -731,6 +780,11 @@

    Parameters

    servers + +
  • + + title +
  • diff --git a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-McpServerConfiguration.html b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-McpServerConfiguration.html index 1c6afb58b9..16387bbe89 100644 --- a/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-McpServerConfiguration.html +++ b/docs/api/php_api/php_api_reference/classes/Ibexa-Contracts-Mcp-McpServerConfiguration.html @@ -253,12 +253,82 @@

    +

    + Constants +

    +
    +

    + publicDEFAULT_ALLOWED_HOSTS +

    +
    + McpServerConfiguration.php + : + 19 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    public array<string|int, mixed> DEFAULT_ALLOWED_HOSTS = ['localhost', '127.0.0.1', '[::1]']
    +
    +
    +
    + +

    Properties

    +

    + public + $allowedHosts + + +

    +
    + McpServerConfiguration.php + : + 35 + +
    +
    + +
    + + + + + + + +
    +
    +
    +
    +
    +
    +
    public array<string|int, mixed>|null $allowedHosts = self::DEFAULT_ALLOWED_HOSTS
    +
    +
    +
    + + +

    public $description @@ -268,7 +338,7 @@

    McpServerConfiguration.php : - 29 + 33

    @@ -303,7 +373,7 @@

    McpServerConfiguration.php : - 27 + 31
    @@ -338,7 +408,7 @@

    McpServerConfiguration.php : - 25 + 29
    @@ -373,7 +443,7 @@

    McpServerConfiguration.php : - 30 + 34
    @@ -408,7 +478,7 @@

    McpServerConfiguration.php : - 26 + 30
    @@ -443,7 +513,7 @@

    McpServerConfiguration.php : - 32 + 37
    @@ -478,7 +548,7 @@

    McpServerConfiguration.php : - 33 + 38
    @@ -513,7 +583,7 @@

    McpServerConfiguration.php : - 34 + 39
    @@ -548,7 +618,7 @@

    McpServerConfiguration.php : - 31 + 36
    @@ -583,7 +653,7 @@

    McpServerConfiguration.php : - 28 + 32
    @@ -622,7 +692,7 @@

    McpServerConfiguration.php : - 24 + 28
    @@ -638,7 +708,7 @@

    -
    public __construct(string $identifier, string $path, bool $enabled[, string $version = '1.0.0' ][, string|null $description = null ][, string|null $instructions = null ][, array<string, Tool$tools = [] ][, array<string, Prompt$prompts = [] ][, array<string, resource> $resources = [] ][, array<string, ResourceTemplate$resourceTemplates = [] ])
    +
    public __construct(string $identifier, string $path, bool $enabled[, string $version = '1.0.0' ][, string|null $description = null ][, string|null $instructions = null ][, array<int, string>|null $allowedHosts = \self::DEFAULT_ALLOWED_HOSTS ][, array<string, Tool$tools = [] ][, array<string, Prompt$prompts = [] ][, array<string, ResourceDefinition$resources = [] ][, array<string, ResourceTemplate$resourceTemplates = [] ])
    @@ -741,6 +811,20 @@

    Parameters

    - + + + + $allowedHosts + + + array<int, string>|null + + + McpServerConfiguration::DEFAULT_ALLOWED_HOSTS + + + - + @@ -783,7 +867,7 @@

    Parameters

    $resources - array<string, resource> + array<string, ResourceDefinition> [] @@ -832,6 +916,20 @@

    Parameters

      +
    • + + Constants + + +
    • Properties @@ -839,6 +937,11 @@

      Parameters