Back to MCP directory
publicPublicdnsLocal runtime

local-skills-mcp

一个通用的模型上下文协议(MCP)服务器,允许任何LLM或AI代理访问本地文件系统中的专家技能。通过结构化提示实现跨平台技能共享,支持懒加载以节省上下文令牌。

article

README

🚀 本地技能MCP

通过MCP,让任何大语言模型(LLM)或人工智能代理都能从你的本地文件系统中调用专业技能。

项目状态

| 指标 | 详情 | | ---- | ---- | | npm版本 | npm version | | npm下载量 | npm downloads | | npm类型支持 | npm types | | 许可证 | License: MIT | | Node支持 | Node | | MCP兼容性 | MCP | | CI状态 | CI | | 代码覆盖率 | codecov | | CodeQL分析 | CodeQL | | GitHub星星数 | GitHub Stars | | GitHub分支数 | GitHub Forks | | GitHub问题数 | GitHub Issues | | GitHub最后提交时间 | GitHub Last Commit | | PR欢迎状态 | PRs Welcome |

快速开始特性使用方法常见问题解答贡献代码


📑 目录


什么是本地技能MCP?

本地技能MCP是一个通用的模型上下文协议(MCP)服务器,它允许任何大语言模型(LLM)或人工智能代理从你的本地文件系统中访问专业技能。你只需编写一次技能,就可以在Claude Code、Claude Desktop、Cline、Continue.dev、自定义代理或任何兼容MCP的客户端中使用。

它通过结构化的、专家级的指令来处理特定任务,从而提升人工智能的能力。采用上下文高效的懒加载机制,即最初仅加载技能名称和描述(每个技能约50个令牌),完整内容按需加载。

🆚 为什么要使用本地技能MCP?

| 特性 | 本地技能MCP | Claude内置技能 | | ---- | ---- | ---- | | 可移植性 | 任何MCP客户端 | 仅适用于Claude Code | | 存储方式 | 聚合多个目录 | 仅~/.claude/skills/ | | 调用方式 | 通过MCP工具显式调用 | 由Claude自动调用 | | 上下文使用 | 懒加载(仅加载名称) | 上下文中包含所有技能 |

✨ 特性

  • 🌐 通用性:可与任何MCP客户端配合使用(如Claude Code/Desktop、Cline、Continue.dev、自定义代理)。
  • 🔄 可移植性:编写一次,可在多个人工智能系统和大语言模型(如Claude、GPT、Gemini、Ollama等)中使用。
  • ⚡ 上下文高效性:采用懒加载机制(每个技能名称/描述约50个令牌,完整内容按需加载)。
  • 🔥 热重载:所有更改(新增、编辑、删除技能)立即生效,无需重启。
  • 🎯 多源聚合:自动从多个目录聚合技能(优先级从低到高),包括内置技能、~/.claude/skills./.claude/skills./skills和自定义路径。
  • 📦 零配置:使用标准位置时,无需额外配置即可使用。
  • ✨ 简单API:通过单一工具get_skill实现动态发现。

🚀 快速开始

1. 安装

要求:Node.js 18+

你可以选择以下任意一种安装方式:

# 从npm安装(推荐)
npm install -g local-skills-mcp

# 从GitHub安装
npm install -g github:kdpa-llc/local-skills-mcp

# 或者克隆并本地构建
git clone https://github.com/kdpa-llc/local-skills-mcp.git
cd local-skills-mcp
npm install  # 通过prepare脚本自动构建

2. 配置MCP客户端

将以下内容添加到你的MCP客户端配置中:

对于Claude Code/Desktop(配置文件路径为~/.config/claude-code/mcp.json~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "local-skills": {
      "command": "local-skills-mcp"
    }
  }
}

对于Cline:在VS Code设置中找到“Cline: MCP Settings”(使用相同的JSON结构)。

对于其他MCP客户端:使用相同的命令/参数结构。

如果是本地克隆(未全局安装),请使用以下配置:

{
  "mcpServers": {
    "local-skills": {
      "command": "node",
      "args": ["/absolute/path/to/local-skills-mcp/dist/index.js"]
    }
  }
}

技能发现: 服务器会自动从多个目录聚合技能(优先级从低到高):

  1. 包内置技能(自带文档指南)
  2. ~/.claude/skills/ - 全局技能
  3. ./.claude/skills/ - 项目特定技能(隐藏)
  4. ./skills - 项目特定技能(可见)
  5. $SKILLS_DIR - 自定义路径(如果设置了环境变量)

后续目录中的技能会覆盖前面目录中的同名技能,你可以通过这种方式自定义内置技能。

3. 创建并使用技能

创建技能(选项1:让AI创建 - 推荐)

你只需让你的AI创建技能,例如:

"创建一个用于编写简洁、地道Python代码的专家技能"
"创建一个专注于安全性和最佳实践的PR审查技能"

AI会使用内置的skill-creator技能生成结构良好的技能,包含正确的YAML前置元数据和触发关键词。

创建技能(选项2:手动创建)

创建~/.claude/skills/my-skill/SKILL.md文件,内容如下:

---
name: my-skill
description: 该技能的功能和使用场景
---

你是[领域]的专家。你的任务是[具体任务]。

指导原则:
1. 具体且可操作
2. 提供示例
3. 包含最佳实践

使用技能

请求使用任何技能,例如:"使用my-skill技能"

技能会自动发现并按需加载。通过热重载功能,所有更改立即生效,无需重启!

📝 SKILL.md格式

每个技能都是一个包含YAML前置元数据的SKILL.md文件:

---
name: skill-name
description: 简要描述该技能的功能和使用场景
---

你的技能说明,采用Markdown格式...

必填字段

  • name - 技能标识符(小写,使用连字符,最长64个字符)
  • description - 对技能选择至关重要(最长200个字符)

编写有效描述的方法: 使用模式:[它的功能]. 在[触发条件/关键词]时使用。

好的示例

  • "根据git diff生成清晰的提交消息。在编写提交消息或审查暂存更改时使用。"
  • "分析Excel电子表格并创建数据透视表。在处理.xlsx文件或表格数据时使用。"

不好的示例

  • "帮助处理Excel文件"

具体的触发关键词有助于AI在选择技能时做出更好的决策。

🎯 使用方法

工作原理

  1. AI会看到所有可用的技能名称和描述(自动更新,每个约50个令牌)。
  2. 当你请求使用某个技能时,AI会调用get_skill工具。
  3. 按需加载完整的技能内容,包含详细的说明。

内置技能

包含三个自带文档的技能:

  • local-skills-mcp-usage - 快速使用指南
  • local-skills-mcp-guide - 全面的文档
  • skill-creator - 技能编写最佳实践

技能目录

自动从多个位置聚合技能(后面的目录会覆盖前面的目录):

  1. 包内置技能
  2. ~/.claude/skills/ - 全局技能
  3. ./.claude/skills/ - 项目特定技能(隐藏)
  4. ./skills - 项目特定技能(可见)
  5. $SKILLS_DIR - 自定义路径(可选)

自定义目录

你可以在MCP客户端配置中通过环境变量进行配置:

{
  "mcpServers": {
    "local-skills": {
      "command": "local-skills-mcp",
      "env": {
        "SKILLS_DIR": "/custom/path/to/skills"
      }
    }
  }
}

示例技能

---
name: code-reviewer
description: 审查代码的最佳实践、漏洞和安全性。在审查PR或分析代码质量时使用。
---

你是一位精通软件工程最佳实践的代码审查专家。

分析代码时需关注:
1. 正确性和漏洞
2. 最佳实践和可维护性
3. 性能和安全问题

提供具体、可操作的反馈,并附上示例。

❓ 常见问题解答

Q:支持哪些MCP客户端?

支持任何兼容MCP的客户端,如Claude Code、Claude Desktop、Cline、Continue.dev或自定义代理。

Q:我可以使用~/.claude/skills/中的现有Claude技能吗?

可以!服务器会自动从`~/.claude/skills/`以及其他目录聚合技能。

Q:添加或编辑技能后需要重启吗?

不需要!支持热重载,所有更改(新增、编辑、删除技能)立即生效,无需重启MCP服务器。

Q:如何覆盖内置技能?

在优先级更高的目录中创建同名技能即可。优先级顺序为:包内置技能 → `~/.claude/skills` → `./.claude/skills` → `./skills` → `$SKILLS_DIR`。

Q:它可以与本地大语言模型(如Ollama、LM Studio)一起使用吗?

可以!它可以与任何兼容MCP的客户端和大语言模型一起使用。技能是结构化的提示,可与任何模型配合使用。

Q:它可以离线使用吗?

可以!MCP服务器完全在你的本地文件系统上运行(不过你的大语言模型可能需要根据提供商的要求连接互联网)。

Q:如何创建有效的技能?

请参阅SKILL.md格式部分。使用包含触发关键词的清晰描述、具体的说明和示例。或者让你的AI使用内置的`skill-creator`技能来创建技能。

Q:我在哪里可以获得帮助?

GitHub上提交问题,或者查看内置的`local-skills-mcp-guide`技能。

更多信息:请参阅CONTRIBUTING.mdSECURITY.mdCHANGELOG.md

🤝 贡献代码

欢迎贡献代码!详细指南请参阅CONTRIBUTING.md

快速开始步骤

  1. Fork并克隆仓库。
  2. 创建你的功能分支(git checkout -b feature/amazing-feature)。
  3. 进行更改并添加测试。
  4. 提交更改(git commit -m '添加惊人的功能')。
  5. 推送更改(git push origin feature/amazing-feature)。
  6. 打开Pull Request。

本项目遵循行为准则

🔗 相关项目

你可以使用以下互补工具来优化你的MCP设置:

MCP压缩代理

聚合并压缩来自多个MCP服务器的工具描述

虽然本地技能MCP提供了专家级的提示指令,但MCP压缩代理可以通过基于大语言模型的智能压缩来优化你的工具描述。

完美组合

  • 本地技能MCP - 具有懒加载功能的专家技能(每个技能约50个令牌)
  • MCP压缩代理 - 压缩后的工具描述(减少50 - 80%的令牌消耗)

它们共同实现了

  • 🎯 技能和工具的最大上下文效率
  • 🔗 通过一次连接访问多个MCP服务器
  • ⚡ 大规模工作流的最小令牌消耗
  • 🚀 拥有数百个工具的专业人工智能代理设置

了解更多关于MCP压缩代理 →

💖 支持本项目

如果你觉得本地技能MCP很有用,请考虑支持其开发!

[![GitHub赞助][sponsor-github-badge]][sponsor-github] [![请我喝咖啡][sponsor-coffee-badge]][sponsor-coffee] [![PayPal][sponsor-paypal-badge]][sponsor-paypal]

支持方式

📄 许可证

本项目采用MIT许可证 - 详情请参阅LICENSE文件。版权所有 © 2025 KDPA

🙏 致谢

本项目基于模型上下文协议SDK构建,灵感来自Claude技能


**[⬆ 返回顶部](#-本地技能mcp)** 由KDPA用心打造 ❤️
help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client