Skip to main content

Repository Structure

This document describes the organization of the mcp-server-langgraph repository and the purpose of each directory.

Directory Layout

mcp-server-langgraph/
β”œβ”€β”€ docs/                      # πŸ“š Mintlify documentation (user-facing)
β”‚   β”œβ”€β”€ getting-started/       # Getting started guides
β”‚   β”œβ”€β”€ api-reference/         # API documentation
β”‚   β”œβ”€β”€ guides/                # How-to guides
β”‚   β”œβ”€β”€ deployment/            # Deployment guides
β”‚   β”œβ”€β”€ architecture/          # Architecture Decision Records (ADRs)
β”‚   β”œβ”€β”€ advanced/              # Advanced topics
β”‚   β”œβ”€β”€ development/           # Development guides
β”‚   └── security/              # Security documentation
β”‚
β”œβ”€β”€ src/                       # 🐍 Python source code
β”‚   └── mcp_server_langgraph/  # Main package
β”‚
β”œβ”€β”€ tests/                     # πŸ§ͺ Test suite
β”‚   β”œβ”€β”€ api/                   # API tests
β”‚   β”œβ”€β”€ contract/              # Contract tests
β”‚   β”œβ”€β”€ property/              # Property-based tests
β”‚   └── regression/            # Regression tests
β”‚
β”œβ”€β”€ reports/                   # πŸ“Š Project reports
β”‚   β”œβ”€β”€ archive/               # Archived reports
β”‚   β”œβ”€β”€ CI_CD_ANALYSIS_REPORT_*.md
β”‚   β”œβ”€β”€ TEST_COVERAGE_IMPROVEMENT_REPORT_*.md
β”‚   └── REPOSITORY_HEALTH_REPORT_*.md
β”‚
β”œβ”€β”€ adr/                       # πŸ“ Architecture Decision Records (source markdown)
β”‚   β”œβ”€β”€ 0001-llm-multi-provider.md
β”‚   β”œβ”€β”€ 0002-openfga-authorization.md
β”‚   └── ...
β”‚
β”œβ”€β”€ runbooks/                  # πŸ“– Operational runbooks
β”‚   └── (operational procedures and playbooks)
β”‚
β”œβ”€β”€ deployments/               # πŸš€ Deployment configurations
β”‚   β”œβ”€β”€ langgraph-platform/    # LangGraph Platform
β”‚   β”œβ”€β”€ kubernetes/            # Kubernetes manifests
β”‚   β”œβ”€β”€ helm/                  # Helm charts
β”‚   └── cloud-run/             # Google Cloud Run
β”‚
β”œβ”€β”€ config/                    # βš™οΈ Configuration files
β”‚   β”œβ”€β”€ retention_policies.yaml
β”‚   └── feature_flags.yaml
β”‚
β”œβ”€β”€ docker/                    # 🐳 Docker configurations
β”‚   β”œβ”€β”€ Dockerfile
β”‚   └── docker-compose.yml
β”‚
β”œβ”€β”€ monitoring/                # πŸ“ˆ Monitoring and observability
β”‚   β”œβ”€β”€ grafana/               # Grafana dashboards
β”‚   └── prometheus/            # Prometheus configs
β”‚
β”œβ”€β”€ examples/                  # πŸ’‘ Usage examples
β”‚   └── (example scripts and notebooks)
β”‚
β”œβ”€β”€ hooks/                     # πŸͺ Git hooks
β”‚   └── (pre-commit, pre-push hooks)
β”‚
β”œβ”€β”€ .github/                   # πŸ€– GitHub workflows
β”‚   └── workflows/             # CI/CD pipelines
β”‚
β”œβ”€β”€ template/                  # πŸ“‹ Project templates
β”‚   └── (cookiecutter templates)
β”‚
β”œβ”€β”€ reference/                 # πŸ“š Reference materials
β”‚   └── (API specs, schemas)
β”‚
β”œβ”€β”€ integrations/              # πŸ”Œ Integration guides
β”‚   └── (third-party integrations)
β”‚
β”œβ”€β”€ archive/                   # πŸ—„οΈ Archived content
β”‚   └── (deprecated documentation)
β”‚
β”œβ”€β”€ logs/                      # πŸ“ Application logs
β”‚   └── (runtime logs)
β”‚
└── Root-level files
    β”œβ”€β”€ .mintlifyignore        # Mintlify exclusions
    β”œβ”€β”€ pyproject.toml         # Python project config
    β”œβ”€β”€ README.md              # Main README
    β”œβ”€β”€ CHANGELOG.md           # Version history
    β”œβ”€β”€ COMPLIANCE.md          # Compliance documentation
    β”œβ”€β”€ SECURITY.md            # Security policy
    └── ...

Key Principles

1. Clean Separation of Concerns

  • docs/ - Only Mintlify documentation (.mdx files for user-facing docs)
  • reports/ - Project reports and metrics (not user docs)
  • adr/ - Source ADR markdown files (converted to .mdx in docs/architecture/)
  • runbooks/ - Internal operational procedures
  • src/ - Production code only
  • tests/ - All test code

2. Mintlify Integration

The docs/ directory is exclusively for Mintlify documentation:
# Run Mintlify dev server
mintlify dev

# Only scans docs/ directory
# All other directories excluded via .mintlifyignore
What’s in docs/:
  • βœ… Getting started guides (getting-started/)
  • βœ… API reference (api-reference/)
  • βœ… How-to guides (guides/)
  • βœ… Deployment guides (deployment/)
  • βœ… Architecture docs (architecture/)
  • βœ… Advanced topics (advanced/)
  • βœ… Development guides (development/)
  • βœ… Security docs (security/)
What’s NOT in docs/:
  • ❌ Reports (moved to reports/)
  • ❌ ADR source files (moved to adr/)
  • ❌ Runbooks (moved to runbooks/)
  • ❌ Templates (moved to template/)
  • ❌ Reference materials (moved to reference/)
  • ❌ Standalone markdown files (moved to root)

3. Documentation Types

User-Facing Documentation (docs/)

  • Format: .mdx (Mintlify)
  • Audience: End users, API consumers, operators
  • Examples: Quickstart, API reference, deployment guides

Project Documentation (Root)

  • Format: .md (standard markdown)
  • Audience: Contributors, maintainers
  • Examples: COMPLIANCE.md, CONTRIBUTING.md, CHANGELOG.md

Internal Documentation

  • Reports (reports/) - Test coverage, CI/CD analysis
  • ADRs (adr/) - Architecture decision records (source)
  • Runbooks (runbooks/) - Operational procedures

4. Versioning Strategy

  • Mintlify docs (docs/) - Updated per release, published to docs site
  • Changelog (CHANGELOG.md) - Version history
  • ADRs (adr/) - Immutable after approval
  • Reports (reports/) - Timestamped, archived after 90 days

Working with Documentation

Adding User Documentation

  1. Create .mdx file in appropriate docs/ subdirectory
  2. Add reference to docs/docs.json navigation
  3. Run mintlify dev to preview
  4. Commit and push

Adding Project Reports

  1. Create markdown file in reports/
  2. Use naming convention: REPORT_NAME_YYYYMMDD.md
  3. After 90 days, move to reports/archive/

Adding Architecture Decisions

  1. Create ADR in adr/ using template
  2. Convert to .mdx for docs/architecture/
  3. Add to docs/docs.json navigation
  4. ADR source in adr/ remains immutable

Maintenance

Quarterly Cleanup

  • Archive old reports to reports/archive/
  • Review and update docs/ content
  • Update CHANGELOG.md
  • Regenerate API documentation

Pre-Release Checklist

  • Update version in pyproject.toml
  • Update CHANGELOG.md
  • Regenerate API docs
  • Deploy Mintlify docs (mintlify deploy)
  • Tag release in git

Last Updated: 2025-10-14 Maintainer: Repository Maintainers