Skip to main content
Glama
magadsm

Terminal MCP Server

by magadsm
README.md
# MCP Terminal Server (Python)

MCP Terminal Server — это сервер для выполнения терминальных команд через протокол Model Context Protocol (MCP), интегрируемый с Cursor AI. Проект предоставляет инструменты для безопасного и гибкого запуска команд в различных оболочках (bash, cmd, PowerShell) с поддержкой ограничений и метрик.

---

## Возможности
- **Поддерживаемые оболочки:** PowerShell (по умолчанию на Windows), cmd, bash
- **Параметры:**
  - `command` — команда для выполнения
  - `shell` — оболочка (опционально)
  - `cwd` — рабочая директория (опционально)
  - `timeout_seconds` — таймаут выполнения (опционально)
- **Транспорт MCP:** stdio
- **Метрики и ограничения:**
  - Максимальный размер stdout/stderr
  - Ограничение длины команды
  - Ограничение числа одновременных процессов
  - Грейс-период для завершения процессов

---

## Быстрый старт

### 1. Клонирование и установка зависимостей
```bash
python -m venv .venv
source .venv/bin/activate  # Linux/macOS
# или .venv\Scripts\activate  # Windows PowerShell
pip install -r requirements.txt
```

### 2. Конфигурация Cursor
Создайте файл `.cursor/mcp.json` в корне TMCP:
```json
{
  "mcpServers": {
    "terminal-mcp": {
      "command": "python",
      "args": ["-m", "TMCP.mcp_terminal.server"]
    }
  }
}
```
Cursor автоматически запустит MCP сервер через stdio.

### 3. Запуск вручную (для отладки)
```bash
python -m TMCP.mcp_terminal.server
```

---

## Использование
После запуска сервера инструмент `run_command` будет доступен в Cursor.

### Примеры вызова
- **PowerShell (по умолчанию на Windows):**
  - `command`: `Get-ChildItem`
- **Через cmd:**
  - `shell`: `cmd`
  - `command`: `dir`
- **С указанием рабочей папки и таймаута:**
  - `cwd`: `C:\CursorProjects\TMCP`
  - `timeout_seconds`: `60`

---

## Структура проекта
```
TMCP/
├── mcp_terminal/
│   ├── __init__.py
│   └── server.py         # Основная логика MCP сервера
├── scripts/
│   └── test_terminal_mcp.py  # Пример теста клиента
├── .cursor/
│   └── mcp.json          # Пример конфигурации для Cursor
├── requirements.txt
├── README.md
└── __init__.py
```

---

## Для разработчиков
- Код сервера написан на Python 3.8+
- Для тестирования используйте скрипты из папки `scripts/`
- Для расширения функционала добавляйте новые инструменты через декоратор `@server.tool`
- Метрики и кастомные маршруты реализованы для мониторинга и интеграции

---

## Безопасность
- **Не передавайте неподтверждённые команды** — сервер выполняет любые команды, полученные через MCP.
- **Запускайте сервер без повышенных прав** (не от root/Administrator).
- Используйте переменные окружения для ограничения разрешённых оболочек, директорий и таймаутов.

---

## Лицензия
MIT License

---

## Контакты и поддержка
Автор: magadsm
Вопросы и предложения: через GitHub Issues