Skip to content

Latest commit

 

History

History
143 lines (99 loc) · 3.66 KB

File metadata and controls

143 lines (99 loc) · 3.66 KB

Contributing to Dremio MCP Server

Thank you for your interest in contributing to the Dremio MCP Server project! This document provides guidelines and information for contributors.

Table of Contents

Code of Conduct

This project follows the Contributor Covenant Code of Conduct. Please read CODE_OF_CONDUCT.md before contributing. By participating, you are expected to uphold this code.

Getting Started

Development Setup

  1. Install Python 3.11 or later

  2. Install the uv package manager:

    # Follow instructions at https://docs.astral.sh/uv/guides/install-python/
  3. Fork the repository:

  4. Install dependencies:

    cd dremio-mcp-server
    uv sync
  5. Verify installation:

    uv run dremio-mcp-server --help

Project Structure

dremio-mcp-server/
├── src/
│   └── dremioai/
│       ├── config/      # Configuration management
│       ├── servers/     # MCP server implementation
│       └── tools/       # Dremio tools implementation
└── docs/                # Documentation

Making Contributions

Pull Request Process

  1. Fork the repository and create your branch from main:

    git checkout -b feature/your-feature-name
  2. Make your changes, ensuring you:

    • Follow the coding style guidelines
    • Add/update tests as needed
    • Update documentation as needed
    • Keep commits atomic and well-described
  3. Push to your fork and submit a pull request

  4. Wait for review. The maintainers will review your PR and might request changes

Development Guidelines

  1. Code Style

    • Follow PEP 8 guidelines
    • Use type hints for function arguments and return values
    • Document functions and classes using docstrings
  2. Commit Messages

    • Use clear, descriptive commit messages
    • Start with a verb in imperative mood (e.g., "Add", "Fix", "Update")
    • Reference issues if applicable
  3. Feature Development

    • Create an issue before starting significant work
    • Discuss major changes in issues before implementing
    • Keep changes focused and scoped

Documentation

  • Update documentation for new features or changes
  • Include docstrings for new functions and classes
  • Update README.md if adding new features
  • Add examples for significant new functionality
  • Documentation should be in Markdown format

Community

  • Report bugs and request features through GitHub issues
  • Join discussions in the issues and pull requests
  • Help other contributors and users
  • Share improvements and success stories

Tool Development

When adding new tools:

  1. Inherit from the Tools class:

    from dremioai.tools.tools import Tools
    from dremioai.config.tools import ToolType
    
    class MyNewTool(Tools):
        For: ClassVar[Annotated[ToolType, ToolType.FOR_SELF]]
    
        async def invoke(self) -> Dict[str, Any]:
            """Tool description here"""
            # Implementation
            pass
  2. Add appropriate tests

  3. Update documentation

Questions or Need Help?

Feel free to:

  • Open an issue for questions
  • Ask for clarification on existing issues
  • Reach out to maintainers

Thank you for contributing to Dremio MCP Server!