Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mcp-server-langgraph.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Developer Setup Guide

Complete guide for setting up the MCP Server LangGraph development environment with all required and optional tools. Last Updated: 2025-11-24 Target Audience: New developers, CI/CD engineers, contributors

Table of Contents


Quick Start

# 1. Clone repository
git clone https://github.com/your-org/mcp-server-langgraph.git
cd mcp-server-langgraph

# 2. Install required tools (see platform-specific sections below)

# 3. Install Python dependencies
make install-dev

# 4. Verify setup
make validate-setup

# 5. Run tests
make test-dev
Estimated setup time: 15-30 minutes

Required Tools

These tools are mandatory for core development workflows. Pre-commit hooks will block commits if these are missing.

Python 3.12+

Purpose: Main programming language Used by: All development, testing, CI/CD Install:
  • macOS: brew install python@3.12
  • Linux (Ubuntu/Debian): sudo apt install python3.12 python3.12-venv
  • Linux (Fedora/RHEL): sudo dnf install python3.12
  • Windows: Download from python.org
Verification:
python3 --version  # Should show 3.12.x or higher

uv (Package Manager)

Purpose: Fast Python package management (10-100x faster than pip) Used by: All dependency installation, virtual environment management Install:
curl -LsSf https://astral.sh/uv/install.sh | sh
Verification:
uv --version
Documentation: https://github.com/astral-sh/uv

Git

Purpose: Version control Used by: All development workflows Install:
  • macOS: brew install git or use Xcode Command Line Tools
  • Linux: sudo apt install git or sudo dnf install git
  • Windows: Download from git-scm.com
Verification:
git --version

ShellCheck

Purpose: Shell script linting and validation Used by: Pre-commit hooks (REQUIRED - blocks commits if missing) Install:
  • macOS: brew install shellcheck
  • Linux (Ubuntu/Debian): sudo apt install shellcheck
  • Linux (Fedora/RHEL): sudo dnf install ShellCheck
  • Windows (WSL): sudo apt install shellcheck
Verification:
shellcheck --version
Why Required: Validates all bash scripts in scripts/ directory. Without shellcheck, pre-commit hooks will fail. Documentation: https://www.shellcheck.net/

Optional Tools

These tools enhance development workflows but are not required. Pre-commit hooks will gracefully skip validation if these are missing.

Docker & Docker Compose

Purpose: Local infrastructure (PostgreSQL, Redis, Keycloak, etc.) Used by: Integration tests, local development Install: Verification:
docker --version
docker-compose --version  # or docker compose version
Note: Integration tests require Docker. Without it, run make test-dev (unit tests only) instead of make test (all tests).

Trivy (Security Scanner)

Purpose: Container and Kubernetes manifest security scanning Used by: Pre-commit hooks (optional), CI security scans Install:
  • macOS: brew install trivy
  • Linux:
    wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
    echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
    sudo apt update && sudo apt install trivy
    
  • Windows (WSL): Same as Linux
Verification:
trivy --version
Documentation: https://trivy.dev/

Helm

Purpose: Kubernetes package management Used by: Deployment validation, Helm chart linting Install:
  • macOS: brew install helm
  • Linux:
    curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
    
  • Windows: choco install kubernetes-helm
Verification:
helm version
Documentation: https://helm.sh/docs/intro/install/

kubectl

Purpose: Kubernetes command-line tool Used by: Kustomize validation, deployment testing Install:
  • macOS: brew install kubectl
  • Linux:
    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    chmod +x kubectl
    sudo mv kubectl /usr/local/bin/
    
  • Windows: choco install kubernetes-cli
Verification:
kubectl version --client
Documentation: https://kubernetes.io/docs/tasks/tools/

Terraform

Purpose: Infrastructure as Code Used by: Infrastructure deployment, pre-commit Terraform formatting Install:
  • macOS: brew install terraform
  • Linux:
    wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
    echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
    sudo apt update && sudo apt install terraform
    
  • Windows: choco install terraform
Verification:
terraform --version
Documentation: https://developer.hashicorp.com/terraform/downloads

Node.js & npm

Purpose: Mintlify documentation validation Used by: Documentation link checking, Mintlify local preview Install:
  • macOS: brew install node
  • Linux (Ubuntu/Debian):
    curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
    sudo apt install -y nodejs
    
  • Windows: Download from nodejs.org
Verification:
node --version
npm --version
Documentation: https://nodejs.org/

actionlint

Purpose: GitHub Actions workflow validation Used by: Pre-commit hooks (optional), CI workflow syntax checking Install:
  • macOS: brew install actionlint
  • Linux:
    bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
    sudo mv ./actionlint /usr/local/bin/
    
  • Windows (WSL): Same as Linux
Verification:
actionlint --version
Documentation: https://github.com/rhysd/actionlint

Platform-Specific Installation

macOS (Homebrew)

One-liner to install all tools:
brew install python@3.12 git shellcheck docker helm kubectl terraform node actionlint trivy
Install uv separately:
curl -LsSf https://astral.sh/uv/install.sh | sh

Linux (Ubuntu/Debian)

Required tools:
sudo apt update
sudo apt install -y python3.12 python3.12-venv git shellcheck
curl -LsSf https://astral.sh/uv/install.sh | sh
Optional tools:
# Docker
curl -fsSL https://get.docker.com | sh

# Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

# kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl && sudo mv kubectl /usr/local/bin/

# Terraform
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform

# Node.js
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Trivy
wget -qO - https://aquasecurity.github.io/trivy-repo/deb/public.key | sudo apt-key add -
echo "deb https://aquasecurity.github.io/trivy-repo/deb $(lsb_release -sc) main" | sudo tee -a /etc/apt/sources.list.d/trivy.list
sudo apt update && sudo apt install trivy

# actionlint
bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
sudo mv ./actionlint /usr/local/bin/

We recommend using WSL2 (Windows Subsystem for Linux) for development on Windows. Install WSL2:
wsl --install
Then follow the Linux (Ubuntu/Debian) instructions inside WSL. Alternative (Native Windows with Chocolatey):
choco install python git docker-desktop kubernetes-helm kubernetes-cli terraform nodejs

Verification

Automated Setup Verification

Run the automated setup verification script:
make validate-setup
This checks for all required and optional tools and reports their status.

Manual Verification

Check required tools:
python3 --version        # Should be 3.12+
uv --version            # Should be installed
git --version           # Any recent version
shellcheck --version    # Should be installed
Check optional tools:
docker --version        # Optional
trivy --version         # Optional
helm version           # Optional
kubectl version --client  # Optional
terraform --version    # Optional
node --version         # Optional
npm --version          # Optional
actionlint --version   # Optional

Troubleshooting

”shellcheck: command not found” during pre-commit

Problem: ShellCheck is required but not installed. Solution:
# macOS
brew install shellcheck

# Linux
sudo apt install shellcheck
Why: ShellCheck validates bash scripts and is a required dependency for pre-commit hooks.

”Docker daemon is not running” during integration tests

Problem: Integration tests require Docker, but Docker daemon is not running. Solution:
# macOS/Windows: Start Docker Desktop application

# Linux: Start Docker service
sudo systemctl start docker
Alternative: Skip integration tests:
make test-dev  # Runs unit tests only (no Docker required)

“uv: command not found”

Problem: uv package manager is not installed or not in PATH. Solution:
# Install uv
curl -LsSf https://astral.sh/uv/install.sh | sh

# Add to PATH (add to ~/.bashrc or ~/.zshrc)
export PATH="$HOME/.cargo/bin:$PATH"

# Reload shell
source ~/.bashrc  # or source ~/.zshrc

Pre-commit hook fails with “Skipping: tool not installed”

Problem: Optional tool is missing, but hook is trying to run. Solution: This is expected behavior. Optional tools gracefully skip with a warning message. The commit will still succeed. If you want to install the tool for full validation:
  • See the Optional Tools section above
  • Or run the tool-specific install command shown in the warning message

Python version mismatch (3.11 vs 3.12)

Problem: System has Python 3.11 but project requires 3.12+. Solution:
# macOS
brew install python@3.12

# Linux (Ubuntu)
sudo apt install python3.12 python3.12-venv

# Use specific version
python3.12 -m venv .venv

Next Steps

After completing setup:
  1. Install Python dependencies:
    make install-dev
    
  2. Run tests:
    make test-dev  # Fast unit tests (~2-3 min)
    
  3. Start local infrastructure (optional):
    make quick-start  # Starts Docker infrastructure
    
  4. Read development guides:

CLI Tool Summary

ToolRequired?PurposeInstall Command (macOS)
Python 3.12+✅ RequiredMain languagebrew install python@3.12
uv✅ RequiredPackage managercurl -LsSf https://astral.sh/uv/install.sh | sh
Git✅ RequiredVersion controlbrew install git
ShellCheck✅ RequiredShell lintingbrew install shellcheck
Docker⚠️ OptionalInfrastructurebrew install --cask docker
Trivy⚠️ OptionalSecurity scanningbrew install trivy
Helm⚠️ OptionalK8s packagesbrew install helm
kubectl⚠️ OptionalK8s CLIbrew install kubectl
Terraform⚠️ OptionalInfrastructurebrew install terraform
Node.js/npm⚠️ OptionalDocumentationbrew install node
actionlint⚠️ OptionalWorkflow validationbrew install actionlint

References

  • Codex Audit Finding: Make/Test Flow Issue 1.3 (CLI dependency documentation)
  • Hooks & Tooling Issue 2.2: Ambient CLI dependencies
  • Pre-commit Configuration: .pre-commit-config.yaml - Complete hook catalog
  • Makefile Targets: Makefile - All available development commands

Questions or Issues?
  • Check Troubleshooting section above
  • Review .claude/memory/python-environment-usage.md for Python-specific guidance
  • Open an issue: GitHub Issues