cc设置
交互式CLI,用于管理MCP服务器、插件和每个项目的权限 克劳德代码.
为什么这很重要
您启用的每个MCP服务器都会将其工具添加到Claude的上下文中。每个插件都添加了自己的技能。当Claude看到几十种工具和技能时,会发生两件事:上下文窗口中充满了工具描述,而不是你的实际对话,工具选择会变得更嘈杂,因为模型必须从更大的候选对象中选择。
实际效果是真实的。一个只在一个项目中需要20个工具的MCP服务器仍然会在其他每个项目中消耗上下文。你忘记启用的插件的技能与你真正想要触发的技能竞争。该模型尽其所能,但为每个项目提供一个集中的工具集比在全球范围内倾倒所有东西能产生更好的结果。
cc-setup 通过让您在中央注册表中定义一次所有服务器和插件,然后选择性地仅启用每个项目所需的服务器和插件来解决这个问题。Kubernetes项目会得到你的集群工具。文档项目会得到你的写作工具。没别的了。“权限”选项卡通过让您精确控制Claude可以自动批准的工具,以及仅用于研究或完全自主等常见工作流程的配置文件预设,进一步实现了这一点。
特性
- 中央服务器注册表 通过复选框选择激活每个项目
- 继承服务器检测 从父目录
.mcp.json文件,具有视觉区别 - 实时健康检查 带有彩色状态指示器(绿色=正常,黄色=需要身份验证,红色=无法访问)
- 权限管理 具有三种状态控制(允许/拒绝/询问)、配置文件和MCP工具分类
- 权限配置文件 使用MCP工具自动分类进行快速设置(只读YOLO、完整YOLO)
- 工具权限管理 控制每台服务器自动批准哪些工具
- OAuth凭据重用 从Claude Code存储的令牌中自动刷新
- 双范围支持 对于本地项目(
.mcp.json)用户全局(~/.claude.json)配置 - 插件启用/禁用 每个项目,适用于Claude Code安装的插件
- 从现有配置导入 从已有的注册表引导中央注册表
- 所有三种MCP传输类型:HTTP(流式传输)、SSE和stdio
安装
macOS
家酿 (推荐):
brew install cc-deck/tap/cc-setup安装脚本 (备选):
curl -fsSL https://raw.githubusercontent.com/cc-deck/cc-setup/main/install.sh | shLinux
curl -fsSL https://raw.githubusercontent.com/cc-deck/cc-setup/main/install.sh | sh安装脚本检测您的操作系统和体系结构(amd64/arm64),下载正确的二进制文件,验证SHA256校验和,然后安装到 ~/.local/bin.
要安装到其他位置:
INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/cc-deck/cc-setup/main/install.sh | sudo sh其他选项
所有平台的预构建二进制文件都可以在 发布页面.
要从源代码构建,请执行以下操作:
make build
make install # installs to ~/.local/bin没有运行时依赖关系。单一静态二进制文件。
快速开始
# If you already have servers in Claude Code, import them
cc-setup import
# Or add a new server interactively
cc-setup add my-server
# Launch the management UI
cc-setup配置
所有服务器定义都位于一个中央配置文件中:
~/.config/cc-setup/mcp.json尊重 XDG_CONFIG_HOME 如果设置。
该格式反映了Claude Code的 mcpServers 准确地输入,加上a description 显示字段:
{
"servers": {
"my-jira": {
"description": "Company Jira instance",
"type": "http",
"url": "https://mcp-jira.example.com/mcp",
"headers": {
"Authorization": "Basic dXNlcjpwYXNz"
}
},
"filesystem": {
"description": "Local filesystem access",
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
}
}
}在写入Claude的配置时 description 字段被删除,其他所有内容都被逐字复制。
看 sample-servers.json 以获取所有运输类型的完整示例。
用法
交互式管理(默认)
cc-setup打开一个包含所有注册服务器的全屏TUI。每个服务器都显示一个健康指示点、其传输类型、端点和身份验证方法。
密钥绑定:
| 关键 | 行动 |
|---|---|
space / x | 切换服务器选择 |
a | 添加新服务器 |
e / enter | 编辑所选服务器 |
d | 删除所选服务器 |
s | 将选择保存到Claude配置 |
i | 从Claude配置导入服务器 |
p | 切换到项目范围 |
u | 切换到用户范围 |
. | 在项目/用户范围之间切换 |
tab | 在MCP服务器、插件和权限选项卡之间切换 |
/ | 筛选服务器 |
q / esc | 退出 |
健康检查
当管理屏幕打开时,每个服务器都会被异步探测。状态显示为服务器名称旁边的彩色圆点:
- 绿色 (实心圆圈)-服务器已成功连接并初始化
- 黄色 (实心圆圈)-服务器可访问,但需要OAuth身份验证
- 红 (实心圆圈)-服务器无法访问或协议错误
- 暗淡 (空心圆)-检查仍在进行中
对于OAuth保护的服务器,CLI会自动使用Claude Code存储的令牌(请参阅 OAuth凭据重用 在......下面
继承的服务器
克劳德代码合并 .mcp.json 父目录中的文件。中定义的服务器 ~/Work/.mcp.json 在以下方面有效 ~/Work/myproject/ 即使没有当地人 .mcp.json. cc-setup 检测这些继承的服务器,并将其与本地配置的服务器一起显示,因此管理屏幕反映了实际的有效状态。
它是如何工作的:
在项目范围内, cc-setup 从当前目录向上走到文件系统根目录,读取 .mcp.json 一路上的文件。在父目录(也存在于中央注册表中)中找到的服务器以不同的视觉样式显示在列表中:
| 风格 | 含义 |
|---|---|
绿色 [x] | 本地配置并启用 |
绿色静音 [x] | 从父目录继承并启用 |
昏暗 [ ] | 未配置(普通服务器) |
灰色 [ ] | 继承但已禁用 |
继承的服务器在未聚焦时也会显示暗显的名称和详细文本,从而很容易一眼就能将其与本地管理的服务器区分开来。
冲突解决: 如果同一台服务器同时出现在本地 .mcp.json 本地定义获胜,服务器被视为非继承(正常样式)。在父目录中,最接近的父目录获胜。
保存继承服务器的行为:
- 检查继承的服务器是不允许保存的(它已经通过父配置处于活动状态,没有冗余条目写入本地
.mcp.json) - 取消选中继承的服务器会将其添加到
disabledMcpjsonServers在.claude/settings.local.json,告诉克劳德代码为该项目抑制它 - 重新检查以前禁用的继承服务器会将其从
disabledMcpjsonServers
详细视图: 按压 e/enter 在任何服务器上显示一个“源”字段,指示 .mcp.json 文件提供了服务器定义。
继承仅适用于项目范围。在用户范围内,不显示继承的服务器。
工具权限
输入服务器的详细信息视图(e/enter)并选择“工具权限”以发现其工具并配置Claude Code可以自动批准的工具。
- 权限已写入
settings.local.json(项目或用户范围) - 选择所有工具后,通配符条目(
mcp____*)使用 - 单个工具条目(
mcp____)为部分选择而写 - 中央配置
autoApprove字段保持同步
当服务器提供工具注释时,会显示工具注释:只读工具显示眼睛图标,破坏性工具显示警告图标。
以交互方式添加服务器
cc-setup add my-new-server以交互形式遍历传输类型、URL/命令、身份验证和描述。直接写入中央配置。
删除服务器
# Remove specific servers
cc-setup remove my-server another-server
# Interactive removal (no args)
cc-setup remove从现有配置导入
如果您已经在Claude Code中配置了服务器,请将它们导入中央配置:
cc-setup import这是从您的项目中读取的 .mcp.json,用户 ~/.claude.json,或两者兼而有之,并将它们合并到中央配置中。现有条目不会被覆盖。
打印版本
cc-setup version插件管理
插件选项卡(按 tab 切换)允许您控制每个项目中哪些Claude Code插件是活动的。与MCP服务器不同,插件不是通过中央配置管理的。相反, cc-setup 直接从Claude Code自己的插件缓存中发现插件(~/.claude/plugins/cache/).
安装、更新和删除插件仍然由Claude Code本身处理。什么 cc-setup 允许您根据作用域切换启用或禁用哪些已安装的插件。
它是如何工作的:
- 插件是从Claude Code的缓存目录中发现的
- 启用/禁用状态存储在
settings.json(用户或项目范围) - 用户范围(
~/.claude/settings.json)设定基线 - 项目范围(
.claude/settings.json)仅存储用户基线之上的覆盖 - 按
space/x切换单个插件,a切换全部
为什么这很重要: 插件为Claude的上下文添加了技能。一个拥有20种技能的插件,你只需要一种类型的项目,仍然会在其他所有项目中争夺注意力。在每个项目中禁用不相关的插件可以使技能选择更加集中。
权限管理
“权限”选项卡(按 tab 两次访问它)提供了跨内置工具、bash模式和MCP工具的所有Claude Code权限的统一视图。它支持三种状态控制、配置文件预设和范围感知继承权限。
三个州权限
每个权限有三个状态,循环使用 space:
| 状态 | 显示 | 含义 |
|---|---|---|
[+] | 绿色 | 允许:自动批准,无提示 |
[-] | 红色 | 拒绝:自动拒绝,克劳德不会尝试 |
[ ] | 昏暗 | 问:Claude每次都以交互方式提示 |
所有11个内置的Claude Code工具(Agent、Bash、Edit、Glob、Grep、Read、Skill、ToolSearch、WebFetch、WebSearch、Write)在列表中始终可见,无论其状态如何。
权限模式
按 m 要设置Claude Code权限模式,请执行以下操作:
| 模式 | 行为 |
|---|---|
default | 要求所有未明确允许的东西 |
acceptEdits | 自动批准文件编辑,要求进行其余操作 |
auto | AI分类器决定批准什么 |
bypassPermissions | 跳过所有权限检查 |
当 bypassPermissions 处于活动状态时,所有单独的权限都会变暗(由于所有内容都是自动批准的,因此它们毫无意义),并且切换被禁用。当切换回正常模式时,保存的状态会被保留和恢复。
档案
按 p 要应用权限预设,请执行以下操作:
- 只读YOLO:仅限非破坏性工具(读取、Glob、Grep、WebFetch、WebSearch、代理、技能、工具搜索)、安全bash模式和从所有配置的服务器自动分类的只读MCP工具。模式设置为
acceptEdits. - 完整YOLO:所有工具已启用,所有bash命令,所有服务器上的所有MCP工具。模式设置为
bypassPermissions. - 无:清除所有权限并将模式重置为
default.
配置文件在可用时使用注释(ReadOnlyHint、DestructiveHint)从所有配置的服务器中发现和分类MCP工具,并退回到基于名称的启发式方法(安全前缀,如 list, get, read vs不安全前缀,如 delete, write, execute).
自定义配置文件可以作为YAML文件放置在 ~/.config/cc-setup/profiles/.
添加权限
按 a 要使用引导流添加权限,请执行以下操作:
- 内置工具:从完整列表中选择
- Bash模式:从常用预设中选择或输入自定义图案
- MCP工具:选择服务器,然后选择选择策略:
- 所有工具(通配符) - 只读工具(自动分类,显示计数) - 选择单个工具(带复选框的多选)
范围和继承
权限遵循与服务器和插件相同的作用域模型:
- 用户范围 (
~/.claude/settings.local.json):全局默认值 - 项目范围 (
.claude/settings.local.json):项目特定覆盖
在项目范围内,用户范围权限显示为继承的(灰色/灰色)。切换继承的权限会创建项目级覆盖。
自动整合
保存时,冗余条目会自动清理:
- 仅评论bash条目(
Bash(# ...))已删除 - 删除重复项
- 去除通配符所包含的特定模式(例如。,
Bash(git:*)当Bash或Bash(*)存在) - 服务器通配符时删除特定的MCP工具条目(
mcp__server__*)存在
密钥绑定(“权限”选项卡):
| 关键 | 行动 |
|---|---|
space | 循环权限状态:请求->允许->拒绝->请求 |
a | 添加新权限(引导流) |
d | 删除权限(内置工具重置为询问) |
p | 应用预设配置文件 |
m | 更改权限模式 |
s | 将权限保存到磁盘 |
. | 在项目/用户范围之间切换 |
/ | 筛选权限 |
服务器类型
该工具支持所有克劳德代码MCP传输类型:
HTTP(可流式传输):
{
"description": "My HTTP server",
"type": "http",
"url": "https://example.com/mcp",
"headers": {
"Authorization": "Bearer your_token"
}
}SSE(服务器发送的事件):
{
"description": "My SSE server",
"type": "sse",
"url": "https://example.com/sse"
}stdio(本地进程):
{
"description": "Local MCP server",
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"],
"env": {
"SOME_VAR": "value"
}
}OAuth凭据重用
使用OAuth的MCP服务器(如谷歌认证服务器)通常显示为“需要认证”(黄点),因为CLI没有凭据。当Claude Code已经通过这些服务器的身份验证时,它们的OAuth令牌存储在 ~/.claude/.credentials.json.
cc-setup 读取这些存储的凭据,并在连接到匹配的服务器时自动将其作为承载令牌注入。这对于健康检查和工具发现是透明的。
它是如何工作的:
- 在每个HTTP/SSE连接上,CLI检查服务器定义是否没有静态
Authorization头球 - 如果是这样,它会在Claude Code中查找匹配的条目
mcpOAuth凭据(与服务器名称匹配) - 如果找到,则将访问令牌作为
Bearer每个请求的标题 - 如果令牌已过期,CLI将通过RFC 8414令牌端点发现使用存储的刷新令牌尝试刷新
- 刷新的令牌被写回
.credentials.json因此,Claude Code也从中受益
失败时的行为: 如果找不到凭据、令牌过期、刷新失败或发生任何其他错误,CLI将退回未经身份验证的请求。这与之前的行为相同,你只看到黄点而不是绿色。
具有静态功能的服务器 Authorization 在其定义中配置的标头永远不会用OAuth包装。Stdio服务器不受影响,因为它们不使用HTTP。
运作原理
该工具从以下位置读取服务器定义 ~/.config/cc-setup/mcp.json 并写入Claude Code的配置文件。选择服务器时:
- 所选服务器 写入目标配置(
.mcp.json或~/.claude.json),与description田地被剥离 - 继承的服务器 仍处于选中状态的未写入本地配置(它们已经通过父级处于活动状态
.mcp.json) - 未检查的服务器 (存在于中央配置中的)将从目标配置中删除
- 未经检查的继承服务器 已添加到
disabledMcpjsonServers在.claude/settings.local.json对于当前项目 - 未知服务器 (不在中央配置中)保持不变
这意味着您可以使用 cc-setup 以及手动配置的服务器,没有冲突。
文件
| 文件 | 目的 |
|---|---|
~/.config/cc-setup/mcp.json | 中央服务器注册表 |
~/.config/cc-setup/profiles/ | 权限配置文件(内置YAML文件,下划线前缀) |
~/.claude.json | Claude Code用户全局配置 |
.mcp.json | Claude Code项目本地配置(也从父目录读取以进行继承) |
~/.claude/settings.local.json | 用户范围权限(permissions.allow, permissions.deny) |
~/.claude/settings.json | 用户范围权限模式(permissions.defaultMode)并启用插件 |
.claude/settings.local.json | 项目范围的权限和 disabledMcpjsonServers |
.claude/settings.json | 项目范围的权限模式和插件覆盖 |
~/.claude/.credentials.json | Claude Code的OAuth令牌(此工具只读,令牌刷新回写除外) |
