# Contributing to YouTube MCP Server
Thank you for your interest in contributing to YouTube MCP Server! This document provides guidelines for contributing to the project.
## How to Contribute
### Reporting Bugs
If you find a bug, please open an issue with:
- A clear description of the problem
- Steps to reproduce the issue
- Expected vs actual behavior
- Your environment (Node.js version, OS, etc.)
- Any error messages or logs
### Suggesting Features
We welcome feature suggestions! Please open an issue with:
- A clear description of the feature
- Why it would be useful
- Examples of how it would work
- Any potential implementation ideas
### Pull Requests
1. **Fork the repository** and create your branch from `main`
2. **Make your changes**:
- Write clear, commented code
- Follow the existing code style
- Add or update tests if applicable
3. **Test your changes**:
- Run `npm run build` to ensure it compiles
- Test the functionality manually with Claude Code or another MCP client
4. **Update documentation**:
- Update README.md if you add features or change behavior
- Add JSDoc comments to new functions
5. **Commit your changes**:
- Use clear, descriptive commit messages
- Reference any related issues
6. **Submit a pull request**:
- Describe what your PR does
- Reference any related issues
- Explain any breaking changes
## Development Setup
1. Clone the repository:
```bash
git clone https://github.com/anirudhyadavMS/youtube_mcp.git
cd youtube_mcp
```
2. Install dependencies:
```bash
npm install
```
3. Create a `.env` file with your YouTube API key:
```bash
cp .env.example .env
# Edit .env and add your YOUTUBE_API_KEY
```
4. Build the project:
```bash
npm run build
```
5. Test locally by configuring it in your MCP client
## Code Style
- Use TypeScript for all code
- Follow existing formatting and naming conventions
- Use meaningful variable and function names
- Add JSDoc comments for public functions
- Keep functions focused and modular
## Testing
Currently, testing is done manually. We welcome contributions to add automated tests!
## Areas for Contribution
We especially welcome contributions in these areas:
- **Testing**: Add unit tests and integration tests
- **Error Handling**: Improve error messages and handling
- **Features**: Add new YouTube API features (comments, live streams, etc.)
- **Performance**: Add caching to reduce API quota usage
- **Documentation**: Improve examples and guides
- **Bug Fixes**: Fix any reported issues
## Questions?
If you have questions about contributing, feel free to:
- Open an issue with the "question" label
- Reach out in existing discussions
## Code of Conduct
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the community
- Show empathy towards others
Thank you for contributing! 🎉