Skip to main content

Developer Onboarding Guide

Welcome to the MCP Server LangGraph project! This guide will get you up and running in under 10 minutes.

Prerequisites

Before you start, ensure you have:
  • βœ… Python 3.11-3.13 installed (python --version)
  • βœ… Docker Desktop or Docker Engine running (docker --version)
  • βœ… Docker Compose v2 installed (docker compose version)
  • βœ… Git installed (git --version)
  • βœ… uv (Python package manager) installed (installation)
Optional but recommended:
  • Node.js (for Mintlify docs): node --version
  • Make (usually pre-installed on Linux/macOS)

πŸš€ Quick Start (5 Minutes)

This will:
  • Install all dependencies
  • Start Docker infrastructure (OpenFGA, Postgres, Keycloak, Prometheus, Grafana, etc.)
  • Initialize OpenFGA authorization
  • Set up Keycloak SSO
  • Display next steps
Expected duration: 3-5 minutes ⏱️

Option B: Manual Setup

No manual venv creation needed! uv sync (run by make install-dev) automatically creates .venv and installs all dependencies.

βœ… Verify Installation

You should see:
  • βœ“ All Docker services running
  • βœ“ All ports responding (8080, 5432, 8180, 16686, 9090, 3000, 6379)
  • βœ“ Virtual environment active

πŸƒ Running the Application

Run Unit Tests

Expected: All 437 tests passing βœ…

Run the MCP Server (StreamableHTTP)

The server will start on http://localhost:8000

Alternative: Run stdio MCP Server

πŸ“Š Access Monitoring Dashboards

This opens Grafana at http://localhost:3000 with:
  • Username: admin
  • Password: admin
Available Dashboards:
  • LangGraph Agent Performance
  • Security & Authentication
  • LLM Performance
  • SLA Monitoring
  • SOC2 Compliance
  • And 4 more…

πŸ”§ Essential Configuration

1. Environment Variables

Copy the example environment file:
Update these required values in .env:

2. Re-run Setup if Needed

If you need to reset everything:
This will clean up and re-initialize all services.

πŸ“š Project Structure

πŸ§ͺ Running Tests

All Tests

By Category

With Coverage

Opens HTML report at htmlcov/index.html

Watch Mode

Re-runs tests on file changes (great for TDD)

🎯 Common Development Tasks

Code Quality

Pre-commit Hooks

This installs git hooks that automatically:
  • Format code with black
  • Sort imports with isort
  • Run linting (flake8)
  • Check types (mypy)
  • Scan for security issues (bandit)

View Logs

Database Operations

πŸ“– Documentation

Serve Docs Locally

Opens Mintlify docs at http://localhost:3000

Key Documentation

  • Architecture: docs/architecture/ (21 ADRs)
  • Deployment: docs/deployment/
  • Testing: docs/advanced/testing.mdx
  • Monitoring: monitoring/MONITORING_QUICKSTART.md
  • AI Agent Help: .github/CLAUDE.md, .github/AGENTS.md

πŸ› Troubleshooting

Services Not Starting

Port Conflicts

If ports 3000, 8080, 9090, etc. are in use:

Tests Failing

Environment Issues

πŸŽ“ Learning Resources

Getting Started

  1. Read: README.md - Project overview
  2. Review: docs/getting-started/quickstart.mdx
  3. Explore: Architecture Decision Records in docs/architecture/

Understanding the Code

  1. Start with: src/mcp_server_langgraph/core/agent.py - LangGraph agent
  2. Then: src/mcp_server_langgraph/mcp/server_streamable.py - MCP server
  3. Review: src/mcp_server_langgraph/auth/middleware.py - Auth middleware

AI Assistant Configuration

  • Claude Code: .github/CLAUDE.md
  • GitHub Copilot: .github/copilot-instructions.md
  • Cursor AI: .cursorrules
  • OpenAI Codex: .openai/codex-instructions.md

🀝 Contributing

Before Making Changes

  1. Create a feature branch: git checkout -b feature/your-feature-name
  2. Install pre-commit hooks: make pre-commit-setup
  3. Run tests: make test-unit

Making Changes

  1. Write code following existing patterns
  2. Add tests for new functionality
  3. Run make format before committing
  4. Ensure make test passes

Submitting Changes

  1. Commit with conventional commits: feat:, fix:, docs:, etc.
  2. Push to your branch
  3. Open a Pull Request
  4. Ensure CI passes
See CONTRIBUTING.md for detailed guidelines.

πŸš€ Releasing

Automated Version Bumping

When a new GitHub release is created, deployment versions are automatically updated across all configuration files. Process:
  1. Create a new release on GitHub with a tag (e.g., v2.5.0)
  2. GitHub Actions automatically:
    • Updates pyproject.toml
    • Updates docker-compose.yml
    • Updates Kubernetes deployment manifests
    • Updates Helm chart version and appVersion
    • Updates Kustomize image tags
    • Commits changes to main branch
    • Adds comment to release with deployment commands
Manual Version Bump (if needed):
Deployment After Release:
  • Docker Compose: docker compose pull && docker compose up -d
  • Kubernetes: kubectl set image deployment/langgraph-agent langgraph-agent=langgraph-agent:2.5.0
  • Helm: helm upgrade langgraph-agent deployments/helm/langgraph-agent --set image.tag=2.5.0
  • Kustomize: kubectl apply -k deployments/kustomize/overlays/production

πŸ“ž Getting Help

Resources

Quick Commands Reference

✨ Next Steps

  1. βœ… Complete setup: make dev-setup
  2. βœ… Run tests: make test-unit
  3. βœ… Explore dashboards: make monitoring-dashboard
  4. βœ… Read architecture docs: docs/architecture/overview.mdx
  5. βœ… Try examples: python examples/openfga_usage.py
  6. βœ… Make your first contribution!

Welcome to the team! πŸŽ‰ For questions, reach out via GitHub Discussions or open an issue. Happy coding! πŸš€