From 6e90064160031dea7c1bbdaaed203fa20e8830eb Mon Sep 17 00:00:00 2001 From: lmiranda Date: Wed, 28 Jan 2026 11:43:07 -0500 Subject: [PATCH] fix(mcp): capture CLAUDE_PROJECT_DIR from PWD before cd All MCP server run.sh scripts now capture the original working directory as CLAUDE_PROJECT_DIR before changing to the script directory. This fixes the branch detection issue where MCP tools detected the plugin repo's branch instead of the user's project branch. This is a follow-up fix to #231 - the original fix relied on CLAUDE_PROJECT_DIR being set by Claude Code, but it isn't. Now we capture it ourselves from PWD at startup time. Closes #231 (proper fix) Co-Authored-By: Claude Opus 4.5 --- mcp-servers/contract-validator/run.sh | 4 ++++ mcp-servers/data-platform/run.sh | 4 ++++ mcp-servers/gitea/run.sh | 4 ++++ mcp-servers/netbox/run.sh | 4 ++++ mcp-servers/viz-platform/run.sh | 4 ++++ 5 files changed, 20 insertions(+) diff --git a/mcp-servers/contract-validator/run.sh b/mcp-servers/contract-validator/run.sh index 38e185c..570a918 100755 --- a/mcp-servers/contract-validator/run.sh +++ b/mcp-servers/contract-validator/run.sh @@ -1,4 +1,8 @@ #!/bin/bash +# Capture original working directory before any cd operations +# This should be the user's project directory when launched by Claude Code +export CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$PWD}" + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CACHE_VENV="$HOME/.cache/claude-mcp-venvs/leo-claude-mktplace/contract-validator/.venv" LOCAL_VENV="$SCRIPT_DIR/.venv" diff --git a/mcp-servers/data-platform/run.sh b/mcp-servers/data-platform/run.sh index 0f60ec1..6f037e3 100755 --- a/mcp-servers/data-platform/run.sh +++ b/mcp-servers/data-platform/run.sh @@ -1,4 +1,8 @@ #!/bin/bash +# Capture original working directory before any cd operations +# This should be the user's project directory when launched by Claude Code +export CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$PWD}" + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CACHE_VENV="$HOME/.cache/claude-mcp-venvs/leo-claude-mktplace/data-platform/.venv" LOCAL_VENV="$SCRIPT_DIR/.venv" diff --git a/mcp-servers/gitea/run.sh b/mcp-servers/gitea/run.sh index 44195cd..2c302c2 100755 --- a/mcp-servers/gitea/run.sh +++ b/mcp-servers/gitea/run.sh @@ -1,4 +1,8 @@ #!/bin/bash +# Capture original working directory before any cd operations +# This should be the user's project directory when launched by Claude Code +export CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$PWD}" + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CACHE_VENV="$HOME/.cache/claude-mcp-venvs/leo-claude-mktplace/gitea/.venv" LOCAL_VENV="$SCRIPT_DIR/.venv" diff --git a/mcp-servers/netbox/run.sh b/mcp-servers/netbox/run.sh index 91d10ca..45a1a07 100755 --- a/mcp-servers/netbox/run.sh +++ b/mcp-servers/netbox/run.sh @@ -1,4 +1,8 @@ #!/bin/bash +# Capture original working directory before any cd operations +# This should be the user's project directory when launched by Claude Code +export CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$PWD}" + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CACHE_VENV="$HOME/.cache/claude-mcp-venvs/leo-claude-mktplace/netbox/.venv" LOCAL_VENV="$SCRIPT_DIR/.venv" diff --git a/mcp-servers/viz-platform/run.sh b/mcp-servers/viz-platform/run.sh index 19b35ea..f62974c 100755 --- a/mcp-servers/viz-platform/run.sh +++ b/mcp-servers/viz-platform/run.sh @@ -1,4 +1,8 @@ #!/bin/bash +# Capture original working directory before any cd operations +# This should be the user's project directory when launched by Claude Code +export CLAUDE_PROJECT_DIR="${CLAUDE_PROJECT_DIR:-$PWD}" + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" CACHE_VENV="$HOME/.cache/claude-mcp-venvs/leo-claude-mktplace/viz-platform/.venv" LOCAL_VENV="$SCRIPT_DIR/.venv" -- 2.49.1