deepseek-1.x-dev/src/Attribute/McpTool.php
src/Attribute/McpTool.php
<?php
declare(strict_types=1);
namespace Drupal\deepseek\Attribute;
use Drupal\Component\Plugin\Attribute\AttributeBase;
use Drupal\Core\StringTranslation\TranslatableMarkup;
/**
* The model context protocol tool attribute.
*/
#[\Attribute(\Attribute::TARGET_CLASS)]
class McpTool extends AttributeBase {
/**
* Constructs a new model context protocol instance.
*
* @param string $id
* The plugin ID. There are some implementation bugs that make the plugin
* available only if the ID follows a specific pattern. It must be either
* identical to group or prefixed with the group. E.g. if the group is "foo"
* the ID must be either "foo" or "foo:bar".
* @param \Drupal\Core\StringTranslation\TranslatableMarkup|null $name
* The human-readable name of the plugin.
* @param \Drupal\Core\StringTranslation\TranslatableMarkup|null $description
* (optional) A brief description of the plugin.
* @param array $parameters
* The parameters that the tool accepts.
* @param array $required
* An array of required parameter names.
*/
public function __construct(
public readonly string $id,
public ?TranslatableMarkup $name,
public ?TranslatableMarkup $description = NULL,
public array $parameters = [],
public array $required = [],
) {}
}
