Thank you for your interest in contributing to MCPing! We welcome contributions from the community and appreciate your help in making this project better.
- Code of Conduct
- How to Contribute
- Development Setup
- Running Tests
- Submitting Changes
- Coding Standards
- Issue Guidelines
This project adheres to a Code of Conduct. By participating, you are expected to uphold this code. Please read CODE_OF_CONDUCT.md for details.
- Use the GitHub issue tracker to report bugs
- Check if the issue has already been reported
- Use the bug report template when creating new issues
- Include steps to reproduce, expected behavior, and actual behavior
- Use the GitHub issue tracker to suggest enhancements
- Use the feature request template when applicable
- Clearly describe the feature and its potential benefits
- Consider if the feature aligns with the project's goals
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Add tests for your changes
- Ensure all tests pass
- Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Node.js 18 or higher
- npm package manager
- macOS (for notification functionality)
-
Clone your fork of the repository:
git clone https://github.com/YOUR_USERNAME/mcping-mcp.git cd mcping-mcp -
Install dependencies:
npm install
-
Build the project:
npm run build
npm testnpm run test:watchnpm run test:unitnpm run test:integrationnpm run test:coverageWe follow the Conventional Commits specification. Please format your commit messages as follows:
type(scope): description
[optional body]
[optional footer]
Types:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (formatting, etc.)refactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Example:
feat(notifications): add support for custom sounds
Added ability to specify custom sound files for notifications
through the soundPath parameter.
Closes #123
- Update the README.md with details of changes if applicable
- Ensure all tests pass and coverage is maintained
- Update documentation for any API changes
- Request review from maintainers
- Wait for approval before merging
- Use TypeScript strict mode
- Provide explicit types for function parameters and return values
- Use interfaces for object types
- Avoid
anytype - useunknownif type is truly unknown
- Follow the existing code style in the project
- Run
npm run lintto check for linting errors - Run
npm run formatto format code with Prettier - Use meaningful variable and function names
- Add comments for complex logic
- Write unit tests for all new functionality
- Maintain test coverage above 80%
- Use descriptive test names
- Test edge cases and error conditions
- Mock external dependencies
- Search existing issues before creating a new one
- Use the appropriate issue template
- Provide as much detail as possible
- Include screenshots or logs when relevant
bug: Something isn't workingenhancement: New feature or requestdocumentation: Documentation improvementsgood first issue: Good for newcomershelp wanted: Extra attention is needed
If you have questions about contributing, please open a discussion in the GitHub Discussions tab or reach out to the maintainers.
Thank you for contributing to MCPing! 🎉