Contributing to MCPCTL

Thank you for your interest in contributing to MCPCTL! This document provides guidelines and instructions for contributing to the project.

๐ŸŽฏ Getting Started

  1. Fork the repository
  2. Clone your fork: git clone https://github.com/your-username/mcpctl.git
  3. Create a new branch: git checkout -b feature/your-feature-name

๐Ÿ› ๏ธ Development Setup

  1. Install pnpm if you haven't already:
npm install -g pnpm

Or use corepack to enable pnpm:

corepack enable pnpm
  1. Install dependencies:
pnpm install
  1. Run tests:
pnpm test
  1. Build the project:
pnpm build

๐Ÿ“ Code Style

  • We use ESLint and Prettier for code formatting
  • Follow the existing code style and conventions
  • Write meaningful commit messages
  • Add comments for complex logic

๐Ÿงช Testing

  • Write tests for new features
  • Ensure all tests pass before submitting PR
  • Add test cases for edge cases
  • Update existing tests if modifying functionality

๐Ÿ“š Documentation

  • Update documentation for new features
  • Add examples for new commands
  • Keep the README.md up to date
  • Document any breaking changes

๐Ÿ”„ Pull Request Process

  1. Update the README.md with details of changes if needed
  2. Update the documentation if you're changing functionality
  3. The PR will be merged once you have the sign-off of at least one maintainer
  4. Make sure the CI checks pass

๐Ÿ› Bug Reports

When filing a bug report, please include:

  • A clear, descriptive title
  • Steps to reproduce the issue
  • Expected behavior
  • Actual behavior
  • Screenshots if applicable
  • Environment details (OS, Node.js version, etc.)

โœจ Feature Requests

We welcome feature requests! When suggesting a new feature:

  • Explain why this feature would be useful
  • Describe how you envision it working
  • Provide examples of similar features in other tools
  • Consider contributing the feature yourself

๐Ÿ“œ License

By contributing to MCPCTL, you agree that your contributions will be licensed under the project's MIT License.