local-skills-mcp 0.4.3 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +73 -4
- package/README.md +138 -124
- package/dist/eval-runner.d.ts +31 -0
- package/dist/eval-runner.js +244 -0
- package/dist/index.d.ts +53 -2
- package/dist/index.js +211 -15
- package/dist/skill-loader.d.ts +45 -2
- package/dist/skill-loader.js +76 -14
- package/dist/skill-validator.d.ts +7 -0
- package/dist/skill-validator.js +110 -0
- package/dist/types.d.ts +1 -0
- package/package.json +27 -22
- package/skills/local-skills-mcp-guide/SKILL.md +46 -19
- package/skills/local-skills-mcp-usage/SKILL.md +7 -6
- package/skills/skill-creator/SKILL.md +66 -5
package/CHANGELOG.md
CHANGED
|
@@ -2,12 +2,81 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
## 0.5.0 (2026-08-20)
|
|
6
|
+
|
|
7
|
+
- fix: align evaluate_skill with anthropics run loop ([83f1357](https://github.com/kdpa-llc/local-skills-mcp/commit/83f1357))
|
|
8
|
+
- fix: correct anthropics skills submodule url ([0c5cb51](https://github.com/kdpa-llc/local-skills-mcp/commit/0c5cb51))
|
|
9
|
+
- fix: cross-platform test paths and insecure temp file usage ([12de1a8](https://github.com/kdpa-llc/local-skills-mcp/commit/12de1a8))
|
|
10
|
+
- fix: exclude vendored submodule from prettier ([bbf3823](https://github.com/kdpa-llc/local-skills-mcp/commit/bbf3823)), closes [#95](https://github.com/kdpa-llc/local-skills-mcp/issues/95)
|
|
11
|
+
- fix: re-add @semantic-release/git plugin and sync version to 0.4.4 ([5abe4ea](https://github.com/kdpa-llc/local-skills-mcp/commit/5abe4ea))
|
|
12
|
+
- fix: re-pin anthropic-skills submodule to an existing commit ([9d5ce79](https://github.com/kdpa-llc/local-skills-mcp/commit/9d5ce79)), closes [#95](https://github.com/kdpa-llc/local-skills-mcp/issues/95)
|
|
13
|
+
- fix: re-pin dead anthropic-skills submodule, unblocking clones and Dependabot (#96) ([39d37f6](https://github.com/kdpa-llc/local-skills-mcp/commit/39d37f6)), closes [#96](https://github.com/kdpa-llc/local-skills-mcp/issues/96)
|
|
14
|
+
- fix: reject skill-name path traversal and resolve skills lazily ([9bfd144](https://github.com/kdpa-llc/local-skills-mcp/commit/9bfd144))
|
|
15
|
+
- fix: reliable eval mechanism and sharper skill descriptions ([c7e1c6f](https://github.com/kdpa-llc/local-skills-mcp/commit/c7e1c6f))
|
|
16
|
+
- fix: restore curated eval sets and separate them from run artifacts ([5ba769f](https://github.com/kdpa-llc/local-skills-mcp/commit/5ba769f)), closes [#94](https://github.com/kdpa-llc/local-skills-mcp/issues/94)
|
|
17
|
+
- fix: return the skill name that round-trips and confine lookups to the registry ([64fd43e](https://github.com/kdpa-llc/local-skills-mcp/commit/64fd43e))
|
|
18
|
+
- fix: skill_name traversal, get_skill name round-trip, and repo health (#95) ([ad21e60](https://github.com/kdpa-llc/local-skills-mcp/commit/ad21e60)), closes [#95](https://github.com/kdpa-llc/local-skills-mcp/issues/95)
|
|
19
|
+
- fix: support claude oauth auth for evaluate_skill ([da03639](https://github.com/kdpa-llc/local-skills-mcp/commit/da03639))
|
|
20
|
+
- fix: update prettier formatting for CI compatibility ([3798aaf](https://github.com/kdpa-llc/local-skills-mcp/commit/3798aaf))
|
|
21
|
+
- fix: use path.join in test assertions for Windows compatibility ([97e319e](https://github.com/kdpa-llc/local-skills-mcp/commit/97e319e))
|
|
22
|
+
- fix: use RELEASE_TOKEN to bypass repository rulesets ([f0a6ab9](https://github.com/kdpa-llc/local-skills-mcp/commit/f0a6ab9))
|
|
23
|
+
- fix: use RELEASE_TOKEN to bypass repository rulesets (#57) ([c6f9d41](https://github.com/kdpa-llc/local-skills-mcp/commit/c6f9d41)), closes [#57](https://github.com/kdpa-llc/local-skills-mcp/issues/57)
|
|
24
|
+
- fix(deps-dev): upgrade eslint to 10, lint-staged to 17, commitlint to 21 ([a225665](https://github.com/kdpa-llc/local-skills-mcp/commit/a225665))
|
|
25
|
+
- fix(deps-dev): upgrade vitest to 4.x and fix the test isolation it exposed ([5876c65](https://github.com/kdpa-llc/local-skills-mcp/commit/5876c65)), closes [#95](https://github.com/kdpa-llc/local-skills-mcp/issues/95)
|
|
26
|
+
- fix(deps): bring dependencies to latest, clearing all production advisories (#97) ([8e1c24f](https://github.com/kdpa-llc/local-skills-mcp/commit/8e1c24f)), closes [#97](https://github.com/kdpa-llc/local-skills-mcp/issues/97)
|
|
27
|
+
- fix(deps): bump @modelcontextprotocol/sdk to 1.30.0 and yaml to 2.9.0 ([573540d](https://github.com/kdpa-llc/local-skills-mcp/commit/573540d))
|
|
28
|
+
- fix(deps): pin conventionalcommits preset to a writer-8 compatible major ([f1a4eee](https://github.com/kdpa-llc/local-skills-mcp/commit/f1a4eee))
|
|
29
|
+
- fix(deps): pin conventionalcommits preset to a writer-8 compatible major (#105) ([120b00f](https://github.com/kdpa-llc/local-skills-mcp/commit/120b00f)), closes [#105](https://github.com/kdpa-llc/local-skills-mcp/issues/105)
|
|
30
|
+
- ci: allow the release workflow to be triggered manually ([c1cf0df](https://github.com/kdpa-llc/local-skills-mcp/commit/c1cf0df))
|
|
31
|
+
- ci: allow the release workflow to be triggered manually (#104) ([b208604](https://github.com/kdpa-llc/local-skills-mcp/commit/b208604)), closes [#104](https://github.com/kdpa-llc/local-skills-mcp/issues/104)
|
|
32
|
+
- ci: fail the release with a readable error when RELEASE_TOKEN is bad ([d7232a3](https://github.com/kdpa-llc/local-skills-mcp/commit/d7232a3))
|
|
33
|
+
- ci: let production dependency bumps trigger a release ([8b1d63a](https://github.com/kdpa-llc/local-skills-mcp/commit/8b1d63a))
|
|
34
|
+
- ci: run CI, CodeQL and dependency review on every pull request ([ea91535](https://github.com/kdpa-llc/local-skills-mcp/commit/ea91535)), closes [#97](https://github.com/kdpa-llc/local-skills-mcp/issues/97) [#98](https://github.com/kdpa-llc/local-skills-mcp/issues/98)
|
|
35
|
+
- ci: set npm registry in release workflow so publishing can authenticate (#103) ([b57d60d](https://github.com/kdpa-llc/local-skills-mcp/commit/b57d60d)), closes [#103](https://github.com/kdpa-llc/local-skills-mcp/issues/103) [#99](https://github.com/kdpa-llc/local-skills-mcp/issues/99)
|
|
36
|
+
- ci: set the npm registry in the release workflow ([3c6ccd9](https://github.com/kdpa-llc/local-skills-mcp/commit/3c6ccd9))
|
|
37
|
+
- ci(deps): bump actions/checkout from 5 to 6 ([42ca7ac](https://github.com/kdpa-llc/local-skills-mcp/commit/42ca7ac))
|
|
38
|
+
- ci(deps): bump actions/first-interaction from 1 to 3 ([3659f5b](https://github.com/kdpa-llc/local-skills-mcp/commit/3659f5b))
|
|
39
|
+
- ci(deps): bump actions/github-script from 7 to 8 ([a805d4a](https://github.com/kdpa-llc/local-skills-mcp/commit/a805d4a))
|
|
40
|
+
- ci(deps): bump actions/labeler from 5 to 6 ([7c3f8fa](https://github.com/kdpa-llc/local-skills-mcp/commit/7c3f8fa))
|
|
41
|
+
- ci(deps): bump actions/stale from 9 to 10 ([88d3cf4](https://github.com/kdpa-llc/local-skills-mcp/commit/88d3cf4))
|
|
42
|
+
- docs: add MCP Tool Aggregator as complementary project ([900ec1a](https://github.com/kdpa-llc/local-skills-mcp/commit/900ec1a))
|
|
43
|
+
- docs: backfill changelog entries for 0.4.3 and 0.4.4 ([34bca80](https://github.com/kdpa-llc/local-skills-mcp/commit/34bca80))
|
|
44
|
+
- docs: correct false claims in the bundled skills ([71d1465](https://github.com/kdpa-llc/local-skills-mcp/commit/71d1465))
|
|
45
|
+
- docs: correct false security claims and a stale diagram in ARCHITECTURE ([78dc08f](https://github.com/kdpa-llc/local-skills-mcp/commit/78dc08f))
|
|
46
|
+
- docs: document the Skill identity split and injectable skills directories ([8556000](https://github.com/kdpa-llc/local-skills-mcp/commit/8556000))
|
|
47
|
+
- docs: drop phantom cache from the dev guide and unswap the skill scripts ([9d13955](https://github.com/kdpa-llc/local-skills-mcp/commit/9d13955)), closes [#100](https://github.com/kdpa-llc/local-skills-mcp/issues/100) [#101](https://github.com/kdpa-llc/local-skills-mcp/issues/101)
|
|
48
|
+
- docs: fix nonexistent function and false caching claims in bundled skills (#101) ([160e2d3](https://github.com/kdpa-llc/local-skills-mcp/commit/160e2d3)), closes [#101](https://github.com/kdpa-llc/local-skills-mcp/issues/101)
|
|
49
|
+
- docs: improve bundled skills using eval-driven pass ([fa48d15](https://github.com/kdpa-llc/local-skills-mcp/commit/fa48d15))
|
|
50
|
+
- docs: polish README for improved clarity and organization (#69) ([6f1ac28](https://github.com/kdpa-llc/local-skills-mcp/commit/6f1ac28)), closes [#69](https://github.com/kdpa-llc/local-skills-mcp/issues/69)
|
|
51
|
+
- docs: remove phantom cache from dev guide, fix README tool count and script names (#102) ([689c77e](https://github.com/kdpa-llc/local-skills-mcp/commit/689c77e)), closes [#102](https://github.com/kdpa-llc/local-skills-mcp/issues/102) [#100](https://github.com/kdpa-llc/local-skills-mcp/issues/100) [#101](https://github.com/kdpa-llc/local-skills-mcp/issues/101) [#101](https://github.com/kdpa-llc/local-skills-mcp/issues/101)
|
|
52
|
+
- docs: update Complementary Projects to refer to MCP Compression Proxy ([3eef465](https://github.com/kdpa-llc/local-skills-mcp/commit/3eef465))
|
|
53
|
+
- feat!: require Node.js 22+ and test on Node 22/24 (#98) ([9ca547d](https://github.com/kdpa-llc/local-skills-mcp/commit/9ca547d)), closes [#98](https://github.com/kdpa-llc/local-skills-mcp/issues/98)
|
|
54
|
+
- chore: gitignore evals/ and remove tracked benchmark results ([950f77a](https://github.com/kdpa-llc/local-skills-mcp/commit/950f77a))
|
|
55
|
+
- chore: gitignore evals/ and remove tracked benchmark results (#94) ([d7538ce](https://github.com/kdpa-llc/local-skills-mcp/commit/d7538ce)), closes [#94](https://github.com/kdpa-llc/local-skills-mcp/issues/94)
|
|
56
|
+
- chore(deps-dev): bump @semantic-release/exec from 6.0.3 to 7.1.0 ([dac57c4](https://github.com/kdpa-llc/local-skills-mcp/commit/dac57c4))
|
|
57
|
+
- chore(deps-dev): bump the development-dependencies group across 1 directory with 10 updates (#79) ([692d161](https://github.com/kdpa-llc/local-skills-mcp/commit/692d161)), closes [#79](https://github.com/kdpa-llc/local-skills-mcp/issues/79)
|
|
58
|
+
- chore(deps-dev): bump the development-dependencies group with 4 updates (#71) ([69522ca](https://github.com/kdpa-llc/local-skills-mcp/commit/69522ca)), closes [#71](https://github.com/kdpa-llc/local-skills-mcp/issues/71)
|
|
59
|
+
- chore(deps-dev): bump the development-dependencies group with 9 updates ([868d838](https://github.com/kdpa-llc/local-skills-mcp/commit/868d838))
|
|
60
|
+
- chore(deps-dev): refresh in-range dev dependencies ([c2bfa06](https://github.com/kdpa-llc/local-skills-mcp/commit/c2bfa06))
|
|
61
|
+
- chore(deps): bump @modelcontextprotocol/sdk ([c92fcf0](https://github.com/kdpa-llc/local-skills-mcp/commit/c92fcf0))
|
|
62
|
+
- chore(deps): bump the production-dependencies group with 2 updates (#75) ([a7560f5](https://github.com/kdpa-llc/local-skills-mcp/commit/a7560f5)), closes [#75](https://github.com/kdpa-llc/local-skills-mcp/issues/75)
|
|
63
|
+
- test: add coverage for eval-runner, skill-validator, and index handlers ([dbda456](https://github.com/kdpa-llc/local-skills-mcp/commit/dbda456))
|
|
64
|
+
- test: add skill eval sets and benchmark snapshot ([0084c8c](https://github.com/kdpa-llc/local-skills-mcp/commit/0084c8c))
|
|
65
|
+
- test: assert the real source path instead of a POSIX-shaped regex ([738bc2e](https://github.com/kdpa-llc/local-skills-mcp/commit/738bc2e))
|
|
66
|
+
- test: build dist automatically and install the documented test UI ([ff75213](https://github.com/kdpa-llc/local-skills-mcp/commit/ff75213))
|
|
67
|
+
- style: format tracked files with prettier and enforce it in CI ([4268563](https://github.com/kdpa-llc/local-skills-mcp/commit/4268563))
|
|
68
|
+
- feat: add automated shipped-skill optimization workflow ([ce8c17b](https://github.com/kdpa-llc/local-skills-mcp/commit/ce8c17b))
|
|
69
|
+
- feat: add repeatable shipped-skill benchmark and retune descriptions ([d6b324a](https://github.com/kdpa-llc/local-skills-mcp/commit/d6b324a))
|
|
70
|
+
- feat: add skill validation and evaluation tools ([80caee1](https://github.com/kdpa-llc/local-skills-mcp/commit/80caee1))
|
|
71
|
+
- feat: tune evaluate_skill controls and refresh shipped skill descriptions ([5fdc918](https://github.com/kdpa-llc/local-skills-mcp/commit/5fdc918))
|
|
72
|
+
|
|
73
|
+
## <small>0.4.4 (2025-11-11)</small>
|
|
74
|
+
|
|
75
|
+
- fix: add @semantic-release/git plugin and sync version to 0.4.3 ([4b5ef0c](https://github.com/kdpa-llc/local-skills-mcp/commit/4b5ef0c))
|
|
76
|
+
|
|
5
77
|
## <small>0.4.3 (2025-11-11)</small>
|
|
6
78
|
|
|
7
|
-
|
|
8
|
-
* fix: revert release workflow to direct commits instead of PR creation ([3390139](https://github.com/kdpa-llc/local-skills-mcp/commit/3390139))
|
|
9
|
-
* fix: revert release workflow to direct commits instead of PR creation ([606910a](https://github.com/kdpa-llc/local-skills-mcp/commit/606910a))
|
|
10
|
-
* chore(release): update changelog and version [skip ci] ([8f40729](https://github.com/kdpa-llc/local-skills-mcp/commit/8f40729))
|
|
79
|
+
- fix: revert release workflow to direct commits instead of PR creation ([3390139](https://github.com/kdpa-llc/local-skills-mcp/commit/3390139))
|
|
11
80
|
|
|
12
81
|
## <small>0.4.2 (2025-11-11)</small>
|
|
13
82
|
|
package/README.md
CHANGED
|
@@ -38,7 +38,6 @@
|
|
|
38
38
|
- [🚀 Quick Start](#-quick-start)
|
|
39
39
|
- [📝 SKILL.md Format](#-skillmd-format)
|
|
40
40
|
- [🎯 Usage](#-usage)
|
|
41
|
-
- [🆚 Differences from Built-in Skills](#-differences-from-built-in-skills)
|
|
42
41
|
- [❓ FAQ](#-faq)
|
|
43
42
|
- [🤝 Contributing](#-contributing)
|
|
44
43
|
|
|
@@ -46,51 +45,55 @@
|
|
|
46
45
|
|
|
47
46
|
## What is Local Skills MCP?
|
|
48
47
|
|
|
49
|
-
A **universal** Model Context Protocol (MCP) server that enables **any LLM or AI agent** to access expert skills from your local filesystem.
|
|
48
|
+
A **universal** Model Context Protocol (MCP) server that enables **any LLM or AI agent** to access expert skills from your local filesystem. Write skills once, use them across Claude Code, Claude Desktop, Cline, Continue.dev, custom agents, or any MCP-compatible client.
|
|
50
49
|
|
|
51
|
-
Transform AI capabilities with structured, expert-level instructions for specialized tasks.
|
|
50
|
+
Transform AI capabilities with structured, expert-level instructions for specialized tasks. Context-efficient lazy loading—only skill names/descriptions load initially (~50 tokens/skill), full content on-demand.
|
|
51
|
+
|
|
52
|
+
### 🆚 Why Use Local Skills MCP?
|
|
53
|
+
|
|
54
|
+
| Feature | Local Skills MCP | Built-in Claude Skills |
|
|
55
|
+
| ----------------- | ------------------------------- | ------------------------ |
|
|
56
|
+
| **Portability** | Any MCP client | Claude Code only |
|
|
57
|
+
| **Storage** | Multiple directories aggregated | `~/.claude/skills/` only |
|
|
58
|
+
| **Invocation** | Explicit via MCP tool | Auto-invoked by Claude |
|
|
59
|
+
| **Context Usage** | Lazy loading (names only) | All skills in context |
|
|
52
60
|
|
|
53
61
|
## ✨ Features
|
|
54
62
|
|
|
55
|
-
- **🌐 Universal** - Works with any MCP client (Claude Code
|
|
56
|
-
- **🔄 Portable** - Write once, use across multiple AI systems and LLMs (Claude, GPT, Gemini,
|
|
57
|
-
- **⚡ Context Efficient** - Lazy loading
|
|
58
|
-
- **🔥 Hot Reload** -
|
|
59
|
-
- **🎯 Multi-Source** - Auto-aggregates from
|
|
60
|
-
- **📦 Zero Config** - Works out-of-the-box with standard
|
|
61
|
-
- **✨
|
|
63
|
+
- **🌐 Universal** - Works with any MCP client (Claude Code/Desktop, Cline, Continue.dev, custom agents)
|
|
64
|
+
- **🔄 Portable** - Write once, use across multiple AI systems and LLMs (Claude, GPT, Gemini, Ollama, etc.)
|
|
65
|
+
- **⚡ Context Efficient** - Lazy loading (~50 tokens/skill for names/descriptions, full content loads on-demand)
|
|
66
|
+
- **🔥 Hot Reload** - Changes apply instantly without restart (new skills, edits, deletions)
|
|
67
|
+
- **🎯 Multi-Source** - Auto-aggregates from built-in skills, `~/.claude/skills`, `./.claude/skills`, `./skills`, custom paths
|
|
68
|
+
- **📦 Zero Config** - Works out-of-the-box with standard locations
|
|
69
|
+
- **✨ Focused API** - Three tools: `get_skill` to load one, `validate_skill` to check a SKILL.md, `evaluate_skill` to measure how reliably it triggers
|
|
62
70
|
|
|
63
71
|
## 🚀 Quick Start
|
|
64
72
|
|
|
65
|
-
### Install
|
|
73
|
+
### 1. Install
|
|
66
74
|
|
|
67
|
-
**
|
|
75
|
+
**Requirements:** Node.js 22+
|
|
76
|
+
|
|
77
|
+
Choose one installation method:
|
|
68
78
|
|
|
69
79
|
```bash
|
|
80
|
+
# From npm (recommended)
|
|
70
81
|
npm install -g local-skills-mcp
|
|
71
|
-
```
|
|
72
82
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
```bash
|
|
83
|
+
# From GitHub
|
|
76
84
|
npm install -g github:kdpa-llc/local-skills-mcp
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Or clone locally:**
|
|
80
85
|
|
|
81
|
-
|
|
86
|
+
# Or clone and build locally
|
|
82
87
|
git clone https://github.com/kdpa-llc/local-skills-mcp.git
|
|
83
88
|
cd local-skills-mcp
|
|
84
|
-
npm install #
|
|
89
|
+
npm install # Automatically builds via prepare script
|
|
85
90
|
```
|
|
86
91
|
|
|
87
|
-
|
|
92
|
+
### 2. Configure MCP Client
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
Add to your MCP client configuration:
|
|
90
95
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
**If installed globally:**
|
|
96
|
+
**For Claude Code/Desktop** (`~/.config/claude-code/mcp.json` or `~/Library/Application Support/Claude/claude_desktop_config.json`):
|
|
94
97
|
|
|
95
98
|
```json
|
|
96
99
|
{
|
|
@@ -102,7 +105,11 @@ Add to your MCP client configuration (e.g., `~/.config/claude-code/mcp.json`):
|
|
|
102
105
|
}
|
|
103
106
|
```
|
|
104
107
|
|
|
105
|
-
**
|
|
108
|
+
**For Cline:** VS Code Settings → "Cline: MCP Settings" (same JSON structure)
|
|
109
|
+
|
|
110
|
+
**For other MCP clients:** Use the same command/args structure
|
|
111
|
+
|
|
112
|
+
**If cloned locally** (not installed globally), use:
|
|
106
113
|
|
|
107
114
|
```json
|
|
108
115
|
{
|
|
@@ -115,41 +122,32 @@ Add to your MCP client configuration (e.g., `~/.config/claude-code/mcp.json`):
|
|
|
115
122
|
}
|
|
116
123
|
```
|
|
117
124
|
|
|
118
|
-
**
|
|
119
|
-
|
|
120
|
-
**For other MCP clients:** Use the same command/args structure according to their MCP server setup.
|
|
125
|
+
**Skill Discovery:**
|
|
121
126
|
|
|
122
|
-
The server auto-aggregates skills from multiple directories
|
|
127
|
+
The server auto-aggregates skills from multiple directories (priority: low to high):
|
|
123
128
|
|
|
124
|
-
1. Package built-in skills (
|
|
125
|
-
2. `~/.claude/skills/` -
|
|
126
|
-
3. `./.claude/skills/` - Project-specific
|
|
127
|
-
4. `./skills` -
|
|
128
|
-
5. `$SKILLS_DIR` - Custom
|
|
129
|
+
1. Package built-in skills (self-documenting guides)
|
|
130
|
+
2. `~/.claude/skills/` - Global skills
|
|
131
|
+
3. `./.claude/skills/` - Project-specific (hidden)
|
|
132
|
+
4. `./skills` - Project-specific (visible)
|
|
133
|
+
5. `$SKILLS_DIR` - Custom path (if env var set)
|
|
129
134
|
|
|
130
|
-
Later directories override earlier ones,
|
|
135
|
+
Later directories override earlier ones, letting you customize built-in skills.
|
|
131
136
|
|
|
132
|
-
### Create & Use Skills
|
|
137
|
+
### 3. Create & Use Skills
|
|
133
138
|
|
|
134
|
-
**Option 1: Ask
|
|
139
|
+
**Create Skills (Option 1: Ask AI - Recommended)**
|
|
135
140
|
|
|
136
|
-
|
|
141
|
+
Simply ask your AI to create skills:
|
|
137
142
|
|
|
138
143
|
```
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
✅ Created python-expert skill! It's immediately available thanks to hot reload.
|
|
144
|
+
"Create a Python expert skill for clean, idiomatic code"
|
|
145
|
+
"Make a PR review skill focusing on security and best practices"
|
|
142
146
|
```
|
|
143
147
|
|
|
144
|
-
|
|
145
|
-
You: "Make a skill for reviewing pull requests focusing on security and best practices"
|
|
146
|
-
Claude: [Creates the skill with detailed PR review instructions]
|
|
147
|
-
✅ The pr-reviewer skill is ready to use right away!
|
|
148
|
-
```
|
|
148
|
+
The AI uses the built-in `skill-creator` skill to generate well-structured skills with proper YAML frontmatter and trigger keywords.
|
|
149
149
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
**Option 2: Create Manually**
|
|
150
|
+
**Create Skills (Option 2: Manual)**
|
|
153
151
|
|
|
154
152
|
Create `~/.claude/skills/my-skill/SKILL.md`:
|
|
155
153
|
|
|
@@ -163,16 +161,16 @@ You are an expert at [domain]. Your task is to [specific task].
|
|
|
163
161
|
|
|
164
162
|
Guidelines:
|
|
165
163
|
|
|
166
|
-
1. Be specific
|
|
164
|
+
1. Be specific and actionable
|
|
167
165
|
2. Provide examples
|
|
168
|
-
3.
|
|
166
|
+
3. Include best practices
|
|
169
167
|
```
|
|
170
168
|
|
|
171
|
-
**
|
|
169
|
+
**Use Skills**
|
|
172
170
|
|
|
173
|
-
Request any skill
|
|
171
|
+
Request any skill: `"Use the my-skill skill"`
|
|
174
172
|
|
|
175
|
-
|
|
173
|
+
Skills are auto-discovered and load on-demand. **All changes apply instantly** with hot reload—no restart needed!
|
|
176
174
|
|
|
177
175
|
## 📝 SKILL.md Format
|
|
178
176
|
|
|
@@ -194,38 +192,58 @@ Your skill instructions in Markdown format...
|
|
|
194
192
|
|
|
195
193
|
**Writing Effective Descriptions:**
|
|
196
194
|
|
|
197
|
-
|
|
195
|
+
Use pattern: `[What it does]. Use when [trigger conditions/keywords].`
|
|
196
|
+
|
|
197
|
+
✅ **Good Examples:**
|
|
198
198
|
|
|
199
|
-
-
|
|
200
|
-
-
|
|
201
|
-
- ❌ **Poor**: "Helps with Excel files"
|
|
199
|
+
- "Generates clear commit messages from git diffs. Use when writing commit messages or reviewing staged changes."
|
|
200
|
+
- "Analyzes Excel spreadsheets and creates pivot tables. Use when working with .xlsx files or tabular data."
|
|
202
201
|
|
|
203
|
-
|
|
202
|
+
❌ **Poor Example:**
|
|
203
|
+
|
|
204
|
+
- "Helps with Excel files"
|
|
205
|
+
|
|
206
|
+
Specific trigger keywords help the AI make better decisions when selecting skills.
|
|
204
207
|
|
|
205
208
|
## 🎯 Usage
|
|
206
209
|
|
|
207
|
-
**
|
|
210
|
+
**How It Works:**
|
|
208
211
|
|
|
209
|
-
|
|
212
|
+
1. AI sees all available skill names/descriptions (auto-updated, ~50 tokens each)
|
|
213
|
+
2. When you request a skill, AI invokes the `get_skill` tool
|
|
214
|
+
3. Full skill content loads on-demand with detailed instructions
|
|
210
215
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
216
|
+
**Built-in Skills:**
|
|
217
|
+
|
|
218
|
+
Three self-documenting skills are included:
|
|
214
219
|
|
|
215
|
-
**Built-in Skills:** The package includes three self-documenting skills that explain how to use Local Skills MCP and create new skills. These are available immediately after installation:
|
|
216
220
|
- `local-skills-mcp-usage` - Quick usage guide
|
|
217
221
|
- `local-skills-mcp-guide` - Comprehensive documentation
|
|
218
222
|
- `skill-creator` - Skill authoring best practices
|
|
219
223
|
|
|
220
|
-
**Skill
|
|
224
|
+
**Skill Directories:**
|
|
225
|
+
|
|
226
|
+
Auto-aggregates from multiple locations (later ones override earlier):
|
|
221
227
|
|
|
222
|
-
|
|
228
|
+
1. Package built-in skills
|
|
229
|
+
2. `~/.claude/skills/` - Global skills
|
|
230
|
+
3. `./.claude/skills/` - Project-specific (hidden)
|
|
231
|
+
4. `./skills` - Project-specific (visible)
|
|
232
|
+
5. `$SKILLS_DIR` - Custom path (optional)
|
|
233
|
+
|
|
234
|
+
**Custom Directory:**
|
|
235
|
+
|
|
236
|
+
Configure via environment variable in your MCP client config:
|
|
223
237
|
|
|
224
238
|
```json
|
|
225
239
|
{
|
|
226
|
-
"
|
|
227
|
-
|
|
228
|
-
|
|
240
|
+
"mcpServers": {
|
|
241
|
+
"local-skills": {
|
|
242
|
+
"command": "local-skills-mcp",
|
|
243
|
+
"env": {
|
|
244
|
+
"SKILLS_DIR": "/custom/path/to/skills"
|
|
245
|
+
}
|
|
246
|
+
}
|
|
229
247
|
}
|
|
230
248
|
}
|
|
231
249
|
```
|
|
@@ -243,22 +261,12 @@ You are a code reviewer with expertise in software engineering best practices.
|
|
|
243
261
|
Analyze the code for:
|
|
244
262
|
|
|
245
263
|
1. Correctness and bugs
|
|
246
|
-
2. Best practices
|
|
264
|
+
2. Best practices and maintainability
|
|
247
265
|
3. Performance and security issues
|
|
248
|
-
4. Maintainability
|
|
249
266
|
|
|
250
|
-
Provide specific, actionable feedback.
|
|
267
|
+
Provide specific, actionable feedback with examples.
|
|
251
268
|
```
|
|
252
269
|
|
|
253
|
-
## 🆚 Differences from Built-in Skills
|
|
254
|
-
|
|
255
|
-
| Feature | Local Skills MCP | Built-in Claude Skills |
|
|
256
|
-
| ----------------- | ------------------------------- | ------------------------ |
|
|
257
|
-
| **Portability** | Any MCP client | Claude Code only |
|
|
258
|
-
| **Storage** | Multiple directories aggregated | `~/.claude/skills/` only |
|
|
259
|
-
| **Invocation** | Explicit via MCP tool | Auto-invoked by Claude |
|
|
260
|
-
| **Context Usage** | Lazy loading (names only) | All skills in context |
|
|
261
|
-
|
|
262
270
|
## ❓ FAQ
|
|
263
271
|
|
|
264
272
|
<details>
|
|
@@ -267,75 +275,80 @@ Provide specific, actionable feedback.
|
|
|
267
275
|
</details>
|
|
268
276
|
|
|
269
277
|
<details>
|
|
270
|
-
<summary><strong>Q:
|
|
271
|
-
<p>
|
|
278
|
+
<summary><strong>Q: Can I use existing Claude skills from ~/.claude/skills/?</strong></summary>
|
|
279
|
+
<p>Yes! The server automatically aggregates skills from <code>~/.claude/skills/</code> along with other directories.</p>
|
|
272
280
|
</details>
|
|
273
281
|
|
|
274
282
|
<details>
|
|
275
|
-
<summary><strong>Q:
|
|
276
|
-
<p>
|
|
283
|
+
<summary><strong>Q: Do I need to restart after adding or editing skills?</strong></summary>
|
|
284
|
+
<p>No! Hot reload is fully supported. All changes (new skills, edits, deletions) apply instantly without restarting the MCP server.</p>
|
|
277
285
|
</details>
|
|
278
286
|
|
|
279
287
|
<details>
|
|
280
|
-
<summary><strong>Q:
|
|
281
|
-
<p>
|
|
288
|
+
<summary><strong>Q: How do I override a built-in skill?</strong></summary>
|
|
289
|
+
<p>Create a skill with the same name in a higher-priority directory. Priority order: package built-in → <code>~/.claude/skills</code> → <code>./.claude/skills</code> → <code>./skills</code> → <code>$SKILLS_DIR</code>.</p>
|
|
282
290
|
</details>
|
|
283
291
|
|
|
284
292
|
<details>
|
|
285
|
-
<summary><strong>Q:
|
|
286
|
-
<p>
|
|
293
|
+
<summary><strong>Q: Does this work with local LLMs (Ollama, LM Studio)?</strong></summary>
|
|
294
|
+
<p>Yes! Works with any MCP-compatible client and LLM. Skills are structured prompts that work with any model.</p>
|
|
287
295
|
</details>
|
|
288
296
|
|
|
289
297
|
<details>
|
|
290
|
-
<summary><strong>Q:
|
|
291
|
-
<p>Yes!
|
|
298
|
+
<summary><strong>Q: Does this work offline?</strong></summary>
|
|
299
|
+
<p>Yes! The MCP server runs entirely on your local filesystem (though your LLM may require internet depending on the provider).</p>
|
|
292
300
|
</details>
|
|
293
301
|
|
|
294
302
|
<details>
|
|
295
|
-
<summary><strong>Q:
|
|
296
|
-
<p>
|
|
303
|
+
<summary><strong>Q: How do I create effective skills?</strong></summary>
|
|
304
|
+
<p>See the <a href="#-skillmd-format">SKILL.md format section</a>. Use clear descriptions with trigger keywords, specific instructions, and examples. Or ask your AI to create skills using the built-in <code>skill-creator</code> skill.</p>
|
|
297
305
|
</details>
|
|
298
306
|
|
|
299
307
|
<details>
|
|
300
|
-
<summary><strong>Q:
|
|
301
|
-
<p>
|
|
308
|
+
<summary><strong>Q: Where can I get help?</strong></summary>
|
|
309
|
+
<p>Open an <a href="https://github.com/kdpa-llc/local-skills-mcp/issues">issue on GitHub</a> or check the built-in <code>local-skills-mcp-guide</code> skill.</p>
|
|
302
310
|
</details>
|
|
303
311
|
|
|
304
|
-
|
|
305
|
-
<summary><strong>Q: Works with local LLMs (Ollama, LM Studio)?</strong></summary>
|
|
306
|
-
<p>Yes! Works with any MCP-compatible LLM setup. Skills are structured prompts that work with any model.</p>
|
|
307
|
-
</details>
|
|
312
|
+
**More:** See [CONTRIBUTING.md][contributing], [SECURITY.md][security], [CHANGELOG.md][changelog]
|
|
308
313
|
|
|
309
|
-
|
|
310
|
-
<summary><strong>Q: Works offline?</strong></summary>
|
|
311
|
-
<p>Yes! Runs entirely on local filesystem (though your LLM may need internet depending on the model).</p>
|
|
312
|
-
</details>
|
|
314
|
+
## 🤝 Contributing
|
|
313
315
|
|
|
314
|
-
|
|
315
|
-
<summary><strong>Q: How to create a good skill?</strong></summary>
|
|
316
|
-
<p>Follow <a href="#-skillmd-format">SKILL.md format</a>. Use clear descriptions with trigger keywords, specific instructions, and examples.</p>
|
|
317
|
-
</details>
|
|
316
|
+
Contributions welcome! See [CONTRIBUTING.md][contributing] for detailed guidelines.
|
|
318
317
|
|
|
319
|
-
|
|
320
|
-
<summary><strong>Q: Where can I get help?</strong></summary>
|
|
321
|
-
<p>Open an <a href="https://github.com/kdpa-llc/local-skills-mcp/issues">issue on GitHub</a>.</p>
|
|
322
|
-
</details>
|
|
318
|
+
**Quick start:**
|
|
323
319
|
|
|
324
|
-
|
|
320
|
+
1. Fork and clone the repository
|
|
321
|
+
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
322
|
+
3. Make changes and add tests
|
|
323
|
+
4. Commit (`git commit -m 'Add amazing feature'`)
|
|
324
|
+
5. Push (`git push origin feature/amazing-feature`)
|
|
325
|
+
6. Open a Pull Request
|
|
325
326
|
|
|
326
|
-
|
|
327
|
+
This project follows a [Code of Conduct][code-of-conduct].
|
|
328
|
+
|
|
329
|
+
## 🔗 Complementary Projects
|
|
330
|
+
|
|
331
|
+
**Optimize your MCP setup with these complementary tools:**
|
|
332
|
+
|
|
333
|
+
### [MCP Compression Proxy][mcp-tool-aggregator]
|
|
334
|
+
|
|
335
|
+
**Aggregate and compress tool descriptions from multiple MCP servers**
|
|
336
|
+
|
|
337
|
+
While Local Skills MCP provides expert prompt instructions, [MCP Compression Proxy][mcp-tool-aggregator] optimizes your tool descriptions with intelligent LLM-based compression.
|
|
338
|
+
|
|
339
|
+
**Perfect combination:**
|
|
327
340
|
|
|
328
|
-
|
|
341
|
+
- **Local Skills MCP** - Expert skills with lazy loading (~50 tokens/skill)
|
|
342
|
+
- **MCP Compression Proxy** - Compressed tool descriptions (50-80% token reduction)
|
|
329
343
|
|
|
330
|
-
|
|
344
|
+
**Together they enable:**
|
|
331
345
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
5. Open a Pull Request
|
|
346
|
+
- 🎯 Maximum context efficiency across skills AND tools
|
|
347
|
+
- 🔗 Access to multiple MCP servers through one connection
|
|
348
|
+
- ⚡ Minimal token consumption for large-scale workflows
|
|
349
|
+
- 🚀 Professional AI agent setups with hundreds of tools
|
|
337
350
|
|
|
338
|
-
|
|
351
|
+
[Learn more about MCP Compression Proxy →][mcp-tool-aggregator]
|
|
339
352
|
|
|
340
353
|
## 💖 Support This Project
|
|
341
354
|
|
|
@@ -435,3 +448,4 @@ Made with ❤️ by KDPA
|
|
|
435
448
|
|
|
436
449
|
[mcp-sdk]: https://github.com/modelcontextprotocol/sdk
|
|
437
450
|
[claude-skills]: https://docs.claude.com/en/docs/claude-code/skills
|
|
451
|
+
[mcp-tool-aggregator]: https://github.com/kdpa-llc/mcp-compression-proxy
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface EvaluateSkillInput {
|
|
2
|
+
skill_name: string;
|
|
3
|
+
skill_path?: string;
|
|
4
|
+
eval_set_path?: string;
|
|
5
|
+
max_iterations?: number;
|
|
6
|
+
model?: string;
|
|
7
|
+
num_workers?: number;
|
|
8
|
+
runs_per_query?: number;
|
|
9
|
+
timeout_seconds?: number;
|
|
10
|
+
holdout?: number;
|
|
11
|
+
trigger_threshold?: number;
|
|
12
|
+
description_override?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface EvaluateSkillResult {
|
|
15
|
+
best_description?: string;
|
|
16
|
+
scores?: Record<string, number>;
|
|
17
|
+
iteration_history?: unknown[];
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
type RunLoopInvocation = "module" | "script";
|
|
21
|
+
interface PrerequisiteCheck {
|
|
22
|
+
ok: boolean;
|
|
23
|
+
pythonCommand?: string;
|
|
24
|
+
runLoopPath: string;
|
|
25
|
+
runLoopCwd: string;
|
|
26
|
+
runLoopInvocation: RunLoopInvocation;
|
|
27
|
+
missing: string[];
|
|
28
|
+
}
|
|
29
|
+
export declare function checkEvaluatePrerequisites(repoRoot: string): PrerequisiteCheck;
|
|
30
|
+
export declare function evaluateSkill(input: EvaluateSkillInput, repoRoot: string): Promise<EvaluateSkillResult>;
|
|
31
|
+
export {};
|