vm:n8n_mcp:02-install_windows_clien_claude

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
vm:n8n_mcp:02-install_windows_clien_claude [2025/08/13 14:21] – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1vm:n8n_mcp:02-install_windows_clien_claude [2025/08/13 14:21] (текущий) – ↷ Имя страницы vm:n8n_mcp:03-install_windows_clien_claude изменено на vm:n8n_mcp:02-install_windows_clien_claude admin
Строка 1: Строка 1:
 +====== Настройка Claude Desktop на Windows с MCP сервером n8n (HTTP) через client-wrapper.js ======
 +==== Введение ====
 +В этой инструкции описан полный процесс установки и настройки Claude Desktop на Windows с подключением к вашему MCP HTTP серверу n8n с помощью специального локального прокси-скрипта client-wrapper.js. Это необходимо, так как Claude Desktop поддерживает MCP серверы только через локальный процесс (stdio), но ваш MCP сервер работает по HTTP.
 + 
 +==== Требования ====
 +• Windows 10 или новее
 +• Установленный Node.js (для запуска client-wrapper.js)
 +• MCP сервер n8n, запущенный по HTTP (например, ваш Docker-контейнер с MCP)
 +• Файл client-wrapper.js (локальная прослойка проксирующая запросы с stdio в HTTP MCP)
 +• Доступ к файлу конфигурации Claude Desktop
 + 
 +==== Шаг 1. Установка Node.js на Windows ====
 +1. Перейдите на официальный сайт: https://nodejs.org
 +2. Скачайте версию LTS для Windows.
 +3. Запустите инсталлятор и следуйте инструкциям.
 +4. В процессе установки убедитесь, что выбрана опция "Add to PATH" (добавить Node.js в системный PATH).
 +5. По завершении откройте "Командную строку" (cmd) и проверьте установку командой:
 +node -v
 +
 +Если версия отображается — установка прошла успешно.
 + 
 +==== Шаг 2. Сохранение файла client-wrapper.js ====
 +1. Создайте папку, например, D:\json\ (или используйте другую удобную).
 +2. Создайте в этой папке файл client-wrapper.js.
 +3. Скопируйте и вставьте в него следующий код:
 +
 +<code>
 +const http = require('http');
 +const https = require('https');
 +
 +const url = process.env.MCP_SERVER_URL;
 +const token = process.env.MCP_AUTH_TOKEN;
 +
 +if (!url) {
 +  console.error('MCP_SERVER_URL is not set');
 +  process.exit(1);
 +}
 +
 +if (!token) {
 +  console.error('MCP_AUTH_TOKEN is not set');
 +  process.exit(1);
 +}
 +
 +const { stdin, stdout } = process;
 +stdin.setEncoding('utf8');
 +
 +let buffer = '';
 +
 +stdin.on('data', (chunk) => {
 +  buffer += chunk;
 +  let newlineIndex;
 +  while ((newlineIndex = buffer.indexOf('\n')) !== -1) {
 +    const rawMsg = buffer.slice(0, newlineIndex).trim();
 +    buffer = buffer.slice(newlineIndex + 1);
 +
 +    if (!rawMsg) continue;
 +
 +    let msg;
 +    try {
 +      msg = JSON.parse(rawMsg);
 +    } catch (e) {
 +      console.error('Invalid JSON input:', e.message);
 +      continue;
 +    }
 +
 +    // Проверка на обязательные поля
 +    if ((msg.id === undefined || msg.method === undefined) && !msg.result && !msg.error) {
 +      console.error('Missing required fields id or method:', msg);
 +      continue;
 +    }
 +
 +    postToMcp(msg)
 +      .then((response) => {
 +        if (msg.id !== undefined && response.id === undefined) {
 +          response.id = msg.id;
 +        }
 +        stdout.write(JSON.stringify(response) + '\n');
 +      })
 +      .catch((err) => {
 +        const errorResponse = {
 +          jsonrpc: '2.0',
 +          id: msg.id || null,
 +          error: {
 +            code: -32603,
 +            message: err.toString(),
 +          },
 +        };
 +        stdout.write(JSON.stringify(errorResponse) + '\n');
 +      });
 +  }
 +});
 +
 +function postToMcp(data) {
 +  return new Promise((resolve, reject) => {
 +    const urlObj = new URL(url);
 +    const protocol = urlObj.protocol === 'https:' ? https : http;
 +
 +    const options = {
 +      hostname: urlObj.hostname,
 +      port: urlObj.port,
 +      path: urlObj.pathname,
 +      method: 'POST',
 +      headers: {
 +        'Content-Type': 'application/json',
 +        'Authorization': `Bearer ${token}`,
 +      },
 +    };
 +
 +    const req = protocol.request(options, (res) => {
 +      let body = '';
 +      res.setEncoding('utf8');
 +      res.on('data', (chunk) => { body += chunk; });
 +      res.on('end', () => {
 +        try {
 +          const json = JSON.parse(body);
 +          resolve(json);
 +        } catch (error) {
 +          reject(`Response parsing error: ${error.message}`);
 +        }
 +      });
 +    });
 +
 +    req.on('error', (e) => reject(e));
 +    req.write(JSON.stringify(data));
 +    req.end();
 +  });
 +}
 +</code>
 +
 +4. Сохраните файл.
 + 
 +==== Шаг 3. Подготовка конфигурационного файла claude_desktop_config.json ====
 +1. Найдите файл конфигурации Claude Desktop:
 +o На Windows он обычно находится по пути:
 +%APPDATA%\Claude\claude_desktop_config.json
 +
 +o Чтобы быстро открыть, нажмите Win+R, введите:
 +%APPDATA%\Claude
 +
 +и нажмите Enter.
 +2. Если файла нет — создайте его.
 +3. Откройте этот JSON-файл в любом текстовом редакторе (например, VS Code или Блокнот).
 +4. Добавьте или измените раздел "mcpServers" следующим образом:
 +{
 +  "mcpServers": {
 +    "n8n-mcp": {
 +      "command": "node",
 +      "args": ["D:\\json\\client-wrapper.js"],
 +      "env": {
 +        "MCP_SERVER_URL": "http://10.0.1.14:3000/mcp",
 +        "MCP_AUTH_TOKEN": "mwotoCzy1exuzllXFdlmCkf7lJKN8lMJiBipfz0TzFs="
 +      }
 +    }
 +  }
 +}
 +
 +• Убедитесь, что указан правильный полный путь до client-wrapper.js с двойными обратными слэшами \\.
 +• Замените MCP_SERVER_URL на URL вашего MCP HTTP сервера, если он отличается.
 +• Замените MCP_AUTH_TOKEN на текущий токен из вашей Docker-конфигурации MCP.
 +5. Если в JSON уже есть другие корневые свойства (например, настройки окна), добавьте "mcpServers" внутрь основного объекта, не удаляя остальное. Обратите внимание на формат JSON (правильные запятые и кавычки!).
 +6. Сохраните файл.
 + 
 +==== Шаг 4. Запуск Claude Desktop ====
 +1. Завершите все запущенные процессы Claude Desktop.
 +2. Запустите Claude Desktop через меню "Пуск" или горячую кнопку.
 +3. При успешной загрузке в логах появится сообщение о подключении к MCP серверу.
 +4. Проверьте, что MCP сервер доступен — попробуйте отправлять команды создания workflow или запроса информации.
 + 
 +==== Шаг 5. Проверка работоспособности ====
 +• Откройте окно чата Claude в приложении.
 +• Введите команду для получения документации MCP:
 +tools_documentation()
 +
 +• Если вы получили список доступных нод и функций — значит связь с MCP сервером установлена корректно.
 +• Далее можно создавать и запускать workflow через команды:
 +build_workflow({...})
 +n8n_create_workflow(workflow)
 +n8n_trigger_webhook_workflow({workflowId: ...})
 +
 +• В случае ошибок смотрите логи в Claude Desktop и вывод консоли.
 + 
 +==== Полезные советы и рекомендации ====
 +• Всегда сохраняйте резервную копию файла claude_desktop_config.json перед изменениями.
 +• Следите, чтобы имя пользователя Windows, от которого запущен Claude, имел права на чтение файла client-wrapper.js.
 +• Если при запуске есть ошибки связанные с Node.js, убедитесь, что Node.js добавлен в PATH и доступен из командной строки.
 +• При изменении конфигурации — обязательно перезапускайте Claude Desktop.
 +• Для более сложных сценариев можно создавать дополнительные MCP серверы и добавлять их в конфиг.
 + 
 +==== Заключение ====