Contributing
Thank you for your interest in contributing to the vCon MCP Server! This guide will help you get started.
Table of Contents
Code of Conduct
Our Pledge
We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity, experience level, nationality, personal appearance, race, religion, or sexual identity.
Our Standards
Positive behavior includes:
Using welcoming and inclusive language
Being respectful of differing viewpoints
Accepting constructive criticism gracefully
Focusing on what's best for the community
Showing empathy towards others
Unacceptable behavior includes:
Harassment, trolling, or derogatory comments
Publishing others' private information
Personal or political attacks
Other unprofessional conduct
Enforcement
Report violations to [project maintainers]. All complaints will be reviewed and investigated promptly and fairly.
Getting Started
Prerequisites
Before contributing, ensure you have:
Node.js 18+ installed
Git installed and configured
Supabase account for database testing
GitHub account
Read the Architecture documentation
Initial Setup
Fork the repository
Clone your fork
Add upstream remote
Install dependencies
Set up environment
Run tests
Build the project
Development Environment
We recommend:
VS Code with these extensions:
ESLint
Prettier
TypeScript and JavaScript Language Features
GitLens
Database GUI: Supabase Dashboard or pgAdmin
Development Workflow
Creating a Feature Branch
Branch Naming Convention:
feature/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Test additions/changeschore/- Maintenance tasks
Making Changes
Make your changes
Follow Coding Standards
Add tests for new functionality
Update documentation
Test your changes
Lint and format
Build and verify
Committing Changes
We use Conventional Commits:
Commit Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Test additions/changeschore: Maintenance tasksperf: Performance improvements
Examples:
Keeping Your Branch Updated
Pull Request Process
Before Submitting
Ensure your PR:
Creating a Pull Request
Push your branch
Open PR on GitHub
Go to the repository
Click "New Pull Request"
Select your branch
Fill in the PR template
PR Template
Review Process
Automated Checks
CI/CD runs tests
Linting checks
Build verification
Code Review
At least one maintainer approval required
Address all comments
Make requested changes
Final Checks
All conversations resolved
CI passes
Up to date with main
Merge
Maintainer will merge your PR
Branch will be deleted
After Merge
Update your local repo
Delete feature branch
Coding Standards
See Code Style Guide for detailed standards.
Quick Reference
TypeScript:
Function Documentation:
Error Handling:
Testing Requirements
Test Coverage
All contributions must maintain test coverage:
Minimum: 80% overall coverage
New code: 90% coverage required
Critical paths: 100% coverage
Writing Tests
Test Types
Unit Tests - Test individual functions
Integration Tests - Test component interactions
Compliance Tests - Test IETF spec compliance
E2E Tests - Test full workflows
Running Tests
Documentation
Documentation Requirements
All contributions must include:
Code Comments
JSDoc for public APIs
Inline comments for complex logic
TODO/FIXME with issue numbers
API Documentation
Update
docs/api/if changing tools/resourcesInclude examples
Document parameters and return values
User Documentation
Update
docs/guide/if affecting user featuresAdd examples and use cases
Include troubleshooting tips
README Updates
Update if changing setup process
Keep examples current
Update feature list
Documentation Style
See Documentation Standards for details.
Example:
Release Process
Versioning
We follow Semantic Versioning:
Major (X.0.0) - Breaking changes
Minor (0.X.0) - New features (backward compatible)
Patch (0.0.X) - Bug fixes
Release Checklist
For maintainers:
Update Version
Update CHANGELOG
Document all changes
Group by type (Added, Changed, Fixed, Removed)
Include issue/PR numbers
Create Release Branch
Final Testing
Run full test suite
Test in production-like environment
Verify documentation
Create Release PR
Review all changes
Get approval from maintainers
Merge and Tag
Publish
Create GitHub Release
Copy CHANGELOG entry
Attach built assets
Publish release notes
Getting Help
Where to Ask
GitHub Issues - Bug reports, feature requests
GitHub Discussions - Questions, ideas, general discussion
Discord - Real-time chat with community
Email - Private matters to [maintainers email]
Issue Templates
Bug Report:
Feature Request:
Recognition
Contributors are recognized in:
CONTRIBUTORS.md - All contributors listed
Release Notes - Major contributions highlighted
GitHub Profile - Contribution graph
We appreciate all contributions, big and small!
License
By contributing, you agree that your contributions will be licensed under the MIT License.
Questions?
If you have questions about contributing:
Check existing documentation
Search existing issues/discussions
Ask in GitHub Discussions
Contact maintainers
Thank you for contributing to vCon MCP Server! 🎉
Last updated