From 272908181bf80cbff2052ae7088aec9fbb817bf2 Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 21 Jan 2026 11:42:59 +0000 Subject: [PATCH 1/6] feat(coder/modules/claude-code): add support for MCP server configurations from remote URLs --- registry/coder/modules/claude-code/README.md | 21 ++++++++++ registry/coder/modules/claude-code/main.tf | 7 ++++ .../coder/modules/claude-code/main.tftest.hcl | 28 +++++++++++++ .../modules/claude-code/scripts/install.sh | 41 +++++++++++++++---- 4 files changed, 90 insertions(+), 7 deletions(-) diff --git a/registry/coder/modules/claude-code/README.md b/registry/coder/modules/claude-code/README.md index eff7dfdd1..d31cf3be6 100644 --- a/registry/coder/modules/claude-code/README.md +++ b/registry/coder/modules/claude-code/README.md @@ -139,9 +139,30 @@ module "claude-code" { } } EOF + + mcp_remote_urls = [ + "https://gist.githubusercontent.com/35C4n0r/cd8dce70360e5d22a070ae21893caed4/raw/", # Format gist.githubusercontent.com///raw/(optional: //) + "https://raw.githubusercontent.com/coder/coder/main/.mcp.json" # Format: raw.githubusercontent.com//// + ] } ``` +> [!NOTE] +> Remote URLs should return a JSON body in the following format: +> +> ```json +> { +> "mcpServers": { +> "server-name": { +> "command": "some-command", +> "args": ["arg1", "arg2"] +> } +> } +> } +> ``` +> +> The `Content-Type` header doesn't matter—both `text/plain` and `application/json` work fine. + ### Standalone Mode Run and configure Claude Code as a standalone CLI in your workspace. diff --git a/registry/coder/modules/claude-code/main.tf b/registry/coder/modules/claude-code/main.tf index dd5402790..3f8815567 100644 --- a/registry/coder/modules/claude-code/main.tf +++ b/registry/coder/modules/claude-code/main.tf @@ -166,6 +166,12 @@ variable "mcp" { default = "" } +variable "mcp_remote_urls" { + type = list(string) + description = "List of URLs that return JSON MCP server configurations (text/plain with valid JSON)" + default = [] +} + variable "allowed_tools" { type = string description = "A list of tools that should be allowed without prompting the user for permission, in addition to settings.json files." @@ -404,6 +410,7 @@ module "agentapi" { ARG_ALLOWED_TOOLS='${var.allowed_tools}' \ ARG_DISALLOWED_TOOLS='${var.disallowed_tools}' \ ARG_MCP='${var.mcp != null ? base64encode(replace(var.mcp, "'", "'\\''")) : ""}' \ + ARG_MCP_REMOTE_URLS='${base64encode(jsonencode(var.mcp_remote_urls))}' \ ARG_ENABLE_AIBRIDGE='${var.enable_aibridge}' \ /tmp/install.sh EOT diff --git a/registry/coder/modules/claude-code/main.tftest.hcl b/registry/coder/modules/claude-code/main.tftest.hcl index 55106170f..1eb64ecd1 100644 --- a/registry/coder/modules/claude-code/main.tftest.hcl +++ b/registry/coder/modules/claude-code/main.tftest.hcl @@ -152,6 +152,34 @@ run "test_claude_code_with_mcp_and_tools" { } } +run "test_claude_code_with_mcp_remote_urls" { + command = plan + + variables { + agent_id = "test-agent-mcp-remote" + workdir = "/home/coder/mcp-remote-test" + mcp_remote_urls = [ + "https://example.com/mcp-config.json", + "https://another.example.com/servers.json" + ] + } + + assert { + condition = length(var.mcp_remote_urls) == 2 + error_message = "MCP remote URLs should have 2 entries" + } + + assert { + condition = var.mcp_remote_urls[0] == "https://example.com/mcp-config.json" + error_message = "First MCP remote URL should be set correctly" + } + + assert { + condition = var.mcp_remote_urls[1] == "https://another.example.com/servers.json" + error_message = "Second MCP remote URL should be set correctly" + } +} + run "test_claude_code_with_scripts" { command = plan diff --git a/registry/coder/modules/claude-code/scripts/install.sh b/registry/coder/modules/claude-code/scripts/install.sh index 07e199c18..10c8d2bad 100644 --- a/registry/coder/modules/claude-code/scripts/install.sh +++ b/registry/coder/modules/claude-code/scripts/install.sh @@ -16,6 +16,7 @@ ARG_INSTALL_VIA_NPM=${ARG_INSTALL_VIA_NPM:-false} ARG_REPORT_TASKS=${ARG_REPORT_TASKS:-true} ARG_MCP_APP_STATUS_SLUG=${ARG_MCP_APP_STATUS_SLUG:-} ARG_MCP=$(echo -n "${ARG_MCP:-}" | base64 -d) +ARG_MCP_REMOTE_URLS=$(echo -n "${ARG_MCP_REMOTE_URLS:-}" | base64 -d) ARG_ALLOWED_TOOLS=${ARG_ALLOWED_TOOLS:-} ARG_DISALLOWED_TOOLS=${ARG_DISALLOWED_TOOLS:-} ARG_ENABLE_AIBRIDGE=${ARG_ENABLE_AIBRIDGE:-false} @@ -30,12 +31,26 @@ printf "ARG_INSTALL_VIA_NPM: %s\n" "$ARG_INSTALL_VIA_NPM" printf "ARG_REPORT_TASKS: %s\n" "$ARG_REPORT_TASKS" printf "ARG_MCP_APP_STATUS_SLUG: %s\n" "$ARG_MCP_APP_STATUS_SLUG" printf "ARG_MCP: %s\n" "$ARG_MCP" +printf "ARG_MCP_REMOTE_URLS: %s\n" "$ARG_MCP_REMOTE_URLS" printf "ARG_ALLOWED_TOOLS: %s\n" "$ARG_ALLOWED_TOOLS" printf "ARG_DISALLOWED_TOOLS: %s\n" "$ARG_DISALLOWED_TOOLS" printf "ARG_ENABLE_AIBRIDGE: %s\n" "$ARG_ENABLE_AIBRIDGE" echo "--------------------------------" +function add_mcp_servers() { + local mcp_json="$1" + local source_desc="$2" + + while IFS= read -r server_name && IFS= read -r server_json; do + echo "------------------------" + echo "Executing: claude mcp add-json \"$server_name\" '$server_json' ($source_desc)" + claude mcp add-json "$server_name" "$server_json" || echo "Warning: Failed to add MCP server '$server_name', continuing..." + echo "------------------------" + echo "" + done < <(echo "$mcp_json" | jq -r '.mcpServers | to_entries[] | .key, (.value | @json)') +} + function ensure_claude_in_path() { if [ -z "${CODER_SCRIPT_BIN_DIR:-}" ]; then echo "CODER_SCRIPT_BIN_DIR not set, skipping PATH setup" @@ -112,13 +127,25 @@ function setup_claude_configurations() { if [ "$ARG_MCP" != "" ]; then ( cd "$ARG_WORKDIR" - while IFS= read -r server_name && IFS= read -r server_json; do - echo "------------------------" - echo "Executing: claude mcp add-json \"$server_name\" '$server_json' (in $ARG_WORKDIR)" - claude mcp add-json "$server_name" "$server_json" || echo "Warning: Failed to add MCP server '$server_name', continuing..." - echo "------------------------" - echo "" - done < <(echo "$ARG_MCP" | jq -r '.mcpServers | to_entries[] | .key, (.value | @json)') + add_mcp_servers "$ARG_MCP" "in $ARG_WORKDIR" + ) + fi + + if [ -n "$ARG_MCP_REMOTE_URLS" ] && [ "$ARG_MCP_REMOTE_URLS" != "[]" ]; then + ( + cd "$ARG_WORKDIR" + for url in $(echo "$ARG_MCP_REMOTE_URLS" | jq -r '.[]'); do + echo "Fetching MCP configuration from: $url" + mcp_json=$(curl -fsSL "$url") || { + echo "Warning: Failed to fetch MCP configuration from '$url', continuing..." + continue + } + if ! echo "$mcp_json" | jq -e '.mcpServers' > /dev/null 2>&1; then + echo "Warning: Invalid MCP configuration from '$url' (missing mcpServers), continuing..." + continue + fi + add_mcp_servers "$mcp_json" "from $url" + done ) fi From 351370bcc79c7f0e1275cf703205c62c4509276d Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 21 Jan 2026 11:59:35 +0000 Subject: [PATCH 2/6] chore: bump version --- registry/coder/modules/claude-code/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/registry/coder/modules/claude-code/README.md b/registry/coder/modules/claude-code/README.md index d31cf3be6..0d18ec0b3 100644 --- a/registry/coder/modules/claude-code/README.md +++ b/registry/coder/modules/claude-code/README.md @@ -13,7 +13,7 @@ Run the [Claude Code](https://docs.anthropic.com/en/docs/agents-and-tools/claude ```tf module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" claude_api_key = "xxxx-xxxxx-xxxx" @@ -45,7 +45,7 @@ This example shows how to configure the Claude Code module to run the agent behi ```tf module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" enable_boundary = true @@ -64,7 +64,7 @@ For tasks integration with AI Bridge, add `enable_aibridge = true` to the [Usage ```tf module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" enable_aibridge = true @@ -93,7 +93,7 @@ data "coder_task" "me" {} module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" claude_api_key = "xxxx-xxxxx-xxxx" @@ -114,7 +114,7 @@ This example shows additional configuration options for version pinning, custom ```tf module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" @@ -142,7 +142,7 @@ module "claude-code" { mcp_remote_urls = [ "https://gist.githubusercontent.com/35C4n0r/cd8dce70360e5d22a070ae21893caed4/raw/", # Format gist.githubusercontent.com///raw/(optional: //) - "https://raw.githubusercontent.com/coder/coder/main/.mcp.json" # Format: raw.githubusercontent.com//// + "https://raw.githubusercontent.com/coder/coder/main/.mcp.json" # Format: raw.githubusercontent.com//// ] } ``` @@ -170,7 +170,7 @@ Run and configure Claude Code as a standalone CLI in your workspace. ```tf module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" install_claude_code = true @@ -192,7 +192,7 @@ variable "claude_code_oauth_token" { module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" claude_code_oauth_token = var.claude_code_oauth_token @@ -265,7 +265,7 @@ resource "coder_env" "bedrock_api_key" { module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" model = "global.anthropic.claude-sonnet-4-5-20250929-v1:0" @@ -322,7 +322,7 @@ resource "coder_env" "google_application_credentials" { module "claude-code" { source = "registry.coder.com/coder/claude-code/coder" - version = "4.5.0" + version = "4.6.0" agent_id = coder_agent.main.id workdir = "/home/coder/project" model = "claude-sonnet-4@20250514" From a6b2be0aca6ad620b5c0e484d9d0b4e48c249eca Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 21 Jan 2026 12:13:59 +0000 Subject: [PATCH 3/6] test(coder/modules/claude-code): add tests for MCP remote URL fetch success and failure --- .../coder/modules/claude-code/main.test.ts | 50 +++++++++++++++++++ .../coder/modules/claude-code/main.tftest.hcl | 26 ---------- 2 files changed, 50 insertions(+), 26 deletions(-) diff --git a/registry/coder/modules/claude-code/main.test.ts b/registry/coder/modules/claude-code/main.test.ts index d59b6a8f4..6a526b6c9 100644 --- a/registry/coder/modules/claude-code/main.test.ts +++ b/registry/coder/modules/claude-code/main.test.ts @@ -461,4 +461,54 @@ EOF`, expect(startLog.stdout).toContain(taskSessionId); expect(startLog.stdout).not.toContain("manual-456"); }); + + test("mcp-remote-urls", async () => { + const failingUrl = "http://localhost:19999/mcp.json"; + const successUrl = + "https://raw.githubusercontent.com/coder/coder/main/.mcp.json"; + + const { id, coderEnvVars } = await setup({ + skipClaudeMock: true, + moduleVariables: { + mcp_remote_urls: JSON.stringify([failingUrl, successUrl]), + }, + }); + await execModuleScript(id, coderEnvVars); + + const installLog = await readFileContainer( + id, + "/home/coder/.claude-module/install.log", + ); + + // Verify both URLs are attempted + expect(installLog).toContain(failingUrl); + expect(installLog).toContain(successUrl); + + // First URL should fail gracefully + expect(installLog).toContain( + `Warning: Failed to fetch MCP configuration from '${failingUrl}'`, + ); + + // Second URL should succeed - no failure warning for it + expect(installLog).not.toContain( + `Warning: Failed to fetch MCP configuration from '${successUrl}'`, + ); + + // Should contain the MCP server add command from successful fetch + expect(installLog).toContain( + "Added stdio MCP server go-language-server to local config", + ); + + expect(installLog).toContain( + "Added stdio MCP server typescript-language-server to local config", + ); + + // Verify the MCP config was added to claude.json + const claudeConfig = await readFileContainer( + id, + "/home/coder/.claude.json", + ); + expect(claudeConfig).toContain("typescript-language-server"); + expect(claudeConfig).toContain("go-language-server"); + }); }); diff --git a/registry/coder/modules/claude-code/main.tftest.hcl b/registry/coder/modules/claude-code/main.tftest.hcl index 1eb64ecd1..40c9bc787 100644 --- a/registry/coder/modules/claude-code/main.tftest.hcl +++ b/registry/coder/modules/claude-code/main.tftest.hcl @@ -381,29 +381,3 @@ run "test_aibridge_validation_with_oauth_token" { var.enable_aibridge, ] } - -run "test_aibridge_disabled_with_api_key" { - command = plan - - variables { - agent_id = "test-agent-no-aibridge" - workdir = "/home/coder/test" - enable_aibridge = false - claude_api_key = "test-api-key-xyz" - } - - assert { - condition = var.enable_aibridge == false - error_message = "AI Bridge should be disabled" - } - - assert { - condition = coder_env.claude_api_key.value == "test-api-key-xyz" - error_message = "CLAUDE_API_KEY should use the provided API key when aibridge is disabled" - } - - assert { - condition = length(coder_env.anthropic_base_url) == 0 - error_message = "ANTHROPIC_BASE_URL should not be set when aibridge is disabled" - } -} From 1cab9ae9ca1dca9a5fdef37c9f2513419d844870 Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 21 Jan 2026 12:15:56 +0000 Subject: [PATCH 4/6] reroll --- .../coder/modules/claude-code/main.tftest.hcl | 54 +++++++++---------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/registry/coder/modules/claude-code/main.tftest.hcl b/registry/coder/modules/claude-code/main.tftest.hcl index 40c9bc787..55106170f 100644 --- a/registry/coder/modules/claude-code/main.tftest.hcl +++ b/registry/coder/modules/claude-code/main.tftest.hcl @@ -152,34 +152,6 @@ run "test_claude_code_with_mcp_and_tools" { } } -run "test_claude_code_with_mcp_remote_urls" { - command = plan - - variables { - agent_id = "test-agent-mcp-remote" - workdir = "/home/coder/mcp-remote-test" - mcp_remote_urls = [ - "https://example.com/mcp-config.json", - "https://another.example.com/servers.json" - ] - } - - assert { - condition = length(var.mcp_remote_urls) == 2 - error_message = "MCP remote URLs should have 2 entries" - } - - assert { - condition = var.mcp_remote_urls[0] == "https://example.com/mcp-config.json" - error_message = "First MCP remote URL should be set correctly" - } - - assert { - condition = var.mcp_remote_urls[1] == "https://another.example.com/servers.json" - error_message = "Second MCP remote URL should be set correctly" - } -} - run "test_claude_code_with_scripts" { command = plan @@ -381,3 +353,29 @@ run "test_aibridge_validation_with_oauth_token" { var.enable_aibridge, ] } + +run "test_aibridge_disabled_with_api_key" { + command = plan + + variables { + agent_id = "test-agent-no-aibridge" + workdir = "/home/coder/test" + enable_aibridge = false + claude_api_key = "test-api-key-xyz" + } + + assert { + condition = var.enable_aibridge == false + error_message = "AI Bridge should be disabled" + } + + assert { + condition = coder_env.claude_api_key.value == "test-api-key-xyz" + error_message = "CLAUDE_API_KEY should use the provided API key when aibridge is disabled" + } + + assert { + condition = length(coder_env.anthropic_base_url) == 0 + error_message = "ANTHROPIC_BASE_URL should not be set when aibridge is disabled" + } +} From 3abcbd2724affea824b12456bdc66a401d9074df Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 21 Jan 2026 12:44:18 +0000 Subject: [PATCH 5/6] feat: refactor variable name to avoid confusion --- registry/coder/modules/claude-code/README.md | 2 +- registry/coder/modules/claude-code/main.test.ts | 4 ++-- registry/coder/modules/claude-code/main.tf | 4 ++-- registry/coder/modules/claude-code/scripts/install.sh | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/registry/coder/modules/claude-code/README.md b/registry/coder/modules/claude-code/README.md index 0d18ec0b3..f1a191576 100644 --- a/registry/coder/modules/claude-code/README.md +++ b/registry/coder/modules/claude-code/README.md @@ -140,7 +140,7 @@ module "claude-code" { } EOF - mcp_remote_urls = [ + mcp_config_remote_path = [ "https://gist.githubusercontent.com/35C4n0r/cd8dce70360e5d22a070ae21893caed4/raw/", # Format gist.githubusercontent.com///raw/(optional: //) "https://raw.githubusercontent.com/coder/coder/main/.mcp.json" # Format: raw.githubusercontent.com//// ] diff --git a/registry/coder/modules/claude-code/main.test.ts b/registry/coder/modules/claude-code/main.test.ts index 6a526b6c9..19ab98c04 100644 --- a/registry/coder/modules/claude-code/main.test.ts +++ b/registry/coder/modules/claude-code/main.test.ts @@ -462,7 +462,7 @@ EOF`, expect(startLog.stdout).not.toContain("manual-456"); }); - test("mcp-remote-urls", async () => { + test("mcp-config-remote-path", async () => { const failingUrl = "http://localhost:19999/mcp.json"; const successUrl = "https://raw.githubusercontent.com/coder/coder/main/.mcp.json"; @@ -470,7 +470,7 @@ EOF`, const { id, coderEnvVars } = await setup({ skipClaudeMock: true, moduleVariables: { - mcp_remote_urls: JSON.stringify([failingUrl, successUrl]), + mcp_config_remote_path: JSON.stringify([failingUrl, successUrl]), }, }); await execModuleScript(id, coderEnvVars); diff --git a/registry/coder/modules/claude-code/main.tf b/registry/coder/modules/claude-code/main.tf index 3f8815567..3a1128b48 100644 --- a/registry/coder/modules/claude-code/main.tf +++ b/registry/coder/modules/claude-code/main.tf @@ -166,7 +166,7 @@ variable "mcp" { default = "" } -variable "mcp_remote_urls" { +variable "mcp_config_remote_path" { type = list(string) description = "List of URLs that return JSON MCP server configurations (text/plain with valid JSON)" default = [] @@ -410,7 +410,7 @@ module "agentapi" { ARG_ALLOWED_TOOLS='${var.allowed_tools}' \ ARG_DISALLOWED_TOOLS='${var.disallowed_tools}' \ ARG_MCP='${var.mcp != null ? base64encode(replace(var.mcp, "'", "'\\''")) : ""}' \ - ARG_MCP_REMOTE_URLS='${base64encode(jsonencode(var.mcp_remote_urls))}' \ + ARG_MCP_CONFIG_REMOTE_PATH='${base64encode(jsonencode(var.mcp_config_remote_path))}' \ ARG_ENABLE_AIBRIDGE='${var.enable_aibridge}' \ /tmp/install.sh EOT diff --git a/registry/coder/modules/claude-code/scripts/install.sh b/registry/coder/modules/claude-code/scripts/install.sh index 10c8d2bad..b8e4fba2b 100644 --- a/registry/coder/modules/claude-code/scripts/install.sh +++ b/registry/coder/modules/claude-code/scripts/install.sh @@ -16,7 +16,7 @@ ARG_INSTALL_VIA_NPM=${ARG_INSTALL_VIA_NPM:-false} ARG_REPORT_TASKS=${ARG_REPORT_TASKS:-true} ARG_MCP_APP_STATUS_SLUG=${ARG_MCP_APP_STATUS_SLUG:-} ARG_MCP=$(echo -n "${ARG_MCP:-}" | base64 -d) -ARG_MCP_REMOTE_URLS=$(echo -n "${ARG_MCP_REMOTE_URLS:-}" | base64 -d) +ARG_MCP_CONFIG_REMOTE_PATH=$(echo -n "${ARG_MCP_CONFIG_REMOTE_PATH:-}" | base64 -d) ARG_ALLOWED_TOOLS=${ARG_ALLOWED_TOOLS:-} ARG_DISALLOWED_TOOLS=${ARG_DISALLOWED_TOOLS:-} ARG_ENABLE_AIBRIDGE=${ARG_ENABLE_AIBRIDGE:-false} @@ -31,7 +31,7 @@ printf "ARG_INSTALL_VIA_NPM: %s\n" "$ARG_INSTALL_VIA_NPM" printf "ARG_REPORT_TASKS: %s\n" "$ARG_REPORT_TASKS" printf "ARG_MCP_APP_STATUS_SLUG: %s\n" "$ARG_MCP_APP_STATUS_SLUG" printf "ARG_MCP: %s\n" "$ARG_MCP" -printf "ARG_MCP_REMOTE_URLS: %s\n" "$ARG_MCP_REMOTE_URLS" +printf "ARG_MCP_CONFIG_REMOTE_PATH: %s\n" "$ARG_MCP_CONFIG_REMOTE_PATH" printf "ARG_ALLOWED_TOOLS: %s\n" "$ARG_ALLOWED_TOOLS" printf "ARG_DISALLOWED_TOOLS: %s\n" "$ARG_DISALLOWED_TOOLS" printf "ARG_ENABLE_AIBRIDGE: %s\n" "$ARG_ENABLE_AIBRIDGE" @@ -131,10 +131,10 @@ function setup_claude_configurations() { ) fi - if [ -n "$ARG_MCP_REMOTE_URLS" ] && [ "$ARG_MCP_REMOTE_URLS" != "[]" ]; then + if [ -n "$ARG_MCP_CONFIG_REMOTE_PATH" ] && [ "$ARG_MCP_CONFIG_REMOTE_PATH" != "[]" ]; then ( cd "$ARG_WORKDIR" - for url in $(echo "$ARG_MCP_REMOTE_URLS" | jq -r '.[]'); do + for url in $(echo "$ARG_MCP_CONFIG_REMOTE_PATH" | jq -r '.[]'); do echo "Fetching MCP configuration from: $url" mcp_json=$(curl -fsSL "$url") || { echo "Warning: Failed to fetch MCP configuration from '$url', continuing..." From 3760df10c9baae0c9aa6f0c149ab541f3a878c7d Mon Sep 17 00:00:00 2001 From: 35C4n0r Date: Wed, 21 Jan 2026 16:24:37 +0000 Subject: [PATCH 6/6] chore: remove format as it might be confusing --- registry/coder/modules/claude-code/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/registry/coder/modules/claude-code/README.md b/registry/coder/modules/claude-code/README.md index f1a191576..8e98a880a 100644 --- a/registry/coder/modules/claude-code/README.md +++ b/registry/coder/modules/claude-code/README.md @@ -141,8 +141,8 @@ module "claude-code" { EOF mcp_config_remote_path = [ - "https://gist.githubusercontent.com/35C4n0r/cd8dce70360e5d22a070ae21893caed4/raw/", # Format gist.githubusercontent.com///raw/(optional: //) - "https://raw.githubusercontent.com/coder/coder/main/.mcp.json" # Format: raw.githubusercontent.com//// + "https://gist.githubusercontent.com/35C4n0r/cd8dce70360e5d22a070ae21893caed4/raw/", + "https://raw.githubusercontent.com/coder/coder/main/.mcp.json" ] } ```