MCP server
The skillmds npm package ships two binaries: skillmd, the CLI, and skillmds, an MCP server that gives agents direct access to the registry. Use it when you want an agent to search, install, and lint skills without shelling out to the CLI.
Requirements
Node 18 or later. The server talks over stdio only. It does not listen on a port or accept HTTP connections.
Run it
The command takes no arguments:
npx -y skillmds This matters because the same package also exposes the skillmd CLI, and any argument passed to skillmds routes to the CLI instead of starting the server. If you run skillmds bare in an interactive terminal, you get the CLI menu, because there's a human at the keyboard instead of a client piping stdin. MCP clients connect by spawning the process and writing to its stdin, which starts the server correctly. Don't add flags or a subcommand to the MCP launch command.
Claude Code setup
Add the server with one command:
claude mcp add skillmd -- npx -y skillmds@latest Generic client config
For any MCP client that reads a JSON config file, add an entry under mcpServers:
{
"mcpServers": {
"skillmds": {
"command": "npx",
"args": ["-y", "skillmds"]
}
}
} The server identifies itself as skillmd during the MCP handshake.
Auth
Auth is optional. Every tool works unauthenticated against the public registry except skillmd_list_saved, which needs a signed-in user. Set SKILLMD_TOKEN as an environment variable on the server process to pass a bearer token:
SKILLMD_TOKEN=your-token npx -y skillmds@latest Without a token, skillmd_list_saved returns a notice telling you to sign in, not an error.
To point the server at a different API base, for example a staging environment or a self-hosted registry, set SKILLMD_API:
SKILLMD_API=https://staging.example.com npx -y skillmds@latest It defaults to https://api.skillmd.com.
Tools
skillmd_search
Search the registry by name, description, or task. This is the entry point for most agent workflows: describe what you need, get back candidates.
| Param | Required | Notes |
|---|---|---|
query | Yes | Free-text search term. |
category | No | Restrict results to one category. |
verified_only | No | Only return skills that passed safety review. |
type | No | single or pack. |
min_rating | No | Floor on average rating. |
limit | No | Default 20. |
skillmd_get
Fetch one skill's full record: the SKILL.md body, provenance, license, and any security flags.
| Param | Required | Notes |
|---|---|---|
slug | Yes | Format <owner>/<name>. |
skillmd_install
Install a skill on local disk. It runs the same installer the CLI does: lint and validation first, so a broken skill never lands on disk silently, then one canonical copy at .agents/skills/<name> with a link to it from each chosen agent's skills directory. It never executes scripts, and the slug is validated to block path traversal.
| Param | Required | Notes |
|---|---|---|
slug | Yes | Format <owner>/<name>. |
scope | No | project writes into the working directory's agent folders; global writes into the user's home-level ones. Defaults to project when the working directory looks like a project, otherwise global. |
agents | No | Agent ids to link the skill into. Defaults to every agent detected on the machine. |
mode | No | link (default) or copy. |
force | No | Replace a skill installed from a different source, or a directory that isn't tracked. |
deny | No | Refuse the install if the skill carries any of these security flags. |
dest | No | Deprecated. An explicit skills directory, accepted only when it is a known agent's skills directory. Use scope and agents instead. |
The response reports the skill's capability flags — docs_only, network_calls, executes_scripts, reads_secrets — as information. They don't block the install.
This tool writes to whatever machine is running the server. If your MCP client connects to a remote or hosted server, the files land on that server's disk, not on your laptop. Check where the install resolves before relying on the output.
skillmd_trending
Leaderboard of top skills.
| Param | Required | Notes |
|---|---|---|
range | No | 30d or all, default all. |
category | No | Restrict to one category. |
limit | No | Result count. |
skillmd_recommend
Similar-skill and trending recommendations anchored on a skill you already know.
| Param | Required | Notes |
|---|---|---|
based_on | Yes | A slug to anchor recommendations on. |
limit | No | Result count. |
skillmd_list_saved
List the signed-in user's saved skills. Requires SKILLMD_TOKEN to be set on the server process. Without it, the tool returns a notice explaining that, rather than failing.
skillmd_lint
Validate a SKILL.md and get back a score, diagnostics, and any security flags. Pass either raw content or a slug to fetch from the registry first.
| Param | Required | Notes |
|---|---|---|
content | One of content/slug | Raw SKILL.md text. |
slug | One of content/slug | Fetches the file from the registry before linting. |
Example call using slug:
{
"slug": "anthropic/pdf"
}