Thank you for your interest in contributing to Bear MCP! This document provides guidelines and instructions for contributing to the project.
- Code of Conduct
- Getting Started
- Development Setup
- How to Contribute
- Pull Request Process
- Coding Standards
- Testing
- Documentation
- Community
By participating in this project, you agree to abide by our Code of Conduct:
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive criticism
- Respect differing viewpoints and experiences
- Accept responsibility and apologize for mistakes
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/philgetzen/bear-mcp.git cd bear-mcp - Add the upstream repository as a remote:
git remote add upstream https://github.com/ORIGINAL_OWNER/bear-mcp.git
- Install Node.js (version 18 or higher)
- Install dependencies:
npm install
- Build the project:
npm run build
- Run tests:
npm test
Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:
- A clear and descriptive title
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Environment details (OS, Node.js version, etc.)
- Any relevant logs or error messages
Enhancement suggestions are welcome! Please provide:
- A clear and descriptive title
- Detailed description of the proposed feature
- Use cases and examples
- Any potential drawbacks or considerations
- Choose an issue to work on or create a new one
- Create a new branch from
main:git checkout -b feature/your-feature-name
- Make your changes following our coding standards
- Write or update tests as needed
- Update documentation if necessary
- Commit your changes with clear, descriptive messages
- Ensure your code follows the project's coding standards
- Update the README.md with details of changes if applicable
- Ensure all tests pass
- Update documentation as needed
- Create a pull request with:
- Clear title and description
- Reference to related issues
- Summary of changes
- Screenshots (if applicable)
- PRs require at least one approval from a maintainer
- Address all feedback and requested changes
- Keep PRs focused and atomic
- Resolve merge conflicts promptly
- Use TypeScript for all new code
- Enable strict mode
- Provide proper type annotations
- Avoid using
anytype unless absolutely necessary
- Use 2 spaces for indentation
- Use semicolons
- Use single quotes for strings
- Maximum line length: 100 characters
- Use meaningful variable and function names
src/
├── index.ts # Main entry point
├── types/ # TypeScript type definitions
├── utils/ # Utility functions
├── services/ # Service layer
└── __tests__/ # Test files
Follow the Conventional Commits specification:
feat:New featurefix:Bug fixdocs:Documentation changesstyle:Code style changes (formatting, etc.)refactor:Code refactoringtest:Test changeschore:Build process or auxiliary tool changes
Example: feat: add support for Bear note templates
- Write tests for all new features
- Maintain test coverage above 80%
- Use descriptive test names
- Test edge cases and error conditions
Run tests with:
npm testRun tests with coverage:
npm run test:coverage- Update README.md for user-facing changes
- Add JSDoc comments for public APIs
- Include examples for complex features
- Keep documentation up to date with code changes
- Join our discussions on GitHub Discussions
- Follow us on Twitter @BearMCP (if applicable)
- Check out our blog for updates
If you have questions about contributing, please:
- Check existing documentation
- Search through issues and discussions
- Ask in GitHub Discussions
- Contact the maintainers
Thank you for contributing to Bear MCP!