Seiten · Orchestra MCP
Contributing to cli
Prerequisites
- Go 1.23+
gofmt,go vet
Development Setup
bash
Building
bash
Testing
bash
Code Organization
text
Adding a New IDE
- Add a new function in
internal/ide.gothat returns an*IDEConfig. - Register it in the
ideRegistrymap. - Add it to the
allIDENames()slice. - Update the
--ideflag description ininitcmd.goandmain.go. - Update
docs/COMMANDS.md.
Adding a New Command
- Create a new file in
internal/(e.g.,mycommand.go) with aRunMyCommand(args []string)function. - Add the case to the switch in
main.go. - Update the
printUsage()function. - Update
docs/COMMANDS.md.
Code Style
- Run
gofmton all files. - Run
go vet ./...before committing. - All exported functions and types must have doc comments.
- Error output goes to stderr (
fmt.Fprintf(os.Stderr, ...)). - The
fatal()helper prints to stderr and exits with code 1. - Subcommands use
flag.NewFlagSetfor independent flag parsing.
Pull Request Process
- Fork the repository and create a feature branch from
main. - Write or update tests for your changes.
- Run
go test ./...andgo vet ./.... - Update
docs/COMMANDS.mdif adding or changing commands. - Update
docs/PLUGIN_DEVELOPMENT.mdif changing the plugin install flow.
Related Repositories
- orchestra-mcp/proto -- Protobuf schema
- orchestra-mcp/sdk-go -- Go Plugin SDK
- orchestra-mcp/orchestrator -- Central hub
- orchestra-mcp -- Organization home