克劳德MCP发射器
Claude Code的启动器,控制启动时加载哪些MCP(模型上下文协议)服务器,减少令牌使用并缩短启动时间。
特性
- Rube始终处于活动状态:Rube MCP(通过Composio集成500多个应用程序)始终处于启用状态
- 简单命令:针对不同MCP配置的三个不同命令
- 代币高效:仅加载当前任务所需的内容
- 自动还原:Claude退出时自动恢复原始配置
命令
| 命令 | 描述 |
|---|---|
claude | 仅限Rube(默认,启动速度最快) |
claude-all | 所有MCP均已启用 |
claude-custom | 交互式选择菜单 |
预览
违约: claude
→ Starting with Rube only...所有MCP: claude-all
→ Starting with all MCPs...自定义选择: claude-custom
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Select MCPs (Rube always included)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[1] chrome-devtools
[2] figma
[3] firecrawl
[4] gtm
[5] notion
Enter numbers (space-separated): 1 5
→ Starting with: rube chrome-devtools notion为什么使用这个?
MCP在Claude Code启动时加载,并不断消耗令牌。如果您在会话中没有使用某些MCP,加载它们会浪费资源:
- 令牌效率:即使未使用,MCP也会增加您的令牌计数
- 更快的启动:更少的MCP=更快的初始化
- 选择性加载:仅加载当前任务所需的内容
为什么Rube总是很活跃
Rube(Composio)提供500多个应用程序集成,可按需获取工具。与其他在启动时加载所有工具的MCP不同,Rube仅在您实际使用时消耗令牌。这使得在提供对Gmail、Slack、GitHub、Sheets和数百个其他服务的访问时,始终保持启用状态变得高效。
安装
需求
- jq:JSON处理器(配置操作所需)
- macOS/Linux/WSL环境
- 已安装克劳德代码
安装依赖项:
# macOS
brew install jq
# Ubuntu/Debian
sudo apt-get install jq
# Fedora/RHEL
sudo dnf install jq选项1:外壳功能(推荐)
将此添加到您的 ~/.zshrc 或 ~/.bashrc:
# Claude Code launchers with MCP control
# Rube is ALWAYS active (500+ app integrations via Composio)
_claude_mcp_helper() {
local CONFIG="$HOME/.claude.json"
local BACKUP="$HOME/.claude.json.bak"
local mode="$1"
shift
[[ -f "$BACKUP" ]] && mv "$BACKUP" "$CONFIG"
_build_rube_only() {
local server_config=$(jq -c '.mcpServers.rube' "$BACKUP" 2>/dev/null)
if [[ "$server_config" != "null" && -n "$server_config" ]]; then
echo "{\"rube\":$server_config}"
else
echo "{}"
fi
}
case "$mode" in
all)
echo "→ Starting with all MCPs..."
;;
custom)
local all_mcps=($(jq -r '.mcpServers | keys[]' "$CONFIG" 2>/dev/null))
local mcps=()
for mcp in "${all_mcps[@]}"; do
[[ "$mcp" != "rube" ]] && mcps+=("$mcp")
done
if [[ ${#mcps[@]} -eq 0 ]]; then
echo "→ No optional MCPs. Starting with Rube only..."
cp "$CONFIG" "$BACKUP"
jq --argjson servers "$(_build_rube_only)" '.mcpServers = $servers' "$BACKUP" > "$CONFIG"
else
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo " Select MCPs (Rube always included)"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo ""
local i=1
for mcp in "${mcps[@]}"; do
echo " [$i] $mcp"
((i++))
done
echo ""
# Use zsh-style read for zsh, bash-style for bash
if [[ -n "$ZSH_VERSION" ]]; then
read "?Enter numbers (space-separated): " selections
else
read -p "Enter numbers (space-separated): " selections
fi
local selected_mcps=()
for num in $selections; do
if [[ "$num" =~ ^[0-9]+$ ]] && (( num >= 1 && num /dev/null)
if [[ "$server_config" != "null" && -n "$server_config" ]]; then
new_servers="${new_servers}\"rube\":$server_config"
first=false
fi
for mcp in "${selected_mcps[@]}"; do
server_config=$(jq -c ".mcpServers.\"$mcp\"" "$BACKUP")
if [[ "$first" == true ]]; then
new_servers="${new_servers}\"$mcp\":$server_config"
first=false
else
new_servers="${new_servers},\"$mcp\":$server_config"
fi
done
new_servers="${new_servers}}"
if [[ ${#selected_mcps[@]} -eq 0 ]]; then
echo "→ Starting with Rube only..."
else
echo "→ Starting with: rube ${selected_mcps[*]}"
fi
jq --argjson servers "$new_servers" '.mcpServers = $servers' "$BACKUP" > "$CONFIG"
fi
;;
*)
echo "→ Starting with Rube only..."
cp "$CONFIG" "$BACKUP"
jq --argjson servers "$(_build_rube_only)" '.mcpServers = $servers' "$BACKUP" > "$CONFIG"
;;
esac
command claude "$@"
if [[ -f "$BACKUP" ]]; then
mv "$BACKUP" "$CONFIG"
echo "→ Config restored"
fi
}
claude() { _claude_mcp_helper "rube" "$@"; }
claude-all() { _claude_mcp_helper "all" "$@"; }
claude-custom() { _claude_mcp_helper "custom" "$@"; }然后重新加载shell:
source ~/.zshrc # or ~/.bashrc选项2:获取脚本
- 克隆存储库:
git clone https://github.com/displace-agency/claude-mcp-launcher.git- 在shell配置中获取它:
echo 'source "/path/to/claude-mcp-launcher/claude-start.sh"' >> ~/.zshrc- 重新加载你的shell:
source ~/.zshrc运作原理
- 备份:创建您的备份
~/.claude.json配置 - 修改:过滤
mcpServers根据您的选择(始终包括Rube) - 发射:使用修改后的配置启动Claude代码
- 恢复:Claude退出时自动恢复原始配置
即使Claude崩溃,您的原始配置也会始终保留和恢复。
配置
启动器从您的 ~/.claude.json 文件下 mcpServers 钥匙。必须配置Rube以使“始终活动”功能工作。
示例 ~/.claude.json 结构:
{
"mcpServers": {
"rube": {
"type": "http",
"url": "https://rube.app/mcp",
"headers": { "Authorization": "Bearer YOUR_TOKEN" }
},
"notion": { ... },
"figma": { ... }
}
}定制
更改始终活动的MCP
要更改始终处于活动状态的MCP,请修改 _build_rube_only 功能以引用不同的MCP名称或添加多个始终活动的MCP。
添加更多始终处于活动状态的MCP
编辑辅助函数以在中包含其他MCP _build_rube_only 功能。
故障排除
“未找到可选MCP”
你的 ~/.claude.json 仅配置了Rube或根本没有MCP。通过Claude Code设置添加更多MCP。
配置未还原
如果克劳德崩溃,备份可能会保留。启动器会在下次运行时自动恢复,或手动恢复:
mv ~/.claude.json.bak ~/.claude.json找不到jq
安装jq(见上面的需求部分)。
更新日志
v2.0.0(2025-01-25)
重大变更:
- 删除每次启动时的交互式提示
- 从单曲改为
claude带菜单的命令可转换为三个不同的命令
新功能:
claude-仅以Rube开头(无提示,立即启动)claude-all-从所有MCP开始claude-custom-交互式MCP选择- Rube现在始终处于活动状态,无法禁用
为什么会发生这种变化: 交互式提示导致Claude Code的终端处理出现问题,有时在用户做出选择之前就被中断了。对于常见情况(仅限Rube),新的基于命令的方法更可靠、更快。
v1.0.0(2025-01-24)
- 带有交互式菜单的初始版本
贡献
欢迎投稿!请随时提交拉取请求。
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
相关项目
- 克劳德雕像线增强 -Claude Code的增强状态线
支持
如有任何问题或疑问,请 打开一个问题.
______________________________________________________________________
注: 这是一个社区项目,与Anthropic没有正式联系。
