MCP Hub
Back to servers

MCPn8n

A FastAPI-based Model Context Protocol server that enables LLMs to manage and execute n8n workflows through its official REST API.

Tools
6
Updated
Oct 22, 2025

n8n MCP Server

Этот репозиторий содержит реализацию сервера Model Context Protocol (MCP) на базе FastAPI, который позволяет инструментам ChatGPT управлять рабочими процессами n8n через официальный REST API.

Возможности

  • SSE-интерфейс /mcp/request для взаимодействия в формате MCP.
  • Поддерживаемые методы:
    • list_workflowsGET /rest/workflows
    • create_workflowPOST /rest/workflows
    • update_workflowPATCH /rest/workflows/{id}
    • delete_workflowDELETE /rest/workflows/{id}
    • run_workflowPOST /rest/workflows/run
    • get_execution_statusGET /rest/executions/{id}
  • Асинхронный HTTP-клиент httpx.AsyncClient с поддержкой API-ключей n8n.
  • Pydantic-схемы для строгой валидации MCP-запросов и ответов.
  • Логирование входящих запросов и обращений к n8n.

Требования

  • Python 3.10 или новее.
  • Запущенный экземпляр n8n с доступом по HTTP и включённым REST API.
  • API-токен n8n с правами на чтение и изменение workflow.

Установка и запуск

  1. Клонируйте репозиторий и перейдите в директорию проекта:

    git clone https://github.com/Peakviker/MCPn8n.git
    cd MCPn8n
    
  2. Создайте виртуальное окружение и установите зависимости:

    python -m venv .venv
    source .venv/bin/activate
    pip install fastapi uvicorn[standard] sse-starlette httpx python-dotenv
    
  3. Скопируйте пример конфигурации и задайте переменные окружения:

    cp .env.example .env
    # отредактируйте значения по необходимости
    

    Доступные параметры:

    ПеременнаяОписаниеЗначение по умолчанию
    N8N_URLБазовый URL REST API n8nhttp://localhost:5678/api/v1/
    N8N_API_KEYAPI-токен n8nпусто (анонимный доступ)
    N8N_TIMEOUTТаймаут HTTP-запросов в секундах30.0
  4. Запустите сервер MCP:

    uvicorn mcp_server:app --reload --port 8080
    
  5. Проверьте, что сервер отвечает:

    curl http://localhost:8080/healthz
    curl http://localhost:8080/mcp/discover
    

Использование MCP-инструментов

POST /mcp/request принимает JSON вида:

{
  "id": "<уникальный идентификатор запроса>",
  "method": "list_workflows",
  "params": { "limit": 20 }
}

Ответ поступает по SSE в виде событий result или error. Поле result содержит MCP-структуру json_schema с данными, полученными от n8n.

Пример запуска workflow

curl -N \
  -H "Content-Type: application/json" \
  -X POST http://localhost:8080/mcp/request \
  -d '{
    "id": "demo-run",
    "method": "run_workflow",
    "params": {
      "workflow_id": "123",
      "payload": {
        "runData": {
          "HTTP Trigger": [[ { "json": { "foo": "bar" } } ]]
        },
        "startNodes": ["HTTP Trigger"],
        "destinationNode": "Respond to Webhook"
      }
    }
  }'

Чтобы отслеживать выполнение, используйте метод get_execution_status с идентификатором, возвращённым n8n при запуске.

Разработка

  • Все основные настройки находятся в mcp_server.py.
  • При добавлении новых методов обновляйте словарь METHOD_PARAM_MODELS и класс клиента N8nClient.
  • Логирование настроено на уровень INFO. При необходимости измените уровень, передав значение через logging.basicConfig.

Лицензия

Добавьте файл LICENSE при необходимости.

Reviews

No reviews yet

Sign in to write a review