Modernized build tooling
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
echo "🔧 Setting up Claude Code MCP servers..."
|
||||
|
||||
# Create necessary directories
|
||||
mkdir -p ~/.config/claude-code
|
||||
mkdir -p ~/.local/bin
|
||||
mkdir -p ~/.local/share/mcp-logs
|
||||
|
||||
# Copy Claude Code configuration
|
||||
cp /workspaces/boilerplate/.devcontainer/claude-code-config.json ~/.config/claude-code/config.json
|
||||
|
||||
# Install or update Forgejo MCP server if Go is available
|
||||
if command -v go &> /dev/null; then
|
||||
echo "📦 Installing Forgejo MCP server..."
|
||||
if [ ! -f ~/.local/bin/forgejo-mcp ]; then
|
||||
# Clone and build Forgejo MCP (fallback if binary not available)
|
||||
cd /tmp
|
||||
git clone https://forgejo.org/forgejo/forgejo-mcp.git 2>/dev/null || echo "⚠️ Forgejo MCP repository not available, skipping..."
|
||||
if [ -d forgejo-mcp ]; then
|
||||
cd forgejo-mcp
|
||||
make build 2>/dev/null && cp forgejo-mcp ~/.local/bin/ || echo "⚠️ Could not build Forgejo MCP"
|
||||
cd /workspaces/boilerplate
|
||||
rm -rf /tmp/forgejo-mcp
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
# Ensure MCP servers are accessible
|
||||
echo "🔍 Checking MCP server availability..."
|
||||
|
||||
# Test Node.js based servers
|
||||
echo " - test-runner-mcp: $(npm list -g test-runner-mcp 2>/dev/null | grep test-runner-mcp || echo 'not found')"
|
||||
echo " - devcontainers: $(npm list -g @crunchloop/mcp-devcontainers 2>/dev/null | grep mcp-devcontainers || echo 'not found')"
|
||||
echo " - kubernetes: $(npm list -g kubernetes-mcp-server 2>/dev/null | grep kubernetes-mcp-server || echo 'not found')"
|
||||
|
||||
# Test Python-based servers
|
||||
echo " - ruff: $(python -c 'import ruff_mcp_server; print("available")' 2>/dev/null || echo 'not found')"
|
||||
|
||||
# Test uvx-based servers
|
||||
echo " - uv-mcp: $(uvx --help 2>/dev/null | grep -q 'uv-mcp' && echo 'available' || echo 'not found')"
|
||||
|
||||
# Create wrapper scripts for containerized MCP servers
|
||||
echo "📝 Creating wrapper scripts..."
|
||||
|
||||
# Prometheus MCP wrapper
|
||||
cat > ~/.local/bin/prometheus-mcp << 'EOF'
|
||||
#!/bin/bash
|
||||
exec docker run -i --rm \
|
||||
-e PROMETHEUS_URL="${PROMETHEUS_URL:-http://localhost:9090}" \
|
||||
ghcr.io/pab1it0/prometheus-mcp-server:latest "$@"
|
||||
EOF
|
||||
chmod +x ~/.local/bin/prometheus-mcp
|
||||
|
||||
# Grafana MCP wrapper
|
||||
cat > ~/.local/bin/grafana-mcp << 'EOF'
|
||||
#!/bin/bash
|
||||
exec docker run -i --rm \
|
||||
-e GRAFANA_API_TOKEN="${GRAFANA_API_TOKEN}" \
|
||||
ghcr.io/grafana/mcp-grafana:latest "$@"
|
||||
EOF
|
||||
chmod +x ~/.local/bin/grafana-mcp
|
||||
|
||||
# Create environment template file
|
||||
cat > ~/.local/share/mcp-env-template << 'EOF'
|
||||
# MCP Server Environment Variables
|
||||
# Copy this to ~/.bashrc or ~/.zshrc and customize
|
||||
|
||||
# Forgejo/Gitea Configuration
|
||||
export FORGEJO_PAT="your-forgejo-personal-access-token"
|
||||
export GITEA_ACCESS_TOKEN="$FORGEJO_PAT"
|
||||
|
||||
# Prometheus Configuration
|
||||
export PROMETHEUS_URL="http://localhost:9090"
|
||||
|
||||
# Grafana Configuration
|
||||
export GRAFANA_API_TOKEN="your-grafana-api-token"
|
||||
|
||||
# Kubernetes Configuration
|
||||
export KUBECONFIG="~/.kube/config"
|
||||
|
||||
# Docker Configuration (if using remote Docker)
|
||||
# export DOCKER_HOST="tcp://docker.example.com:2376"
|
||||
EOF
|
||||
|
||||
echo ""
|
||||
echo "✅ MCP setup complete!"
|
||||
echo ""
|
||||
echo "📋 Next steps:"
|
||||
echo "1. Copy environment variables from ~/.local/share/mcp-env-template to your shell config"
|
||||
echo "2. Configure your tokens and endpoints"
|
||||
echo "3. Run 'claude-code' to start with MCP servers enabled"
|
||||
echo ""
|
||||
echo "🔧 Available MCP servers:"
|
||||
echo " - forgejo: Git repository management"
|
||||
echo " - tests: Test runner with uv + ruff"
|
||||
echo " - ruff: Python linting and formatting"
|
||||
echo " - uv: Python package management"
|
||||
echo " - devcontainers: Development container management"
|
||||
echo " - kubernetes: Kubernetes cluster operations"
|
||||
echo " - prometheus: Metrics and monitoring queries"
|
||||
echo " - grafana: Dashboard and alerting management"
|
||||
echo " - tofu: Infrastructure as Code with OpenTofu"
|
||||
echo ""
|
||||
Reference in New Issue
Block a user