Thank you for your interest in contributing to MCPcat! We're excited to have you join our community of developers building analytics tools for MCP servers.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/YOUR-USERNAME/mcpcat-python-sdk.git cd mcpcat-python-sdk - Install dependencies using uv:
uv sync
- Create a branch for your feature or fix:
git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix
- Write your code following our Python standards
- Add tests for new features (required for feature additions)
- Run the test suite to ensure everything passes:
uv run pytest
- Check your code meets our standards:
uv run ruff check . # Run linting checks uv run ruff format . # Format code
We follow Conventional Commits. Your commit messages should be structured as:
<type>: <description>
[optional body]
Types:
feat: New featurefix: Bug fixdocs: Documentation changestest: Adding or updating testsrefactor: Code change that neither fixes a bug nor adds a featurechore: Changes to build process or auxiliary tools
Examples:
git commit -m "feat: add telemetry exporters for observability"
git commit -m "fix: handle edge case in session tracking"
git commit -m "docs: update API documentation"-
Push your changes to your fork:
git push origin feature/your-feature-name
-
Create a Pull Request from your fork to our
mainbranch -
Fill out the PR description with:
- What changes you've made
- Why these changes are needed
- Any relevant context or screenshots
-
Wait for review - The MCPcat team will review your PR within 2 business days
-
Address feedback if any changes are requested
-
Celebrate 🎉 once your PR is merged!
You don't need to open an issue before submitting a PR. Feel free to submit pull requests directly with your improvements!
Looking for a place to start? Check out issues labeled good first issue - these are great for newcomers to the codebase.
- New features should include tests to ensure reliability
- Run tests locally with
uv run pytest - We use pytest for our test suite
- Test files should be placed in the
tests/directory withtest_*.pynaming convention
Before submitting your PR, ensure your code passes all checks:
# Run tests
uv run pytest
# Check code style and linting
uv run ruff check .
# Format code
uv run ruff format .
# Type checking (if applicable)
uv run mypy src/mcpcat --ignore-missing-importsOur CI will run these same checks on your PR.
While we don't restrict adding new dependencies, they are generally discouraged unless absolutely necessary. If you need to add a dependency:
- Consider if the functionality can be achieved with existing dependencies
- Check if the dependency is well-maintained and lightweight
- Ensure it's compatible with our MIT license
- Add it using uv:
uv add <package-name>
mcpcat-python-sdk/
├── src/ # Source code
│ └── mcpcat/ # Main package
│ ├── modules/ # Core modules
│ ├── thirdparty/ # Vendored dependencies
│ ├── types.py # Type definitions
│ └── utils.py # Utility functions
├── tests/ # Test files
├── examples/ # Example usage
├── docs/ # Documentation
└── dist/ # Built distributions (generated)
- Discord: Join our Discord server for discussions
- Documentation: Visit docs.mcpcat.io for detailed guides
- Issues: Browse open issues for areas needing help
The MCPcat team handles versioning and releases. Your contributions will be included in the next appropriate release based on semantic versioning principles.
All contributors are recognized in our repository. Your contributions help make MCPcat better for everyone building MCP servers!
If you have questions about contributing, feel free to:
- Ask in our Discord server
- Open a discussion on GitHub
Thank you for contributing to MCPcat! 🐱