Command-Line MCP Server
Сервер MCP для командной строки
Удалённый сервер Model Context Protocol, который предоставляет
один инструмент, run_command, позволяющий Claude (через функцию Connectors в Claude Desktop)
выполнять shell-команды на машине, где запущен этот сервер.
Сервер реализует OAuth 2.1 (динамическая регистрация клиентов + PKCE), потому что коннекторы Claude Desktop требуют OAuth-рукопожатие — коннектор без сервера авторизации отклоняется при входе. Этот сервер автоматически одобряет авторизацию (без запроса пользователя), что подходит для личного сервера, доступного через туннель.
⚠️ Предупреждение о безопасности: любой, кто может получить доступ к этому серверу и пройти (автоматический) OAuth-поток, может выполнять произвольные команды от имени пользователя, под которым он запущен. Открывайте доступ только через частный туннель (cloudflared / ngrok) и никогда не размещайте его в публичной сети.
Как это работает
Транспорт: Streamable HTTP (транспорт, требуемый коннекторами Claude Desktop).
Без состояния: каждый запрос создаёт новый экземпляр сервера/транспорта (хранилище сессий не нужно).
Конечная точка:
POST /mcpПроверка работоспособности:
GET /health
Related MCP server: Claude MCP Command Server
Инструменты
run_command
Выполняет shell-команду. В Windows оболочкой по умолчанию является cmd.exe (используйте dir, cd, а не ls/pwd), если не передать shell: "powershell".
Параметр | Тип | Обязательный | Описание |
| string | да | Выполняемая shell-команда. |
| string | нет | Рабочая директория. |
| number | нет | Жёсткий таймаут (макс. 600000). По умолчанию 120000. |
| string | нет |
|
get_info
Возвращает ОС, архитектуру, оболочку по умолчанию (cmd.exe в Windows) и текущую рабочую директорию — вызовите один раз, чтобы клиент знал, какую оболочку использовать.
read_file
Читает текстовый файл (необязательный диапазон строк offset/limit). path — абсолютный или относительный к cwd.
list_files
Список содержимого директории. recursive: true обходит дерево (ограничение глубины — 4).
edit_file
Точная замена строки — предпочтительный способ редактирования кода (не требуется экранирование shell).
path, old_text, new_text, необязательный replace_all. old_text должен быть уникальным, если не задан replace_all. Возвращает краткий diff.
apply_patch
Применяет unified diff через git apply (с запасным вариантом --3way). cwd = корень репозитория, patch = текст diff.
write_file
Записывает полное содержимое в файл (overwrite или append).
batch_read
Читает несколько файлов одним вызовом. files: массив { path, offset?, limit? }.
batch_edit
Применяет множество точных текстовых правок в одном или нескольких файлах за один вызов. Транзакционно: каждый old_text проверяется до записи любого файла, поэтому отсутствие/неоднозначность совпадения прерывает весь пакет (ничего не меняется). Каждая правка: { path, old_text, new_text, replace_all? }.
Встроенный git passthrough
git_status (-sb), git_diff (опции staged + paths), git_log (max_count, revision), git_show (revision). Каждый принимает необязательный cwd.
Все пути к файлам разрешаются на хосте, где запущен сервер, — они указывают на эту машину, а не на песочницу Claude.
Запуск локально
npm install
npm start
# server listens on http://localhost:3000/mcpНеобязательные переменные окружения: PORT, CMD_TIMEOUT_MS, CMD_MAX_BUFFER.
npm start запускает start.js, который освобождает порт 3000 (убивает любой процесс, удерживающий его)
перед запуском сервера, так что вы никогда не столкнётесь с EADDRINUSE.
Открытие доступа для Claude Desktop
Вариант A — Cloudflare Worker (стабильный URL, без trycloudflare, домен не нужен)
Небольшой локальный агент поддерживает WebSocket-соединение с Cloudflare Worker, который становится
вашей стабильной публичной конечной точкой MCP *.workers.dev. Worker только ретранслирует данные на
вашу машину, пока агент (аутентифицированный с помощью PROXY_SECRET) подключён.
wrangler login(бесплатная учётная запись Cloudflare).Разверните:
wrangler deploy→ запишите ваш URL, напримерhttps://command-line-mcp.<subdomain>.workers.dev.Установите секрет (то же значение, которое уже есть в вашем gitignored
.dev.vars):wrangler secret put PROXY_SECRET(вставьтеPROXY_SECRETиз.dev.vars).Укажите агенту развёрнутый Worker: задайте
WORKER_URLв.dev.varsна этот URL.На вашей машине запустите оба:
npm start # the MCP server on :3000 npm run agent # connects to the Worker with the secretВ Claude Desktop: Customize → Connectors → Add custom connector, вставьте
https://command-line-mcp.<subdomain>.workers.dev/mcp.
Локальное тестирование без развёртывания: wrangler dev --port 8787 (Worker на :8787),
затем npm run agent — агент читает WORKER_URL из .dev.vars.
Вариант B — туннель cloudflared / ngrok (временный URL)
Коннекторам Claude Desktop нужен HTTPS-URL, поэтому запустите сервер локально и пробросьте туннель:
cloudflared tunnel --url http://localhost:3000 --protocol http2
# or: ngrok http 3000Скопируйте сгенерированный URL https://… и добавьте /mcp, например
https://abc-123.trycloudflare.com/mcp.
Добавление в Claude Desktop
Откройте Customize → Connectors → Add custom connector.
Вставьте URL (с
/mcp), например URL Worker из варианта A.Назовите его Command-Line.
Сохраните. Claude обнаружит OAuth-метаданные, зарегистрирует клиента и откроет браузер на (автоматически одобряющей) конечной точке авторизации, затем перенаправит обратно — и всё готово. Вводить "OAuth Client ID" вручную не нужно — DCR справится.
Тестирование без Claude
Используйте MCP Inspector:
npx @modelcontextprotocol/inspector
# Transport: Streamable HTTP, URL: http://localhost:3000/mcpУсиление защиты (для неличного использования)
OAuth уже реализован (см. oauthProvider.js). Для чего-либо, кроме личного туннеля, следует:
Заменить автоматически одобряющий
authorize()на реальный экран согласия или хотя бы список разрешённых redirect URI / клиентов.Сохранять клиентов/токены (сейчас они в памяти — сбрасываются при перезапуске).
Разместить за стабильным HTTPS-доменом (например, VPS, Cloudflare Workers, Fly.io).
Рассмотреть список разрешённых команд для ограничения радиуса поражения.
Лицензия
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Remote MCP server to read and manage your Atako AI agents, messages, files, and integrations.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA high-speed MCP server that enables AI assistants like Claude to interact with local filesystems, manage Git repositories, and provide interactive experiences through a standardized JSON-based protocol.6MIT
- FlicenseNot gradedqualityDmaintenanceA server implementation for the Model Context Protocol (MCP) that allows Claude AI to execute commands through a command-line interface, enabling direct system interactions from within Claude.-
- AlicenseNot gradedqualityDmaintenanceA local MCP server that proxies file and shell tools (Read, Write, Edit, Bash, etc.) to a remote Linux host over SSH, enabling MCP clients like Claude Code to operate on remote codebases.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for Claude Code to execute commands on any remote server over SSH. Provides tools for remote execution, file operations, and connection info.-