1: <?php
2:
3: declare(strict_types=1);
4:
5: /**
6: * This file is part of the Nexus MCP SDK package.
7: *
8: * (c) 2026 John Paul E. Balandan, CPA <paulbalandan@gmail.com>
9: *
10: * For the full copyright and license information, please view
11: * the LICENSE file that was distributed with this source code.
12: */
13:
14: namespace Nexus\Mcp\Extension\Skills;
15:
16: /**
17: * Protocol vocabulary of the skills extension (`io.modelcontextprotocol/skills`, SEP-2640).
18: *
19: * @see https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/seps/2640-skills-extension.md
20: */
21: final readonly class Skills
22: {
23: public const string IDENTIFIER = 'io.modelcontextprotocol/skills';
24: public const string URI_PREFIX = 'skill://';
25: public const string MANIFEST_FILENAME = 'SKILL.md';
26: public const string MANIFEST_MIME_TYPE = 'text/markdown';
27: public const string DIRECTORY_MIME_TYPE = 'inode/directory';
28: public const string DIRECTORY_READ_SETTING = 'directoryRead';
29:
30: /**
31: * The `resources` value of a skill whose content is generated and carries no stable digests.
32: */
33: public const string DYNAMIC_RESOURCES = 'dynamic';
34:
35: /**
36: * The file count accepted by every host for one skill, above which a host may decline it.
37: */
38: public const int MAX_RESOURCES_PER_SKILL = 512;
39:
40: /**
41: * The total size in bytes accepted by every host for one skill, above which a host may decline it.
42: */
43: public const int MAX_BYTES_PER_SKILL = 16_777_216;
44: }
45: