# skill-mcp [Health: Active]

**Category:** 💻 Developer Tools  
**Repository:** https://github.com/chrischall/skill-mcp  
**GitHub Stars:** 0  
**npm Downloads (last month):** 1656  
**Views:** 0  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/skill-mcp

## Description
Serves a directory of Agent Skills over MCP: list, load, read files, run declared scripts

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "skill-mcp": {
    "command": "npx",
    "args": ["-y","@chrischall/skill-mcp"]
  }
}
```

## Documentation

## 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`:

```bash
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.

_Full upstream README: https://allmcps.com/mcp/skill-mcp/readme_

