Thank you for your interest in contributing to mcpbr! This document provides guidelines and information for contributors.
Before creating a bug report, please check the existing issues to avoid duplicates. When creating a bug report, include:
- A clear, descriptive title
- Steps to reproduce the behavior
- Expected behavior
- Actual behavior
- Your environment (OS, Python version, Docker version)
- Any relevant logs or error messages
Feature requests are welcome! Please:
- Check existing issues and discussions first
- Clearly describe the feature and its use case
- Explain why this feature would be useful to most users
- Fork the repository
- Create a feature branch from
main - Make your changes
- Add or update tests as needed
- Ensure all tests pass
- Update documentation if needed
- Submit a pull request
- Python 3.11+
- Docker
- An API key for at least one supported provider (OpenRouter, OpenAI, Anthropic, or Google)
# Clone your fork
git clone https://github.com/greynewell/mcpbr.git
cd mcpbr
# Create a virtual environment
python -m venv venv
source venv/bin/activate # or `venv\Scripts\activate` on Windows
# Install in development mode with dev dependencies
pip install -e ".[dev]"# Run unit tests only (no Docker or API keys required)
pytest -m "not integration"
# Run all tests (requires Docker and API keys)
pytest
# Run with coverage
pytest --cov=mcpbrThis project uses:
- ruff for linting and formatting
- Type hints throughout the codebase
Before submitting a PR:
# Run linter
ruff check src/ tests/
# Auto-fix issues
ruff check --fix src/ tests/
# Format code
ruff format src/ tests/- Use clear, descriptive commit messages
- Start with a verb in the imperative mood (e.g., "Add", "Fix", "Update")
- Keep the first line under 72 characters
- Reference issues when applicable (e.g., "Fix #123")
mcpbr/
├── src/mcpbr/ # Main package
│ ├── cli.py # CLI commands
│ ├── config.py # Configuration models
│ ├── harness.py # Main orchestrator
│ ├── harnesses.py # Agent implementations
│ ├── providers.py # LLM provider abstractions
│ └── ...
├── tests/ # Test suite
├── config/ # Example configurations
└── docs/ # Documentation
- Create a new class in
src/mcpbr/providers.pyimplementing theModelProviderprotocol - Add it to
PROVIDER_REGISTRY - Update
VALID_PROVIDERSinconfig.py - Add tests
- Update documentation
- Create a new class in
src/mcpbr/harnesses.pyimplementing theAgentHarnessprotocol - Add it to
HARNESS_REGISTRY - Update
VALID_HARNESSESinconfig.py - Add tests
- Update documentation
Feel free to open an issue for any questions about contributing.