Skills over MCP
Compatibility
fast-agent is compatible with the
SEP-2640: Skills Extension
Draft at revision
d7490ecd1a250f7bc8c3ebb0d65450dfec274bad
(io.modelcontextprotocol/skills). This is draft compatibility, not support for
a ratified MCP standard.
It supports that revision's skills/list and skills/get resource-manifest
flow, reading declared files with resources/read. Legacy servers that publish
skill://index.json entries as skill-md or archive artifacts are unsupported.
When a connected MCP server advertises this capability, fast-agent shows it as
an MCP-backed skills registry. Opening /skills registry calls the paginated
skills/list method. Installing a listed skill refreshes its entry with
skills/get, downloads every file named by its resources manifest through
resources/read, and requires each downloaded file to match its declared
SHA-256 digest before writing the local copy. Sidecar metadata records the
host-assigned MCP server identity, skill URI, and resource manifest.
Integrity is not trust
A successful SHA-256 check means the downloaded bytes match the manifest supplied by that MCP server. It does not authenticate the server or publisher, endorse the skill, or establish that its instructions are safe. Connect only to MCP servers you trust, and review installed skill content before enabling or using it.
Skill names are labels rather than identifiers. fast-agent preserves
same-named entries in an MCP listing and uses their URIs to disambiguate them.
The local managed skills directory can contain only one installed skill with a
given name. Because a server may return a partial or empty list, you can also
install a skill omitted from the listing when you know its URI:
The selected MCP server confirms that URI through skills/get. Skills that omit
resources are shown in listings but cannot be installed, because their content
has no complete digest manifest against which to integrity-check it or compute
an update revision.
SDK status
The pinned MCP Python SDK does not yet provide typed SEP-2640 request and result
models. fast-agent therefore uses local, provisional wire models for
skills/list, skills/get, and the draft's optional
resources/directory/read method. Those internal models may change when the SDK
adds support or the draft changes.
Trying it
Run or connect to a server compatible with the pinned SEP-2640 draft above. This example uses the hosted Hugging Face MCP Server:
/mcp connect --name hf https://huggingface.co/mcp
/mcp
/skills registry
/skills registry hf
/skills available
/skills add <number|name>
/mcp shows when a server advertises the
io.modelcontextprotocol/skills extension and points you to /skills registry
to select the MCP server as the current install source.
Listings show integrity: SHA-256 manifest; checked on install when the server
supplies a complete resource manifest. A listing has not yet checked the served
file bytes.
Current scope
This implementation uses MCP as an integrity-checked local-copy installer. It does not expose MCP-served skill resources directly to the model or retain an active MCP resource reader after installation. Installed content is an explicit local copy, not a transparent MCP cache.
/skills update calls skills/get and compares the complete resource-set
revision with the installed revision. Any file addition, removal, URI change, or
digest change creates a new revision. Updates re-fetch the complete resource set
and SHA-256-check every file against the refreshed server manifest; this is not
publisher verification.
The top-level fast-agent skills CLI remains marketplace/file/GitHub oriented;
select MCP registries from an interactive session after connecting the MCP
server.
Thanks to olaservo for contributing this feature.