> Follow this checklist to set up your development environment, verify all features, and ensure consistent onboarding across ContextForge project. ---
Install to Claude Code
npx -y skills add tools-only/X-Skills --skill 3023-developer-onboarding_61358b2f --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of 3023 Developer Onboarding 61358b2f?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-3023-developer-onboarding-61358b2f)More formats (shields.io, HTML) on the badges page.
# ✅ Developer Onboarding Checklist
> Follow this checklist to set up your development environment, verify all features, and ensure consistent onboarding across ContextForge 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.
???+ check "Prerequisites"
- [ ] **VS Code** with the [Dev Containers extension](https://code.visualstudio.com/docs/devcontainers/containers)
- [ ] **Docker** or **Podman** installed and running locally
???+ check "Setup"
1. Clone and open the repository:
```bash
git clone https://github.com/ibm/mcp-context-forge.git
cd mcp-context-forge
code .
```
2. VS Code will detect `.devcontainer` and prompt: **"Reopen in Container"**
(or manually: ++ctrl+shift+p++ → **Dev Containers: Reopen in Container**)
3. First-time build automatically:
- Installs system packages & Python 3.11
- Runs `make install-dev` to pull all dependencies
- Executes tests to verify the toolchain
???+ check "Daily workflow inside container"
```bash
make dev # Dev server with hot reload (http://localhost:4444)
make test # Run test suite
make lint # Run all linters
```
???+ check "GitHub Codespaces (1-click cloud IDE)"
No local Docker? Use Codespaces:
1. Go to the repo → **Code ▸ Codespaces ▸ Create codespace on main**
2. Wait for the container image to build in the cloud
3. Develop using the same workflow above
---
## 🛠 Manual Environment Setup
If not using Dev Containers, set up manually:
???+ check "System prerequisites"
- [ ] Python ≥ 3.11
- [ ] Node.js and npm, npx (used for testing with `supergateway` and 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
???+ check "Python tooling"
- [ ] `pip install --upgrade pip`
- [ ] `uv` and `uvx` installed - [install uv](https://github.com/astral-sh/uv)
- [ ] `.venv` recreated with `make install-dev` (installs runtime + dev extras)
???+ check "Additional tools"
- [ ] `helm` installed for Kubernetes deployments ([Helm install docs](https://helm.sh/docs/intro/install/))
- [ ] Security tools in `$PATH`: `hadolint`, `dockle`, `trivy`, `osv-scanner`
???+ check "Useful VS Code extensions"
- [ ] Python, Pylance
- [ ] YAML, Even Better TOML
- [ ] Docker, Dev Containers (useful on Windows)
???+ check "GitHub setup"
- [ ] GitHub email configured in `git config`
- [ ] See [GitHub config guide](./github.md#16-personal-git-configuration-recommended)
???+ check ".env configuration"
- [ ] Copy `.env.example` to `.env`
- [ ] Set various env variables, such as:
- `JWT_SECRET_KEY`
- `BASIC_AUTH_PASSWORD`
---
## 🔧 Makefile Targets
???+ check "Local setup"
- [ ] `make check-env` (validates .env is complete)
- [ ] `make install-dev serve`
- [ ] `make smoketest` runs and passes
???+ check "Container builds"
- [ ] Docker: `make docker-prod docker-run-ssl-host compose-up`
- [ ] Podman: `make podman podman-prod podman-run-ssl-host`
???+ check "Packaging"
- [ ] `make dist verify` builds packages
- [ ] `make devpi-install devpi-init devpi-start devpi-setup-user devpi-upload devpi-test`
- [ ] Install and test `mcpgateway` CLI locally
???+ check "Minikube & Helm"
- [ ] `make helm-install minikube-install minikube-start minikube-k8s-apply helm-package helm-deploy`
- [ ] See [minikube deployment](../deployment/minikube.md)
---
## 🧪 Testing
???+ check "Code quality"
- [ ] `make lint`, `make lint-web`
- [ ] `make shell-linters-install`, `make shell-lint`
- [ ] `make hadolint` (Dockerfile linting)
???+ check "Python unit tests"
- [ ] `make test` passes all cases
- [ ] `make coverage` generates coverage report
???+ check "UI automation (Playwright)"
- [ ] `playwright install` (one-time browser setup)
- [ ] `pytest tests/playwright/` passes
- [ ] `pytest tests/playwright/ -k admin` validates Admin UI flows
???+ check "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)
???+ check "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
???+ check "Vulnerability scans"
- [ ] Run:
```bash
make hadolint dockle osv-scan trivy pip-audit
```
???+ check "SonarQube analysis"
- [ ] `make sonar-up-docker`
- [ ] `make sonar-submit-docker` - ensure no critical violations
---
## 🔑 JWT Authentication
???+ check "Generate and use a Bearer token"
- [ ] Export a token with:
```bash
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin@example.com --exp 10080 --secret my-test-key)
```
- [ ] Verify authenticated API access:
```bash
curl -k -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" https://localhost:4444/version | jq
```
---
## 🤖 Client Integration
???+ check "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](../using/index.md))
---
## 🧭 API Testing
???+ check "Authentication required"
- [ ] Unauthenticated:
```bash
curl http://localhost:4444/tools
# -> should return 401 Unauthorized
```
- [ ] Authenticated:
```bash
curl -H "Authorization: Bearer $MCPGATEWAY_BEARER_TOKEN" http://localhost:4444/version | jq
```
???+ check "Endpoint coverage"
- [ ] Confirm key routes:
- `/version`
- `/health`
- `/tools`
- `/servers`
- `/resources`
- `/prompts`
- `/gateways`
- [ ] Browse [Redoc docs](http://localhost:4444/redoc)
---
## 🖥 Admin UI
???+ check "Login and diagnostics"
- [ ] Navigate to [`/admin`](http://localhost:4444/admin)
- [ ] Log in with Basic Auth credentials from `.env`
- [ ] `/version` shows healthy DB and Redis
???+ check "CRUD verification"
- [ ] Create / edit / delete:
- Servers
- Tools
- Resources
- Prompts
- Gateways
- [ ] Toggle active/inactive switches
- [ ] JWT stored in `HttpOnly` cookie, no errors in DevTools Console
???+ check "Metrics"
- [ ] Confirm latency and error rate display under load
---
## 📚 Documentation
???+ check "Build and inspect docs"
- [ ] `cd docs && make venv serve`
- [ ] Open http://localhost:8000
- [ ] Confirm:
- `.pages` ordering
- nav structure
- working images
- Mermaid diagrams
???+ check "Read and understand"
- [ ] `README.md` in root
- [ ] [Official docs site](https://ibm.github.io/mcp-context-forge/)
- [ ] [MkDocs Admonitions guide](https://squidfunk.github.io/mkdocs-material/reference/admonitions/)
---
## ✅ Final Review
???+ check "Ready to contribute"
- [ ] All items checked
- [ ] PR description links to this checklist
- [ ] Stuck? Open a [discussion](https://github.com/your-repo/discussions) or issue
Scanned 6/1/2026
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!