Skip to main content
Glama
contributing.md3.83 kB
--- layout: page title: "Contributing" description: "How to contribute to OParl MCP Server" permalink: /development/contributing/ --- # Contributing We welcome contributions to OParl MCP Server! This guide will help you get started. ## Getting Started 1. **Fork the repository** on GitHub 2. **Clone your fork** locally: ```bash git clone https://github.com/yourusername/oparl-mcp-server.git cd oparl-mcp-server ``` 3. **Create a virtual environment**: ```bash python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate ``` 4. **Install dependencies**: ```bash pip install -e . pip install -r requirements-dev.txt ``` ## Development Setup ### Pre-commit Hooks Install pre-commit hooks to ensure code quality: ```bash pip install pre-commit pre-commit install ``` ### Running Tests ```bash # Run all tests pytest # Run with coverage pytest --cov=src/oparl_mcp # Run specific test file pytest tests/test_server.py ``` ### Code Quality The project uses several tools for code quality: - **Black**: Code formatting - **isort**: Import sorting - **flake8**: Linting - **mypy**: Type checking - **bandit**: Security scanning - **detect-secrets**: Secret detection Run all quality checks: ```bash pre-commit run --all-files ``` ## Making Changes 1. **Create a feature branch**: ```bash git checkout -b feature/your-feature-name ``` 2. **Make your changes** following the coding standards 3. **Write tests** for new functionality 4. **Update documentation** if needed 5. **Run tests and quality checks**: ```bash pytest pre-commit run --all-files ``` 6. **Commit your changes**: ```bash git add . git commit -m "Add your feature description" ``` 7. **Push to your fork**: ```bash git push origin feature/your-feature-name ``` 8. **Create a Pull Request** on GitHub ## Coding Standards ### Python Code - Follow PEP 8 style guidelines - Use type hints for function parameters and return values - Write docstrings for all public functions and classes - Use meaningful variable and function names ### Documentation - Update relevant documentation files - Use clear, concise language - Include code examples where helpful - Follow the existing documentation structure ### Testing - Write unit tests for new functionality - Aim for high test coverage - Use descriptive test names - Test both success and error cases ## Pull Request Process 1. **Ensure all checks pass** (tests, linting, etc.) 2. **Write a clear description** of your changes 3. **Reference any related issues** 4. **Request review** from maintainers 5. **Address feedback** promptly ## Issue Reporting When reporting issues: 1. **Check existing issues** first 2. **Use the issue template** provided 3. **Include reproduction steps** 4. **Provide system information** (OS, Python version, etc.) 5. **Include error messages** and logs ## Development Guidelines ### Adding New Features - Discuss major features in issues first - Keep features focused and atomic - Consider backward compatibility - Update tests and documentation ### Bug Fixes - Include a test that reproduces the bug - Fix the root cause, not just symptoms - Update documentation if behavior changes ### Documentation - Keep documentation up to date - Use clear, simple language - Include practical examples - Test all code examples ## Release Process Releases are handled by maintainers: 1. **Version bump** in `pyproject.toml` 2. **Update changelog** 3. **Create release tag** 4. **Build and publish** to PyPI 5. **Update documentation** ## Questions? - **GitHub Discussions**: For general questions and discussions - **Issues**: For bug reports and feature requests - **Pull Requests**: For code contributions Thank you for contributing to OParl MCP Server! 🎉

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/jtwolfe/oparl-mcp-server'

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