Skills over MCP tracks SEP-2640, still under review. The feature is experimental and may change with the spec. Few hosts support it yet, so skills you serve today may go unused until they adopt the standard.
SKILL.md plus supporting files) the host loads into context on demand.
Enable Skills
Drop your skills undersrc/skills/, one directory per skill, and turn the option on:
server.ts
SKILL.md opens with YAML frontmatter whose name matches its directory:
src/skills/refunds/SKILL.md
name, a missing description, or a name that mismatches its directory fails loudly. Each valid skill is then served at skill://<name>/SKILL.md, with its supporting files alongside.
Hosts discover skills through the skills/list method, which returns each skill’s URI, its verbatim frontmatter, and the complete file set with per-file SHA-256 digests; skills/get returns the same entry for a single skill by URI. This is the surface ChatGPT’s skill importer consumes when you submit your app.
Skills are markdown files only:
SKILL.md and any supporting .md files are served as text/markdown, other formats and symlinks are ignored.How Hosts Use Skills
Hosts don’t inject skills on their own. To put one in front of the model, reference its URI from a tool description or a tool result, for example “seeskill://refunds/SKILL.md”. The host pulls in the full instructions only when they’re relevant.
A skill is a set of instructions a model may or may not act on: it does not bypass the model’s system directives or guardrails.
Go Further
Register Tools
Define what humans and agents can do
UX Design
Account for what makes an MCP App different
Deploy
Ship your server to any host