Skill MCP logo

Skill MCP

Serves Agent Skills over MCP with discovery, file access, prompts, resources, and guarded Node.js script execution.

Install Skill MCP

Pick your client, then add it in one click or paste the config.

STDIONode.js
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "skill-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@chrischall/skill-mcp"
      ]
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

We couldn’t confirm it starts correctly

The install command started, but didn't respond the way we expected when we tried to talk to it.

npx -y @chrischall/skill-mcp

initialize succeeded but no response to tools/list.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked Today.

Overview

skill-mcp exposes a directory of Agent Skills through MCP tools, prompts, and resources. It discovers skills from supported directory layouts, returns their instructions and bundled files, and runs only scripts explicitly declared by each skill. File reads are batched and bounded, while execution uses argv-based Node.js processes with path checks, timeouts, and output limits. Reach for it when you want an MCP client to load local skill bundles without building a custom adapter.

Use cases

  • Serve a local directory of Agent Skills to an MCP client
  • Load skill instructions and referenced files on demand
  • Batch-read skill assets within bounded request limits
  • Run declared Node.js helper scripts with controlled arguments
  • Inspect discovery errors instead of silently losing invalid skills

Key features

  • Discovers skills from three supported directory layouts
  • Exposes list, load, file, and run MCP tools
  • Registers skill prompts and file resources
  • Restricts execution to declared in-bundle Node.js scripts
  • Bounds file reads, output capture, timeouts, and concurrency
  • Reports structured discovery and validation problems

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked 2d ago

Recent health check succeeded.

7/7 checks healthy over the last 45d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 10d ago via OSV.dev · @chrischall/skill-mcp (npm)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

npm downloads1.7kPackage downloads in the last 30 days.
Last commit4d agoMost recent push to the default branch.
Install checkInconclusiveStarted but did not complete the MCP handshake in our test.

How Skill MCP works

What skill-mcp does

skill-mcp turns directories of Agent Skills into MCP-accessible capabilities. A skill consists of a SKILL.md file with YAML frontmatter and instructions, along with any files those instructions reference. The server can expose a single skill at the root of a configured directory, a collection of named subdirectories, or skills beneath a skills/ directory.

Each skill is identified by its directory name rather than the name value in its frontmatter. This prevents a bundle from choosing another skill's identity. Conflicting names across roots are rejected instead of resolved by scan order. The server also registers skill instructions as MCP prompts and bundled files as skill://<name>/<path> resources when the client supports those surfaces.

How it works

skill_list discovers available skills and reports their descriptions, usage guidance, file counts, declared scripts, and discovery problems. Problems include malformed frontmatter, duplicate names, missing declared scripts, unsafe symlinks, unreadable roots, and unsupported paths. Invalid entries are reported with a stable reason and human-readable detail rather than silently disappearing.

skill_load returns the SKILL.md body verbatim and a file manifest. Referenced files remain separate and are retrieved with skill_file, which accepts up to eight paths per call and returns text or base64 data with media types. Each entry is capped at 1 MiB and each request at 4 MiB; a failed path does not prevent other requested paths from being returned.

skill_run accepts a skill name, a declared script, arguments, and a confirmation token. It returns the exit code, captured output, truncation status, and duration. Scripts run one at a time, with a default 60-second timeout and a 300-second hard ceiling.

Setup and configuration

Run the package with npx:

Terminal
npx @chrischall/skill-mcp

That command serves the example skill bundled with the package. To point the server at another collection, set SKILLS_DIR:

bash
SKILLS_DIR=~/my-skills npx @chrischall/skill-mcp

The npm package name is @chrischall/skill-mcp. Skill directories should contain SKILL.md; declared scripts and referenced files must remain within the skill bundle. A skill may include an mcp-host: declaration in its frontmatter for execution-related configuration.

Tools and capabilities

  • Discover skills, metadata, declared scripts, and scan problems with skill_list.
  • Load complete skill instructions and manifests with skill_load.
  • Read multiple bundled files in one skill_file request.
  • Execute only declared scripts through skill_run.
  • Access skill instructions as MCP prompts and files as MCP resources.
  • Pass script arguments as an argv array without shell interpolation.

Limitations and notes

Version 1 executes Node.js scripts only. It does not infer an interpreter from a file extension or shebang. Script paths must use permitted relative segments, resolve to regular files inside the skill directory, and satisfy the skill's declaration.

Execution captures up to 1 MiB per output stream, applies time limits, and signals the process group on timeout. A detached grandchild process can outlive that signalling boundary, so the execution fence is not a general substitute for operating-system sandboxing.

The server limits a skill to 2,000 files and 2,000 directories, and discovers at most 32 skills. Symlinks that remain inside the relevant root can be served; links escaping the root or skill are reported as problems. When hosted through mcp-host, tool registration can be narrowed, so tools remain the complete interface even if prompt and resource capabilities are unavailable.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about Skill MCP

skill-mcp is an MCP server that connects an MCP client to directories of Agent Skills. Its main tools list available skills, load SKILL.md instructions, read bundled files, and run only scripts declared by a skill. It also exposes skill prompts and files as MCP resources when supported.

Install and run it with `npx @chrischall/skill-mcp`. The package uses the scoped npm name `@chrischall/skill-mcp`; the unscoped `skill-mcp` package name is not the package described here.

Set `SKILLS_DIR` before starting the package, such as `SKILLS_DIR=~/my-skills npx @chrischall/skill-mcp`. The directory can contain a root skill, named skill directories, or a `skills/<name>/SKILL.md` collection.

skill-mcp runs only scripts explicitly declared by the selected skill, and version 1 uses Node.js only. Execution is limited to regular files inside that skill, passes arguments as an argv array, and applies timeouts and output caps.

Yes, skill-mcp uses the MCP interface and can be used with Cursor as a general-purpose MCP client. Its tools provide the complete experience; prompts and resources are additional surfaces when the client supports them.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewSkill MCP AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/skill-mcp?style=directory)](https://allmcps.com/mcp/skill-mcp)
HTML Embed
<a href="https://allmcps.com/mcp/skill-mcp"><img src="https://allmcps.com/api/badge/skill-mcp?style=directory" alt="Skill MCP on AllMCPs" /></a>