Skip to content

Commit 4931152

Browse files
MrFlounderclaude
andcommitted
fix: copy .mcp.json instead of updating settings.json for MCP sync
Claude Code reads MCP servers from .mcp.json in the project directory, not from ~/.claude/settings.json. Updated sync_mcp_servers to copy the .mcp.json file from main repo to new workspaces. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 0070e4a commit 4931152

1 file changed

Lines changed: 6 additions & 23 deletions

File tree

src/crabcode

Lines changed: 6 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -145,35 +145,18 @@ validate_config() {
145145
fi
146146
}
147147

148-
# Sync MCP servers from main repo to workspace in Claude Code settings
148+
# Sync MCP config from main repo to workspace
149+
# Claude Code reads MCP servers from .mcp.json in the project directory
149150
sync_mcp_servers() {
150151
local workspace_dir=$1
151152
local main_repo=$(config_get "main_repo" "")
152153

153154
[ -z "$main_repo" ] && return
154155

155-
local claude_settings="$HOME/.claude/settings.json"
156-
[ ! -f "$claude_settings" ] && return
157-
158-
# Check if jq is available
159-
if ! command -v jq &>/dev/null; then
160-
return
161-
fi
162-
163-
# Get MCP servers from main repo
164-
local mcp_servers=$(jq -r --arg repo "$main_repo" '.projects[$repo].mcpServers // empty' "$claude_settings" 2>/dev/null)
165-
166-
# If main repo has no MCP servers, nothing to sync
167-
[ -z "$mcp_servers" ] || [ "$mcp_servers" = "null" ] || [ "$mcp_servers" = "{}" ] && return
168-
169-
# Update workspace's MCP servers
170-
local tmp_file=$(mktemp)
171-
if jq --arg ws "$workspace_dir" --argjson mcp "$mcp_servers" \
172-
'.projects[$ws].mcpServers = $mcp' "$claude_settings" > "$tmp_file" 2>/dev/null; then
173-
mv "$tmp_file" "$claude_settings"
174-
echo -e "${GREEN}Synced MCP servers from main repo${NC}"
175-
else
176-
rm -f "$tmp_file"
156+
# Copy .mcp.json if it exists in main repo (this is where Claude Code reads MCP config)
157+
if [ -f "$main_repo/.mcp.json" ]; then
158+
cp "$main_repo/.mcp.json" "$workspace_dir/.mcp.json"
159+
echo -e "${GREEN}Copied .mcp.json from main repo${NC}"
177160
fi
178161
}
179162

0 commit comments

Comments
 (0)