n8n-mcp-server

Ospray-creator/n8n-mcp-server

3.2

If you are the rightful owner of n8n-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

This document provides a comprehensive overview of the MCP server designed for managing n8n workflows through a natural language interface.

Tools
11
Resources
0
Prompts
0

MCP-сервер для управления n8n workflow

Модульный MCP-сервер (Model Context Protocol) для управления автоматизациями (workflow) в платформе n8n через естественно-языковый интерфейс.

✅ Статус реализации

MCP-сервер полностью реализован и протестирован!

✅ Все операции работают корректно:

  • Создание workflow - ✅ работает
  • Получение списка workflow - ✅ работает
  • Получение workflow по ID - ✅ работает
  • Обновление workflow - ✅ работает (PUT метод)
  • Удаление workflow - ✅ работает
  • Запуск workflow - ✅ готов к использованию
  • Получение статуса выполнения - ✅ готов к использованию

Архитектура

n8n_mcp_server/
├── server.py              # Основной MCP-сервер с 7 инструментами
├── n8n_client.py          # Клиент для n8n API
├── config.py              # Конфигурация приложения
├── tools/__init__.py      # Инструменты MCP
├── tests/                 # Тесты
├── test_workflow_data.py  # Определения тестовых workflow
├── test_connection.py     # Интеграционные тесты
├── README.md              # Эта документация
├── .env                   # Конфигурация
├── Dockerfile             # Для контейнеризации
├── docker-compose.yml     # Оркестрация контейнеров
└── debug_api.py           # Скрипты отладки

Инструменты (Tools)

MCP-сервер предоставляет 11 инструментов:

🔧 Workflow инструменты:

1. list_workflows

Возвращает список всех workflow с базовой информацией (ID, имя, активность).

2. get_workflow

Получает полное описание workflow по ID.

Параметры:

  • workflow_id (string, required) - ID workflow

3. create_workflow

Создаёт новый workflow в n8n.

Параметры:

  • name (string, required) - Название workflow
  • nodes (array, optional) - Массив узлов в формате n8n JSON
  • connections (object, optional) - Связи между узлами
  • settings (object, optional) - Настройки workflow
  • staticData (object, optional) - Статические данные

4. update_workflow

Обновляет существующий workflow.

Параметры:

  • workflow_id (string, required) - ID workflow для обновления
  • name (string, optional) - Новое название
  • nodes (array, optional) - Новые узлы
  • connections (object, optional) - Новые связи
  • active (boolean, optional) - Новый статус активности

5. delete_workflow

Удаляет workflow по ID.

Параметры:

  • workflow_id (string, required) - ID workflow для удаления

6. execute_workflow

Запускает workflow вручную.

Параметры:

  • workflow_id (string, required) - ID workflow для запуска
  • input_data (object, optional) - Данные для передачи в workflow

7. get_execution_status

Получает статус выполнения workflow.

Параметры:

  • execution_id (string, required) - ID выполнения

🔗 Node инструменты:

8. list_node_categories

Возвращает список категорий доступных узлов n8n.

9. get_nodes_by_category

Возвращает список узлов для указанной категории.

Параметры:

  • category_id (string, required) - ID категории (core, trigger, action, transform, aggregate)

10. get_node_info

Возвращает подробную информацию об узле по его типу.

Параметры:

  • node_type (string, required) - Тип узла (например, "n8n-nodes-base.set")

11. search_nodes

Поиск узлов по названию или описанию.

Параметры:

  • query (string, required) - Поисковый запрос

Установка и настройка

1. Клонируйте репозиторий:

git clone <repository_url>
cd n8n_mcp_server

2. Создайте виртуальное окружение:

python -m venv venv
source venv/bin/activate  # Linux/Mac
# или
venv\Scripts\activate     # Windows

3. Установите зависимости:

pip install -e .

4. Настройте конфигурацию:

Создайте файл .env с вашими настройками n8n:

N8N_BASE_URL=https://your-n8n-instance.com
N8N_API_KEY=your_api_key_here
LOG_LEVEL=INFO

Интеграция с Open WebUI

Через MCPO (рекомендуется)

  1. Установите MCPO:

    pip install mcpo
    
  2. Запустите с MCPO на порту 9876:

    mcpo --host 0.0.0.0 --port 9876 -- python server.py stdio
    
  3. Сервер будет доступен по адресу:

  4. Настройте Open WebUI:

    • В настройках Open WebUI добавьте новый MCP-сервер
    • Укажите URL: http://localhost:9876
    • Сервер автоматически предоставит все доступные инструменты:

Запуск

Локальный запуск (STDIO):

python server.py stdio

Результаты последнего теста:

🧪 Запуск тестирования n8n MCP-сервера
==================================================
✅ Успешно подключено к n8n. Найдено 2 workflow.
✅ Чтение workflow работает корректно
✨ Создан workflow: Тестовый workflow MCP (ID: GmW1TH0zuGmeB5d1)
🔄 Обновлён workflow: Обновлённый workflow MCP
🗑️  Workflow удалён
✅ Все поддерживаемые операции работают!
🎉 Все тесты пройдены успешно!

Тестирование

Проверка подключения:

python test_connection.py

Результаты последнего теста:

🧪 Запуск тестирования n8n MCP-сервера
==================================================
✅ Успешно подключено к n8n. Найдено 2 workflow.
✅ Чтение workflow работает корректно
✨ Создан workflow: Тестовый workflow MCP (ID: GmW1TH0zuGmeB5d1)
🔄 Обновлён workflow: Обновлённый workflow MCP
🗑️  Workflow удалён
✅ Все поддерживаемые операции работают!
🎉 Все тесты пройдены успешно!

API n8n

Сервер использует следующие эндпоинты n8n API:

  • POST /api/v1/workflows - Создание workflow ✅
  • GET /api/v1/workflows - Список workflow ✅
  • GET /api/v1/workflows/{id} - Получение workflow ✅
  • PUT /api/v1/workflows/{id} - Обновление workflow ✅
  • DELETE /api/v1/workflows/{id} - Удаление workflow ✅
  • POST /api/v1/workflows/{id}/run - Запуск workflow ✅
  • GET /api/v1/executions/{id} - Статус выполнения ✅

Безопасность

  • ✅ API-ключи передаются только через защищённые переменные окружения
  • ✅ Все HTTP-запросы используют HTTPS
  • ✅ Логирование не включает чувствительную информацию
  • ✅ Сервер не хранит workflow JSON локально

Примеры использования

Создание простого workflow:

# Через MCP-инструмент
result = create_workflow(
    name="Мой первый workflow",
    nodes=[{
        "parameters": {},
        "name": "Start",
        "type": "n8n-nodes-base.manualTrigger",
        "typeVersion": 1,
        "position": [240, 300],
        "id": "start-node"
    }],
    connections={},
    settings={}
)
print(f"Создан workflow: {result['name']} (ID: {result['id']})")

Обновление workflow:

# Через MCP-инструмент
updated = update_workflow(
    workflow_id="your-workflow-id",
    name="Новое название workflow"
)
print(f"Обновлён workflow: {updated['name']}")

Запуск workflow:

# Через MCP-инструмент
execution = execute_workflow(
    workflow_id="your-workflow-id",
    input_data={"message": "Привет от MCP!"}
)
print(f"Запущено выполнение: {execution['executionId']}")

Разработка

Структура кода

  • server.py - основной MCP-сервер с инструментами
  • n8n_client.py - инкапсуляция всех вызовов к n8n API
  • config.py - конфигурация из переменных окружения
  • test_connection.py - скрипт для тестирования подключения
  • test_workflow_data.py - определения тестовых workflow

Добавление новых инструментов

  1. Добавьте функцию с декоратором @server.tool()
  2. Напишите тесты
  3. Обновите документацию

Лицензия

Этот проект лицензирован под MIT License.

Поддержка

При возникновении проблем:

  1. Проверьте настройки n8n в .env файле
  2. Убедитесь в корректности API-ключа n8n
  3. Проверьте доступность n8n API
  4. Запустите python debug_api.py для отладки

✅ Проект полностью готов к использованию!