Contributing¶
Contributions are welcome! Here's how to get started.
Development Setup¶
Code Standards¶
- Go 1.23 — use modern idioms, no legacy patterns
- Run
golangci-lint runbefore committing - All tool files follow the pattern in
pkg/server/tools_*.go - Tabs for indentation (Go standard)
Adding a New Tool¶
- Pick the appropriate
tools_<category>.gofile (or create one) - Add the
mcp.AddToolcall with a clear, AI-readable description - Define the args struct with
jsonandjsonschematags - Implement the handler, calling the SDK and returning
*mcp.CallToolResult - Write an E2E test in
tests/ - The CI workflow will regenerate the documentation site automatically
Pull Request Guidelines¶
- Small, focused PRs
- Link to related issues
- Pass all CI checks (
make lint && make test) - Don't skip tests — every test creates its own dependencies
Documentation Site¶
The tool reference is auto-generated from source code. Do not edit site/content/tools/*.md by hand — they will be overwritten by the schema generator on each build.
To preview locally: