Skip to main content
Contributions are welcome! This guide will help you get started with contributing to n8n-MCP.

Getting Started

Prerequisites

Node.js

Any version - automatic fallback if needed

Git

For version control and pull requests

Local Development Setup

# 1. Fork and clone the repository
git clone https://github.com/YOUR_USERNAME/n8n-mcp.git
cd n8n-mcp

# 2. Install dependencies
npm install

# 3. Build the project
npm run build

# 4. Initialize database
npm run rebuild

# 5. Test it works
npm start

Development Workflow

1

Create a feature branch

git checkout -b feature/your-feature-name
2

Make your changes

Write clean, well-documented code following the project’s style
3

Run tests

npm test
Ensure all tests pass before submitting
4

Submit a pull request

Push your changes and create a PR on GitHub

Testing

The project includes a comprehensive test suite with 3,336 tests.

Running Tests

# Run all tests
npm test

# Run tests with coverage report
npm run test:coverage

# Run tests in watch mode
npm run test:watch

# Run specific test suites
npm run test:unit           # 2,766 unit tests
npm run test:integration    # 570 integration tests
npm run test:bench          # Performance benchmarks
  • Total Tests: 3,336 (100% passing)
  • Unit Tests: 2,766 tests across 99 files
  • Integration Tests: 570 tests across 20 files
  • Execution Time: ~2.5 minutes in CI
  • Test Framework: Vitest (for speed and TypeScript support)
  • Mocking: MSW for API mocking, custom mocks for databases

Development Commands

# Build TypeScript
npm run build

# Rebuild node database
npm run rebuild

# Validate node data
npm run validate

# Test critical nodes
npm run test-nodes

Code Quality

TypeScript

  • All code must be written in TypeScript
  • Run type checking before committing:
    npm run typecheck
    

Linting

# Check TypeScript types
npm run lint

Code Style

  • Follow existing code patterns
  • Use meaningful variable and function names
  • Add comments for complex logic
  • Keep functions focused and small

Contribution Guidelines

Please read these guidelines carefully before submitting your contribution.

Pull Request Process

  1. Fork the repository and create your branch from main
  2. Make your changes with clear, descriptive commits
  3. Run tests to ensure everything works
  4. Update documentation if you’re adding new features
  5. Submit a pull request with a clear description of changes

Commit Messages

Use clear, descriptive commit messages:
# Good examples
git commit -m "Add support for workflow version history"
git commit -m "Fix memory leak in session management"
git commit -m "Update documentation for Docker deployment"

# Bad examples
git commit -m "Fix bug"
git commit -m "Update stuff"
git commit -m "WIP"

What to Contribute

Bug Fixes

Found a bug? Submit a fix with tests

New Features

Have an idea? Open an issue first to discuss

Documentation

Improve docs, add examples, fix typos

Tests

Add tests to improve coverage

Automated Releases

This section is for maintainers only. Contributors should not trigger releases.
The project uses automated releases triggered by version changes:
# Guided release preparation
npm run prepare:release

# Test release automation
npm run test:release-automation
The system automatically handles:
  • GitHub releases with changelog content
  • NPM package publishing
  • Multi-platform Docker images
  • Documentation updates
See the Automated Release Guide for complete details.

Getting Help

GitHub Issues

Ask questions, report bugs

Documentation

Browse the full documentation

License

By contributing to n8n-MCP, you agree that your contributions will be licensed under the MIT License.
Attribution appreciated! If you use n8n-MCP, consider:
  • ⭐ Starring the repository
  • 💬 Mentioning it in your project
  • 🔗 Linking back to the repo

Build docs developers (and LLMs) love