2024-11-20 15:32:22 +00:00
# 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 ](https://docs.astral.sh/uv/getting-started/installation/ )
2024-11-20 15:44:08 +00:00
3. Fork the repository
4. Clone your fork: `git clone https://github.com/YOUR-USERNAME/python-sdk.git`
5. Install dependencies:
2025-07-10 16:43:49 +08:00
2024-11-20 15:32:22 +00:00
``` bash
uv sync --frozen --all-extras --dev
```
2025-07-17 20:17:59 +08:00
6. Set up pre-commit hooks:
``` bash
uv tool install pre-commit --with pre-commit-uv --force-reinstall
```
2024-11-20 15:32:22 +00:00
## Development Workflow
2025-01-03 21:27:21 +00:00
1. Choose the correct branch for your changes:
- For bug fixes to a released version: use the latest release branch (e.g. v1.1.x for 1.1.3)
- For new features: use the main branch (which will become the next minor/major version)
- If unsure, ask in an issue first
2. Create a new branch from your chosen base branch
3. Make your changes
4. Ensure tests pass:
2025-07-10 16:43:49 +08:00
``` bash
2024-11-20 15:32:22 +00:00
uv run pytest
```
2025-01-03 21:27:21 +00:00
5. Run type checking:
2025-07-10 16:43:49 +08:00
2024-11-20 15:32:22 +00:00
``` bash
uv run pyright
```
2025-01-03 21:27:21 +00:00
6. Run linting:
2025-07-10 16:43:49 +08:00
2024-11-20 15:32:22 +00:00
``` bash
uv run ruff check .
uv run ruff format .
```
2025-01-03 21:27:21 +00:00
2025-07-04 17:25:54 +01:00
7. Update README snippets if you modified example code:
2025-07-10 16:43:49 +08:00
2025-07-04 17:25:54 +01:00
``` bash
uv run scripts/update_readme_snippets.py
```
2025-07-17 20:17:59 +08:00
8. (Optional) Run pre-commit hooks on all files:
``` bash
pre-commit run --all-files
```
9. Submit a pull request to the same branch you branched from
2024-11-20 15:32:22 +00:00
## 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 ](CODE_OF_CONDUCT.md ). 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.