n8n-mcp-server logo

n8n-mcp-server

by S17S17

The n8n-mcp-server is a Model-Controller-Provider (MCP) server implementation for n8n workflow automation. It provides a standardized interface for executing and managing n8n workflows through a JSON-RPC protocol.

View on GitHub

Last updated: N/A

n8n-mcp-server

A Model-Controller-Provider (MCP) server implementation for n8n workflow automation. This server provides a standardized interface for executing and managing n8n workflows through a JSON-RPC protocol.

Features

  • JSON-RPC 2.0 compliant API
  • Workflow execution and management
  • Environment-based configuration
  • TypeScript support
  • Comprehensive logging
  • Docker support

Prerequisites

  • Node.js >= 14.0.0
  • n8n instance running and accessible
  • n8n API key

Installation

  1. Clone the repository:
git clone https://github.com/S17S17/n8n-mcp-server.git
cd n8n-mcp-server
  1. Install dependencies:
npm install
  1. Configure environment variables:
cp .env.example .env
# Edit .env with your configuration

Configuration

The server can be configured through environment variables. See .env.example for all available options.

Required environment variables:

  • N8N_URL: URL of your n8n instance API
  • N8N_API_KEY: Your n8n API key
  • N8N_API_HEADER: Header name for API key (default: X-N8N-API-KEY)

Usage

Starting the Server

Several startup options are available:

# Standard start
npm start

# Development mode with hot reload
npm run start:dev

# Simple mode (minimal features)
npm run start:simple

# Debug mode
npm run debug

Docker Support

Build and run with Docker:

docker build -t n8n-mcp-server .
docker run -p 3000:3000 --env-file .env n8n-mcp-server

Or use Docker Compose:

docker-compose up

API Documentation

The server implements a JSON-RPC 2.0 interface with the following methods:

  • initialize: Initialize the server connection
  • shutdown: Gracefully shutdown the server
  • listTools: List available workflow tools
  • callTool: Execute a specific workflow tool

See API.md for detailed API documentation.

Development

Building from Source

npm run build

Running Tests

npm test

Linting

npm run lint

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support, please open an issue in the GitHub repository.