Thank you for your interest in contributing to the Devora Prompt Assistant MCP server! We welcome contributions from the community.
- Node.js 20+
- pnpm (recommended) or npm
- Git
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/your-username/devora-prompt-assistant-mcp.git cd devora-prompt-assistant-mcp -
Install dependencies:
pnpm install
-
Copy environment template:
cp env.example .env
-
Set up your environment:
- Add at least one AI provider API key to
.env - Configure other settings as needed
- Add at least one AI provider API key to
-
Run the development server:
pnpm dev:stdio
We use ESLint and Prettier for code formatting:
# Check for linting issues
pnpm run lint
# Fix auto-fixable issues
pnpm run lint:fix
# Format code
pnpm run formatRun the test suite:
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test:watch
# Run tests with coverage
pnpm test --coverageBuild the project:
pnpm run buildWe welcome several types of contributions:
- Bug fixes: Fix issues in existing functionality
- New features: Add new capabilities (please discuss first)
- Documentation: Improve README, code comments, or examples
- Tests: Add or improve test coverage
- Performance: Optimize existing code
- Security: Report or fix security issues
- Check existing issues: Look for existing issues or discussions
- Start a discussion: For significant changes, open a GitHub Discussion first
- Create an issue: For bugs or feature requests, create an issue
-
Create a branch:
git checkout -b feature/your-feature-name # or git checkout -b fix/issue-description -
Make your changes:
- Write clean, readable code
- Add tests for new functionality
- Update documentation as needed
- Follow existing code patterns
-
Test your changes:
pnpm test pnpm run lint pnpm run build -
Commit your changes:
git add . git commit -m "feat: add your feature description"
Use conventional commit messages:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test changesrefactor:for code refactoringperf:for performance improvements
-
Push your changes:
git push origin feature/your-feature-name
-
Create a Pull Request:
- Use the PR template
- Provide a clear description
- Link to related issues
- Include screenshots for UI changes
Use a clear, descriptive title that explains what the PR does.
Include:
- What: What changes were made
- Why: Why these changes were necessary
- How: How the changes work
- Testing: How the changes were tested
- Breaking Changes: Any breaking changes (if applicable)
- All PRs require review from maintainers
- Address feedback promptly
- Keep PRs focused and reasonably sized
- Update documentation as needed
- Use strict TypeScript settings
- Prefer interfaces over types for object shapes
- Use proper error handling
- Add JSDoc comments for public APIs
- Use custom error classes from
src/core/errors.ts - Provide meaningful error messages
- Log errors appropriately
- Handle edge cases gracefully
- Write unit tests for new functionality
- Test error conditions
- Mock external dependencies
- Aim for good test coverage
- Update README.md for user-facing changes
- Add JSDoc comments for new functions
- Update CHANGELOG.md for significant changes
- Include examples for new features
src/
├── auth/ # Authentication middleware
├── config/ # Environment and model configuration
├── core/ # Core utilities (logger, errors, pipeline, git, cache)
├── providers/ # AI provider adapters
├── server/ # MCP server and transports
└── index.ts # CLI entry point
To add a new AI provider:
- Create provider file in
src/providers/ - Implement the Provider interface from
src/providers/types.ts - Add configuration to
src/config/env.ts - Update model router in
src/core/modelRouter.ts - Add tests in
test/providers/ - Update documentation in README.md
To add a new MCP tool:
- Create tool file in
src/server/tools/ - Define input/output schemas using Zod
- Implement tool handler function
- Register tool in
src/server/mcp.ts - Add tests in
test/ - Update documentation in README.md
We use Semantic Versioning:
- MAJOR: Breaking changes
- MINOR: New features (backward compatible)
- PATCH: Bug fixes (backward compatible)
- Update version in
package.json - Update
CHANGELOG.md - Create a release PR
- Merge after review
- Tag the release
- GitHub Actions will publish to NPM
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Help others learn and grow
- GitHub Discussions: For questions and general discussion
- GitHub Issues: For bug reports and feature requests
- Email: For security issues (see SECURITY.md)
Contributors will be recognized in:
- CONTRIBUTING.md acknowledgments
- GitHub contributors list
- Release notes (for significant contributions)
By contributing to this project, you agree that your contributions will be licensed under the same MIT License that covers the project.
If you have questions about contributing, please:
- Check existing GitHub Discussions
- Open a new Discussion
- Contact the maintainers
Thank you for contributing to Devora Prompt Assistant MCP! 🚀