# n8n REST API Coverage Analysis

**Дата анализа:** 2025-12-26
**Версия MCP сервера:** 0.9.0
**Версия n8n API:** v1 (1.82.3)

---

## 📊 Executive Summary

| Категория API | Всего методов | Реализовано | Частично | Не реализовано | % Покрытия |
|---------------|---------------|-------------|----------|----------------|------------|
| **Workflows** | 8 | 6 | 2 | 0 | **75%** |
| **Executions** | 4 | 4 | 0 | 0 | **100%** |
| **Credentials** | 6 | 4 | 2 | 0 | **67%** |
| **Tags** | 5 | 5 | 0 | 0 | **100%** |
| **ИТОГО** | **23** | **19** | **4** | **0** | **83%** |

**Общее покрытие: 83%** ✅

---

## 1️⃣ Workflows API (8 методов)

### ✅ Полностью реализованные (6 методов)

#### 1.1 GET /api/v1/workflows
- **MCP Tool:** `list_workflows`
- **Файл:** `n8nApiWrapper.ts:170`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Возвращает упрощенные метаданные (ID, name, active, dates, nodeCount, tags)
  - Поддерживает фильтрацию по `active` статусу
  - Оптимизировано для производительности (не возвращает полные данные workflow)
  - Фильтрует архивные/удаленные workflows

#### 1.2 GET /api/v1/workflows/{id}
- **MCP Tool:** `get_workflow`
- **Файл:** `n8nApiWrapper.ts:78`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Возвращает полную структуру workflow (nodes, connections, settings)

#### 1.3 POST /api/v1/workflows
- **MCP Tool:** `create_workflow`
- **Файл:** `n8nApiWrapper.ts:59`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Валидация через `validateWorkflowSpec()`
  - Трансформация connections из array в n8n object формат
  - Обработка Set node parameters

#### 1.4 PUT /api/v1/workflows/{id}
- **MCP Tool:** `update_workflow`
- **Файл:** `n8nApiWrapper.ts:93`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Полная замена workflow
  - Валидация данных перед отправкой

#### 1.5 PATCH /api/v1/workflows/{id}
- **MCP Tool:** `patch_workflow`
- **Файл:** `n8nApiWrapper.ts:110`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Частичное обновление workflow
  - Обновление только указанных полей

#### 1.6 DELETE /api/v1/workflows/{id}
- **MCP Tool:** `delete_workflow`
- **Файл:** `n8nApiWrapper.ts:127`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Безвозвратное удаление workflow

### ⚠️ Частично реализованные (2 метода)

#### 1.7 PUT /api/v1/workflows/{id}/activate
- **MCP Tool:** `activate_workflow`
- **Файл:** `n8nApiWrapper.ts:142`
- **Статус:** ⚠️ ВОЗВРАЩАЕТ ОШИБКУ
- **Причина:** n8n API v2.0.3 не поддерживает программную активацию через REST API
- **Сообщение:**
  ```
  Workflow activation via REST API is not supported.
  The 'active' field is read-only in n8n v2.0.3 API.
  Please activate workflows manually through the n8n web interface.
  ```
- **Альтернатива:** Ручная активация через n8n UI

#### 1.8 PUT /api/v1/workflows/{id}/deactivate
- **MCP Tool:** `deactivate_workflow`
- **Файл:** `n8nApiWrapper.ts:156`
- **Статус:** ⚠️ ВОЗВРАЩАЕТ ОШИБКУ
- **Причина:** n8n API v2.0.3 не поддерживает программную деактивацию через REST API
- **Сообщение:**
  ```
  Workflow deactivation via REST API is not supported.
  The 'active' field is read-only in n8n v2.0.3 API.
  Please deactivate workflows manually through the n8n web interface.
  ```
- **Альтернатива:** Ручная деактивация через n8n UI

---

## 2️⃣ Executions API (4 метода)

### ✅ Полностью реализованные (4 метода)

#### 2.1 GET /api/v1/executions
- **MCP Tool:** `list_executions`
- **Файл:** `n8nApiWrapper.ts:232`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Поддержка фильтров: `status`, `workflowId`, `projectId`
  - Пагинация: `limit`, `cursor`
  - Опция `includeData` для полных данных выполнения

#### 2.2 GET /api/v1/executions/{id}
- **MCP Tool:** `get_execution`
- **Файл:** `n8nApiWrapper.ts:247`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Опциональный параметр `includeData`
  - Возвращает детальную информацию о выполнении

#### 2.3 DELETE /api/v1/executions/{id}
- **MCP Tool:** `delete_execution`
- **Файл:** `n8nApiWrapper.ts:263`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Безвозвратное удаление execution record

#### 2.4 POST /api/v1/executions/{id}/retry
- **MCP Tool:** `retry_execution`
- **Файл:** `n8nApiWrapper.ts:278`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Создает новое execution как retry оригинального
  - Работает только для executions со статусом `error`

### ℹ️ Дополнительный метод (не в официальной документации)

#### execute_workflow
- **MCP Tool:** `execute_workflow`
- **Файл:** `n8nApiWrapper.ts:293`
- **Статус:** ⚠️ ИНФОРМАЦИОННОЕ СООБЩЕНИЕ
- **Причина:** n8n API не поддерживает прямое выполнение workflows через REST API
- **Сообщение:** Возвращает детальное руководство о том, как выполнить workflow через UI
- **Альтернативные методы:**
  - Execute manually via n8n web interface
  - Convert Manual Trigger to Webhook Trigger for API execution
  - Use Schedule Trigger for automatic execution
  - Use other trigger types that support API activation

---

## 3️⃣ Credentials API (6 методов)

### ✅ Полностью реализованные (4 метода)

#### 3.1 GET /api/v1/credentials
- **MCP Tool:** `list_credentials`
- **Файл:** `n8nApiWrapper.ts:420`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Возвращает только метаданные (ID, name, type, nodesAccess, timestamps)
  - Секретные данные НЕ возвращаются (безопасность)
  - Поддержка пагинации: `limit`, `cursor`

#### 3.2 POST /api/v1/credentials
- **MCP Tool:** `create_credential`
- **Файл:** `n8nApiWrapper.ts:435`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Создание credentials различных типов
  - Автоматическое шифрование секретных данных n8n
  - Поддержка schema-driven validation

#### 3.3 DELETE /api/v1/credentials/{id}
- **MCP Tool:** `delete_credential`
- **Файл:** `n8nApiWrapper.ts:465`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Безвозвратное удаление credential
  - Workflows использующие credential нужно обновить

#### 3.4 GET /api/v1/credentials/schema/{typeName}
- **MCP Tool:** `get_credential_schema`
- **Файл:** `n8nApiWrapper.ts:450`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Возвращает JSON schema для типа credential
  - Помогает понять структуру данных для создания credentials
  - Поддерживает все типы: httpBasicAuth, OAuth2, API keys и т.д.

### ⚠️ Частично реализованные (2 метода)

#### 3.5 GET /api/v1/credentials/{id}
- **MCP Tool:** `get_credential`
- **Файл:** `index.ts:753`
- **Статус:** ⚠️ ВОЗВРАЩАЕТ GUIDANCE
- **Причина:** n8n API блокирует GET credentials по ID для безопасности
- **Реализация:** Tool существует, но возвращает информационное сообщение
- **Альтернатива:** Использовать `list_credentials` для метаданных

#### 3.6 PUT /api/v1/credentials/{id}
- **MCP Tool:** `update_credential`
- **Файл:** `index.ts:772`
- **Статус:** ⚠️ ВОЗВРАЩАЕТ GUIDANCE
- **Причина:** n8n API блокирует UPDATE credentials для безопасности
- **Реализация:** Tool существует, но возвращает информационное сообщение
- **Альтернатива:** Использовать паттерн DELETE + CREATE

---

## 4️⃣ Tags API (5 методов)

### ✅ Полностью реализованные (5 методов)

#### 4.1 GET /api/v1/tags
- **MCP Tool:** `get_tags`
- **Файл:** `n8nApiWrapper.ts:359`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Поддержка пагинации: `limit`, `cursor`
  - Возвращает все tags с метаданными

#### 4.2 GET /api/v1/tags/{id}
- **MCP Tool:** `get_tag`
- **Файл:** `n8nApiWrapper.ts:374`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Получение конкретного tag по ID

#### 4.3 POST /api/v1/tags
- **MCP Tool:** `create_tag`
- **Файл:** `n8nApiWrapper.ts:344`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Создание нового tag
  - Имя должно быть уникальным

#### 4.4 PUT /api/v1/tags/{id}
- **MCP Tool:** `update_tag`
- **Файл:** `n8nApiWrapper.ts:389`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Обновление названия tag
  - Автоматически обновляет все workflows с этим tag

#### 4.5 DELETE /api/v1/tags/{id}
- **MCP Tool:** `delete_tag`
- **Файл:** `n8nApiWrapper.ts:404`
- **Статус:** ✅ РАБОТАЕТ
- **Особенности:**
  - Удаление tag
  - Tag удаляется из всех workflows автоматически
  - Workflows не удаляются

---

## 🎯 Итоговая статистика

### По категориям

| Категория | Реализация |
|-----------|------------|
| **Workflows API** | 6/8 полностью (75%), 2/8 частично (25%) |
| **Executions API** | 4/4 полностью (100%) |
| **Credentials API** | 4/6 полностью (67%), 2/6 частично (33%) |
| **Tags API** | 5/5 полностью (100%) |

### Общая статистика

- **Всего методов в n8n REST API:** 23
- **Полностью реализовано:** 19 (83%)
- **Частично реализовано:** 4 (17%)
  - 2 Workflows (activate/deactivate) - ограничение n8n API
  - 2 Credentials (get/update) - ограничение безопасности n8n API
- **Не реализовано:** 0 (0%)

---

## ⚠️ Ограничения n8n API

### 1. Активация/деактивация Workflows
**Проблема:** n8n API v2.0.3 не поддерживает программную активацию/деактивацию workflows.

**Причина:** Поле `active` является read-only в REST API.

**Решение:** Использовать n8n UI для активации/деактивации workflows.

**Статус:** Документировано в коде с информационными сообщениями.

### 2. Получение Credential по ID
**Проблема:** n8n API блокирует GET запросы для credentials по соображениям безопасности.

**Причина:** Credentials содержат конфиденциальную информацию (пароли, токены, ключи).

**Решение:** Использовать `list_credentials` для получения метаданных без секретных данных.

**Статус:** Реализовано с guidance сообщениями.

### 3. Обновление Credentials
**Проблема:** n8n API блокирует PUT запросы для credentials по соображениям безопасности.

**Причина:** Immutability pattern для защиты секретных данных.

**Решение:** Использовать паттерн DELETE + CREATE для "обновления" credentials.

**Статус:** Реализовано с guidance сообщениями.

### 4. Прямое выполнение Workflows
**Проблема:** n8n API не поддерживает прямое выполнение workflows через REST API.

**Причина:** Workflows с Manual Trigger должны выполняться через UI по дизайну.

**Решение:**
- Использовать n8n UI для выполнения
- Конвертировать Manual Trigger в Webhook/Schedule Trigger для API execution

**Статус:** Реализовано с детальными альтернативными методами.

---

## 📈 Рекомендации

### Для разработчиков

1. **Workflows API:**
   - ✅ Все CRUD операции работают полностью
   - ⚠️ Активация/деактивация через UI (это ограничение n8n, не баг)

2. **Executions API:**
   - ✅ Полное покрытие всех методов
   - ✅ Retry mechanism работает корректно

3. **Credentials API:**
   - ✅ Создание и удаление работают полностью
   - ⚠️ Для обновления использовать DELETE + CREATE pattern
   - ℹ️ Секретные данные не доступны через GET (это фича безопасности)

4. **Tags API:**
   - ✅ Полное покрытие всех методов
   - ✅ Отличная организация workflows

### Для пользователей

1. Используйте MCP tools для всех операций с workflows, executions и tags
2. Для активации workflows используйте n8n web interface
3. Для создания credentials используйте `get_credential_schema` для понимания структуры
4. Для "обновления" credentials удалите старый и создайте новый

---

## 🔄 История изменений

| Версия | Дата | Изменения |
|--------|------|-----------|
| 0.9.0 | 2025-12-26 | Первичный анализ покрытия API |

---

## 📚 Ссылки

- [n8n REST API Documentation](https://docs.n8n.io/api/)
- [MCP n8n Workflow Builder](https://github.com/salacoste/mcp-n8n-workflow-builder)
- [n8n API Docs (local)](./n8n-api-docs/)
