Contributing¶
Thank you for your interest in contributing to Notify-MCP!
Ways to Contribute¶
Report Bugs¶
Found a bug? Create an issue:
- Title: Clear description of the issue
- Steps to reproduce: Detailed reproduction steps
- Expected behavior: What should happen
- Actual behavior: What actually happens
- Environment: OS, Python version, MCP SDK version
Suggest Features¶
Have an idea? Create a feature request:
- Title: Concise feature description
- Problem: What problem does it solve?
- Solution: Proposed implementation
- Alternatives: Other approaches considered
- Use case: Real-world scenario
Contribute Code¶
Ready to code? Follow these steps:
1. Fork the Repository¶
2. Create a Feature Branch¶
3. Set Up Development Environment¶
4. Make Your Changes¶
- Follow existing code style
- Add tests for new functionality
- Update documentation
5. Run Tests¶
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=src/notify_mcp
# Run specific test
uv run pytest tests/test_your_feature.py -v
6. Run Linting¶
# Check code style
uv run ruff check src/
# Format code
uv run ruff format src/
# Type checking
uv run mypy src/notify_mcp
7. Commit Your Changes¶
Commit message format:
- feat: New feature
- fix: Bug fix
- docs: Documentation changes
- test: Test additions or changes
- refactor: Code refactoring
8. Push and Create Pull Request¶
Then create a Pull Request on GitHub.
Code Style¶
- Python: Follow PEP 8
- Line length: 100 characters
- Type hints: Required for all functions
- Docstrings: Google style
Testing Requirements¶
All contributions must include tests:
- Unit tests: For business logic
- Integration tests: For component interaction
- Coverage: Aim for 80%+ on new code
Documentation¶
Update documentation for:
- New features
- API changes
- Configuration changes
- Breaking changes
Code Review Process¶
- Automated checks: Tests, linting, type checking must pass
- Review: Maintainer reviews code
- Feedback: Address review comments
- Approval: Maintainer approves
- Merge: PR merged to main
Development Setup¶
Prerequisites¶
- Python 3.11+
- uv package manager
- Git
Install Development Dependencies¶
Run Development Server¶
Run Tests Continuously¶
Questions?¶
- Chat: GitHub Discussions
- Issues: GitHub Issues
Code of Conduct¶
Be respectful, inclusive, and constructive. We welcome contributors of all skill levels.
Ready to contribute? Fork the repository →