cline-sync-mcp
v0.1.2
Published
MCP server that lets Claude Code delegate bounded coding tasks to the local Cline CLI (Cline subscription) synchronously
Downloads
447
Readme
cline-sync-mcp
MCP-сервер, который позволяет Claude Code (или любому другому MCP-клиенту)
делегировать выполнение ограниченных задач по написанию кода локальному
Cline CLI. Один инструмент — cline_execute —
синхронно запускает cline --json -P <provider> -m <model> -c <cwd> "<task>",
дожидается завершения и возвращает компактный отчёт: финальный текст
ответа, git diff --stat, git status --short, код возврата и причину
завершения.
Написан по образцу opencode-v2-mcp, cursor-agent-sync-mcp и
codex-cli-sync-mcp: один вызов тула блокируется до готового результата,
отдельных шагов проверки статуса и остановки процесса нет. Cline работает
в режиме авто-одобрения, поэтому задача должна быть полностью
самодостаточной.
Требования
- Cline CLI, установленный и авторизованный (
cline --version,cline auth— выбрать провайдер Cline / Cline Pass). - Node.js 18+.
Установка
Вариант 1 — из npm (рекомендуется)
Пакет опубликован как cline-sync-mcp
— полностью публичный, ставится без авторизации:
npm install -g cline-sync-mcpВариант 2 — из исходников
git clone [email protected]:yuriisamohvalov-creator/cline-mcp.git ~/tools/cline-mcp
cd ~/tools/cline-mcp
npm installВариант 3 — из GitHub Packages
Тот же пакет также зеркалирован в GitHub Packages под именем
@yuriisamohvalov-creator/cline-sync-mcp.
Важно: в отличие от npmjs.org, GitHub Packages требует аутентификации
даже для доступа к пакету (репозиторий приватный) — понадобится .npmrc
со scoped-registry и GitHub-токеном с правом read:packages:
# ~/.npmrc или в проекте
echo "@yuriisamohvalov-creator:registry=https://npm.pkg.github.com" >> ~/.npmrc
npm login --registry=https://npm.pkg.github.com --scope=@yuriisamohvalov-creator
npm install -g @yuriisamohvalov-creator/cline-sync-mcpПодключение к Claude Code
При установке из npm (npm install -g cline-sync-mcp) бинарник уже в
PATH:
claude mcp add --scope user cline -- cline-sync-mcpПри установке из исходников:
NODE_BIN="$(which node)"
claude mcp add --scope user cline -- "$NODE_BIN" "$HOME/tools/cline-mcp/server.mjs"Проверка:
claude mcp get cline
# Status: ✔ ConnectedПосле подключения новой сессии Claude Code (или рестарта текущей)
инструмент доступен как mcp__cline__cline_execute.
Настройка через переменные окружения
| Переменная | По умолчанию | Назначение |
|---|---|---|
| CLINE_BIN | cline (из PATH) | Путь к бинарнику Cline (which cline подскажет свой) |
| CLINE_PROVIDER | cline-pass | Провайдер по умолчанию (подписка Cline) |
| CLINE_MODEL | cline-pass/glm-5.3-flash | Модель по умолчанию для провайдера по умолчанию |
Переменные можно передать при регистрации сервера:
claude mcp add --scope user cline -e CLINE_MODEL=cline-pass/glm-5.3-flash \
-- "$NODE_BIN" "$HOME/tools/cline-mcp/server.mjs"Про модель: cline-pass без явной модели падает с model not found,
поэтому обёртка сама подставляет CLINE_MODEL. Это работает только для
провайдера по умолчанию — для другого провайдера (provider: "cline")
модель нужно указывать явно. Модель, с которой реально шёл запуск,
возвращается в поле model ответа.
Использование инструмента
{
"task": "Add a slugify() helper in src/lib/slug.ts with tests. Acceptance: kebab-case, trims whitespace. Verify with `npm test -- slug`.",
"cwd": "/absolute/path/to/project",
"model": "cline-pass/glm-5.3-flash", // опционально
"provider": "cline-pass", // опционально
"thinking": "medium", // опционально: none|low|medium|high|xhigh
"plan": false, // true — только планирование, без правок
"timeoutMs": 900000 // опционально, по умолчанию 15 минут
}Ответ:
{
"ok": true,
"exitCode": 0,
"provider": "cline-pass",
"model": "cline-pass/glm-5.3-flash",
"doneReason": "completed",
"iterations": 2,
"text": "...финальный ответ модели...",
"errors": [],
"diffStat": "...git diff --stat...",
"statusShort": "...git status --short..."
}Если авторизация протухла, в ответе появится hint с просьбой выполнить
cline auth.
Ограничения
- Одна задача — один синхронный запуск
cline, без параллелизма в рамках одного вызова инструмента. - Авто-одобрение включено: Cline сам выполняет правки и команды в
cwd. Запускайте только на проектах под git. sessionIdв ответе может бытьnull— продолжить сессию по нему получается не всегда.- Долгая задача блокирует вызывающую сессию на всё время выполнения —
контролируйте через
timeoutMs. - Не подменяет ревью: вызывающая сторона должна самостоятельно проверять
diffStat/statusShort, а не доверять только полюok.
Связанные пакеты
Тот же синхронный паттерн:
opencode-v2-mcp,
cursor-agent-sync-mcp,
codex-cli-sync-mcp.
Лицензия
MIT
