Thank you for taking the time to contribute! 🎉
- Getting Started
- Development Setup
- Branching & Commits
- Pull Requests
- Reporting Bugs
- Suggesting Features
- Code Style
- Fork the repository and clone your fork locally.
- Create a branch from
mainfor your change (see Branching & Commits). - Make your changes, write or update tests, then open a pull request.
| Tool | Version |
|---|---|
| .NET SDK | 10.0+ |
| Node.js | 20+ |
| Docker | 20.10+ |
cd src/Garrard.Mcp.Explorer.Api
dotnet restore
dotnet runcd src/frontend
npm install
npm run devbash run.shdotnet test --configuration Release --verbosity normalUse a short descriptive branch name:
feat/add-oauth-support
fix/keyvault-readonly-mount
docs/update-quickstart
Follow Conventional Commits for commit messages — this drives the automated release notes:
| Prefix | When to use |
|---|---|
feat: |
New feature |
fix: |
Bug fix |
docs: |
Documentation only |
refactor: |
Code change that neither fixes a bug nor adds a feature |
test: |
Adding or updating tests |
chore: |
Build, CI, dependency updates |
perf: |
Performance improvement |
feat!: / fix!: |
Breaking change |
- Target the
mainbranch. - Keep PRs focused — one logical change per PR.
- Include a clear description of what and why.
- Add or update tests for any changed behaviour.
- Apply a version label if appropriate (
release_major,release_minor; default is a patch bump):release_major— breaking change (bumps X.0.0)release_minor— new feature (bumps x.Y.0)
- CI must be green before merge.
Open a GitHub Issue and include:
- Steps to reproduce
- Expected vs actual behaviour
- MCP Explorer version / Docker image tag
- Relevant logs (redact any secrets)
Open a GitHub Issue with the enhancement label. Describe the problem you're trying to solve, not just the solution.
- C# — follow the existing clean-architecture layering (
Core → Application → Infrastructure → Api). No business logic in controllers. - Vue / TypeScript — Composition API with
<script setup>. PrimeVue components only; no raw HTML form controls. - Keep cyclomatic complexity low and functions small.
- Do not commit secrets, credentials, or personal data.