Claude Code :Skills、MCP、Plugin 安装目录、权限问题

Claude Code :Skills、MCP、Plugin 安装目录、权限问题

最近在用 Claude Code 做项目,踩了不少坑,特别是扩展系统的权限管理这块。把经验整理一下,希望对大家有帮助。

前言

Claude Code 的扩展系统有三种类型:Skills、MCP Servers、Plugins。刚开始用的时候,我经常搞混它们的安装位置和权限控制,导致插件在某个项目里不生效,或者配置改了半天没反应。

这篇文章把这三种扩展的安装目录、配置方式、权限层级整理清楚,方便大家查阅。


一、三种扩展类型概览

先上一张对比表,心里有个数:

特性 Skills MCP Servers Plugins
安装位置 ~/.claude/skills/.claude/skills/ 配置在 settings.json ~/.claude/plugins/
文件格式 Markdown (.md) JSON 配置 目录 + 配置
调用方式 /skill-name 自动加载工具 自动加载功能
禁用方式 删除文件 "disabled": true "enabledPlugins": false
典型用途 自定义工作流、模板 外部工具集成 功能扩展包

二、Skills:技能文件

Skills 是最简单的扩展形式,本质上就是 Markdown 文件。

安装目录

bash 复制代码
# 用户级(所有项目生效)
~/.claude/skills/

# 项目级(仅当前项目生效)
.claude/skills/

使用方式

在目录下放一个 .md 文件,然后通过 /skill-name 调用。比如你放了一个 code-review.md,就可以用 /code-review 来使用它。

权限规则

  • 项目级 Skills 优先级高于用户级
  • 同名文件会被项目级覆盖
  • 删除文件就等于禁用,没有其他开关

三、MCP Servers:模型上下文协议服务

MCP 是用来集成外部工具的,比如文件系统操作、数据库访问等。配置相对复杂一些。

配置位置

MCP 的配置写在 settings.json 里,有三个层级:

bash 复制代码
# 用户全局配置
~/.claude/settings.json

# 项目级配置(可提交 Git)
.claude/settings.json

# 项目本地配置(不提交 Git)
.claude/settings.local.json

配置示例

json 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["@anthropic/mcp-filesystem"]
    },
    "project-db": {
      "command": "node",
      "args": ["./mcp-server.js"],
      "env": {
        "DB_URL": "postgresql://localhost/mydb"
      }
    }
  }
}

禁用单个 MCP Server

在配置里加 "disabled": true

json 复制代码
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["@anthropic/mcp-filesystem"],
      "disabled": true
    }
  }
}

常用命令

bash 复制代码
# 添加 MCP Server
claude mcp add <name> <command>

# 列出所有 MCP Server
claude mcp list

# 移除 MCP Server
claude mcp remove <name>

四、Plugins:插件扩展

Plugins 是功能最完整的扩展,但权限控制也最让人困惑。

安装目录

javascript 复制代码
~/.claude/plugins/

插件安装到用户级目录后,理论上所有项目都能用。但这里有个坑:还需要在 settings 里显式启用

启用配置

~/.claude/settings.json 里配置:

json 复制代码
{
  "enabledPlugins": {
    "my-plugin": true,
    "code-formatter": true
  }
}

项目级禁用

如果某个项目不想用某个插件,可以在项目级 settings 里覆盖:

json 复制代码
// .claude/settings.json
{
  "enabledPlugins": {
    "my-plugin": false
  }
}

这个设置会覆盖全局配置,但只对当前项目生效。


五、配置优先级

这是最容易踩坑的地方。Claude Code 的配置采用三层覆盖机制:

bash 复制代码
项目本地配置 (.claude/settings.local.json)
    ↓ 覆盖
项目级配置 (.claude/settings.json)
    ↓ 覆盖
用户全局配置 (~/.claude/settings.json)

优先级从高到低:项目本地 > 项目级 > 用户全局

举个例子:

  1. 全局配置里启用了 my-plugin: true
  2. 项目级配置里设置了 my-plugin: false
  3. 最终结果:该项目里 my-plugin 是禁用的

settings.local.json 的作用

.claude/settings.local.json 不会被提交到 Git,适合放一些个人偏好或者敏感配置。比如:

json 复制代码
{
  "mcpServers": {
    "personal-db": {
      "command": "node",
      "args": ["./my-personal-server.js"],
      "env": {
        "DB_PASSWORD": "xxx"
      }
    }
  }
}

六、实际使用建议

1. Skills 适合什么场景?

  • 代码审查模板
  • 提交信息规范
  • 常用的代码片段
  • 团队共享的工作流

2. MCP Servers 适合什么场景?

  • 文件系统操作
  • 数据库查询
  • API 调用
  • 外部工具集成

3. Plugins 适合什么场景?

  • 代码格式化
  • AI 辅助功能
  • 复杂的工作流扩展

4. 权限管理最佳实践

bash 复制代码
# 全局配置放通用的、大家都需要的
~/.claude/settings.json

# 项目配置放项目特定的、需要版本控制的
.claude/settings.json

# 本地配置放个人的、敏感的
.claude/settings.local.json

七、常见问题

Q: 插件安装了但不生效?

检查两件事:

  1. enabledPlugins 里是否设置为 true
  2. 项目级配置是否覆盖了全局设置

Q: MCP Server 配置了但没反应?

bash 复制代码
# 先检查配置是否正确
claude mcp list

# 如果配置有问题,重新添加
claude mcp remove <name>
claude mcp add <name> <command>

Q: 想在某个项目里禁用全局插件?

在项目根目录创建 .claude/settings.json

json 复制代码
{
  "enabledPlugins": {
    "plugin-name": false
  }
}

Q: 配置改了需要重启吗?

运行 /reload-plugins 重新加载,不需要重启 Claude Code。


总结

三种扩展类型各有用途:

  • Skills:最简单,就是 Markdown 文件,适合模板和工作流
  • MCP Servers:配置驱动,适合外部工具集成
  • Plugins:功能最完整,但权限控制最复杂

权限控制的关键是理解三层配置的优先级:项目本地 > 项目级 > 用户全局。遇到插件不生效的问题,先检查配置层级是否冲突。


相关推荐
wangruofeng10 小时前
AGENTS.md 告诉 Agent 怎么写代码,DESIGN.md 告诉它怎么长得好看
aigc·ai编程
_山海11 小时前
Openclaw for windows 原生安装与配置
ai编程
kyriewen13 小时前
别再用AI debug了——这5种bug越修越烂
前端·javascript·ai编程
掉头发的王富贵16 小时前
我来入职新公司两个月了,为什么只写了100行代码?
后端·ai编程
ZzT16 小时前
别把锅甩给AI
ai编程
程序员老刘17 小时前
腾讯混元Hy3在Flutter项目中的实战体验
flutter·ai编程
skiyee18 小时前
换个底座的 Wot Starter 居然让 AI 更懂项目!
前端·ai编程
阿新聊ai18 小时前
死磕claude code-渐进式披露:别让 Skill 一上来就把上下文塞爆
ai编程
阿新聊ai19 小时前
SKILL.md 结构详解:让 Skill 既会被触发、又能跑通的写法
ai编程
zxfeng~20 小时前
伴眸-居家养老AI 眼镜智能体 技术方案
人工智能·agent·ai编程·智能眼镜