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
Инструменты
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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SynacNipo/command-line-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server