We welcome contributions! This guide will help you get started.
- Fork and clone the repository
- Install dependencies:
task installoruv sync - Set up GitHub authentication (see README.md)
- Run tests:
task test - Make your changes following our code style guidelines
- Submit a pull request
# Install dependencies
task install
# Run all tests
task test
# Run specific test
task test-single -- tests/test_main.py::test_list_opentelemetry_repos_tool
# Format and lint code
task lint
# Run all checks (test + lint)
task checks
# Start development server
task dev- Python 3.13+ required
- Imports: Group stdlib, third-party, local imports
- Type hints: Required for all function parameters and return values
- Async/await: Prefer async patterns for MCP tools
- Naming: Use
snake_casefor functions/variables,PascalCasefor classes - Testing: Use pytest with async MCP client patterns
- Formatting: Pre-commit hooks handle formatting automatically
Use Conventional Commits format:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test additions/changesfeat(refactor):for code refactoring
- Keep PRs focused and under 200 lines when possible
- Include tests for new functionality
- Update documentation if needed
- Ensure all checks pass (
task checks) - Link to related issues
- PRs require approval from maintainers
- Address feedback promptly
- Squash commits before merging
When reporting bugs, include:
- Expected vs actual behavior
- Steps to reproduce
- Environment details (Python version, OS, etc.)
- Relevant logs or error messages
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Thank you for contributing to the OpenTelemetry MCP Server! 🚀