MCP Codebase Insight

by tosin2013
Verified
# Contributing to MCP Codebase Insight First off, thank you for considering contributing to MCP Codebase Insight! It's people like you that make it such a great tool. ## Code of Conduct This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. ## How Can I Contribute? ### Reporting Bugs Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible: * Use a clear and descriptive title * Describe the exact steps which reproduce the problem * Provide specific examples to demonstrate the steps * Describe the behavior you observed after following the steps * Explain which behavior you expected to see instead and why * Include screenshots and animated GIFs if possible ### Suggesting Enhancements Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include: * Use a clear and descriptive title * Provide a step-by-step description of the suggested enhancement * Provide specific examples to demonstrate the steps * Describe the current behavior and explain which behavior you expected to see instead * Explain why this enhancement would be useful ### Pull Requests * Fill in the required template * Do not include issue numbers in the PR title * Include screenshots and animated GIFs in your pull request whenever possible * Follow the Python style guides * Include thoughtfully-worded, well-structured tests * Document new code * End all files with a newline ## Development Process 1. Fork the repo 2. Create a new branch (`git checkout -b feature/amazing-feature`) 3. Make your changes 4. Run the tests (`make test`) 5. Run the linters (`make lint`) 6. Commit your changes (`git commit -m 'Add some amazing feature'`) 7. Push to the branch (`git push origin feature/amazing-feature`) 8. Open a Pull Request ### Setting Up Development Environment ```bash # Clone your fork git clone https://github.com/your-username/mcp-codebase-insight.git cd mcp-codebase-insight # Create virtual environment python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies make dev-setup # Run tests make test # Run linters make lint # Format code make format ``` ### Project Structure ``` mcp-codebase-insight/ ├── docs/ # Documentation ├── src/ # Source code │ └── mcp_codebase_insight/ │ ├── core/ # Core functionality │ └── utils/ # Utilities ├── tests/ # Test suite ├── scripts/ # Utility scripts └── examples/ # Example code ``` ## Style Guides ### Git Commit Messages * Use the present tense ("Add feature" not "Added feature") * Use the imperative mood ("Move cursor to..." not "Moves cursor to...") * Limit the first line to 72 characters or less * Reference issues and pull requests liberally after the first line ### Python Style Guide * Follow [PEP 8](https://www.python.org/dev/peps/pep-0008/) * Use [Black](https://black.readthedocs.io/) for code formatting * Use [isort](https://pycqa.github.io/isort/) for import sorting * Use [mypy](http://mypy-lang.org/) for type checking * Use [flake8](https://flake8.pycqa.org/) for linting ### Documentation Style Guide * Use [Google style](https://google.github.io/styleguide/pyguide.html#38-comments-and-docstrings) for docstrings * Keep docstrings clear and concise * Include examples in docstrings when appropriate * Document both the what and the why ## Additional Notes ### Issue and Pull Request Labels * `bug`: Something isn't working * `enhancement`: New feature or request * `documentation`: Improvements or additions to documentation * `good first issue`: Good for newcomers * `help wanted`: Extra attention is needed * `question`: Further information is requested ## License By contributing, you agree that your contributions will be licensed under its MIT License.