Thank you for your interest in contributing to Klavis AI! This document outlines the process and conventions we use for contributions, pull requests, and commit messages.
Before we can accept your contributions, we require all contributors to sign our Contributor License Agreement (CLA). This is a one-time process.
The CLA helps ensure that everyone who submits a contribution has the legal right to do so and agrees to the terms under which the contribution is accepted. Without this agreement, we cannot review or accept your contributions.
- Contributor License Agreement (CLA)
- Code of Conduct
- Getting Started
- Development Workflow
- Commit Message Convention
- Pull Request Process
- Code Style Guidelines
- Testing Guidelines
- License
We expect all contributors to follow our Code of Conduct. Please be respectful and inclusive in all interactions.
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/klavisAi.git - Add the upstream remote:
git remote add upstream https://github.com/Klavis-AI/klavis.git - Create a new branch for your feature or bug fix
- Make your changes
- Submit a pull request
The project is organized as a monorepo with multiple MCP servers and clients:
mcp_servers/- Contains individual Model Context Protocol serversmcp_clients/- Contains clients that connect to MCP servers
When making changes, be mindful of the scope of your change and any potential impacts on other components.
If you're interested in contributing a new MCP server to the project, we have a comprehensive guide to help you get started:
📖 MCP Server Guide - A complete guide covering:
- What MCP servers are and how they work
- How to design effective tools for AI agents
- Development best practices and testing requirements
- Step-by-step instructions with examples
This guide is essential reading for anyone wanting to build high-quality MCP servers that integrate well with AI applications.
We follow a simplified version of the Conventional Commits specification for commit messages.
Format:
<type>(<scope>): <subject>
Must be one of the following:
feat: A new featurefix: A bug fixdocs: Documentation only changesstyle: Changes that do not affect the meaning of the code (formatting, etc.)refactor: A code change that neither fixes a bug nor adds a featureperf: A code change that improves performancetest: Adding missing or correcting existing testschore: Changes to the build process or auxiliary toolsci: Changes to CI configuration files and scripts
The scope is optional and can be anything specifying the place of the commit change. For example: slack, github, supabase, etc.
The subject contains a succinct description of the change:
- Use the imperative, present tense: "change" not "changed" nor "changes"
- Don't capitalize the first letter
- No period (.) at the end
feat(slack): add user profile lookup functionality
fix(github): resolve PR comment retrieval issue
docs(core): update installation instructions
refactor(supabase): simplify authentication flow
-
Create a descriptive PR title following the commit message format:
<type>(<scope>): <subject> -
Fill in the PR template with:
- A clear description of the changes
- The motivation for the changes
- Any additional context that might be helpful
- Screenshots if applicable
-
Link related issues using GitHub keywords like "Closes #123" or "Fixes #456"
-
Keep PRs focused and reasonably sized - Split large changes into smaller, more manageable PRs when possible
-
Update documentation if your changes affect the public API or user experience
-
Add tests for new features or bug fixes
-
Make sure all tests pass and code style checks complete successfully
-
Request reviews from appropriate team members
-
Address review feedback promptly and thoroughly
-
Rebase your branch on the latest main branch before merging
- Write tests for all new features and bug fixes
- Maintain or improve code coverage
- Test across multiple Node.js/Python/go versions when appropriate
By contributing to Klavis AI, you agree that your contributions will be licensed under the project's MIT License.