Thank you for your interest in contributing to Metabase AI Assistant! This document provides guidelines for contributing to the project.
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Coding Standards
- Commit Messages
- Reporting Issues
- Fork the repository
- Clone your fork locally
- Set up the development environment
- Create a feature branch
- Make your changes
- Submit a pull request
# Clone your fork
git clone https://github.com/YOUR_USERNAME/metabase-ai-assistant.git
cd metabase-ai-assistant
# Install dependencies
npm install
# Copy environment template
cp .env.example .env
# Edit .env with your test credentials
# Run the MCP server
npm run mcp- Bug Fixes: Fix issues and improve stability
- New Features: Add new MCP tools or capabilities
- Documentation: Improve README, add examples, fix typos
- Tests: Add or improve test coverage
- Performance: Optimize existing functionality
- Check existing issues and pull requests
- Open an issue to discuss major changes
- Ensure your contribution aligns with project goals
-
Create a Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Write clean, readable code
- Add tests if applicable
- Update documentation
-
Test Your Changes
npm test npm run lint -
Commit Your Changes
git commit -m "feat: add new feature description" -
Push and Create PR
git push origin feature/your-feature-name
-
PR Review
- Address reviewer feedback
- Keep PR focused and small
- Update PR description as needed
- Use ES Modules (import/export)
- Use async/await for asynchronous code
- Follow existing code style
- Add JSDoc comments for public functions
src/
├── mcp/ # MCP server and tools
├── metabase/ # Metabase API client
├── database/ # Direct database connections
├── ai/ # AI assistant functionality
├── utils/ # Utility functions
└── cli/ # CLI interface
- Files: kebab-case (e.g.,
activity-logger.js) - Functions: camelCase (e.g.,
getDatabases) - Classes: PascalCase (e.g.,
MetabaseClient) - Constants: UPPER_SNAKE_CASE (e.g.,
MAX_RETRIES)
Follow Conventional Commits:
type(scope): description
[optional body]
[optional footer]
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat(mcp): add user management tools
fix(database): handle connection timeout properly
docs(readme): update installation instructions
Include:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Environment details (Node.js version, OS)
- Error messages or logs
Include:
- Clear description of the feature
- Use case and motivation
- Proposed implementation (optional)
- Open a GitHub Discussion for questions
- Check existing issues and documentation
- Contact: contribute@onmartech.com
Copyright 2024-2026 ONMARTECH LLC Developed by Abdullah Enes SARI