3.1 KiB
icon
| icon |
|---|
| lucide/link |
URI Contract
This page defines the public resource URI contract for native skills, registry-backed prompts, 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.
Prompt And Docs URIs
Prompts and general documentation retain the existing registry-backed resource surface:
resource://catalog/prompts_indexresource://catalog/prompts_index{?q,tag,cursor,limit}resource://catalog/prompts/{prompt_id}resource://prompts/{prompt_id}/documentresource://docs/{path*}
Prompt ids remain lowercase kebab-case. The docs wildcard accepts normalized relative POSIX Markdown paths beneath docs/ and rejects absolute paths, traversal segments, backslashes, and non-Markdown targets.
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 prompt catalog or MCP prompt-object APIs.
Compatibility Policy
The native skill:// family directly replaces the repository's former custom skill URI and catalog surfaces. No compatibility aliases or dual registrations are maintained. Prompt and general-doc URIs are unaffected.
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.