Skip to content

Latest commit

 

History

History
93 lines (62 loc) · 2.16 KB

File metadata and controls

93 lines (62 loc) · 2.16 KB

Contributing

Thank you for your interest in contributing to the MCP Python SDK! This document provides guidelines and instructions for contributing.

Development Setup

  1. Make sure you have Python 3.10+ installed
  2. Install uv
  3. Fork the repository
  4. Clone your fork: git clone https://github.com/YOUR-USERNAME/python-sdk.git
  5. Install dependencies:
uv sync --frozen --all-extras --dev
  1. Set up pre-commit hooks:
uv tool install pre-commit --with pre-commit-uv --force-reinstall

Development Workflow

  1. Choose the correct branch for your changes:

    Change Type Target Branch Example
    New features, breaking changes main New APIs, refactors
    Security fixes for v1 v1.x Critical patches
    Bug fixes for v1 v1.x Non-breaking fixes

    Note: main is the v2 development branch. Breaking changes are welcome on main. The v1.x branch receives only security and critical bug fixes.

  2. Create a new branch from your chosen base branch

  3. Make your changes

  4. Ensure tests pass:

uv run pytest
  1. Run type checking:
uv run pyright
  1. Run linting:
uv run ruff check .
uv run ruff format .
  1. Update README snippets if you modified example code:
uv run scripts/update_readme_snippets.py
  1. (Optional) Run pre-commit hooks on all files:
pre-commit run --all-files
  1. Submit a pull request to the same branch you branched from

Code Style

  • We use ruff for linting and formatting
  • Follow PEP 8 style guidelines
  • Add type hints to all functions
  • Include docstrings for public APIs

Pull Request Process

  1. Update documentation as needed
  2. Add tests for new functionality
  3. Ensure CI passes
  4. Maintainers will review your code
  5. Address review feedback

Code of Conduct

Please note that this project is released with a Code of Conduct. By participating in this project you agree to abide by its terms.

License

By contributing, you agree that your contributions will be licensed under the MIT License.