Contributing to Nautobot MCP Server¶
Thank you for considering contributing to the Nautobot MCP Server! This document provides guidelines for contributing.
Ways to Contribute¶
- ๐ Report bugs
- ๐ก Suggest features
- ๐ Improve documentation
- ๐ง Submit code changes
- ๐งช Add tests
- ๐ฌ Help others in discussions
Getting Started¶
- Fork the repository
- Clone your fork
- Create a feature branch
- Make your changes
- Submit a pull request
Development Setup¶
See the Development Guide for detailed setup instructions.
Code Guidelines¶
Style¶
- Follow PEP 8
- Use type hints
- Write docstrings for public functions
- Keep functions focused and small
Example¶
def search_endpoints(query: str, n_results: int = 5) -> List[Dict[str, Any]]:
"""Search for API endpoints using semantic similarity.
Args:
query: Natural language search query
n_results: Number of results to return
Returns:
List of endpoint dictionaries with metadata
"""
# Implementation
pass
Testing¶
- Write tests for new features
- Ensure all tests pass
- Maintain or improve coverage
Documentation¶
- Update docs for new features
- Add examples
- Keep README current
Pull Request Process¶
- Create an Issue - Discuss major changes first
- Branch Naming - Use descriptive names:
feature/add-x,fix/issue-123 - Commit Messages - Clear, descriptive messages
- Tests - Add tests for new code
- Documentation - Update relevant docs
- Review - Address feedback
PR Template¶
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
## Testing
How the changes were tested
## Checklist
- [ ] Tests pass
- [ ] Documentation updated
- [ ] Code follows style guidelines
Reporting Issues¶
Bug Reports¶
Include:
- Description of the issue
- Steps to reproduce
- Expected vs actual behavior
- Environment (OS, Python version)
- Logs (with DEBUG level)
Feature Requests¶
Include:
- Use case description
- Proposed solution
- Alternative approaches
- Additional context
Code of Conduct¶
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Assume good intentions
Questions?¶
- Open a Discussion
- Email: kvncampos@duck.com
Thank you for contributing! ๐