β Developer Onboarding ChecklistΒΆ
Follow this checklist to set up your development environment, verify all features, and ensure consistent onboarding across the MCP Gateway project.
π³ VS Code Dev Container (Recommended)ΒΆ
The fastest way to get started is using the VS Code Dev Container, which provides a fully-configured development environment.
Prerequisites
- VS Code with the Dev Containers extension
- Docker or Podman installed and running locally
Setup
-
Clone and open the repository:
-
VS Code will detect
.devcontainerand prompt: "Reopen in Container" (or manually: CtrlοΌShiftοΌP β Dev Containers: Reopen in Container) -
First-time build automatically:
- Installs system packages & Python 3.11
- Runs
make install-devto pull all dependencies - Executes tests to verify the toolchain
Daily workflow inside container
GitHub Codespaces (1-click cloud IDE)
No local Docker? Use Codespaces:
- Go to the repo β Code βΈ Codespaces βΈ Create codespace on main
- Wait for the container image to build in the cloud
- Develop using the same workflow above
π Manual Environment SetupΒΆ
If not using Dev Containers, set up manually:
System prerequisites
- Python β₯ 3.11
- Node.js and npm, npx (used for testing with
supergatewayand the HTML/JS Admin UI) - Docker, Docker Compose, and Podman
- Make, GitHub CLI (
gh),curl,jq,openssl - Optional: Visual Studio Code + Pyrefly extension
- Optional: On Windows, install the WSL and Remote Development extensions
Python tooling
-
pip install --upgrade pip -
uvanduvxinstalled - install uv -
.venvrecreated withmake install-dev(installs runtime + dev extras)
Additional tools
-
helminstalled for Kubernetes deployments (Helm install docs) - Security tools in
$PATH:hadolint,dockle,trivy,osv-scanner
Useful VS Code extensions
- Python, Pylance
- YAML, Even Better TOML
- Docker, Dev Containers (useful on Windows)
GitHub setup
- GitHub email configured in
git config - See GitHub config guide
.env configuration
- Copy
.env.exampleto.env -
Set various env variables, such as:
JWT_SECRET_KEYBASIC_AUTH_PASSWORD
π§ Makefile TargetsΒΆ
Local setup
-
make check-env(validates .env is complete) -
make install-dev serve -
make smoketestruns and passes
Container builds
- Docker:
make docker-prod docker-run-ssl-host compose-up - Podman:
make podman podman-prod podman-run-ssl-host
Packaging
-
make dist verifybuilds packages -
make devpi-install devpi-init devpi-start devpi-setup-user devpi-upload devpi-test - Install and test
mcpgatewayCLI locally
Minikube & Helm
-
make helm-install minikube-install minikube-start minikube-k8s-apply helm-package helm-deploy - See minikube deployment
π§ͺ TestingΒΆ
Code quality
-
make lint,make lint-web -
make shell-linters-install,make shell-lint -
make hadolint(Dockerfile linting)
Python unit tests
-
make testpasses all cases -
make coveragegenerates coverage report
UI automation (Playwright)
-
playwright install(one-time browser setup) -
pytest tests/playwright/passes -
pytest tests/playwright/ -k adminvalidates Admin UI flows
Load testing (Locust)
-
make testing-up(containerized Locust + test services) - Or run Locust locally:
locust -f tests/loadtest/locustfile.py --host=http://localhost:4444 - Access dashboard at http://localhost:8089
- Verify no errors under moderate load (50-100 users)
Frontend linting
-
make eslint- JavaScript linting -
make lint-web- ESLint + HTMLHint + Stylelint -
make format-web- Prettier formatting - Note: JS unit tests not yet implemented
π SecurityΒΆ
SonarQube analysis
-
make sonar-up-docker -
make sonar-submit-docker- ensure no critical violations
π JWT AuthenticationΒΆ
Generate and use a Bearer token
-
Export a token with:
-
Verify authenticated API access:
π€ Client IntegrationΒΆ
Run wrapper and test transports
- Run:
python3 -m mcpgateway.wrapper(stdio support) -
Test transports:
- Streamable HTTP
- Server-Sent Events (SSE)
-
Optional: Integrate with Claude, Copilot, Continue (usage guide)
π§ API TestingΒΆ
Authentication required
- Unauthenticated:
- Authenticated:
Endpoint coverage
-
Confirm key routes:
/version/health/tools/servers/resources/prompts/gateways
-
Browse Redoc docs
π₯ Admin UIΒΆ
Login and diagnostics
- Navigate to
/admin - Log in with Basic Auth credentials from
.env -
/versionshows healthy DB and Redis
CRUD verification
-
Create / edit / delete:
- Servers
- Tools
- Resources
- Prompts
- Gateways
-
Toggle active/inactive switches
- JWT stored in
HttpOnlycookie, no errors in DevTools Console
Metrics
- Confirm latency and error rate display under load
π DocumentationΒΆ
Build and inspect docs
-
cd docs && make venv serve - Open http://localhost:8000
-
Confirm:
.pagesordering- nav structure
- working images
- Mermaid diagrams
Read and understand
-
README.mdin root - Official docs site
- MkDocs Admonitions guide
β Final ReviewΒΆ
Ready to contribute
- All items checked
- PR description links to this checklist
- Stuck? Open a discussion or issue