local-skills-mcp 0.4.4 → 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 CHANGED
@@ -2,11 +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
+
5
73
  ## <small>0.4.4 (2025-11-11)</small>
6
74
 
7
- * Merge branch 'main' into release-updates ([516c544](https://github.com/kdpa-llc/local-skills-mcp/commit/516c544))
8
- * Merge pull request #55 from kdpa-llc/release-updates ([2f19bce](https://github.com/kdpa-llc/local-skills-mcp/commit/2f19bce)), closes [#55](https://github.com/kdpa-llc/local-skills-mcp/issues/55)
9
- * fix: add @semantic-release/git plugin and sync version to 0.4.3 ([4b5ef0c](https://github.com/kdpa-llc/local-skills-mcp/commit/4b5ef0c))
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
+
77
+ ## <small>0.4.3 (2025-11-11)</small>
78
+
79
+ - fix: revert release workflow to direct commits instead of PR creation ([3390139](https://github.com/kdpa-llc/local-skills-mcp/commit/3390139))
10
80
 
11
81
  ## <small>0.4.2 (2025-11-11)</small>
12
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. Your skills become portable, reusable prompt libraries that work across Claude Code, Claude Desktop, Cline, Continue.dev, custom agents, or any MCP-compatible client.
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. Lazy loading preserves context—only skill names and descriptions load initially; full content loads on-demand.
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, Desktop, Cline, Continue.dev, custom agents)
56
- - **🔄 Portable** - Write once, use across multiple AI systems and LLMs (Claude, GPT, Gemini, local models)
57
- - **⚡ Context Efficient** - Lazy loading: only skill names/descriptions load initially (~50 tokens/skill), full content on-demand
58
- - **🔥 Hot Reload** - All changes apply instantly (new skills, edits, deletions) without restart
59
- - **🎯 Multi-Source** - Auto-aggregates from package built-in skills, `~/.claude/skills`, `./.claude/skills`, `./skills`, and custom paths
60
- - **📦 Zero Config** - Works out-of-the-box with standard skill locations
61
- - **✨ Ultra Simple** - Single tool (`get_skill`) with dynamic skill discovery
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
- **From npm (recommended):**
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
- **Alternative: From GitHub:**
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
- ```bash
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 # The prepare script auto-builds
89
+ npm install # Automatically builds via prepare script
85
90
  ```
86
91
 
87
- **Requirements:** Node.js 18+, any MCP-compatible client
92
+ ### 2. Configure MCP Client
88
93
 
89
- ### Configure MCP Client
94
+ Add to your MCP client configuration:
90
95
 
91
- Add to your MCP client configuration (e.g., `~/.config/claude-code/mcp.json`):
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
- **If cloned locally:**
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
- **For Cline:** Same config in VS Code Settings → "Cline: MCP Settings"
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 in this priority order (lowest to highest):
127
+ The server auto-aggregates skills from multiple directories (priority: low to high):
123
128
 
124
- 1. Package built-in skills (includes self-documenting usage guides)
125
- 2. `~/.claude/skills/` - Your global skills
126
- 3. `./.claude/skills/` - Project-specific skills
127
- 4. `./skills` - Default project skills
128
- 5. `$SKILLS_DIR` - Custom directory (if set)
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, allowing you to customize built-in skills.
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 Claude to Create Skills (Recommended)**
139
+ **Create Skills (Option 1: Ask AI - Recommended)**
135
140
 
136
- After installing Local Skills MCP, you can ask Claude to create skills for you:
141
+ Simply ask your AI to create skills:
137
142
 
138
143
  ```
139
- You: "Create a Python expert skill that helps me write clean, idiomatic Python code"
140
- Claude: [Creates ~/.claude/skills/python-expert/SKILL.md with appropriate content]
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
- Claude will use the built-in `skill-creator` skill to generate well-structured skills with proper YAML frontmatter, trigger keywords, and best practices.
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. Be helpful
166
+ 3. Include best practices
169
167
  ```
170
168
 
171
- **Using Skills:**
169
+ **Use Skills**
172
170
 
173
- Request any skill in your AI client: `"Use the my-skill skill"`
171
+ Request any skill: `"Use the my-skill skill"`
174
172
 
175
- The AI auto-discovers available skills and loads them on-demand. **All changes apply instantly** thanks to hot reload—no restart needed!
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
- Pattern: `[What it does]. Use when [trigger conditions/keywords].`
195
+ Use pattern: `[What it does]. Use when [trigger conditions/keywords].`
196
+
197
+ ✅ **Good Examples:**
198
198
 
199
- - ✅ **Good**: "Generates clear commit messages from git diffs. Use when writing commit messages or reviewing staged changes."
200
- - ✅ **Good**: "Analyze Excel spreadsheets and create pivot tables. Use when working with .xlsx files or tabular data."
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
- Claude uses language understanding to decide when to invoke skills—specific trigger keywords help Claude make better decisions.
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
- **Single Tool:** `get_skill` - loads expert prompt instructions for specific tasks
210
+ **How It Works:**
208
211
 
209
- **How it works:**
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
- 1. AI sees all available skills in the tool description (auto-updated)
212
- 2. When you request a skill, AI invokes `get_skill`
213
- 3. Full skill content loads with detailed instructions
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 Aggregation:** Auto-aggregates from package built-in skills, `~/.claude/skills/`, `./.claude/skills/`, `./skills`, and `$SKILLS_DIR` (if set). Later directories override duplicates.
224
+ **Skill Directories:**
225
+
226
+ Auto-aggregates from multiple locations (later ones override earlier):
221
227
 
222
- **Custom Directory:** Add via environment variable:
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
- "command": "local-skills-mcp",
227
- "env": {
228
- "SKILLS_DIR": "/custom/path/to/skills"
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: How is this different from Claude's built-in skills?</strong></summary>
271
- <p>Works with any MCP client (not just Claude), aggregates from multiple directories, explicit invocation control, and better context efficiency via lazy loading.</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: Can I use existing Claude skills?</strong></summary>
276
- <p>Yes! Auto-aggregates from <code>~/.claude/skills/</code> along with other directories.</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: Do I need to restart after adding skills?</strong></summary>
281
- <p>No! Full hot reload is supported. All changes (new skills, content edits, deletions) apply immediately without restart. Skills are discovered dynamically on every tool list request.</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: How much context does this consume?</strong></summary>
286
- <p>Minimal! Only names/descriptions initially (~50 tokens/skill). Full content loads on-demand, preserving 95%+ of context.</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: Can I use multiple skill directories?</strong></summary>
291
- <p>Yes! Auto-aggregates from package built-in skills, <code>~/.claude/skills/</code>, <code>./.claude/skills/</code>, <code>./skills</code>, and <code>$SKILLS_DIR</code>.</p>
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: What if I have duplicate skill names?</strong></summary>
296
- <p>Later directories override earlier ones: package built-in → <code>~/.claude/skills</code> → <code>./.claude/skills</code> → <code>./skills</code> → <code>$SKILLS_DIR</code>. This lets you customize built-in skills.</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: What built-in skills are included?</strong></summary>
301
- <p>The package includes three self-documenting skills: <code>local-skills-mcp-usage</code> (quick usage guide), <code>local-skills-mcp-guide</code> (comprehensive documentation), and <code>skill-creator</code> (skill authoring guide). These are available immediately after installation.</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
- <details>
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
- <details>
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
- <details>
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
- <details>
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
- **More:** See [CONTRIBUTING.md][contributing], [SECURITY.md][security], [CHANGELOG.md][changelog]
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
- ## 🤝 Contributing
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
- Contributions welcome! See [CONTRIBUTING.md][contributing] for guidelines.
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
- Quick start:
344
+ **Together they enable:**
331
345
 
332
- 1. Fork the repository
333
- 2. Create your feature branch
334
- 3. Make your changes and test
335
- 4. Commit and push
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
- Note: This project follows a [Code of Conduct][code-of-conduct].
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 {};