Skip to content

Contributing

Welcome! We’re glad you want to contribute. This page is a quick orientation — detailed guides are linked below.

  1. Clone and build:

    Terminal window
    git clone https://github.com/jmrplens/portainer-mcp-enhanced.git
    cd portainer-mcp-enhanced
    make build # → dist/portainer-mcp-enhanced
  2. Run tests:

    Terminal window
    make test # Unit tests
    make test-all # Unit + integration (requires Docker)
  3. Format and lint:

    Terminal window
    gofmt -s -w .
    go vet ./...
AreaConvention
NamingPascalCase exported, camelCase private
Errorsfmt.Errorf("context: %w", err) — always wrap with context
ImportsStandard lib → external → internal (blank line separated)
TestsTable-driven with descriptive case names
ModelsRaw SDK → Local models (never expose raw to handlers)
Loggingzerolog to stderr; never log to stdout (MCP transport)
CommitsConventional Commitsfeat:, fix:, docs:, etc.
  1. Fork and create a branch: feat/my-feature or fix/my-fix
  2. Implement with tests
  3. Verify: go build ./... && go vet ./... && make test-all
  4. Submit with a clear title and description

Report vulnerabilities privately — see the Security Policy for details.