# Contributing to Pentest MCP Server

Thank you for your interest in contributing! This project welcomes contributions from the community.

## How to Contribute

### Reporting Bugs

1. Check if the bug has already been reported in Issues
2. Create a new issue with:
   - Clear title and description
   - Steps to reproduce
   - Expected vs actual behavior
   - System information (OS, Python version, etc.)

### Suggesting Features

1. Open an issue with the `enhancement` label
2. Describe the feature and its use case
3. Explain why it would be valuable

### Submitting Code

1. **Fork** the repository
2. **Create a branch** for your feature: `git checkout -b feature/amazing-feature`
3. **Make your changes** following the code style
4. **Add tests** for new functionality
5. **Run tests**: `python -m pytest tests/ -v`
6. **Commit**: `git commit -m 'Add amazing feature'`
7. **Push**: `git push origin feature/amazing-feature`
8. **Open a Pull Request**

## Development Setup

```bash
git clone <your-fork>
cd pentest_mcp_server
pip install -e .
pip install pytest pytest-asyncio pytest-mock
```

## Code Style

- Follow PEP 8
- Use type hints
- Add docstrings to functions
- Keep functions focused and small
- Write descriptive variable names

## Testing

- Add tests for new features
- Ensure all tests pass: `python -m pytest tests/ -v`
- Aim for >80% code coverage
- Test both success and error cases

## Pull Request Guidelines

- **One feature per PR**
- **Clear description** of changes
- **Link related issues**
- **Update documentation** if needed
- **Add tests** for new code
- **Ensure CI passes**

## Questions?

Open an issue with the `question` label or reach out to the maintainers.

---

**Thank you for contributing!** 🙏