The Skillset MCP server exposes seven tools split across two groups — Registry tools that talk to the remote catalog, and Local tools that manage the current project’s installed copies — plus two URI-template MCP resources. Every tool declares anDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/org-quicko/skillset/llms.txt
Use this file to discover all available pages before exploring further.
outputSchema and returns structuredContent matching that schema, so a host can validate results rather than only trust the loose JSON in content[0].text.
Registry tools
These tools communicate with the remote Registry. Catalog reads (search_skills, read_skill) require no Token and send no Authorization header. install_skills also requires no credential. Only publish_skill requires a writer Token.
search_skills
Search the Registry’s Skill catalog, or list the entire catalog by omitting the query. This is the entry point for any agent interaction with the Registry — always call it before install_skills so you have exact Registry names.
Each result includes allowed_tools — what a Skill claims the right to reach once loaded. This field is surfaced on the search result (not only on read_skill) because install_skills can be called straight from a search, and reviewing what a Skill claims before installing is more meaningful than discovering it after.
- Parameters
- Returns
A task description or exact Skill name. Examples:
adapter, write-adapters, review pull requests, write changelogs. Omit entirely to list the whole catalog — this is how you answer “what Skills do we have?”A Tag name (not an id) to narrow the search — e.g.
testing. The server resolves the name to its internal id before querying the Registry.Maximum number of Skills to return per page. The Registry applies its own default when omitted.
Opaque pagination token from a previous call’s
next_cursor. Omit for the first page. Without this, a catalog larger than one page is unreachable past the first page_size Skills.read_skill
Read one Skill’s full SKILL.md body and file list from the Registry without installing it. Use this to review a Skill before installing, answer a question about what it does, or compare two candidates. Never call install_skills merely to inspect content — this tool exists precisely to separate reading from adopting.
- Parameters
- Returns
The Skill’s name, exactly as
search_skills reported it.read_skill records no install. Listing a Skill’s files does not count as obtaining it. Only the Artifact download that install_skills performs increments the install counter.install_skills
Download and install one or more Skills from the Registry into the directory the detected agent reads. Installs are recorded in the project’s skillset-lock.json Lockfile so that installed_skills and update_skills can later distinguish a stale copy from an edited one.
- Parameters
- Returns
The Skill names to install, exactly as
search_skills reported them. One bad name does not stop the rest of the batch.Replace an already-installed Skill completely. Only set this when the user has explicitly asked to update or replace an existing install — never on a routine install.
Skills are installed to the canonical
.agents/skills/<name> directory. If the detected agent uses a different directory (e.g. .claude/skills/<name>), the server creates a symlink there pointing back to the canonical location, so both the agent and the canonical layout are satisfied.refused, check the installed field to decide what to do:
installed value | Meaning | Recommended action |
|---|---|---|
current | Already matches the Registry | Nothing to do |
outdated | Registry has moved on | Call update_skills |
modified | Installed copy has local edits | Tell the user; only pass overwrite if they consent to losing edits |
untracked | No Lockfile entry — unknown state | Tell the user; confirm before passing overwrite |
publish_skill
Publish a Skill to the Registry. Accepts either a directory inside the current project, or a GitHub/GitLab URL with a Skill name. Republishing an existing name overwrites it completely — there is no versioning. Requires a writer Token configured on the server via --token or SKILLSET_TOKEN.
- Parameters
- Returns
Directory inside the project holding the Skill’s own
SKILL.md, relative to the project root. Defaults to the project root itself when omitted. Must point at the Skill’s own directory, not a folder containing multiple Skills. Do not combine with url.A GitHub or GitLab repository URL — or a folder inside one — to publish from instead of this project. Cloned using the user’s own git credentials, so private repositories they can clone work. Requires
name.Required with
url. The name the Skill declares in its SKILL.md frontmatter. If it matches no Skill in the repository, the error lists every Skill found there.If no Token is configured, the tool returns an
isError result with a message instructing the user to set --token or SKILLSET_TOKEN and restart the MCP server. This is a user action — no chat message can configure the server at runtime.Local tools
These tools operate on the project’s installed Skills, reading and writing the localskillset-lock.json Lockfile. They consult the Registry only to compare versions.
installed_skills
List the Skills installed in the current project and report each one’s Status. This is the local inventory — not the Registry’s catalog. Call this before update_skills or remove_skills, and whenever the user asks what Skills a project uses or whether anything is out of date.
- Parameters
- Returns
No parameters required.
update_skills
Re-download installed Skills that the Registry has moved on from, replacing the local copies. A locally-modified Skill is skipped and reported as refused unless force is set — an update cannot be undone, and silently discarding local edits is not acceptable without user confirmation.
- Parameters
- Returns
The installed Skills to update. Omit to update every Skill this project has fallen behind on (Status
outdated or missing).Update a Skill even though its installed copy has local edits, discarding them. Only set this when the user has been told about the edits and has explicitly asked for them to be discarded.
remove_skills
Uninstall Skills from the current project: their files, the agent’s symlink to each, and their Lockfile entries. Nothing is removed from the Registry — the team keeps the Skill, this project stops using it. Removing a Skill that is not installed is harmless and reported as not-installed.
- Parameters
- Returns
The installed Skills to uninstall. At least one name is required.
MCP resources
Two URI template resources are registered directly on the server. They are accessible to any MCP host that supports theresources/list and resources/read primitives — no tool call required.
skillset://skills/{name}
Returns one Skill’s SKILL.md body as text/markdown. The name variable autocompletes against the full Registry catalog via MCP’s completion/complete protocol.
skillset://tags/{tag}
Returns the name and description of every Skill carrying the specified Tag, as application/json. The tag variable autocompletes against the Registry’s Tag catalog.
MCP completions attach to resource template variables, not to a tool’s
inputSchema. That is why name and tag autocomplete here but not inside search_skills’s parameters — the two systems are distinct. The resources and the tools return the same underlying data; the resources exist so a host can attach Skill content directly without constructing a tool call.Tool annotations summary
| Tool | Read-only | Idempotent | Open world |
|---|---|---|---|
search_skills | ✅ | ✅ | ✅ |
read_skill | ✅ | ✅ | ✅ |
install_skills | ❌ | ❌ | ✅ |
publish_skill | ❌ | — | ✅ |
installed_skills | ✅ | ✅ | ✅ |
update_skills | ❌ | ❌ | ✅ |
remove_skills | ❌ | ✅ | ❌ |