mcp-memory-libsql
by spences10
Verified
# Contributing to Google Workspace MCP
Thank you for your interest in contributing to the Google Workspace MCP project! This document provides guidelines and instructions for contributing.
## Development Setup
1. Fork and clone the repository
2. Build the development Docker image:
```bash
docker build -t google-workspace-mcp:local .
```
3. Create a local config directory:
```bash
mkdir -p ~/.mcp/google-workspace-mcp
```
4. Run the container with your Google API credentials:
```bash
docker run -i --rm \
-v ~/.mcp/google-workspace-mcp:/app/config \
-e GOOGLE_CLIENT_ID=your_client_id \
-e GOOGLE_CLIENT_SECRET=your_client_secret \
-e GOOGLE_REDIRECT_URI=urn:ietf:wg:oauth:2.0:oob \
google-workspace-mcp:local
```
Note: For local development, you can also mount the source code directory:
```bash
docker run -i --rm \
-v ~/.mcp/google-workspace-mcp:/app/config \
-v $(pwd)/src:/app/src \
-e GOOGLE_CLIENT_ID=your_client_id \
-e GOOGLE_CLIENT_SECRET=your_client_secret \
-e GOOGLE_REDIRECT_URI=urn:ietf:wg:oauth:2.0:oob \
google-workspace-mcp:local
```
## Development Workflow
1. Create a new branch for your feature/fix:
```bash
git checkout -b feature/your-feature-name
# or
git checkout -b fix/your-fix-name
```
2. Make your changes following our coding standards
3. Write/update tests as needed
4. Build and test your changes:
```bash
# Build the development image
docker build -t google-workspace-mcp:local .
# Run tests in container
docker run -i --rm \
-v $(pwd):/app \
google-workspace-mcp:local \
npm test
```
5. Commit your changes using conventional commit messages:
```
feat: add new feature
fix: resolve specific issue
docs: update documentation
test: add/update tests
refactor: code improvements
```
## Coding Standards
- Use TypeScript for all new code
- Follow existing code style and formatting
- Maintain 100% test coverage for new code
- Document all public APIs using JSDoc comments
- Use meaningful variable and function names
- Keep functions focused and modular
- Add comments for complex logic
## Testing Requirements
- Write unit tests for all new functionality
- Use Jest for testing
- Mock external dependencies
- Test both success and error cases
- Maintain existing test coverage
- Run the full test suite before submitting PR
## Pull Request Process
1. Update documentation for any new features or changes
2. Ensure all tests pass locally
3. Update CHANGELOG.md if applicable
4. Submit PR with clear description of changes
5. Address any review feedback
6. Ensure CI checks pass
7. Squash commits if requested
## Additional Resources
- [Architecture Documentation](ARCHITECTURE.md)
- [API Documentation](docs/API.md)
- [Error Handling](docs/ERRORS.md)
- [Examples](docs/EXAMPLES.md)
## Questions or Need Help?
Feel free to open an issue for:
- Bug reports
- Feature requests
- Questions about the codebase
- Suggestions for improvements
## License
By contributing, you agree that your contributions will be licensed under the MIT License.