Thank you for your interest in contributing to the FalkorDB MCP Server! We welcome contributions from the community.
- Node.js 18+
- npm 8+
- FalkorDB instance for testing
- Git
-
Fork and clone the repository:
git clone https://github.com/your-username/falkordb-mcpserver.git cd falkordb-mcpserver -
Install dependencies:
npm install
-
Set up environment:
cp .env.example .env # Edit .env with your FalkorDB connection details -
Run tests to ensure everything works:
npm test
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes following our coding standards
-
Run the development server:
npm run dev
-
Test your changes:
npm test npm run lint npm run build
- TypeScript: All code must be written in TypeScript with proper types
- ESLint: Code must pass linting (
npm run lint) - Tests: New features must include tests
- Documentation: Update README.md if you add new features
Use conventional commit format:
type(scope): description
Examples:
feat(tools): add new graph visualization tool
fix(service): resolve connection timeout issue
docs(readme): update installation instructions
# Run all tests
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage- Tests should be placed alongside source files with
.test.tsextension - Use Jest for testing framework
- Mock external dependencies (e.g., FalkorDB)
- Aim for high test coverage
describe('Feature Name', () => {
beforeEach(() => {
// Setup
});
it('should do something specific', () => {
// Test implementation
});
});-
Ensure your PR:
- Passes all tests (
npm test) - Passes linting (
npm run lint) - Builds successfully (
npm run build) - Includes appropriate documentation updates
- Passes all tests (
-
PR Title: Use conventional commit format
-
PR Description: Include:
- What changes were made
- Why the changes were necessary
- How to test the changes
- Any breaking changes
-
Review Process:
- Maintainers will review your PR
- Address any feedback
- PR will be merged once approved
- Check existing issues to avoid duplicates
- Test with the latest version
- Gather relevant information (logs, environment details)
**Describe the bug**
A clear description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Configure server with...
2. Send query...
3. See error
**Expected behavior**
What you expected to happen.
**Environment:**
- Node.js version:
- npm version:
- FalkorDB version:
- OS:
**Additional context**
Any other context about the problem.We welcome feature requests! Please:
- Check existing issues to avoid duplicates
- Describe the use case clearly
- Explain why this feature would be valuable
- Consider if it fits the project scope
Understanding the codebase:
src/
├── index.ts # MCP server entry point
├── services/ # Core business logic
│ ├── falkordb.service.ts
│ └── logger.service.ts
├── mcp/ # MCP-specific implementations
│ ├── tools.ts # MCP tool definitions
│ ├── resources.ts # MCP resource definitions
│ └── prompts.ts # MCP prompt definitions
├── errors/ # Error handling
├── models/ # TypeScript type definitions
├── config/ # Configuration management
└── utils/ # Utility functions
We expect all contributors to follow our code of conduct:
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- Maintain a welcoming environment
- GitHub Issues: For bugs and feature requests
- GitHub Discussions: For questions and general discussion
- Documentation: Check README.md and code comments
Contributors will be recognized in:
- GitHub contributors list
- Release notes for significant contributions
- Project documentation
Thank you for contributing to FalkorDB MCP Server! 🎉