Introduce schema component

This commit is contained in:
Christopher Hertel 2025-08-01 16:41:16 +02:00
commit 6025f890f9
No known key found for this signature in database
GPG key ID: 111F6BFF7B6B5AA3

View file

@ -0,0 +1,46 @@
<?php
/*
* This file is part of the official PHP MCP SDK.
*
* A collaboration between Symfony and the PHP Foundation.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Mcp\Schema\Notification;
use Mcp\Exception\InvalidArgumentException;
use Mcp\Schema\JsonRpc\Notification;
/**
* An optional notification from the server to the client, informing it that the list of resources it can read from has changed. This may be issued by servers without any previous subscription from the client.
*
* @author Kyrian Obikwelu <koshnawaza@gmail.com>
*/
class ResourceListChangedNotification extends Notification
{
/**
* @param array<string, mixed>|null $_meta
*/
public function __construct(
public readonly ?array $_meta = null,
) {
$params = [];
if (null !== $_meta) {
$params['_meta'] = $_meta;
}
parent::__construct('notifications/resources/list_changed', $params);
}
public static function fromNotification(Notification $notification): self
{
if ('notifications/resources/list_changed' !== $notification->method) {
throw new InvalidArgumentException('Notification is not a notifications/resources/list_changed notification');
}
return new self($notification->params['_meta'] ?? null);
}
}