# MCP Skills Server

Serves custom skills from a mounted local directory to AI coding assistants via MCP, updating them on the fly when files change.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 13
- Author: srprasanna
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/srprasanna/mcp-skill-hub
- Updated: 2025-10-29
- HTML: https://affpapa.org/en/nevibecode/mcp/mcp-skills-server

## What it does

The server turns a directory of instructions into MCP tools and resources for coding assistants. Every individual skill lives in its own subdirectory and centers around a `SKILL.md` document containing YAML metadata with a name and summary. The service reads these files and validates the surrounding directory structure before exposing the skills over standard input and output.

File changes trigger an automatic reload cycle without dropping the active session. The server sets a 0.5-second debounce window before reapplying updates. For runtime deployment, you can use the official Docker image or run the package locally with Python 3.13+ and Poetry 1.7+.

Loose `SKILL.md` files sitting right in the root directory fail silently and get skipped. The loader scans only one directory level deep. Hidden directories, private folders, and package caches like `__pycache__` are also ignored.

## Requirements
- Needs: Docker
- Environment variables: `MCP_SKILLS_DIR`, `MCP_SKILLS_HOT_RELOAD`, `MCP_SKILLS_LOG_LEVEL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env MCP_SKILLS_DIR=<MCP_SKILLS_DIR> --env MCP_SKILLS_HOT_RELOAD=<MCP_SKILLS_HOT_RELOAD> --env MCP_SKILLS_LOG_LEVEL=<MCP_SKILLS_LOG_LEVEL> --transport stdio mcp-skills-server -- docker run -i --rm -e MCP_SKILLS_DIR -e MCP_SKILLS_HOT_RELOAD -e MCP_SKILLS_LOG_LEVEL docker.io/srprasanna/mcp-skill-hub:1.0.0
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add mcp-skills-server --env MCP_SKILLS_DIR=<MCP_SKILLS_DIR> --env MCP_SKILLS_HOT_RELOAD=<MCP_SKILLS_HOT_RELOAD> --env MCP_SKILLS_LOG_LEVEL=<MCP_SKILLS_LOG_LEVEL> -- docker run -i --rm -e MCP_SKILLS_DIR -e MCP_SKILLS_HOT_RELOAD -e MCP_SKILLS_LOG_LEVEL docker.io/srprasanna/mcp-skill-hub:1.0.0
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "mcp-skills-server": {
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "MCP_SKILLS_DIR",
                "-e",
                "MCP_SKILLS_HOT_RELOAD",
                "-e",
                "MCP_SKILLS_LOG_LEVEL",
                "docker.io/srprasanna/mcp-skill-hub:1.0.0"
            ],
            "env": {
                "MCP_SKILLS_DIR": "<MCP_SKILLS_DIR>",
                "MCP_SKILLS_HOT_RELOAD": "<MCP_SKILLS_HOT_RELOAD>",
                "MCP_SKILLS_LOG_LEVEL": "<MCP_SKILLS_LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "mcp-skills-server": {
            "type": "stdio",
            "command": "docker",
            "args": [
                "run",
                "-i",
                "--rm",
                "-e",
                "MCP_SKILLS_DIR",
                "-e",
                "MCP_SKILLS_HOT_RELOAD",
                "-e",
                "MCP_SKILLS_LOG_LEVEL",
                "docker.io/srprasanna/mcp-skill-hub:1.0.0"
            ],
            "env": {
                "MCP_SKILLS_DIR": "<MCP_SKILLS_DIR>",
                "MCP_SKILLS_HOT_RELOAD": "<MCP_SKILLS_HOT_RELOAD>",
                "MCP_SKILLS_LOG_LEVEL": "<MCP_SKILLS_LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e MCP_SKILLS_DIR=<MCP_SKILLS_DIR> -e MCP_SKILLS_HOT_RELOAD=<MCP_SKILLS_HOT_RELOAD> -e MCP_SKILLS_LOG_LEVEL=<MCP_SKILLS_LOG_LEVEL> mcp-skills-server docker run -i --rm -e MCP_SKILLS_DIR -e MCP_SKILLS_HOT_RELOAD -e MCP_SKILLS_LOG_LEVEL docker.io/srprasanna/mcp-skill-hub:1.0.0
```
Replace <…> with your own values

## When to use it
- serve local custom instructions to an agent via MCP protocol
- update skill definitions without restarting the MCP server
- isolate modular team prompts in standardized directory folders
- deploy an MCP skill hub inside a lightweight Docker container

## Example prompts
- List all available skills discovered in the mounted directory
- Execute the instructions from my-first-skill for this repository
- Check if the excel-advanced skill reloaded after editing its file

## Similar
- [hmr](https://affpapa.org/en/nevibecode/mcp/hmr.md) — MCP server · ★ 59
- [extension-development](https://affpapa.org/en/nevibecode/skills/extension-development.md) — skill · ★ 1979
- [makepad-2.0-app-structure](https://affpapa.org/en/nevibecode/skills/makepad-20-app-structure.md) — skill · ★ 751
- [mtp-hot-reload](https://affpapa.org/en/nevibecode/skills/mtp-hot-reload.md) — skill · 3400 installs
- [ce-polish](https://affpapa.org/en/nevibecode/skills/ce-polish.md) — skill · 1100 installs
- [bun-hot-reloading](https://affpapa.org/en/nevibecode/skills/bun-hot-reloading.md) — skill · 395 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
