3.0 KiB
icon
| icon |
|---|
| lucide/link |
URI Contract
This page defines the public resource URI contract for native skills and general authored documentation.
Native Skill URIs
The FastMCP Skills Provider publishes each skill through the skill:// scheme:
skill://<skill-name>/SKILL.mdskill://<skill-name>/_manifestskill://<skill-name>/<supporting-path>
The first two are concrete resources returned by resources/list. Supporting files use a per-skill wildcard resource template when the provider is configured with supporting_files="template":
skill://<skill-name>/{path*}
Main File
skill://<skill-name>/SKILL.md returns the canonical authored skill document. The skill directory name supplies <skill-name>, and the resource description comes from SKILL.md frontmatter.
Manifest
skill://<skill-name>/_manifest returns JSON containing the skill name and every file beneath its directory. Each file entry includes:
- relative POSIX path
- byte size
- SHA256 hash
Clients read the manifest before requesting supporting files. FastMCP client utilities such as list_skills() and get_skill_manifest() understand this contract directly.
Supporting Files
Supporting files retain their real skill-relative paths. For example:
skill://pytesting/references/pytest-docs.md
FastMCP confines reads to the selected skill directory. Absolute paths, traversal outside the directory, missing files, directories, and symlinks that resolve outside the skill root are rejected.
General Docs URI
General authored documentation is exposed through resource://docs/{path*}. The wildcard accepts normalized relative POSIX Markdown paths beneath docs/, excludes the provider-owned skills/ subtree, and rejects absolute paths, traversal segments, backslashes, and non-Markdown targets.
Prompts are MCP prompt components rather than resources. Clients discover them with the protocol prompts/list operation and render them with prompts/get.
Discovery Order
For skills:
- list resources or call FastMCP
list_skills() - select a skill by name and description
- read
skill://<skill-name>/SKILL.md - read
_manifestwhen supporting material may be needed - fetch only the supporting paths relevant to the task
For prompts, use the native MCP prompt APIs or their generic tool projection.
Stability Policy
The provider and protocol surfaces documented here are the complete public contract. Contract changes replace the affected surface directly.
Skill renames are breaking because the directory name is part of every native skill URI. Supporting-file renames change the corresponding manifest path and URI.