Contribution flow & strategy
Fork, branch, test, and open a PR — every contribution follows the same path from idea to merge.
Where to contribute
New scanner
Grype, CodeQL, SonarQube wrapper
New language client
Rust, Ruby gem, .NET NuGet
Bug fix
Parsing, severity mapping, crashes
Documentation
Setup guides, examples, API docs
Tests
Edge cases, new tool fixtures
Core code
MCP tools, CLI, normalisation
Pull request flow
Fork & clone
Fork the repo on GitHub and clone your fork locally.
Create a branch
Use a descriptive name: feat/add-grype-scanner or fix/sca-parsing.
Develop & test
Make changes, run pytest / npm test / go test in the affected package.
Open a pull request
Push to your fork and open a PR against main. Fill out the PR template.
Code review
A maintainer reviews within a few days. Address feedback if needed.
Merge
Once approved and CI passes, your contribution ships under MIT.
Commit convention
<type>(<scope>): <short description>
Types: feat · fix · docs · test · chore · refactor · perf
feat(sast): add Grype SCA scanner
fix(sca): handle Safety v3 JSON format
docs(api): document scan_iac framework paramAdding a new scanner
- Add runner in
packages/python/src/argus/tools/<category>.py - Register in
server.py— tool list, handler, registry - Add tests in
packages/python/tests/ - Update
docs/tool-setup.mdand README
Development setup
Python core
git clone https://github.com/argus-code-scanning/argus-codescan-mcp.git
cd argus-codescan-mcp/packages/python
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
pytest && ruff check src testsnpm package
cd packages/npm
npm install && npm run build && npm testGitHub repository metrics
Live stats from argus-code-scanning/argus-codescan-mcp. MIT licensed, built in the open.