Skip to main content
Glama

pyResToolbox MCP Server

CONTRIBUTING.md3.56 kB
# Contributing to pyResToolbox MCP Server Thank you for your interest in contributing to the pyResToolbox MCP Server! ## Code of Conduct This project adheres to the principles of open source collaboration. Please be respectful and constructive in all interactions. ## How to Contribute ### Reporting Bugs 1. Check if the bug is already reported in [Issues](../../issues) 2. If not, create a new issue with: - Clear description of the problem - Steps to reproduce - Expected vs actual behavior - Environment details (OS, Python version, UV version) ### Suggesting Enhancements 1. Check existing issues and discussions 2. Create an issue describing: - The enhancement and its benefits - Use cases - Potential implementation approach ### Pull Requests 1. **Fork the repository** 2. **Create a feature branch** (`git checkout -b feature/amazing-feature`) 3. **Make your changes** 4. **Test thoroughly:** ```bash uv run python test_tools.py # All 47 tools must pass uv run python test_server.py uv run python examples/basic_usage.py ``` 5. **Follow code style:** ```bash uv run black src/ tests/ uv run ruff check src/ tests/ ``` 6. **Commit your changes** (`git commit -m 'Add amazing feature'`) 7. **Push to the branch** (`git push origin feature/amazing-feature`) 8. **Open a Pull Request** ## Development Setup ```bash # Clone your fork git clone https://github.com/YOUR_USERNAME/pyrestoolbox-mcp.git cd pyrestoolbox-mcp # Install UV curl -LsSf https://astral.sh/uv/install.sh | sh # Setup project make uv-install # Run tests uv run python test_tools.py uv run pytest ``` ## Code Guidelines ### Python Style - Use type hints for all function parameters and return values - Follow PEP 8 style guide - Use Black for code formatting - Use Ruff for linting ### Docstrings - Use Google-style docstrings - Include parameter descriptions - Provide usage examples - Document return values ### Testing - Write tests for all new tools - Ensure existing tests pass - Add to `test_tools.py` for integration testing ## Adding New Tools 1. **Define Pydantic model** in `src/pyrestoolbox_mcp/models/` 2. **Implement tool function** in appropriate `src/pyrestoolbox_mcp/tools/` file 3. **Register tool** in the register function 4. **Add tests** in `test_tools.py` 5. **Update documentation** in README.md Example: ```python # In models/oil_models.py class NewCalculationRequest(BaseModel): param1: float = Field(..., description="Parameter 1") param2: float = Field(..., description="Parameter 2") # In tools/oil_tools.py @mcp.tool() def new_calculation(request: NewCalculationRequest) -> dict: \"\"\"Calculate something new.\"\"\" result = oil.some_function( param1=request.param1, param2=request.param2, ) return { "value": float(result), "method": "Method name", "units": "units", "inputs": request.model_dump(), } # In test_tools.py ("new_calculation", {"request": {"param1": 1.0, "param2": 2.0}}), ``` ## License By contributing, you agree that your contributions will be licensed under the GNU General Public License v3.0 (GPL-3.0), the same license as the original [pyResToolbox](https://github.com/mwburgoyne/pyResToolbox) library. ## Questions? Feel free to open an issue for any questions about contributing! ## Acknowledgments This project builds on the excellent [pyResToolbox](https://github.com/mwburgoyne/pyResToolbox) library by Mark Burgoyne. Please also consider contributing to the upstream project!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gabrielserrao/pyrestoolbox-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server