====== Настройка 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. Скопируйте и вставьте в него следующий код: 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(); }); } 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 серверы и добавлять их в конфиг. ==== Заключение ====