Welcome! Thank you for your interest in contributing to the Commerce Operations Foundation MCP Server.
This project is open-source because we believe collaboration drives better software. We welcome contributions of all types — code, documentation, testing, and feedback.
Please review our Code of Conduct before contributing. We're committed to a respectful, inclusive community.
First, fork the repository on GitHub by clicking the "Fork" button at the top of the repository page.
Then clone your fork:
# Clone your fork (replace YOUR-USERNAME with your GitHub username)
git clone https://github.com/YOUR-USERNAME/mcp-reference-server.git
cd mcp-reference-server
# Add the upstream remote to sync with the main repository
git remote add upstream https://github.com/commerce-operations-foundation/mcp-reference-server.gitEnsure you have Node.js 18+ installed.
Install dependencies:
cd server
npm installRun tests to verify setup:
npm testCheck open issues and look for labels like:
good first issuehelp wanted
Or open a new issue if you've found a bug or have a feature idea.
git checkout -b feat/short-descriptionUse branch prefixes:
feat/for new featuresfix/for bug fixesdocs/for documentationrefactor/for code improvements
- TypeScript strict mode is enabled
- ESLint and Prettier are configured; run
npm run lintandnpm run format - Write tests for new functionality
- Keep commits atomic and messages descriptive:
feat: add order sync API
fix: correct webhook payload parsing
docs: clarify configuration options
npm test # Run all tests
npm run test:unit # Unit tests only
npm run test:integration # Integration tests (requires build)
npm run typecheck # Type checking
npm run lint # LintingBefore opening a PR, ensure:
npm run typecheckpassesnpm run lintpassesnpm testpasses locally
- Push your branch to your fork:
git push origin feat/short-description
- Open a PR from your fork against the
developbranch of the main repository - Link related issues in the PR description (Fixes #123)
- Include a brief summary of what, why, and how you changed it
- Keep PRs focused and small where possible
- All PRs require at least one reviewer approval
- Automated checks (CI, tests, lint) must pass before merge
- Be responsive to feedback — it's a collaboration, not a gatekeeping step
- Update relevant markdown files or API references
- If you add a major feature, include an example or tutorial section
- Documentation lives in the
/docsdirectory
- Follow the project's testing framework (Jest)
- Include both unit and integration tests where appropriate
- Keep test coverage high for core modules
- Work primarily inside the
server/folder for server changes
/server # Core MCP server implementation
/adapter-template # Template for creating custom adapters
/docs # Documentation
/schemas # JSON Schema definitions
Follow conventional commits:
feat:for new featuresfix:for bug fixesdocs:for documentationrefactor:for code improvementstest:for test changeschore:for maintenance tasks
- Merges to
developtrigger automated builds - Releases are tagged and versioned following semantic versioning
- Changelogs are generated from commit messages
- For bug reports and feature requests, use GitHub Issues
- For design proposals and discussions, use GitHub Discussions
By contributing, you agree that your contributions will be licensed under the MIT License.
Thanks to all contributors — your work makes this project better for everyone.