Skip to main content
Glama

n8n MCP Server

README.md10.8 kB
# 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. Клонируйте репозиторий: ```bash git clone <repository_url> cd n8n_mcp_server ``` ### 2. Создайте виртуальное окружение: ```bash python -m venv venv source venv/bin/activate # Linux/Mac # или venv\Scripts\activate # Windows ``` ### 3. Установите зависимости: ```bash pip install -e . ``` ### 4. Настройте конфигурацию: Создайте файл `.env` с вашими настройками n8n: ```env N8N_BASE_URL=https://your-n8n-instance.com N8N_API_KEY=your_api_key_here LOG_LEVEL=INFO ``` ## Интеграция с Open WebUI ### Через MCPO (рекомендуется) 1. **Установите MCPO:** ```bash pip install mcpo ``` 2. **Запустите с MCPO на порту 9876:** ```bash mcpo --host 0.0.0.0 --port 9876 -- python server.py stdio ``` 3. **Сервер будет доступен по адресу:** - **HTTP**: http://localhost:9876 - **OpenAPI спецификация**: http://localhost:9876/openapi.json - **Документация Swagger UI**: http://localhost:9876/docs 4. **Настройте Open WebUI:** - В настройках Open WebUI добавьте новый MCP-сервер - Укажите URL: `http://localhost:9876` - Сервер автоматически предоставит все доступные инструменты: ## Запуск ### Локальный запуск (STDIO): ```bash python server.py stdio ``` ### Результаты последнего теста: ``` 🧪 Запуск тестирования n8n MCP-сервера ================================================== ✅ Успешно подключено к n8n. Найдено 2 workflow. ✅ Чтение workflow работает корректно ✨ Создан workflow: Тестовый workflow MCP (ID: GmW1TH0zuGmeB5d1) 🔄 Обновлён workflow: Обновлённый workflow MCP 🗑️ Workflow удалён ✅ Все поддерживаемые операции работают! 🎉 Все тесты пройдены успешно! ``` ## Тестирование ### Проверка подключения: ```bash 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: ```python # Через 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: ```python # Через MCP-инструмент updated = update_workflow( workflow_id="your-workflow-id", name="Новое название workflow" ) print(f"Обновлён workflow: {updated['name']}") ``` ### Запуск workflow: ```python # Через 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` для отладки --- **✅ Проект полностью готов к использованию!**

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ospray-creator/n8n-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server