Thank you for your interest in contributing to NextMCP! We welcome contributions from the community.
- Python 3.10 or higher
- Git
- pip
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/YOUR_USERNAME/NextMCP.git cd NextMCP -
Create a virtual environment and install development dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -e ".[dev]"
-
Create a new branch for your feature or bugfix:
git checkout -b feature/your-feature-name
Run the full test suite:
pytest tests/ -vRun tests with coverage:
pytest tests/ --cov=nextmcp --cov-report=term-missingWe use several tools to maintain code quality:
Linting:
ruff check nextmcp/Formatting:
black nextmcp/Type Checking:
mypy nextmcp/Run all checks:
ruff check nextmcp/ && black --check nextmcp/ && mypy nextmcp/- Write your code
- Add tests for new functionality
- Ensure all tests pass
- Run code quality checks
- Update documentation if needed
- Commit your changes with clear, descriptive messages
Follow conventional commit format:
feat: Add new featurefix: Fix bug in Xdocs: Update documentationtest: Add tests for Xrefactor: Refactor Xchore: Update dependencies
Example:
feat: Add WebSocket heartbeat support
- Add ping/pong mechanism
- Configure heartbeat interval
- Add tests for connection keepalive
- Ensure all tests pass and code quality checks succeed
- Update the README.md with details of changes if needed
- Update the CHANGELOG.md if this is a significant change
- Push to your fork and submit a pull request to the
mainbranch - Wait for review and address any feedback
- Title: Clear, descriptive title
- Description: Explain what changes you made and why
- Tests: Include tests for new features
- Documentation: Update docs for user-facing changes
- Breaking Changes: Clearly mark breaking changes
Example PR description:
## Description
Adds WebSocket heartbeat support to prevent connection timeouts
## Changes
- Added ping/pong mechanism in WebSocketTransport
- Configurable heartbeat interval (default: 30s)
- Automatic reconnection on timeout
## Testing
- Added unit tests for heartbeat mechanism
- Tested with long-running connections
- All existing tests pass
## Breaking Changes
None- Be respectful and inclusive
- Welcome newcomers
- Accept constructive criticism gracefully
- Focus on what's best for the community
- Show empathy towards others
- Harassment, discrimination, or offensive comments
- Personal attacks or trolling
- Public or private harassment
- Publishing others' private information
- Other conduct inappropriate in a professional setting
- Open a GitHub Discussion for questions
- Check existing Issues and Pull Requests
- Read the Documentation
We especially welcome contributions in these areas:
- 🐛 Bug fixes
- 📚 Documentation improvements
- ✨ Example projects
- 🧪 Additional tests
- 🎨 New middleware implementations
- 🔌 Plugin examples
- 🚀 Performance improvements
- 🌐 Transport implementations
- 💡 New features (open an issue first to discuss)
- 🛠 Developer tools
- 📊 Monitoring integrations
- 🔐 Security enhancements
Contributors will be:
- Listed in our README
- Mentioned in release notes
- Given credit in commit messages (Co-Authored-By)
By contributing to NextMCP, you agree that your contributions will be licensed under the MIT License.
Thank you for contributing to NextMCP! 🎉