Thank you for your interest in contributing to the IONOS CLOUD MCP Server!
- Fork and clone the repository
- Install Go 1.20 or higher
- Install dependencies:
make deps - Build the project:
make build
- Follow standard Go formatting:
make fmt - Run linter checks:
make vet - Run both:
make check
Test your changes using the MCP protocol:
# Initialize and list tools
{
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0.1.0"}}}'
echo '{"jsonrpc":"2.0","method":"notifications/initialized"}'
echo '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
sleep 1
} | ./ionoscloud-mcpTo add a new tool:
- Define an input struct in
tools/inputs.gowithjsonandjsonschematags (non-pointer fields are automatically required) - Add a
mcp.AddTool()call in the appropriate resource file undertools/<product>/(e.g.,tools/compute/server.go) - Register the new resource file's function in
tools/<product>/register.goif it's a new resource - Add the tool to the appropriate
docs/<product>/resource file (e.g.,docs/compute/server.md) - Update the tools table in
README.md - Test the tool using the MCP protocol
- Ensure your code passes
make check - Update documentation as needed
- Add examples for new tools
- Add an entry to CHANGELOG.md
- Submit a pull request with a clear description of changes
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.