Настройка 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 серверы и добавлять их в конфиг.